CPU功能模块和时钟模块.ppt_第1页
CPU功能模块和时钟模块.ppt_第2页
CPU功能模块和时钟模块.ppt_第3页
CPU功能模块和时钟模块.ppt_第4页
CPU功能模块和时钟模块.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章TMS320LF240 x的CPU功能模块和时钟模块3.1CPU功能模块,CPU模块包括:输入定标移位器、中央算术逻辑部分和乘法单元等。,图3.1CPU模块的功能结构,3.1.1输入定标移位器该单元将来自程序/数据存储器的16位数据调整为32位数据送到中央算术逻辑单元(CALU)。因此,输入定标移位器的16位输入与数据总线相连,32位输出与CALU单元相连。输入定标移位器在算术定标及逻辑操作设置时非常有用。,输入定标移位器对输入数据进行015位左移。左移时,输出的最低有效位(LSB)为0,最高有效位(MSB)根据状态寄存器ST1寄存器的SXM位(符号扩展方式)的值来决定是否进行符号扩展。当SXM1时,则高位进行符号扩展;当SXM0时,则高位填0。移位的次数由包含在指令中的常量或临时寄存器(TREG)中的值来指定。,3.1.2乘法单元乘法单元主要由乘法器、乘积寄存器以及乘积移位寄存器组成。1616位的硬件乘法器,单个机器周期内产生一个32位的有符号或无符号乘积。除了执行无符号乘法指令(MPYU)外,所有的乘法指令均执行有符号的乘法操作,即相乘的两个数都作为二进制的补码数,而运算结果为一个32位的二进制的补码数。,乘法器接收的两个乘数,一个来自16位的临时寄存器(TREG),另一个通过数据读总线(DRDB)取自数据存储器,或通过程序读总线(PRDB)取自程序存储器。相乘后,32位的乘积结果保存在乘积寄存器(PREG)中。乘积移位寄存器对乘积结果采用4种移位方式进行处理,并将结果送到CALU。,TREG,3.1.3中央算术逻辑部分该部分主要由中央算术逻辑单元CALU、累加器和输出定标移位器组成。1、中央算术逻辑单元CALUCALU实现大部分算术和逻辑运算功能,大多数功能只需一个时钟周期,这些运算功能包括:加/减、布尔运算、位移位和位循环等。,由于CALU可以执行布尔运算,因此使得控制器具有位操作功能。CALU的位移位和位循环在累加器中完成。一旦操作在CALU中执行完毕,运算结果会被传送到累加器中,在累加器中再实现如移位等附加操作。CALU有两个输入,一个由累加器提供,另一个由乘积移位寄存器或输入数据定标移位器提供。,2累加器(ACC)当CALU中的运算完成后,其结果就被送至累加器,并在累加器中执行单一的移位或循环操作。累加器的高位字和低位字中的任意一个可以被送至输出数据定标移位器,在此定标移位后,再保存于数据存储器。与累加器有关的状态位和转移指令,位于状态寄存器ST0和ST1中。进位标志位C溢出方式标志位OVM溢出标志位OV测试/控制标志位TC3输出数据定标移位器输出数据定标移位器的输入是累加器输出的32位数据,将累加器输出的内容左移07位,然后将移位器的高位字或低位字存到数据存储器中(用SACH或SACL指令)。在此过程中,累加器的内容保持不变。,3.1.4辅助寄存器算术单元(ARAU),ARAU完全独立于中央算术逻辑单元,图3.2所示为ARAU和相关的逻辑。ARAU的主要功能是在CALU操作的同时执行8个辅助寄存器AR7-AR0中的算术运算,8个辅助寄存器提供了强大而灵活的间接寻址能力。利用ARAU中的16位地址可访问数据存储器64K字空间的任一单元。,图3.2辅助寄存器算术单元ARAU,ARAU的8个辅助寄存器提供了强大而灵活的间接寻址能力。利用辅助寄存器中的16位地址可访问数据存储器64K字空间的任一单元。ARAU除可数据存储器的寻址外,还可用作它用:(1)通过CMPR指令,利用辅助寄存器支持条件转移、调用和返回;(2)利用辅助寄存器作为暂存单元;(3)利用辅助寄存器进行软件计数。根据需要将其加1或减1。,3.1.5状态寄存器ST0和ST1两个状态寄存器ST0和ST1包含了DSP运行时的各种状态和控制位。ST0和ST1对控制和编程很重要!,ST0,ST1,两个寄存器的内容可被读出并保存到数据存储器(SST指令),或从数据存储器读出加载到ST0和ST1(LST指令),从而在子程序调用或进入中断时实现CPU各种状态的保存。当采用SETC指令和CLRC指令时,可对ST0和ST1中的各个位单独置1或清0。,ARP(位15-13):辅助寄存器(AR)间接寻址的指针,选择当前的8个辅助寄存器AR中的一个。,ST0,OV(位12):溢出标志位。用以指示CALU中是否发生溢出,如溢出则该位保持为1。,OVM(位11):溢出方式标志位0,累加器中结果正常溢出。1,根据溢出的情况,累加器被设定为它的最大正值或负值。,INTM(位9):中断总开关位1,所有可屏蔽中断被禁止0,所有可屏蔽中断有效。,DP(位8-0):数据存储器页面指针,9位的DP与指令中的7位形成16位的数据存储器的直接地址。,ARB(位15-13):辅助寄存器指针缓冲器,当ARP被加载到ST0时,原来的ARP被复制到ARB中,也可将ARB复制到ARP中。,ST1,CNF(位12):片内DARAM配置位0,片内DARAM映射到数据存储器区;1,片内DARAM映射到程序存储器区。,TC(位11):测试/控制标志位。根据被测试位的值,该位被置1或清0。,SXM(位10):符号扩展方式位,决定在计算时是否使用符号扩展:1,数据通过定标移位器传送到累加器时将产生符号扩展;0,不产生符号扩展。,C(位9):进位标志位,在加法结果产生进位时被置1,或在减法结果产生借位是被清0。,ST1,XF(位4):XF引脚状态位,XF是DSP的一个通用引脚。该位反映XF引脚的状态,该位的1、0与XF引脚的逻辑高、低电平一致。可用指令SETC置1,用指令CLRC清0。,PM(位1-0):乘积移位方式00乘法器的32位乘积不移位,直接入CALU。01PREG左移1位后装入CALU,最低位填0;10PREG左移4位后装入CALU,低4位填0;11PREG输出进行符号位扩展,右移6位。,3.2锁相环(PLL)时钟模块和低功耗模式LF240 xDSP片内集成有锁相环(PLL)电路。可从一个较低频率的外部时钟合成片内较高工作频率的时钟。这样,可以相对减少印制板级的电磁干扰,使硬件系统更容易实现,系统性能更好。PLL可以看作为一个片内外设,接在片内外设总线上,为DSP提供所需要的各种时钟信号,还可以控制低功耗操作。LF240 xDSP有三个引脚与时钟模块有关:(1)XTAL1/CLKIN:外接的基准晶体到片内振荡器输入引脚;如使用外部振荡器,外部振荡器的输出必须接到该引脚。(2)XTAL2:片内PLL振荡器驱动外部晶振的时钟输出引脚;(3)CLKOUT/IOPE0:时钟输出或通用I/O脚。CLKOUT可用来输出CPU时钟或看门狗定时器时钟,这由系统控制状态寄存器SCSR1中的位14(CLKSRC)决定。当该脚不用于时钟输出时,就可作通用I/O。,图3.3锁相环的时钟模块电路,两种时钟工作方式:(1)内部时钟:外接基准晶体+片内PLL(锁相环)电路共同组成系统时钟电路。(2)外部时钟:一个独立的外部时钟接至XTAL1/CLKIN引脚,此时内部时钟振荡器被旁路。,XTAL2,XTAL1,XTAL,OSC,PLLF1,PLLF2,PLL,PLL倍率选择,CLKOUT,fin,SCSR1,11:9,NC,外部时钟,0-3.3V,3.2.1锁相环(PLL)1.锁相环的时钟模块电路时钟模块电路如图3.3所示。,PLL支持从0.54倍输入时钟频率的倍率,由系统控制状态寄存器(SCSR1)的位119来决定。如表3.1所示。,表3.1PLL的倍率选择,2.外部滤波器电路回路外部滤波器电路用来抑制信号抖动和电磁干扰,使其影响最小。滤波器回路接到PLLF和PLLF2引脚,由R1、C1和C2组成。C1和C2必须是无极性的,参数根据振荡器频率确定,参考教材表3.3。由于电路中存在大量噪声,如何使得滤波效果最好,在设计时,需通过实验来确定滤波器回路元件。,fc10MHz,VDD,VSS,PLLVCCA,时钟模块,PLLF1,PLLF2,R1,C2,C1,可选的低通滤波回路,滤波器回路,图3.4外部滤波电路,另外注意事项:1)所有连接PLL的PCB导线尽可能短;2)旁路电容(0.01-0.1uF的陶瓷电容),紧连电源。3)可选的低通滤波器,可提高抖动性能,减少电磁干扰;4)导线和器件所围环路面积要小,减少干扰;,3.PLL旁路方式可设置为对片内PLL旁路的工作方式,通过复位时拉低TRST、TMS和TMS2引脚来实现。在这种方式下,不但可以实现PLL旁路,而且可以实现PLL时钟预定标。在这种工作方式下,改变寄存器SCSR1的位11-9无效。此时改变系统时钟的唯一方法是改变输入时钟频率,系统的时钟与外输入时钟相同。例如,要获得一个30MHzCPU时钟速度,那么一个30MHz时钟CLKIN必须提供。在这种方式下,外部的滤波器元件是不需要的。PLL旁路方式下的时钟规范如下:(1)使用内部时钟方式,那么最小和最大的CLKIN频率分别为4MHz和20MHz。(2)使用外部时钟方式,那么最小和最大的CLKIN频率分别为4MHz和30MHz(对2407A为40MHz)。,3.2.2看门狗定时器时钟WDCLK被用来给看门狗提供时钟源。WDCLK来自于CPU的CLKOUT,这可以保证即使当CPU处于IDLE1或IDLE2模式(低功耗模式,见3.2.3)看门狗定时器也能持续计数。WDCLK是由看门狗定时器的外围器件生成的,其计算公式为:WDCLKCLKOUT/512当CPU的挂起信号有效时,WDCLK将被停止。这可以通过停止时钟输入到时钟分频(由CLKIN获取WDCLK)来实现。,3.2.3低功耗模式LF240 x的IDLE(睡眠)指令,可关闭CPU时钟,进入睡眠状态,节约能耗。CPU退出睡眠状态:收到一个中断请求或复位。1.时钟域LF240 x有两个时钟域:(1)CPU时钟域:包含大部分CPU逻辑的时钟;(2)系统时钟域:包含外设时钟(来自CLKOUT分频)和用于CPU中断逻辑的时钟。IDLE1模式:CPU时钟域停止,系统时钟域继续运行。IDLE2模式:CPU时钟域和系统时钟域均停止,进一步降低功耗。HALT模式:振荡器(即输入到PLL的时钟)和WDCLK被关闭。当执行IDLE指令时,SCSR1的13、12位指明进入哪种低功耗模式:00CPU进入IDLE1模式01CPU进入IDLE2模式1xCPU进入HALT模式,功耗,2.唤醒低功耗模式(1)复位复位信号可使器件退出IDLE模式。(2)外部中断外部中断XINTx可使器件退出低功耗模式,但不能退出HALT模式。(3)唤醒中断有些外设具有启动器件时钟的能力,然后产生一个中断去响应一定的外部事件。如通信线路上的动作。例如,即使没有时钟运行,CAN唤醒中断也可以声明一个CAN错误中断请求。3.退出低功耗模式外设中断可以用来唤醒处于低功耗模式工作的器件。根据以下几种情况执行唤醒动作(和随后的器件动作):请求的外设中断是否使能于外设级。与请求的外设中断相关的IMR.n位是否已经被使能。ST0寄存器INTM位的状态。,3.2.4片内Flash的断电与上电进入HALT模式之前,片内Flash模块可以被断电,会使电流消耗降到最低。下面为Flash模块断电的程序。;Flash模块断电的程序LDP#0h;设置DP=0SPLK#0008h,60h;设置0008h,即可将Flash置于断电模式OUT60h,#0FF0Fh;将Flash置于控制寄存器访问模式LACL#0h;0000h为管道控制寄存器的地址TBLW60h;写操作可以将Flash断电,使用P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论