资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第2章 SPCE061A单片机简介,第2章 SPCE061A单片机简介,2.1 SPCE061A,概述,2.2 nSP,TM,内核结构,2.3 SPCE061A,单片机存储器,思考题,2.1 SPCE061A概述,2.1.1,主要性能,SPCE061A单片机的主要性能有:,内核采用16位nSP微处理器。,工作电压VDD为2.63.6 V(CPU),I/O端口高电平VDDH为VDD5.5 V。,CPU时钟频率为0.32049.152 MHz。,内置2 K字SRAM。,内置32 K字闪存FLASH。,具有可编程音频处理功能。,低功耗,系统处于备用状态下(时钟处于停止状态)耗电小于2 A3.6 V。,两个16位可编程定时器/计数器(可自动预置初值)。,两路10位数/模转换(DAC)输出通道。,32位通用可编程输入/输出端A口和B口。,14个中断源(定时器A、B,时基信号,两个外部时钟源,触键唤醒等)。,具有触键唤醒功能。,使用凌阳音频编码SACM_S240方式(2.4 kb/s),能容纳210 s语音数据。,实时时钟频率为32 768 Hz,由锁相环PLL振荡器提供系统时钟信号。,7通道10位电压模/数转换器(ADC)和单通道声音模/数转换器。,语音模/数转换器输入通道,内置麦克风放大器和自动增益控制(AGC)电路。,具有串行设备通信接口SIO。,具有低电压复位(LVR)和低电压监测(LVD)功能。,内置看门狗监视器。,内置在线仿真(ICE,In-Circuit Emulator)接口。,2.1.2 SPCE061A 模块结构,SPCE061A单片机内部结构和组成如图2.1和图2.2所示。其主要功能模块有并行I/O端口、模/数转换ADC、数/模转换DAC、存储器RAM&FLASH、定时器/计数器T/C(脉宽调制输出PWM)、WatchDog、异步串行通信口UART、指令存放器IR、设备串行口SIO、低电压检测LVD(低电压复位)等。,图2.1 SPCE061A模块结构图,图2.2 SPCE061A内部结构图,2.1.3 芯片管脚排列及功能,图2.3 SPCE061A引脚排列图,表,2.1 SPCE061A,管脚功能表,2.1.4,最小应用系统,SPCE061A单片机的最小应用系统构成非常方便,只需在OSCO、OSCI端接石英晶体振荡器及谐振电容,在复位端接复位电路,在锁相环压控振荡器的阻容输入VCP端接上相应的电容、电阻后即可工作,其它不用的电源端和接地端可接上104小电容或100 F的去耦电容,以提高抗干扰能力,如图2.4所示。,图2.4 SPCE061A最小系统原理图,2.1.5 开发应用方式,SPCE061A单片机开发系统由PC机、在线调试器PROBE和用户目标板构成。在线调试器PROBE实现目标板与PC机之间的信息转换和传输,它既是一个编程器(完成程序烧写功能),又是一个实时在线调试器,用它可以替代传统单片机应用工程开发过程中常用的两种工具实时仿真器和程序烧写器。PROBE是利用SPCE061A内置的在线仿真电路ICE(In-Circuit Emulator)和凌阳公司的在线串行编程技术实现仿真和编程的。PROBE工作于凌阳IDE集成开发环境下,其5芯仿真头连接到目标电路板上的SPCE061A相应管脚,直接在目标电路板的SPCE061A单片机上调试和运行用户程序,PROBE的另一头是标准的25针并行接口,与计算机并行端口(打印机接口)相连,实现与上机通信。在IDE集成开发环境下,完成在线调试、下载功能。,图2.5 计算机、PROBE和用户目标板连接示意图,2.2 nSP内核结构,SPCE061A单片机采用凌阳nSP内核,为了使读者对SPCE061A单片机有一个总体了解,首先我们对nSP内核结构作一简单介绍。,nSP内核主要由总线、算术逻辑运算单元、存放器组、中断系统及堆栈等局部组成,如图2.6所示。,图2.6 nSP内核结构示意图,2.2.1 算术逻辑运算单元,nSP的算术逻辑运算单元ALU能够完成16位根本的算术逻辑运算和带移位操作的16位算术逻辑运算以及用于数字信号处理的16位乘法运算、内积运算等。,1.16位算术逻辑运算,与大多数CPU类似,nSP提供了根本的16位算术逻辑运算及数据传送指令,如加、减、乘、比较、取补、异或、或、与、测试等。,2.带移位操作的16 位算术逻辑运算,由图2.6可以看出,nSP内核的ALU 前面串接有一个移位存放器SHIFTER,也就是说,操作数在经过ALU运算操作前可先进行移位处理,然后再由ALU完成相应的运算操作。移位包括算术右移、逻辑左移、逻辑右移、循环左移及循环右移等,所以nSP的指令系统里有一组复合的移位算术逻辑操作指令,即一条指令能够完成移位和算术逻辑操作两项功能,指令功能很强。程序设计者可利用这些复合指令编写出更精简的程序,进而增加程序代码密集度(Code Density),减少程序代码对ROM或FLASH的需求,降低系统本钱,提高执行效率。,3.16,位,16,位的乘法运算和内积运算,除了普通的16位算术逻辑运算指令外,nSP指令系统还提供了处理速度较高的16位16位乘法运算指令(Mul)和内积运算指令(Muls),这两种指令都可以用于两个有符号数或一个有符号数与一个无符号数的运算,Mul指令只需花费12个时钟周期,Muls指令需花费10n+8个时钟周期,其中n为乘积求和的项数。,例如:MR=R2*R1,4;表示求4项乘积的和,Muls指令只需花费48(1048=48)个时钟周期,为nSP应用于复杂的数字信号处理提供了极大的方便。,2.2.2 存放器组,nSP存放器组由8个16位存放器组成,分为通用存放器和专用存放器两大类。通用存放器包括R1R4(作为算术逻辑运算的源存放器及目标存放器);专用存放器包括SP、BP、SR、PC等,下面分别作一介绍。,1.通用存放器R1R4,通用存放器R1R4通常用于数据运算、数据传送的源存放器及目标存放器。存放器R4和R3配对使用,可组成一个32位的乘法结果存放器MR(其中R4存结果的高字组,R3存结果的低字组),用于存放乘法运算或内积运算的结果。,2.堆栈指针存放器 SP,CPU在执行压栈/出栈指令(PUSH/POP)、子程序调用/返回指令(CALL/RETF)以及进入中断效劳程序ISR(Interrupt Service Routine),或从中断效劳程序返回(RETI)时,随着堆栈的变化,堆栈指针随之移动,SP就是用来存放堆栈指针的专用存放器。堆栈的最大容量范围限制在2 K字的(RAM)范围内,即在0 x0000H0 x07FFH的存储器范围内。,3.基址指针存放器BP,nSP提供了一种变址寻址方式BP+IM6,可直接存取FLASH与RAM 中的各种数据,包括局部变量(Local Variable)、函数参数(Function Parameter)、返回地址(Return Address)等等,这在C 语言程序设计时特别有用。BP 除了上述用途外,也可作为通用存放器R5使用,用于数据运算或传送存放器,因此本教材(或程序)中BP与R5是共享的,均代表基址指针存放器。,4.段存放器 SR,SR有多种功能,有代码段选择字段(CS)和数据段选择字段(DS),它们可分别与其它16位的存放器组合在一起形成22位地址信息,寻址空间为4 M字容量的存储器,如下所示:,D15D10:数据段选择字段(DS)6位;,D9D6:算术逻辑运算结果标志位(NZSC)4位;,D5D0:代码段选择字段(CS)6位。,算术逻辑运算结果标志位为N、Z、S、C(SR中的D9D6),CPU 在执行条件跳转指令时,需测试这些标志位,以控制程序的流向。,2.2.3 总线结构,nSP具有16 位数据总线和22位地址总线,由此决定其根本数据类型是16位的Word型,而不是8位单片机的Byte型,因而每次存储器都是按Word操作的。22位地址线最多可寻访4 M字的存储容量,地址线中的高6位A21A16来自段存放器SR中的6位代码段 CS和6位数据段DS选择字段,低16位A15A0来自内部存放器。通常,地址线的高6位称为存储器地址的段码选择简称段码(Segment),而低16位那么称为存储器地址的偏移量Offset。nSP通过对段(Segment)的编码来实现存储器页的检索,通过Segment与Offset的配合即可产生22位地址信号。,2.3 SPCE061A单片机存储器,SPCE061A单片机片内存储器地址映射表如图2.7所示,单片机的存储器有2 K字的SRAM(包括堆栈区)和32 K字闪存FLASH。,图2.7 SPCE061A 内存映射表,2.3.1 RAM,SPCE061A有2 K字的SRAM(包括堆栈区),其地址为0 x00000 x07FF,前64个字即0 x00000 x003F地址范围内可采用6位地址直接寻址,寻访速度为2个时钟周期,其余0 x00400 x07FF地址范围内采用16位地址直接寻址,存储器的寻访速度为3个时钟周期。,2.3.2 堆栈,堆栈是在内存RAM 区专门开辟出来的按照“先进后出的原那么进行数据存取的一个工作区域,如图2.8 所示。它主要用于子程序调用及返回和中断处理断点的保护及返回等。堆栈的最大容量范围限制在2 K字RAM内,即其地址为0 x07FF0 x0000。,图2.8 堆栈生成方向,2.3.3,闪存,FLASH(,闪速存储器,),32 K字的内嵌式闪存被划分为128个页(每个页存储容量为256个字),地址空间为0 x80000 xFFFF,其中0 xFFF60 xFFFF为中断向量单元。CPU 正常工作时,均可通过程序写入或擦除。32 K字的内嵌式闪存均可在ICE工作方式下编程写入或擦除。,1.,读存储单元操作,芯片上电后,处于读存储单元状态,其操作与读SRAM相同。,2.,擦除操作,在对闪存编程前,必须对其进行擦除。由于闪存采用模块分区的阵列结构,因此,各个存储模块(页)可以独立擦除。当给出的地址在某一模块地址范围内并且向命令用户接口写入模块擦除命令时,相应的模块就被擦除。要保证擦除操作的正确完成,必须考虑以下几个参数:,(1)该闪速存储器的内部模块分区结构。,(2)每个模块分区的擦除时间。,3.,编程操作,闪速存储器芯片的编程操作是自动按字节编程的,既可以顺序写入,也可指定地址写入,编程操作时,注意芯片的编程时间,FLASH程序空间为0 x80000 xFFFF。Flash命令用户接口地址为0 x7555,第1页地址范围是0 x80000 x80FF,最后一页是0 xFF000 xFFFF。,(1)擦除一页的流程如下:,给命令用户接口地址0 x7555送0 xAAAA。,给命令用户接口地址0 x7555送0 x5511。,给要擦除页地址送任意数约20 ms即可完成擦除操作。,例如:擦除第6页0 x85000 x85FF的流程如下:,给0 x7555单元写0 xAAAA。,给0 x7555单元写0 x5511。,给0 x85XX写XXXX(X为任意值保持20 ms)。,(2)写入一个字的流程如下:,给命令用户接口地址0 x7555送0 xAAAA。,给命令用户接口地址0 x7555送0 x5533。,给写入字地址送数据约40 s即可完成写入操作。,例如:向0 x8000单元写入0 xFFFF的流程如下:,给0 x7555单元写0 xAAAA。,给0 x7555单元写0 x5533。,给0 x8000单元写0 xFFFF。,(3)写多个字的流程如下:,为命令用户接口地址0 x7555送0 xAAAA。,为命令用户接口地址0 x7555送0 x5544。,写入字首地址送数据约40 s即可完成1个字写入操作。,为命令用户接口地址0 x7555送0 x5544。,写入字地址送数据等待40 s,循环操作即可完成多字的写入。,注意:,上面所提到的延
展开阅读全文