1、30,第三章 总线、CPU结构及存贮的配置,总线结构: PAB: 程序地址总线,程序空间地址 CPU DRAB:程序读总线, 程序存储器内容 CPU DWAB:数据写地址总线, 写数据空间时的地址PRDB: 程序读数据总线, 读数据空间时的地址 DRDB:数据读总线, 数据存储器内容 CPU DWEB:数据写总线, 数据 数据存储器或程序存储器,31, 3.1 中央处理单元中央处理单元CPU 辅助寄存器算术单元输入比例部分(输入定标单元)中央处理单元 中央算术逻辑运算部分乘法器部分CPU的任务是从程序读总线(PRDB)或数据读总线(DRDB)获取数据经过加、 乘、 移位等运算再经数据写总线(D
2、WEB)将结果送出,32,移位器(32位),输入定标器部分,将16位输入与32位的CALU的数据对齐,TRGE 乘法器 16X16 PREG,乘积移位器(32),CALU,ACC(累加器),C,输出移位器32位),算术逻辑运算部分完成加 减移位逻辑运算,数据写总线 数据读总线 程序读总线,MVX:多路转换器,DWEB(16),DRDB(16),PRDB(16),乘法器部分,16,16,16,16,16,16,16,16,16,1,16,1,32,32,32,32,32,32,临时寄存器,乘法寄存器,33,(1) 输入定标移位器: 完成数据的移位和扩展,以便与32位的CALU格式对齐. 来自DR
3、DB的立即数(立即寻址),或PRDB总线上的指令操作 数与CALU中的数据匹配. 将输入左移0-16位.移位次数由指令给出或由TRGE(临时寄存器) 的低四位给出 (直接寻址) (间接寻址). 符号扩展 二进制数以二进制有符号数的补码表示,由状态寄存器ST1中的SXM位决定SXM=0 不扩展 SXM=1 扩展,34,(3) 乘法单元:1.16位X16位硬件乘法器.一个周期内完成乘法运算2.TREG为临时寄存器. 将乘数与来自PRDB或DRDB中的被乘数在乘法器中相乘,乘积为32位.送PREG.PREG为乘法寄存器. 将结果送CALL前,在乘法移位器中进行移位定标有四种形式移位.由ST1中的PM
4、两位决定PM=00时 不移位 乘积送CALU或数据写总线PM=01时 左移1位 移去补码乘法产生的额外符号位产生Q31格式的乘积,Q31为32位有符号小数的标准格式,最 高为符号位.其后为小数点,仍限31位有效数字.PM=10时 左移4位 移去16位乘13位常数时,二进制补码乘法产生的额外4位符号位,产生Q31格式的乘积 PM=11时 右移6位 把乘积定标.使最多做128次乘法累加而不导致累加器溢出,右移时总要进行符号扩展.,35,(3) 中央算术逻辑单元32位CALU 32位ACC 32位输出移位器两个输入来自累加器和移位器或乘积移位器实现 加 减 与 或 位测试输出移位器拷贝累加的内容 并
5、进行移位(0-7)高16位或低16位送数据存贮器中,36, 3.2 辅助寄存器算术单元CPU中还有一个辅助寄存器算术单元ARAU主要功能是与中央处理单元并行工作,对8个辅助寄存器(AR0-AR7)进行算术运算8个辅助寄存器为DSP提供间接寻址方式,由状态寄存器的ARP(STO)决定,称ARP为辅助寄存器(AR0-AR7)的内容(16位)为要访问的数据存贮器地址,37,ARAU完成以下运算:1.辅助寄存器内容+1/-1 或增/减一个变址量(间接寻址指令决定)2.增/减一常数(指令字的低8位决定)3.AR0与当前AR相比较,比较结果经数据写数据总线(DWEB)送到ST1的测试/控制位(TC)ARA
6、U的其它用途1.通过CMPR指令 AR与AR0作为测试条件,支持分支 调用 返回2.作为软件计数器 进行加/减3.作为暂时寄存器,暂存数据。使用LAR装载数据,用SAR送数据存储器ARAU的运算通常在译码阶段进行 为能在下条指令译码这前产生地址,38,数据读总线(DRDB),ARB,ARP,指令寄存器,MVX,AR7,AR0,ARAU,数据写总线(DWEB),数据读地址总线(DRAB),数据写地址总线(DWAB),ST1(13-15),ST0(13-15),16,16,16,16,16,8,3,3,3,3,39, 3.3 状态寄存器DSP有两个状态寄存ST0和ST1可用专用指令LST和SST保
7、存和装载至存贮器,15 13 12 11 10 9 8 0,ST0,15 13 12 11 10 9 8 7 6 5 4 3 2 1 0,ST1,ARP: 辅助寄存器指针: ARP装载时,原ARP值复制到ARB ARB: 辅助寄存器指针缓冲器 : LST指令装载ARB时 同时装载ARP OV:溢出标志: 复位为0,40,OVM: 溢出方式:OVM=0时,ACC正常溢出,OVM=1时,ACC溢出时置为最大正值7FFFFFFF或最大负值80000000H INTM:中断方式: 0:使能中断 1:屏蔽中断 不受LST指令影响,复位时为1 对RS、 NM1无效。 DP: 数据存贮器页面指针,形成直接寻
8、址的页地址(高9位)。 CNF: DARAM配置方式: O:DARAM配置为数据空间。1:DARAM配置为程序空间,复位为0 TC: 测试/控制标志: 测试位=1 则TC=1,条件为真。复位时=0 SXM: 符号扩展位: SXM=1符号扩展,SXM=0符号不扩展。复位为=1 C: 进位位,加法时有进位C=1,减法时没有借位时C=1,复位时C=1 XF: 引脚状态位,复位时XF=1 PM: 乘积移位模式,复位时清0,41, 3.4 存贮器与I/O空间TMS320LF240X系列为增强的哈佛结构,由三组总线并行访问多个存贮空间程序地址总线 PAB数据读地址总线 DRAB 数据写地址总线 DWAB
9、DSP采用独立的程序存贮器、数据存贮器和I/O空间即可以有相同的地址,访问通过不同的控制线来区分,其中数据分为局部空间和全局空间(局部数据存贮器,全局数据存贮器,受全局存贮器分配寄存器(GREG)的控制,240T保留GREG)4个独立的选择空间64K字程序空间: 指令及执行指令时需要的数据64K字局部数据空间 (240T为片内32K字0000-7FFFH)32K字全局数据空间 (片外32K字8000H-FFFFH)(2407保留)64K字I/O空间,任意一组可以访问不同的程序空间,每组互相独立,并行工作,42, 3.5 与片外存贮器和I/O空间的接口信号1.外部数据、地址总线D0-D15,A0
10、-A1。2.片选信号、区分内部还是外部访问,是程序、数据,还是I/O空间 DS: 外部数据空间有效 PS : 外部程序空间有效 IS: I/O空间选择有效 STRB: 外部访问有效(B/R 访问外部全局数据空间有效)(2407器件没有)3.读/写信号 指明数据传送方向和读/写操作R/W: 指明数据方向。W/R: 具有内部上拉的指明数据方向。WE: 写使能信号 下沿驱动D0-D15RD: 读便能信号4.请求/控制信号 实现特殊操作MP/MC: 模式选择READY: 外围器件准备好,43, 3.6 程序存贮器,0000H 003FH 0040H7FFFH 8000H FDFFH FE00H FEF
11、FH FF00H FFFFH,64W,16个字,18个字,2个字,2个字,2个字,2个字,24个字,0000-0001 0002-0003 4-5 6-7 8-9 A-B C-D E-F10-21 22-23 24-25 26-27 28-3F,64K,256,256,44, 3.7 I/O空间,1个字,1个字,0000H FEFF FF00 FF0E FF0F FF10 FFFEFFFF,0000 003F 0040 0043 0044 7FFFFF00 FFFF,64字节保留4B,32K-68B,256B,68B,45,事件处理器EVB,事件处理器EVA,0000 005F 0060 00
12、7F 0080 00FF 0100 01FF 0200 02FF 0300 03FF 0400 04FF 0500 07FF 0800 0FFF 1000 6FFF 7000 73FF 7400 743F 7440 74FF 7500 753F 7540 77EF 77F0 77F3 77F4 77FF 7800 7FFF 8000 FFFF,32字,256字,256字,32字,2K,1K,64字,64字,1K,4字,32K,* 访问非法地址引起非屏蔽NMI中断保留地址为测试保留 访问进行写操作 可能引起工作方式的改变 * CNF决定数据存贮器配置 CNF=1时 B0块映射为片外程序空间CNF
13、=0时 B0块映射为片内程序空间复位时 CNF=0,00000004 0005 0006 0007 005F,7000700F7010701F7020702F7030703F7040704F7050705F7060706F7070707F7080708F7090709F70A070BF70C070FF7100710E7200722F723073FF,74007408 74117419 74207429 742C7431 7432743F,750075087511751975207529752C75317532753F,0060 007F,0800 0FFF,7000 7FFF,0200 02F
14、F 0300 03FF,64字,96B,256B,32B,256B,2K,30K,40K,4K,8.数据存贮器,46,DSP对数据存贮器的寻址可采用间接寻址和按页进行直接寻址 直接寻址时 按128为一页(数据页)对数据存贮器进行寻址 由STO中的DP(9位)确定16位地址的高9位 由指令给出偏移量(7位)共512页 一般把同一类数据放在同一类页中,0页 地址 0000-007FH 1页 地址 0080-00FFH 2页 地址 0100-017FH . . .512 地址 FF80- FFFFH,47, 3.9 程序存贮器,(1) 程序控制程序是顺序存放, 顺序执行 以及支持调用、 返回、 复位
15、、 中断 、转移。顺序执行:PC: 程序地址指针 复位时PC=0000HPC的内容 PAR PAB(总线) CPU获取指令分支转移指令: 由内部硬件把指令中的跳转地址(立即寻址或累加 器低16位) PC子程序调用: 入口地址送PC 同时下一条断点地址送堆栈堆栈为8级硬件中断,48,软件中断: 向量地址送PC 同时断点地址送堆栈 块传送/表传送: 使PC源地址(目的地址)+1 送微堆栈 用微堆栈(一级深) 保护返回地址(不对用户操作) PRDB总线: 转移或调用时 使用PRDB的转移 调用指令中断时使用PRDB的中断向量存贮单元 DRDB总线: 在转移和调用累加器低16位规定地址时,使用DRDB
16、栈顶TOS: 子程序返回 中断返回 栈底MSTACK: 块 表的返回,49,DSP控制器程序地址的产生,下一条程序地址寄存器,程序计数器PC/NPRR+1,程序地址寄存器,微堆栈表/块移动,程序控制,栈顶 堆栈 8X16,MVX,MVX,MSTACK,顺序执行框,中断 调用 分支,程序读总线(PRDB),数据读总线(DRDB),转移 调用(ACC调用)(ACC转移),程序地址总线(PAB),数据写总线(PWEB),PUSH,POPD,PAR,NPAR,PC,50, 3.10 堆栈,16位宽8级深度的硬件堆栈:硬件在子程、中断、返回时自动返回地址。用户访问堆栈的两组指令:push pop 对AC
17、C的低位字操作 pushD popD 对数据存贮器的操作, 3.11 微堆栈,对块传递、表传递中,首先将PC+1(下一条指令地址) MSTACK 然后让出PC装要传递数据(表、块)的存贮器地址,重复执行完后 MSTACK PC,51, 3.12 流水线操作,指令流水线由指令执行期间的操作序列组成:LF240X流水线有4个独立阶段:取指、降码、取操作数、执行。4个阶段是独立的,可是重叠执行,因此在任何给定的操作之间,1-4条指令可被激活。每条指令处于不同阶段。以单字,单周期指令为例:,54系列有级流水线,52, 3.13 调用 转移:,(1)无条件调用:总是被执行,PC装入指定的新地址,并从新地
18、址执行。无条件转移:在指令到达流水线的执行节拍时,下两条指令已被取出。这两条指令将从流水线中清除,而不被执行。调用指令, 返回地址被存贮到堆栈。转移指令没有返回地址 新地址, 来自指令的第二个字。(CALL.B)或累加器底16位。 (CALA,BACC)(2)条件调用:多个条件当条件满足时,中止原程序的顺序流,而从新地址执 行。条件转移:必须满足能测试最近的状态位。因此,直到流水线的第4阶段,即前一 条指令执行之后,判断条件才是稳定的(前一条指令执行之后的一个周期)。在稳定之前,流水线停止条件指令之后的任何指令的译码。*若条件满足后两条已被取出的指令清除,否则不清除继续执行。*多个条件,多条件
19、组合具有,条件不能任意组合,对两个条件分为A、B类,对三个条件分为A、B 、C类。条件必须来自不同的类。*对条件转移,与堆栈无关没有返回地址。对条件调用、转移前,将返回地址送 栈。,53,使用的条件(13个) 条件组合 EQ ACC=0 2条件组合 3类条件组合 NEQ A类 B类 A类 B类 C类 LT ACC0 EQ OV TC C BIO LEQ NEQ NOV NTC NC GT ACC0 LT GEQ LEQ C C=1 GT NC GEQ OV OV=1 NOV TC TC=1 NTC 测试/控制标志 BIO BIO=低引脚,54, 3.14 重复指令:,RPT使下一条指令执行N+
20、1次,N为RPT指令操作数,存放在RPTC(重复计数器)中(减1计数器)。RPT指令执行时,将重复次数N RPTC,PC+1 微堆栈下一条指令执行时使用PC,每执行一次RPTC的值-1,为0时,微堆栈 PC,再多执行一次,共N+1次。, 3.15 系统配置寄存器,(1)系统控制寄存器SCSR1(SYSCR):地址:7018H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,R-0 RW-0 RW-0 RW-0 RW-1 RW-1 RW-1 R-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 R-0 RC-0,55,14CLK OUT时钟转出引脚选择
21、O:引脚转出CPU时钟I :引脚转出看门狗时钟 1312底功耗模式选择00:CPU进入LMPO模式01:CPU进入LMP1模式1X:CPU进入LMP2模式 119PLL时钟倍数多数选择000: 4 fc 100:0.8fc001: 2fc 101:0.66fc 010: 1.33fc 110:0.57fc011: fc 111:0.5fc,72片内摸块时钟使能控制0:关断时钟,即禁止模块工作1:使能时钟,正常工作0无效地址测试位1:引起NM1中断,测试到对无效地址的访问时,使位置1。0:正常,56,(2)系统状态寄存器SCSR2(SYSSR)。地址7019 15 8 7 6 5 4 3 2 1
22、 0,15-7保留 AW-0 RC-1 RW-0 RW-BOOTTEN 引脚 RW-引脚 RW-1 RW-1,6I/O进入时钟限定。(对多功能引脚)CAP1-6、X1NT1、ADCSOC(ADC起动)、PDP1NTA/D、功率,驱动,保护作I/O使用时,不使用时钟限制。作特殊功能使用时启动时间限制。0:脉冲5个Tc 1: 脉冲11个Tc 5WD保护位,向本位写1时清00:用户不能通过软件禁止WD,只能清0,不能置11:复位时的值,用户能够通过软件禁止WD工作。4外部存贮器接口控制0:正常模式1:高阻态,对功能引脚(1/0功能除外)的脉冲要求,57,3引导使能位,反映BOOT EN引脚状态,可由
23、软件改变。0:使能引导ROM OO-FF 被片内引导ROM块占用,禁止使 用FLASH。1:禁止引导ROM,片内FLASH映射地址为OOOH-7FFFH 2MP/MC选择,反映引脚状态0:MC方式 程序在片内 (工作模式)1:MP方式 程序空间在片外(仿真模式) 1-0 SARAM程序/数据空间选择00:不映射,SARAM分配到外部存贮器01:SARAM映射到片内程序空间10:SARAM映射到片内数据空间11:SARAM映射到片内程序空间又被映射到片内数据空间。(复位后的状态),58,微控制器软件的开发一般需要通过计算机(称为宿主机)进行。在计算机上进行编辑,交叉汇编,交叉连接,生成的目标映像
24、,再下载到目标系统中。目标系统的调试也需要在计算机上进行, JTAG是下载方法之一。 JTAG接口为PC机与目标系统之间的通信提供手段。 在线仿真ICE(In Circuit Emulation ) 是另一种下载方法,用特定插真头(仿真器)插在CPU插座上。以外部仪器“仿真”CPU芯片的功能。,3.16 JTAG ( Joint Test Action Group )技术,59,IEEE在20世纪80年代组织了JTAG工作组,1990年发表了IEEE1149标准,JATE接口成为MPU,MCU,ASIA都支持的技术。将芯片的所有信号引脚与一个移位输入和输出的寄存器阵列相对应。由此形成的移位器好
25、像把整个芯片包围起来,形成芯片的“边界”。对移位器的移位操作如同在“扫描”这个边界。,60,整个移位寄存器只需要一条输入线,一条输出线,一条时钟线和少量的控制线即可动态的改变移位寄存器的结构。将一次移位完成时,控制线将输出的移位寄存器的信号作用在芯片引脚上,或者将引脚的响应输入到输入移位寄存器。,每向移位器移入一位,相应地也从移位器移出一位,通过移出的一位就可以了解和监视芯片的运行。 由PC机向目标机的CPU提供一个“虚拟现实”的环境,达到调试,仿真的目的。,61,举例. 要将32位的整数写入SRAM内存中的特定地址。 第一步,首先形成一个向量,将与CPU的地址线相对应的部分设置成给定地址,与
26、数据线相对应的数据设置为给定数值,将需要的CPU写时序控制线设置成对应控制线的初值。然后将此向量输入到目标机的移位寄存器。 第二步,形成第二个向量,与第一个向量基本相同,仅与时钟线相对应的“时钟位”从1变0。 第三步形成第三个向量,仅时钟脉冲又从0变1。从而形成“写内存所需要的波形,并为之提供内容,完成指定操作。,62,同样的道理,可以把程序写入系统闪存,或者把目标系统内存的内容上传至主机(PC)中。 调试过程中设置“断点”的方法。其实就是在指定地址放上一条“自陷指令”使CPU在执行到指定地址时产生一次“自陷”,当然,原地址的内容必须得到妥善保存,在完成断点需继续执行时,将保存的内容恢复。,6
27、3,3.17 PLL时钟模块,PLL时钟模块由锁相环,石英晶体振荡器,时钟监控电路,时钟控制电路和预定标器组成。 1. PLL可以对外部时钟频率进行0.54倍的倍频,从而得到更高的时钟频率,避免将高频引入引脚而引起电磁干扰。 2. 但也容易引起躁声干扰,为了避免躁声干扰,必须有正确的电路板设计,以保证低抖动。,64,3.措施: (1)外接振荡器时,使导线尽可能的短,使环路乘积保持最小。 (2)采用外部振荡器时,XTAL1接外部振荡源,XTAL2悬空。 (3)PLL需外部RC元件进行回路滤波。回路滤波元件R1,C1,C2接PLLF和PLLF2引脚。在PCB图中元件尽可能的小,且走线尽可能短,否则
28、噪声干扰会增加抖动。 (4)在PLL Vcc和Vss引脚之间接一个旁路电容(0.01-0.1uf的陶瓷电容)。注意旁路电容接最近的Vss. (5)为使干扰最小,可在PLL Vcca到电源之间接一个10MHZ的T型带通滤波器。,X1X2VssPLLFPLLF2PLLVccVss,VDD,F=10M,R1,C1,C2,Ca,Cb,Y1,Cf,C,65,4.旁路模式 .复位时,使TRST,TMS,TMS2(仿真控制引脚)进入低电平,进行旁路模式。 在该模式下,PLL预定标器旁路,且环回控制不起作用,因此不需要滤波元件, CPU时钟由片外石英振荡器决定。,66,3.18.看门狗,看门狗定时器时钟WDC
29、LK = CLKOUT/512将低频时钟WDCLK作为看门狗定时器同步时钟。当CPU时钟为40M时,WDCLK时钟为78.125K。以确保在IDLE1和IDLE2低功耗模式下,看门狗定时器仍然能继续计数。WD挂起时,WDCLK时钟停止,通过停止时钟输入来停止WDCLK。,67,WD的操作 有3个寄存器控制WD。 (1)WDCNTR :(计数器)保存WD的计数值。 地址:7023H (2)WDKEY : (复位关键字)当写入一个55H随后写入AAH则清除WDCNTR 地址:7025H (3)WDCR : (控制器) 对WD进行配置 地址:7029H,68,操作1:对RD进行预定标:设置溢出率 3
30、.28ms-209.7ms WDCR.2-0三位决定.共6种选择,69,操作2:WDCNTR溢出前写入正确的WDKEY字。先写55H,使能WDCNTR。再写AAH,复位WDCNTR。否则引起系统复位(任何其他值或者溢出)并置位标志WDFLAG。在编程或调试时,可通过设置WDCR.6(WDDIS)位禁止WD工作。先通过对SCSR2中的WDoverride清0,然后对WDDIS位操作,允许WD或禁止WD。,操作3:检验WD 对WRCR5-3写101进行检验,若WDCR内容破坏(干扰引起)则会产生一次系统复位。操作4:WD独立于CPU,且不需CPU初始化,复位后3.28秒内应尽早设置,避免CPU复位
31、。,70,3. WDCR,R:可读 C:写1清除 W:可写 WC:在Wdoverride=1时可写。 -0:复位值 X:复位不变 W 7: 1:复位 0:未复位 6:1:看门狗禁止 0:WD使能 5,4,3 =101校验2,1,0定标。,RC-X RWC-0 RW-0,71,3.19 低功耗方式(IDLT) 执行IDLE指令,将使系统进入低功耗方式。 由SCSR1(系统控制,状态寄存器)中的LMP1,LMP0两位决定进入3种模式。,72,在PDM模式下,不改变I/O引脚状态,不会进入高阻态。 唤配中断:外设器件(如CAN)启动器件时钟,产生相应的外部事件中断。 外设中断:外设事件从低功耗唤醒。(条件是中断已使能,IMRN使能,INTM允许),