您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第2章CPU结构和存储器配置
DSP控制器原理及应用第2章CPU结构和存储器配置DSP控制器原理及应用本课件主要内容2.1TMS320C2xx系列DSP结构2.2'C2的总线结构2.3'C2系列CPU结构2.4'C2存储器和I/O空间2.5程序控制DSP控制器原理及应用2.1TMS320LF2407ADSP结构功能框图(见教材P21)DSP控制器原理及应用DSP控制器原理及应用2.1.1TMS320LF2407A的硬件结构特点(1)含有两个事件管理器EVA和EVB。每个事件管理器又包含有两个16位的通用定时器、8个PWM通道、可编程的PWM死区控制、3个捕获单元、正交编码脉冲电路、16通道的ADC电路等。(2)采用静态CMOS技术,使得供电电压降为3.3V,40MIPS的执行速度使得频率在40MHz时指令周期缩短25ns。(3)含有可扩展的192KB字外部存储器空间,其中64KB程序存储器空间,64KB数据存储器空间,64KBI/O寻址空间。(4)基于TMS320C2xxDSP芯片的内核,保证了TMS320LF240x的代码与TMS320系列的其他DSP芯片代码兼容。退出2.1TMS320LF2407ADSP结构DSP控制器原理及应用(5)含有高达32KB字的Flash程序存储器,2.5KB的数据/程序RAM,544B的双口RAM和2KB的单口RAM。(6)含有可实现半双工或全双工通信的串行通信接口(SCI)模块。(7)含有可单独编程或复用的通用输入/输出引脚共41个。(8)含有两个电动机驱动保护中断、复位中断和两个可屏蔽外部中断。(9)含有16位的串行外设(SPI)接口模块,提供了一个高速同步串行总线,可与带有SPI接口的芯片连接。(10)含有3种低功耗模式的电源管理。(11)含有一个看门狗定时器模块。退出DSP控制器原理及应用(12)含有基于锁相环的时钟发生器。(13)它的10位A/D转换器最小转换时间为500ns,可选择由两个事件管理器来触发两个8通道输入A/D转换器或一个16通道输入的A/D转换器。(14)含有控制器局域网络(CAN)2.0B模块。退出DSP控制器原理及应用2.1.2TMS320LF240x的引脚说明在TMS320LF240x系列的DSP中,不同型号芯片的引脚数是不同的。TMS320LF2407A的引脚是该系列芯片的一个超集,即TMS320LF2407A涵盖了其他芯片的所有引脚。退出DSP控制器原理及应用TMS320LF240系列引脚图DSP控制器原理及应用TMS320LF2407A共有144个引脚,可分为以下几类:事件管理器A(EVA)引脚;事件管理器B(EVB)引脚;模数转换器(ADC)引脚;通信模块(CAN/SPI/SCI)引脚;外部中断与时钟引脚;振荡器/PLL/FLASH/引导程序及其他引脚;JTAG仿真测试引脚;地址/数据和存储器控制信号引脚;电源引脚。退出DSP控制器原理及应用2.2'C2的总线结构总线全部为16位DSP控制器原理及应用CPU是DSP的核心部件,主要进行取数、运算(加、乘、移位等)、送数的操作。退出2.3'C2系列CPU结构DSP控制器原理及应用TMS320LF240x芯片的数据总线是16位,而中央算术逻辑单元(CALU)是32位,为了把16位数据转换为32位,必须完成不同数据格式之间的转换,这个转换工作就是由输入定标移位器完成的。因此,输入定标移位器的16位输入与数据总线相连,32位输出与CALU单元相连。1.输入定标移位器输入定标移位器作为从数据总线到CALU之间的数据传输路径的一部分,不会额外占用CPU的时钟开销。DSP控制器原理及应用2.中央算术逻辑部分由32位的中央算术逻辑单元(CALU)、32位的累加器(ACC)以及32位的输出移位器组成。注意几个问题:(1)当加到累加器或从累加器减或将累加器数值移1位或循环移1位时将影响进位标志位C。退出DSP控制器原理及应用(2)溢出方式位(OVM)决定累加器如何处理算术运算的溢出,当OVM=1且有溢出发生时,累加器自动填充最大值或最小值;当OVM=0时,累加器中的结果正常溢出。(3)当未检测到累加器溢出时,其值为0;当溢出发生时,OV位被置1。(4)根据被测试位的结果,测试控制标志位(TC)位被置1或0。退出3.输出定标移位器DSP控制器原理及应用4.乘法器TMS320LF240x系列DSP内有一个16×16位的硬件乘法器,可以在一个机器周期内完成有符号或无符号数的乘法运算,乘积结果为32位。TREG的内容和来自数据存储器或程序存储器中的数相乘,乘积存放到乘积寄存器(PREG)中(32位)。然后,通过乘积移位器(PSCALE)将PREG的值在送往CALU或进行移位定标处理送入数据存储器。DSP控制器原理及应用乘积移位器根据状态寄存器ST1中的PM值的不同,可进行4种不同形式的移位操作。PM移位00不移位01左移1位10左移4位11右移6位注:移位后,PREG中的值不变。退出DSP控制器原理及应用辅助寄存器算术单元(ARAU)CPU中还有一个与CALU无关的辅助寄存器算术单元。其主要功能是在CALU操作的同时执行8个辅助寄存器(AR0~AR7)中的算术运算。辅助寄存器提供了丰富、灵活而有效的间接寻址功能,使用任何一个辅助寄存器提供的16位地址,就可以访问64K字的数据空间。当前辅助寄存器或当前的AR,由状态寄存器ST0中的辅助寄存器指针(ARP)指定。在使用当前AR时,其内容即为将被访问的数据存储器的地址。如果当前程序指令需要从数据存储器中读取数据,则AR将该数据单元的地址送至数据读地址总线;如果当前程序指令需向某个数据寄存器单元写数据,则AR将该地址送至数据写地址总线。在执行完对数据存储器的操作后,可以通过对辅助寄存器的内容的加减来将辅助寄存器指向下一个即将被操作的数据单元。退出DSP控制器原理及应用DSP控制器原理及应用状态寄存器TMS320LF240x芯片内含有两个状态寄存器ST0和ST1,它们含有各种状态和控制位。状态寄存器的内容可以被保存到数据寄存器,也可从数据寄存器中进行加载。1.状态寄存器ST0位15~1312111098~0名称ARPOVOVM1INTMDP复位值X0X11XARP:辅助寄存器指针。利用MAR、LST指令可以修改状态寄存器ST0中的辅助寄存器指针(ARP)。在间接寻址时用于选择当前辅助寄存器。在ARP被装载时,原先的ARP值被复制到ARB中。OV:溢出标志位。当中央算术逻辑单元发生溢出时,OV=1,直到发生复位、执行以OV(溢出)或NOV(不溢出)为条件的转移指令、或执行LST指令时被清0。OVM:溢出方式位。OVM决定CALU发生溢出时的处理方式。当OVM=0时,累加器中结果正常溢出;当OVM=1时,根据溢出的情况,累加器被设置成它的最大正值(7FFFFFFFh)或负值(80000000h)。SETC、CLRC、LST指令均可修改OVM。INTM:中断模式位。INTM可全局屏蔽或使能所有的可屏蔽中断。INTM=0时,使能所有未屏蔽的中断;INTM=1时,禁止所有的可屏蔽中断。复位或可屏蔽中断发生时(TRAP指令除外),INTM置1,禁止中断。DP:数据存储器页指针。9位的DP指针和指令字中的低7位连接在一起,形成直接寻址中的16位数据存储单元地址。可通过LST、LDP指令对其修改。退出DSP控制器原理及应用2.状态寄存器ST115~13121110987654321~0ARBCNFTCSXMC1111XF11PMX0X11111111100ARB:辅助寄存器的缓冲器指针。当ARP被装载时,ARP原来的值就被复制到ARB中;当用LST指令装载ARB时,同样的值也被复制到ARP中。CNF:片内DARAM配置位。当CNF=0时,可配置的DARAM映射到数据存储空间;当CNF=0时,可配置的DARAM映射到程序存储空间。可通过SETC、CLRC指令对其进行修改。TC:测试/控制标志位。在下列情况下TC位被置1:由BIT或BITT测试的某位为1时;用NORM指令对累加器最高的两位进行异或结果为真时;用CMPR指令对当前AR与AR0比较条件成立时。编程时,根据TC位的状态可进行程序的跳转、调用和返回。SXM:符号扩展方式位。SXM决定是否进行符号扩展。当SXM=0时,禁止符号扩展;当SXM=1时,数据被CALU使用之前进行符号扩展。执行ADDS和SUBS指令时禁止符号扩展。通过SETC、CLRC指令可对其置位或复位。C:进位位。加法运算结果产生进位时置1,减法运算结果产生借位时被清0。在执行带16位移位的ADD指令,若产生进位时置1,否则不影响该位;在执行16位移位的SUB指令,若产生借位时置0,否则不影响该位。编程时,可根据C的状态进行程序的跳转、调用和返回。XF:XF引脚状态位。该位决定XF引脚的状态。SETC指令可对该位进行置位,CLRC指令可对其进行清0。PM:乘积移位方式位。若PM=00,PREG中的32位乘积结果不移位直接装入CALU;若PM=01,PREG输出左移1位后装入CALU,最低位LSB以0填充;若PM=10,PREG输出左移4位后装入CALU,移空位以0填充;若PM=11,PREG输出进行符号扩展右移6位。在操作时,PREG中的内容保持不变。SPM、LST指令可以修改PM的值。退出DSP控制器原理及应用2.4存储器和I/O空间在芯片的内部,已经对各部分存储器空间进行了分配,各个部分均有指定的应用条件。因此在开发DSP控制系统时,对芯片存储器映射图的清醒认识是很重要的。如程序存储器的0000h-003Fh为内部中断的向量表空间,该区间只能存储向量表,而不可存储任何其他内容,否则,中断系统将无法工作。再如程序存储器的0040h-0043h、数据存储器的0400h-04FFh、I/O空间的FF00h-FF0Eh等均为系统的保留空间,用户不允许使用,否则将引起不可预见的后果。另外,还应清楚哪些地址范围是特定的内部存储器(如ADC、SCI、SPI等)指定的地址空间,这些空间也是禁止占用的,只允许进行访问。还有,应清楚哪些空间是系统留给外部扩展用的空间,这一点关系到系统资源的扩展,如外扩程序存储器或数据存储器以及外设接口等。退出DSP控制器原理及应用DSP控制器原理及应用程序存储器寻址范围为64KB(包括片内DARAM和片内EEPROM/ROM)。当访问片外程序地址空间时,TMS320LF2407自动产生一个访问外部程序地址空间的信号,如PS和DS等。MC/MPMC/MP使用程序存储器中的FLASH空间时还要注意一点,即它有内部和外部两种工作方式,它是受状态系统配置寄存器2的位控制的。MC/MP退出DSP控制器原理及应用系统复位后程序指针指向0000h处,程序从该处开始执行,一般要在该处加一条跳转指令使CPU自动转入用户程序的入口。0000h-003Fh用于存储系统的中断向量表,当有中断请求信号时,CPU从该处取出中断子程序的入口地址。FLASH的其他区域为用户程序区。8000h-87FFh为单口存储器(SARAM),仿真时,若程序较小,可将程序代码放入该区。8800h-FDFFh为用户扩展区。退出DSP控制器原理及应用在DSP系统的开发阶段,通常芯片外部扩展一个SRAM作为片外程序存储器以存储被调试的软件代码,以避免频繁对片内FLASH的写操作。这样做的好处是既可节省开发时间,又可延长芯片的使用寿命。退出DSP控制器原理及应用数据存储器寻址范围为64KB。0000h-005Fh为专用寄存器区。0200h-02FFh为双口存储器DARAM(B0),当CNF=0时为用户数据区。0300h-03FFh为双口存储器DARAM(B1),用户数据区。0800h-0FFFh为2K字的单口存储器SARAM,为用户数据区。0060h-007Fh为双口存储器DARAM(B2),为用户数据区。DSP控制器原理及应用以上几个数据区为编程时经常用到的区域,用户可通过命令文件(*.CMD)将自己定义
本文标题:第2章CPU结构和存储器配置
链接地址:https://www.777doc.com/doc-3998488 .html