位单片机及语音嵌入式系统

上传人:tia****nde 文档编号:67477597 上传时间:2019-01-07 格式:PPT 页数:233 大小:6.16MB
返回 下载 相关 举报
位单片机及语音嵌入式系统_第1页
第1页 / 共233页
位单片机及语音嵌入式系统_第2页
第2页 / 共233页
位单片机及语音嵌入式系统_第3页
第3页 / 共233页
位单片机及语音嵌入式系统_第4页
第4页 / 共233页
位单片机及语音嵌入式系统_第5页
第5页 / 共233页
点击查看更多>>
资源描述

《位单片机及语音嵌入式系统》由会员分享,可在线阅读,更多相关《位单片机及语音嵌入式系统(233页珍藏版)》请在金锄头文库上搜索。

1、1,16位单片机 及语音嵌入式系统,赵定远 马洪江 主 编,2,第1章 SPCE061A单片机简介,3,一、nSP家族的模块式结构,4,体积小、集成度高、可靠性好且易于扩展 具有较强的中断处理能力 高性能价格比 功能强、效率高的指令系统,二、nSP家族的特点,5,性能,三、 SPCE061A简介,16位nSP微处理器; 工作电压:VDD为2.6-3.6V(cpu), VDDH为VDD- 5.5V(I/O) CPU时钟:0.32MHz-49.152MHz ; 内置2K字SRAM; 内置32K字FLASH; 可编程音频处理; 晶体振荡器; 系统处于备用状态下(时钟处于停止状态),耗电小 于2A/3

2、.6V;,6,2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒; 具备触键唤醒的功能; 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 锁相环PLL振荡器提供系统时钟信号;,性能,7,32768Hz实时时钟; 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口; 具有低电压复位(LVR)功能和低电压监测

3、(LVD)功能; 内置在线仿真电路ICE(In- Circuit Emulator)接口; 具有保密能力; 具有WatchDog功能(由具体型号决定)。,性能,8,四、SPCE061A简介的结构,9,芯片引脚排列,10,SPCE061A实物图,1.2 SPCE061A简介,11,SPCE061A最小系统的构成,12,五、SPCE061A开发方法,通过在线调试器PROBE实现。 它既是一个编程器(即程序烧写器),又是一个 实时在线调试器。 PROBE工作于凌阳IDE集成开发环境软件包下, 其5芯的仿真头直接连接到目标电路板上 SPCE061A相应管脚,直接在目标电路板上的 CPU-SPCE061

4、A调试、运行用户编制的程序。 PROBE的另一头是标准25针打印机接口,直接连 接到计算机打印口与上位机通讯,在计算机IDE集 成开发环境软件包下,完成在线调试功能。,13,计算机、PROBE、用户目标板连接图,14,计算机、PROBE、用户目标板连接实物图,15,本章内容结束,16,第2章 SPCE061A单片机硬件结构,17,2.1 nSP的核心结构,18,2.1.1 ALU算术逻辑运算单元,16位算术逻辑运算 nSP提供了基本算术运算与逻辑操作指令,加法、减法、比较、补码、异或、或、与、测试、写入、读出等16位算术逻辑运算及数据传送操作。,19,2.1.1 ALU算术逻辑运算单元,结合算

5、术逻辑的16位移位运算 包括:算术右移ASR、逻辑左移LSL、逻辑右移LSR、旋转左移ROL及旋转右移ROR。 nSP的移位指令是复合式指令,一个指令会同时完成移位和算术逻辑运算。程序设计者可利用这些复合式的指令,撰写更精简的程序代码,进而增加程序代码密集度 (Code Density)。,20,2.1.1 ALU算术逻辑运算单元,16位16位的乘法运算和内积(乘加)运算 高速的16位16位乘法运算指令MUL和16位内积运算指 令MULS。 可以用于有符号数相乘 (signedsigned) 或无符号数与 有符号数相乘 (unsignedsigned)的运算。MUL指令只 需花费12个时钟周期

6、,MULS指令花费10n+6个时钟周 期,其中n为乘加的项数。例如:“MR=R2*R1 ,4” 表示求4项乘积的和,MULS指令只需花费46( 104+6=46)个时钟周期。这两条指令大大的提升了 nSP的数字信号处理能力。,21,2.1.2 寄存器组,共有8个16位寄存器 分为通用寄存器和专用寄存器两大类 通用寄存器包括:R1R4,作为算术逻辑运算的来源及目标寄存器 专用寄存器包括: SP、BP、SR、PC,是与CPU特定用途相关的寄存器,22,2.1.2 寄存器组,通用寄存器R1R4 (General-purpose registers) 可用于数据运算或传送的来源及目标寄存器。寄存器R4

7、、R3配对使用,还可组成一个32位的乘法结果寄存器MR;R4为MR的高字符组,R3为MR的低字符组,用于存放乘法运算或内积运算结果,23,2.1.2 寄存器组,堆栈指针寄存器SP (Stack Pointer) SP用来记录堆栈地址,指向堆栈顶端。 堆栈是一个先进后出的内存结构,nSP的堆栈结构由高地址往低地址方向储存。 CPU执行push、子程序调用call及进入中断服务子程序(ISR,Interrupt Service Routine) 时,会在堆栈里储存寄存器内容,这时SP会递减以反映堆栈用量的增加。当CPU执行pop、子程序返回ret及从ISR返回reti时,SP会递增以反映堆栈用量的

8、减少。 nSP堆栈的大小限制在2K字的SRAM内,即地址为0x0000000x0007FF的内存范围中。,24,2.1.2 寄存器组,基址指针寄存器BP (Base Pointer),nSP提供了一种方便的寻址方式,即基址寻址方式BP+IM6;程序设计者可通过BP来存取ROM与RAM中的数据,包括:局部变量(Local Variable)、函数参数(Function Parameter)、返回地址(Return Address)等。BP还可做为通用寄存器R5,用于数据运算传送的来源及目标寄存器。,25,2.1.2 寄存器组,程序计数器PC (Program Counter),用来记录程序目前执

9、行位置,以控制程序走向。CPU每执行完一个指令,就会改变PC的值,使其指向下一条指令的地址。在nSP里,16位的PC寄存器与SR寄存器的CS字段,共同组成一个22位的程序代码地址。,26,2.1.2 寄存器组,状态寄存器SR (Status Pointer),状态寄存器SR内含许多字段,每个字段都有特别的用途。其中包含两个6位的区段选择字段: CS (Code Segment),DS (Data Segment),它们可与其它16位的寄存器结合在一起形成一个22位的地址,用来寻址 4M字容量的内存。 SPCE061A只有32K字的闪存,只占用一页的存储空间,所以CS和DS字段在SPCE061A

10、中都是设为0。 算数逻辑运算的结果会影响CPU内的标志(flag),标志的内容可以作为条件判断的依据。 nSP有四个1位的标志: N、Z、S、C,即SR寄存器中间的4个位(B6B9)。,27,2.1.3 数据总线和地址总线,nSP是16位单片机,它具有16位的数据线和22位地址线。所以其基本数据类型是16位的“字”型,内存都是按“字”操作,22位地址线最多可寻址到4M字的内存空间。地址线中的高6位A16A21来自SR寄存器中6位的CS字段或是6位的DS字段,低16位A0A15则来自内部寄存器。通常,地址线的高6位称为内存地址的Page Selector,简称为页码(Page);而低16位则称为

11、内存地址的偏移量(Offset)。 nSP通过对区段(Segment)的编码来实现内存分页检索,通过Segment与Offset的配合产生22位地址,(注意: SPCE061A只有32K字闪存FLASH,仅占一页存储空间,所以CS字段和DS字段在SPCE061A用不到,都设为0),28,2.2 SPCE061A片内存储器结构,SPCE061A片内有2K字的SRAM和32K闪存。,29,2.2.1 RAM,SPCE061A有2K字的SRAM(包括堆栈区),地址范围从0x0000到0x07FF。前64个字,即0x00000x003F地址范围内,可采用6位地址直接地址寻址方法,存取速度为2个CPU时

12、钟周期;其余范围内(0x00400x07FF)内存的存取速度则为3个CPU时钟周期。,30,2.2.2 堆栈SP,SP是用来记录堆栈地址的寄存器,SP会指向堆栈的顶端。 堆栈是一个先进后出的内存结构,nSP的堆栈结构是由高地址往低地址的方向来储存的。CPU执行push、子程序呼叫call及进入中断服务子程序(ISR,Interrupt Service Routine) 时,会储存寄存器内容在堆栈里,这时SP会递减以反映堆栈用量的增加。当CPU执行pop、子程序返回ret及从ISR返回reti时,SP会递增以反映堆栈用量的减少。 nSP堆栈大小限制在2K字的SRAM内,即地址为0x0000000

13、x0007FF的内存范围中。SPCE061A系统复位后,SP初始化为0x07FF,每执行push指令一次,SP指针减一。,31,2.2.3 闪存Flash,SPCE061A是用闪存替代mask ROM的MTP(multi-time-programmable)芯片,闪存可进行多次擦除与写入,可用来存储程序与数据。SPCE061A具有32K字(32K16位)闪存,32K字的内嵌闪存被划分为128页,每页存储容量为256字。它们在CPU正常运行状态下均可通过程序擦除或写入。全部32K字闪存均可在ICE工作方式下被写入或被擦除。不对用户开放整体擦除功能。,32,2.2.3 闪存Flash,用户通过向P

14、_Flash_Ctrl (写) ($7555H)单元写入0xAAAA启用闪存的存取功能。然后,向P_Flash_Ctrl (写) ($7555H)单元写入0x5511,来擦除页的内容。 为保证数据的正确写入,用户必须在写入之前擦除页的内容。页大小为0x100。第一页地址范围:0x80000x80FF,最后一页的地址范围:0xFF000xFFFF。0xFC000xFFFF范围内的地址由系统保留,用户最好不要用本范围内的地址。,33,2.3 SPCE061A的输入/输出接口,输入/输出接口(简称I/O端口)是单片机 与外设交换信息的通道。 输入端口负责从外界接收检测信号、键盘 信号等各种开关量信号

15、。 输出端口负责向外界传送由内部电路产生 的处理结果、显示信息、控制命令、驱动 信号等。,34,2.3 SPCE061A的输入/输出接口,nSP内有并行和串行两种方式的I/O口。 并行口线路成本较高,但是传输速率也较高; 串行口的传输速率较低但可以节省大量的线路成本。,35,2.3 SPCE061A的输入/输出接口,SPCE061A有两个16位的通用并行I/O口:A口和B口。这两个端口的每一位都可通过编程单独定义成输入或输出口。 A口的IOA0-IOA7作为输入端口时,具有唤醒功能,即当输入电平发生变化时,会触发CPU中断。在电池供电、追求低耗电的应用场合,可以让CPU进入睡眠模式(利用软件控

16、制)以降低功耗,需要时才以按键来唤醒CPU,使其进入工作状态。例如:手持遥控器、电子字典、PDA、计算器、无线电话等。,36,2.3.1 I/O端口结构,SPCE061A提供了位控制结构的I/O端口,每一位可单独用于数据输入或输出。每个独立的位可通过以下3种控制向量来作设定: 数据向量Data 属性向量Attribution 方向控制向量Direction,37,2.3.1 I/O端口结构,每3个对应控制向量组合在一起,形成一个控制字,用来定义相对应I/O端口位的输入输出状态和方式。例如,需要IOA0是下拉输入引脚,则对应的Data、Attribution和Direction的值均被设为“0”。如需要IOA1是带唤醒功能的悬浮式输入引脚,则Data、Attribution和Direction的值被设为“010”。与其它的单片机相比,SPCE061A除了每个I/O口可以单独定义其状态外,每

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号