《DSP微控制器原理》第二章n_第1页
《DSP微控制器原理》第二章n_第2页
《DSP微控制器原理》第二章n_第3页
《DSP微控制器原理》第二章n_第4页
《DSP微控制器原理》第二章n_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

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

文档简介

1、DSP微控制器原理,第二章 DSP控制器的CPU功能结构,第二章 DSP控制器的CPU功能结构,TMS320LF240 xA系列DSP控制器是在C24X控制器的基础上改进而成的。 TMS320LF240 xA系列DSP控制器组成: (1)CPU; (2)存储器(程序存储器ROM/Flash EEPROM和数据存储器DARAM、SARAM); (3)功能外设(模数转换器ADC模块、串行通讯接口SCI、系统监控WDT模块、事件管理器模块、中断控制器模块、串行外设接口SPI、现场总线控制器CAN模块等)。 (4)外部信号模块(时钟模块、系统接口模块、JTAG/测试模块),第二章 DSP控制器的CPU

2、功能结构,按其组成结构,可将其分为三大部分。 1、CPU模块、片内存储器模块、程序控制器模块; 2、片上外设模块(模数转换器ADC模块、串行外设接口SPI、串行通信接口SCI、现场总线控制器CAN、看门狗定时器WD模块) 3、外部信号模块(时钟模块、系统接口模块、JATG/测试模块)。 这三组模块通过总线将其连接构成一个完整的DSP控制器。 这里值得注意的是:TMS320LF240 xA系列DSP控制器分为两组总线(内部总线和外部总线)。上述第一部分模块均挂接在内部总线上;第二部分模块均挂接在外部总线上。第三部分是与外部信号连接控制系统运行的模块。,2.1 CPU总线结构与流水线作业的特点,2

3、.1.1、总线结构 TMS320LF240 xA控制器对数据的处理速度快、效率高与其内部总线结构有着密切的关系。它们均采用的是改进的哈佛总线结构,具有两套相互独立的程序操作总线和数据操作总线,共由6组16位的内部地址和数据总线组成。其结构如图2.1所示。,哈佛结构,哈佛结构是不同于传统的冯诺曼(Von Neuman)结构的并行体系结构,其主要特点: (1)将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。 (2)与两个存储器相对应的是系统中设置了程序总线和数据总线两条总线,从而使数据的吞吐率提高了一倍。 冯诺曼结构则是将指令、数据

4、、地址存储在同一存储器中,统一编址,依靠指令计数器提供的地址来区分是指令、数据还是地址。取指令和取数据都访问同一存储器,数据吞吐率低。,2.1.1、总线结构,哈佛结构: 程序存储器与数据存储器分离的体系结构称为哈佛结构。 特点:计算机具有独立的数据存储空间和程序存储空间。独立的数据总线和程序总线使得程序存储器和数据存储器单独编址、独立访问。 优点:允许CPU同时执行取指令和取数据操作,从而提高了数据吞吐率。 增强型哈佛结构: (1)允许数据存放在程序存储器中,并被算术运算指令直接使用; (2)指令存储在高速缓冲器(Cache)中,当执行此指令时,不需要再从存储器中读取指令。 一种多总线结构,可

5、以实现对多个数据存储器的访问操作,允许在一个存储周期内同时读取指令和两个操作数。,2.1.1、总线结构,PAB:程序地址总线,提供程序存储器的读/写地址; PRDB:程序读数据总线,将指令代码、立即操作数以及表信息从程序存储器送到CPU; DWAB:数据写地址总线,提供写数据存储器的地址; DRAB:数据读地址总线,提供读数据存储器的地址; DRDB:数据读数据总线,将数据存储器中的数据送到中央算术逻辑单元和辅助寄存器算术单元。 DWDB:数据写数据总线,发送数据到程序存储器和数据存储器。,2.1.1、总线结构,总线结构的优点: (1)分离的程序和数据总线,允许CPU同时访问程序指令和数据存储

6、器; (2)有独立的数据读/写地址总线和数据读/写数据总线,使CPU对数据存储器的读、写访问可在同一机器周期内完成; (3)分离的程序和数据空间及独立的总线结构,支持CPU在单机器时钟内并行执行算术、逻辑和位处理操作等; (4)采用改进的哈佛型总线结构,使运行速度得以大幅度提高,处理能力得以优化。,2.1.2 流水线操作,为了进一步提高芯片的性能,TMS320 LF 240 xDSP系列控制器除采用了改进的哈佛总线结构外,还采用了指令流水线操作技术。指令流水线由发生在指令执行期间内的一系列总线操作序列组成。其特点是将指令的执行过程分为4个独立的阶段 : (1)取指令(Fetch) (2)指令译

7、码(Decode) (3)取操作数(Operand) (4)指令执行(Execute),2.1.2 流水线操作,上述4个阶段是相互独立的,所以这些操作同一时间段内可以并行进行,也就是这四种操作在同一时刻是分别使用内部的6条总线。因此,在任何给定的时钟周期内,可以同时有14条不同的指令被使能,而每条指令处于不同的执行阶段。图2.3是一个单字、单周期且无等待状态插入指令的操作流水线操作的例子。,2.2、CPU(中央处理器)的结构组成,在TMS320LF240 xA系列DSP控制器中,中央处理单元(CPU)主要由32位中央算术逻辑单元(CALU)、用于CALU的输入、输出数据比例移位器、 32位累加

8、器(ACC)、1616位乘法器(MPY)、辅助寄存器算术单元、地址产生逻辑、程序控制逻辑和一些状态、配置寄存器组成。CPU的功能模块如图2.4所示,2.2.1、系统控制器,系统控制器是CPU内核与外部引脚的接口单元,根据输入逻辑信号产生相应的输出逻辑,其中输入信号有时钟信号(XTAL)、复位信号(RS)、运行方式(MP/MC)、等待状态逻辑信号(READY)等,输出信号有读写控制信号(R/W、RD、WE)、特殊引脚控制信号(XF)、存储器空间选择信号(PS、DS、IS)等。其结构如图2.4所示。,2.2.2、程序控制系统(地址产生逻辑),程序控制是控制一条或多条指令的执行次序。其结构如图2.4

9、所示。 NPAR 下一个程序地址寄存器,保存着下一个指令周期要执行的指令所在的程序地址。 PAR 程序地址寄存器,保存当前程序地址。 PC 16位程序计数器,保存下一条指令代码所在地址。当程序顺序执行时,PC(NPAR)+1。,2.2.2、程序控制系统(地址产生逻辑),MSTACK 微堆栈寄存器,堆栈宽度为16位、深度为1级。作用是:在执行某些指令(如BLDD、MAC、MACD、TBLR和TBLW等,详见第四章指令系统)之前,程序地址产生逻辑用它来存储返回地址。MSTACK的操作对用户是不可见的。与堆栈不同,MSTACK只能被用于程序地址产生逻辑,而不允许用户把MSTACK用于存储指令。 PC

10、TRL程序控制器,用于对指令进行译码、管理流水线和存储状态位。,2.2.3、输入定标移位器,算术运算中的数据定标和逻辑运算中的位屏蔽等操作都需要进行数据位数的调整。这些都可以通过数据定标移位器来完成。一个32位输入数据定标移位器(简称为输入移位器)的结构如图2.6所示。 输入移位定标器的主要功能是对来自数据存储器或程序存储器的16位数值调整成32位数,然后送至32位的中央算术逻辑单元(CALU)。尽管输入移位器是数据存储空间或程序存储空间与CALU间数据通路的一部分,但数据在输入移位器中处理时并不需要额外的时间开销。,2.2.3、输入定标移位器,2.2.1、输入定标移位器,从图2.6中可以看出

11、,输入移位器具有两个数据源。 1、通过DRDB(数据读总线)可输入由指令操作数所指出的数据存储器单元中的数值; 2、通过PRDB(程序读总线)输入来自指令中给出的立即数。 当数据写到输入移位器的低16位后,输入移位器执行由程序指令指定的左移位操作,对该数值进行调整,然后将调整结果送至CALU的32位输入总线。,2.2.3、输入定标移位器,输入移位器移位的位数也有两个来源: (1)在所执行的指令中给定移位常数; (2)在临时寄存器(TREG)的低4位给移位常数。,2.2.3、输入定标移位器,输入移位器将输入的16位值左移016位。当移位操作的具体执行时,左移的位数由用户程序指令字中设置或临时寄存

12、器(TREG)最低4位的值决定。移位器未使用的低位(LSBs)段自动填0;而未用到的高位(MSBs)或填0或进行符号扩展,具体操作取决于状态寄存器(ST1)中的符号扩展方式位(SXM)的值。 对于大多数指令而言,符号扩展方式位(SXM,状态寄存器ST1的第10位)决定了输入移位器在移位期间是否对数据进行符号扩展。 (1)当SXM=0时,不进行符号扩展,输入移位器未使用的高位填0,然后送至32位的CALU输入总线: (2)当SXM=1时,输入移位器对数据进行符号扩展,然后送至32位的CALU输入总线。,符号扩展,将低位数的二进制数转换成高位数的转换过程称为符号扩展(Sign extension)

13、。 例:-64 8位二进制补码 : 11000000, 16位二进制补码: 1111 1111 1100 00 带符号数变换时是将其取补加1就是负数结果。,2.2.3、输入定标移位器,图2.7分别给出了当SXM=0和SXM=1时输入移位器对输入数据AF11执行移位操作的例子。 例 设累加器ACC原始值为3h,状态寄存器ST1中的符号扩展方式位SXM=0;试问执行指令ADD #1212h,1 后累加器ACC的值是多少?(指令中的1便是移位的位数) 答:因为指令要求将立即数1212h左移1位(1212h21)再和ACC中的内容相加。所以,3h,2427h,0,X,指令执行前 指令执行后,ACC C

14、 C,2.2.4、乘法单元(MUL),数字信号处理方面的算法主要由乘加运算构成。在常用的微处理器芯片中,一般采用软件子程序来实现乘法运算,因而限制了该类芯片在实时信号处理中的应用。 x24x系列DSP控制器将DSP内核与实现控制功能的外设集成于单一芯片中,在实现控制功能的同时,利用DSP内核中的16位16位乘法单元,可高速执行乘法运算,在单机器周期内产生带符号或无符号的32位乘积。乘积单元的结构如图2.5所示,主要包括以下部件: (1)16位临时寄存器(TREG),用于保存一个乘数。 (2)16位16位的硬件乘法器(Multiplier),执行乘法运算。 (3)32位乘积寄存器(PREG),存

15、储乘法运算的结果。 (4)乘积定标移位器,在PREG的值送至CALU之前,对乘法运算的结果进行移位操作。,2.2.4、乘法单元,16位16位的硬件乘法器可以在单机器周期内产生带符号或无符号的32位乘积结果。 在硬件乘法器中,除了执行由无符号乘法指令(MPYU)所调用的无符号乘法操作外,其它乘法指令都执行的是带符号的乘法操作,进行运算的两个16位数都被看作具有二进制补码格式。,2.2.4、乘法单元,硬件乘法器的两个16位输入分别来自: (1)16位暂时寄存器(TREG)。在执行乘法运算以前,TREG从数据读总线(DRDB)装入一个数据值作为乘数之一。 (2)来自数据读总线(DRDB)的数据存储器

16、值或来自程序读总线(PRDB)的程序存储器值。 两个输入值相乘后,32位乘积被暂时存放在乘积寄存器(PREG)中。PREG的输出连至32位乘积定标移位器,执行定标移位操作以后,乘积被送往CALU进行再运算或通过SPH或SPL指令(存储乘积的高16位或低16位)送往数据存储器进行保存。 32位的乘积定标移位器(乘积移位器)简化了乘积的定标操作。乘积移位器共有4种乘积移位方式,如表2.1所示。,表2.1 乘积移位器的移位方式,返回,注: Q31格式是一种二进制的小数格式,该格式在二进制小数点的右面有31个数字,基2的二进制小数点等价于基10的十进制小数点。 PM是状态寄存器ST1中的乘积移位方式位

17、; 如表2.1所示,乘积移位器的移位方式取决于状态寄存器(ST1)的乘积移位方式位 (PM)。在第一种移位方式下(PM=00),移位器在将乘积送至CALU或数据存储器前不进行任何移位。第二、三种移位方式分别将乘积左移0或4位,这对于实现二进制的小数算术运算非常有用。右移方式将乘积右移6位,这使得CALU可连续执行128次的乘及累加运算,而累加器不会产生数据溢出。 乘积移位器操作不受ST1中符号扩展位SXM的约束,不论SXM为1还是为0总是要对未用到的最高有效位进行符号扩展。,2.2.3、中央算术逻辑部分(CALU),TMS320LF240 xA系列DSP控制器中的中央算术逻辑单元的结构(CAL

18、U)如图2.4所示。中央算术逻辑单元主要包括以下部分: 中央算术逻辑单元(CALU):实现各种算术和逻辑运算,包括加、减、布尔逻辑操作、位测试、移位和循环等。 CALU的数据输入源有2个:一个输入源通常由32位累加器提供;另一个输入源来自乘积定标移位器的输出或输入数据定标移位器的输出。其输出数据送到32位累加器(ACC)。在CALU中的大部分运算只需要1个时钟周期。,2.2.5、中央算术逻辑部分(CALU), 32位累加器(ACC): (1)实现对接收到的CALU的运算结果的暂存; (2)在进位位(C)的协助下执行单个比特的移位或循环操作。 ACC的输入源来自CALU的输出。 ACC中的数据输

19、出途径有2个: (1)按32位方式送到CALU,常用于后续的各种运算; (2)送到32位的输出移位器,经过输出移位器,累加器的高低16位数据被移位分离后存入数据存储器。,2.2.5、中央算术逻辑部分(CALU),在TMS320LF240 xA系列的DSP控制器中,累加器的操作与5个状态位有关,这5个状态位位于状态寄存器ST0、ST1中,它们分别是: (1)C(进位标志位) ST1(状态寄存器)的第9位。与累加器相关的加、减、移位、循环运算均对进位位C产生影响。影响的规律如下: C=0 当加法运算的结果未产生进位时,或者减法运算的结果产生借位时; C=1 当加法运算的结果产生进位时,或者减法运算

20、的结果未产生借位时; 当C位配合累加器执行左移位或循环左移操作时,累加器的最高有效位被送至C; 当C位配合累加器执行右移位或循环右移操作时,累加器的最低有效位被送至C。 特例1:当ADD指令和移位16位一起使用且无进位位产生时该指令对进位位C无影响。 特例2:当SUB指令和移位16位一起使用且无借位位产生时该指令对进位位C无影响。,2.2.5、中央算术逻辑部分(CALU),(2)OVM(溢出方式位) ST0(状态寄存器)的第11位。OVM位反映了累加器算术运算的溢出状况。 当处理器处于溢出方式(OVM=1)且为正方向溢出时,累加器被填充为最大正数(7FFF FFFFh); 当处理器处于溢出方式

21、(OVM=1)且为负方向溢出时,累加器被填充为最大负数(8000 0000h); 当OVM=0时,累加器对数据溢出不进行任何特殊处理。,2.2.5、中央算术逻辑部分(CALU),(3)OV(溢出标志位) ST0(状态寄存器)的第12位。 当未检测到累加器运算产生溢出时,OV=0 并未被封锁; 当溢出(正方向或负方向)发生时,OV=1 且被封锁。 (4)TC(测试/控制标志位) ST1(状态寄存器)的第11位。 当利用中央算术逻辑单元执行位测试运算时,根据被测试位的值是0还是1,将TC位置为0或1; 当使用NORM指令时,若累加器的两个最高有效位的“异或”为真,则TC也被置为1。,2.2.5、中

22、央算术逻辑部分(CALU),(5)SXM(符号扩展方式位)状态寄存器(ST1)的第10位。对于绝大多数指令来说符号扩展方式位(SXM)决定了CALU在执行运算操作时是否使用符号扩展。 当SXM=0时,符号扩展被抑制: 当SXM=1时,符号扩展被使能。,2.2.5、中央算术逻辑部分(CALU), 输出定标移位器: 当CALU中的运算完成之后,其结果就被送入累加器中,并在累加器中执行移位或循环操作;若要将累加器的处理结果送入数据存储器存储,就要在将累加器中的数据在送入数据存储器进行存储以前,对从累加器复制到输出定标移位器的数据进行移位处理。因为累加器的数据宽度为32位,而数据存储器的数据宽度为16

23、位。然后,利用SACH或SACL指令把输出移位器的高位字或低位字存储至适当的数据存储单元。在此过程中累加器的内容始终保持不变。,2.2.5、中央算术逻辑部分(CALU),中央算术逻辑单元主要包括以下部分: 中央算术逻辑单元(CALU); 32位累加器(ACC); 输出定标移位器。 累加器的操作与5个状态位有关,这5个状态位位于状态寄存器ST0、ST1中: (1)C(进位标志位); (2)OVM(溢出方式位); (3)OV(溢出标志位); (4)TC(测试/控制标志位); (5)SXM(符号扩展方式位)。,2.2.6、辅助寄存器算术单元(ARAU),TMS320LF240 xA系列DSP控制器的

24、CPU中包含一个ARAU(辅助寄存器算术单元),ARAU的操作完全独立于CALU(中央算术逻辑单元)。ARAU的主要功能是为CPU提供强大而灵活的间接寻址能力。8个辅助寄存器(AR7-AR0)上执行的是以寻址为主要任务的无符号16位算术运算,这种运算可与CALU中进行的运算并行执行。ARAU中的16位寄存器可以访问64K数据存储器的任意一个存储单元。图2.8给出了ARAU的结构和相关的逻辑。,2.2.6、辅助寄存器算术单元(ARAU),2.2.6、辅助寄存器算术单元(ARAU),TMS320LF240 xA系列DSP控制器的CPU中共有8个16位的辅助寄存器(AR7-AR0)。为选择一个特定的

25、辅助寄存器以完成寻址的任务,需向位于状态寄存器(ST0)中的3位辅助寄存器指针(ARP)写入0-7范围内的数值。由ARP所指定的辅助寄存器被称作当前辅助寄存器或当前AR。在指令执行过程中,当前辅助寄存器中包含了被访问数据存储单元的地址。,2.2.6、辅助寄存器算术单元(ARAU),若指令需要从数据存储单元中读数据,ARAU将该地址送至数据读地址总线(DRAB);若指令需要向数据存储单元写入数据,则ARAU将该地址送至数据写地址总线(DWAB)。当指令使用完该地址数据值后,当前辅助寄存器的内容可以被ARAU修改。,2.2.6、辅助寄存器算术单元(ARAU),ARP的值可通过MAR指令(修改辅助寄

26、存器和ARP的值)或LST指令(通过数据读总线将某数据存储单元的值装入状态寄存器ST0)来修改,也可以通过任何支持间接寻址的指令把修改ARP作为辅助操作来执行。 一般来说,ARAU主要执行下列算术操作: (1)通过执行任何一条支持间接寻址的指令将当前辅助寄存器的值增1或减1,或者增加或减少一个变址值。 (2)将一个8位常数值加至当前辅助寄存器值(用ADRK指令)或从当前辅助寄存器值中减去一个8位常数(用SBRK指令)。该常数取自指令字的8位最低有效位。 (3)执行指令CMPR,比较AR0和当前AR的内容,然后根据比较结果设置状态寄存器 (ST1)中的测试/控制位TC。结果经过数据写总线DWDB

27、传送至TC。,2.2.6、辅助寄存器算术单元(ARAU),通常,在流水线的译码阶段(即指令所指明的操作正被译码时),ARAU执行其算术运算,这使得在下一条指令进入译码阶段之前能够产生本条指令的地址。然而,在处理NORM指令时,却是在流水线的执行阶段中完成对当前辅助寄存器和ARP的修改。,2.2.6、辅助寄存器算术单元(ARAU),ARAU中的辅助寄存器组除了被用作数据存储器的间接寻址指针外,还可用于其他目的。例如: 1、通过CMPR指令,利用辅助寄存器来实现条件转移、调用和返回操作; 2、将辅助寄存器作为暂存单元。例如用SAR指令将辅助寄存器值存至适当的数据存储单元,从而将辅助寄存器用作临时存

28、储; 3、将辅助寄存器用作软件计数器,根据需要将其值1或1。,2.3、状态寄存器ST0和ST1,TMS320LF240 xA系列DSP控制器的内核中有2个状态寄存器:ST0和ST1,它们含有各种用于CPU正常操作所需的状态位和控制位。是应用中非常重要的两个寄存器。 状态寄存器ST0和ST1的内容可以被保存到数据存储器,反过来也可从数据存储器读出内容加载到状态寄存器ST0和ST1。这样就可以很便利的在子程序调用或进入中断时保存CPU的各种状态。,2.3.1状态寄存器ST0各状态位的功能描述,表2.2 状态寄存器ST0,例2.3:,2.3.2、 状态寄存器ST1各状态位的功能描述,表2.3 状态寄

29、存器ST1,表2.3 状态寄存器ST1的位描述,表2.3 状态寄存器ST1的位描述,对状态寄存器ST0和ST1的操作的指令有4条,它们分别是: LST(装载状态寄存器指令)将指定的数据存储单元的内容送寄存器ST0或ST1(INTM位例外)。 SST(保存状态寄存器指令)将状态寄存器(ST0(m=0)或ST1(m=1)的内容保存指定的数据存储单元中。 SETC(设置控制位指令)将指定的控制位置1。 CLRC(清0控制位指令)将指定的控制位清0。 在这4条指令中,前2条指令是按照1个字来操作,因为他是在寄存器与存储单元之间传递数据。而后2条是对ST0和ST1中的某一位操作。,2.4、系统配置寄存器

30、,TMS320LF240 xA系列DSP控制器的系统配置寄存器提供了控制器内核和片内外设的软件设置与状态信息。 LF2407A片内有两个可编程的系统配置寄存器,用以决定系统的工作时钟频率、CPU的工作方式及内部外设的节能等。,2.4.1 系统控制和状态寄存器1(SCSR1),系统控制和状态寄存器1(SCSR1),其映射地址: 。 表2.4 系统控制和状态寄存器1(SCSR1),7018h,2.4.1 系统控制和状态寄存器1(SCSR1),位15 保留位。 位14 CLKSRC,引脚CLKOUT(#73)输出时钟源选择; 0CLKOUT引脚输出CPU时钟。 1CLKOUT引脚输出看门狗时钟WDC

31、LK。 位1312 LPM(1:0)。低功耗模式选择。这两位指明了CPU在执行暂停指令IDLE时进入哪一种低功耗模式。 0 0CPU进入IDLE1(LMP0)模式(CPU时钟停止工作而系统时钟继续工作)。 0 1CPU进入IDLE2(LPM1)模式(CPU时钟和系统时钟都停止工作)。 1 xCPU进入HALT(LPM2)模式(CPU时钟和系统时钟都将停止工作,且振荡器、看门狗时钟WDCLK、锁相环PLL的时钟输入均被关断)。,2.4.1 系统控制和状态寄存器1(SCSR1),位11-9 锁相环(PLL)时钟预定标选择。这三位决定对输入时钟进行锁相倍频的系数,各个控制位的值与倍频系数之间的关系如

32、表2.2所示。表中fin为DSP输入时钟频率,即芯片外的晶振频率值。,2.4.1 系统控制和状态寄存器1(SCSR1),表2.2 PLL(锁相环)倍频系数选择,2.4.1 系统控制和状态寄存器1(SCSR1),位8保留位。 位7ADCCLKEN。ADC模块时钟使能控制位。 0禁止ADC模块的时钟(关断ADC模块以节能) 1使能ADC模块的时钟,并且正常运行 位6SCICLKEN。SCI模块时钟使能控制位。 0禁止SCI模块的时钟(关断SCI模块以节能) 1使能SCI模块的时钟,并且正常运行 位5SPICLKEN。SPI模块时钟使能控制位。 0禁止SPI模块的时钟(关断SPI模块以节能) 1使能

33、SPI模块的时钟,并且正常运行,2.4.1 系统控制和状态寄存器1(SCSR1),位4CANCLKEN。CAN模块时钟使能控制位。 0禁止CAN模块的时钟(关断CAN模块以节能) 1使能CAN模块的时钟,并且正常运行 位3EVBCLKEN。EVB模块时钟使能控制位。 0禁止EVB模块的时钟(关断EVB模块以节能) 1使能EVB模块的时钟,并且正常运行 位2EVACLKEN。EVA模块时钟使能控制位。 0禁止EVA模块的时钟(关断EVA模块以节能) 1使能EVA模块的时钟,并且正常运行 注意: 若要修改或读取任何一个外设寄存器的内容,必须首先通过向相应的位写1来使能连接到该外设的时钟,使其有效。

34、,2.4.1 系统控制和状态寄存器1(SCSR1),位1保留位。 位0ILLADR位。无效地址检测位。 当检测到一个无效的地址时,该位被置1。被置1后,该位需要用户软件清除。向这一位写1可将其清除。在初始化程序时也将该位清除。 注意:任何无效的地址将会导致非屏蔽中断(NMI)事件的发生。,2.4.2 系统控制和状态寄存器2(SCSR2),系统控制和状态寄存器2(SCSR2),其映射地址: 。 表2.6 系统控制和状态寄存器2(SCSR2),7019h,2.4.2 系统控制和状态寄存器2(SCSR2),位157保留位。这些位的读出值不确定,而写入也无影响。 位6 I/P QUAL。输入限定器时钟

35、。它限定输入到LF240 x DSP的CAP1-6、XINT1和2、ADCSOC以及 引脚上的信号。 如果这些引脚作I/O功能使用时,则不会使用输入时钟限定电路。当这些引脚使用特殊功能时,这位规定了输入到这些引脚上的信号被正确锁存时需要的最少脉冲宽度。脉冲只有达到这个宽度之后,内部的输入状态才会改变。 0 输入限定器锁存脉冲至少需要5个时钟周期 1 输入限定器锁存脉冲至少需要11个时钟周期,2.4.2 系统控制和状态寄存器2(SCSR2),位5 WD OVERRIDE (系统监视电路WD保护位)。 用来控制是否允许用户用软件禁止WD工作。 0保护WD 用户不能够通过对系统监视电路WD中的 WD

36、CR寄存器的WDDIS位清“0”或置“1”来禁止或启动WD的工作。 1 复位时的默认值,用户可以对系统监视电路WD中的 WDCR寄存器的WDDIS位清“0”或置“1”来禁止或启动WD的工作。 通过向这位写“1”可对其清“0”,一旦将其清“0”,就无法使用软件将其置“1”。,2.4.2 系统控制和状态寄存器2(SCSR2),位4XMIF HI-Z 外部存储器接口信号(XMIF)高阻控制位。 0所有XMIF信号处于正常驱动模式(即非高阻态) 1所有XMIF信号处于高阻态 除了TMS320LF2407/LF2407A外,这位对于所有其他DSP器件均为保留位。只能写“0”。,2.4.2 系统控制和状态

37、寄存器2(SCSR2),位3 BOOT引脚使能位 这位反映了/XF引脚在复位时的状态。该位可通过软件改变。 0使能引导ROM。地址空间0000h-00FFh被片内引导ROM块占用。在这种方式下,禁止用FLASH存储器。 在ROM器件中没有片内引导ROM。 1禁止引导ROM。对TMS320LF2407/A等片内FALSH程序存储器映射地址范围为0000h-7FFFh。,2.4.2 系统控制和状态寄存器2(SCSR2),位2 微处理器/微控制器选择 这位反映了器件复位时 引脚的状态。复位之后,可通过软件来改变这位以动态映射存储器到片内或片外。 0器件设置为微控制器方式,程序存储器的寻址空间0000

38、h-7FFFh被映射到片内,用户可对片内的程序存储器加以利用。 1器件设置为微处理器方式,程序地址范围从0000h-7FFFh被映射到片外 (用户必须自己提供外部程序存储器器件),2.4.2 系统控制和状态寄存器2(SCSR2),位1、0SARAM。 程序/数据空间选择。 DON PON SARAM状态 0 0 地址空间不被映射,该空间被分配到外部存储器; 0 1 SARAM被映射到片内程序空间; 1 0 SARAM被映射到片内数据空间; 1 1 SARAM既被映射到片内程序空间又被映射到片内数据空间。,2.5、时钟与锁相环PLL,时钟:协调整个DSP控制器按一定的步骤有条不紊的稳定工作。 T

39、MS320LF2407A时钟特点:晶振(外部时钟源);芯片内部锁相环(PLL)模块为系统所有的器件提供必要的时钟信号并控制芯片低功耗工作。,2.5.1、与时钟有关的三个引脚,XTAL1/CLKIN(123):从外部晶振到片内振荡器的时钟输入引脚。如果使用晶振,则晶振的一个引脚必须连接到该引脚。如果使用外部振荡器,则外部振荡器的输出必须连接到该引脚。 XTAL2(124):从片内振荡器驱动外部晶振的时钟输出引脚。 CLKOUT/IOPE0(73):时钟输出引脚(它是一个复用引脚,还可以作为通用I/O引脚使用)。通常用来输出CPU时钟或系统监视电路(Watchdog Timer 也称看门狗电路)的

40、时钟(由系统控制和状态寄存器SCSR1的第1位CLKSRC决定)。当系统复位时,该位被自动设置为从CPU输出时钟CLKOUT。,2.5.2、时钟源,1、片外晶体与片内振荡器一起共同构成一个自激振荡器,为锁相环提供频率信号。其连接方法如图2.6所示。,2.5.2、时钟源,2、片外振荡器 通过连接一个片外振荡器所产生的时钟信号到XTAL1/CLKIN引脚,这时XTAL2引脚闲置不接任何信号。内部振荡器无效。其连接方法如图2.7所示。,2.5.3、锁相环,PLL时钟模块由锁相环、石英晶体振荡器、时钟监控电路、时钟使能电路以及预定标器等组成。 通过PLL时钟模块对外部时钟频率乘以0.54倍的乘积因子,

41、从而得到更高的内部时钟频率。这种方式可以避免直接将高频信号接至外部引脚而引起过多的电磁干扰,同时还可以避免使用频率在2025MHz以上的石英晶体,因为这些高频的晶体一般工作于倍频模式而且需要使用额外的储能电路元件。,2.5.3、锁相环,PLL时钟模块的操作 1、时钟源; 2、回路滤波原件 240 xA器件的PLL模块需要外部的RC原件进行回路滤波(PLLF1(11)与PLLF2(10)之间)。在PLLVCCA和Vss引脚之间要接一个旁路电容。,2.5.3、锁相环,2.5.4、时钟域,TMS320LF2407A DSP控制器的时钟域有两个,包含: 1、CPU时钟域 它是大部分CPU逻辑电路使用的

42、时钟。CPU时钟是输入频率fin 经锁相环(PLL)倍频而成,具体倍频系数由系统控制和状态寄存器1(SCSR1)的D11D9设定。通常CPU时钟复位后默认值是0.5倍频(在使用了引导ROM的情况下则例外)。 2、系统时钟域 它是指外设时钟以及CPU内部的中断逻辑的时钟。 外设时钟是指由CPU直接提供给片内外设(如串行通信接口SCI、模数转换器ADC等)的CLKOUT,为它们提供定时使用,这些外设可通过各自相关的寄存器自行设置。 CPU内部的中断逻辑的时钟是为中断过程中的定时使用的。,2.5.4、时钟域,用于系统监视电路(WD看门狗)的输入时钟WDCLK也是由CPU通过CLKOUT直接提供(这里

43、的CLKOUT是由芯片内部直接提供,与CLKOUT引脚不同,芯片的CLKOUT引脚输出则有可能是CPU时钟,也可能是系统时钟(外设监视定时器Watchdog Timer的时钟)。 当CPU进入休眠状态(IDEL1)时,CPU时钟域停止工作,系统时钟域继续运行。 当CPU进入休眠状态(IDEL2)时,CPU时钟域和系统时钟域均停止工作。 当CPU进入休眠状态(IDEL3)时,CPU时钟域、系统时钟域、振荡器、输入到锁相环(PLL)的时钟、系统监视电路(WD看门狗)的输入时钟WDCLK均停止工作。,2.6、程序的中断执行及其中断管理系统,中断是控制器的一种特殊的运行方式:当外围设备(片内或片外)所

44、产生的随机事件需要CPU来及时处理,它就发出中断请求信号,CPU暂停正在执行的工作,保存好现场;然后转向到该中断请求对应的服务子程序的入口处;待服务子程序运行完毕,CPU自动恢复现场,从原先程序的中断点继续往下运行。 微控制器采用中断方式的显著优点是: 1、提高CPU响应外部事件的实时性。 2、可以节省CPU资源。CPU不必要花时间专门去轮流查询外围设备是否需要服务。,2.6、程序的中断执行及其中断管理系统,从CPU对这些中断的管理方式上区分,TMS320LF2407A DSP控制器的中断源分为可屏蔽中断和不可屏蔽中断两类。 可屏蔽中断:是指这些中断可以通过软件设置将它们屏蔽(禁止)或使能(允

45、许)。当硬件设备或外部引脚成功地请求了可屏蔽中断时,与其相应的一个或几个标志被使能,无论处理器是否能及时响应此中断,这些标志都被设置为“1”。 TMS320LF2407A DSP控制器绝大多数硬件中断均为可屏蔽中断。,2.7、程序的中断执行及其中断管理系统,不可屏蔽中断:在任何情况下只要有中断申请产生,都能够被CPU所响应,并从主程序转移到相应的中断服务程序进行处理。 TMS320LF2407A DSP控制器所有的软件中断和外部硬件(复位)属不可屏蔽中断。 引起硬件不可屏蔽中断(复位)的有两种途径: 1、外部复位电路; 2、程序监视定时器电路(也称为看门狗电路)。,2.6.1、中断管理机制,软

46、件中断: 由INTR,NMI或TRAP指令请求所引起的中断。 硬件中断: 外部中断由外部中断引脚上的信号触发。 内部中断由片内外设的信号触发。包括事件管理器(EVA、EVB)和系统模块中断(CAN、SPI、SCI、ADC等),2.6.2、软件中断,软件中断是由指令INTR、NMI或TRAP指令来请求执行的中断。它们包括: INTR 软件中断 INTR指令是一个软中断指令。其语法格式表示为INTR k (k031);CPU在执行该指令时,可根据k值的不同,引发32种不同类型的中断。 NMI 软件中断 当程序访问到无效地址时,NMI(不可屏蔽中断)就会发出中断请求。当NMI被响应后,程序将被控制转

47、移到不可屏蔽中断矢量入口地址0024h处,从而进入相应的中断服务程序,进行相应的处理。,2.6.2、软件中断, TRAP指令引起的软件中断 TRAP指令是一个软件陷阱中断。也是一个不可屏蔽中断。它将程序控制转移到中断矢量入口地址0022h处,从而进入相应的中断服务程序,进行相应的处理。 * 所谓软件陷阱是指:当程序在正常执行的过程中,由于某种原因而使其产生了混乱时,强行将捕获的程序引向一个指定地址,那里存放有专门对程序出错进行处理的程序。 TRAP指令不禁止任何可屏蔽中断(INTM不被设置为1)。因此当CPU转移到中断服务程序时,该中断服务程序可以被可屏蔽硬件中断所中断。,2.6.3、硬件中断

48、,硬件中断源有46个。 TMS320LF2407A DSP控制器的CPU内核的主要任务是完成对数据的运算和处理,而不是主要用来处理所有的外部中断请求。为此,TMS320LF240 xA DSP控制器内部有一个功能强大的外设中断扩展控制器(PIE)对中断源进行管理控制。其结构原理框图如图2.7所示。,2.6.3、硬件中断,通过外设中断扩展控制器(PIE)将其分为2个层次,即外设级(低层中断)和CPU内核级(高层中断)。 图中的IFR、IMR、PIRQR#、PIACKR#、PIVR#分别是中断标志寄存器、中断屏蔽寄存器、外设中断请求寄存器、外设中断应答寄存器和外设中断矢量寄存器。利用这些外设中断配

49、置寄存器对这些中断进行管理。,2.6.3、硬件中断,2.7.3.1、低层中断 在低层中断级的46个硬件中断申请信号中,共有6个中断源是来自外部引脚,其余40个均来自外设。通过IRQ GEN(中断请求发生器)完成了由外设级向CPU内核级的转换。 在外设配置寄存器中,对每一个产生外设中断请求的事件都有相应的中断使能位和中断标志位。 中断请求仅反映外设中断标志位和使能位的状态。当中断标志位被清0时,中断请求也被清除。,2.6.3、硬件中断,2.7.3.2、高层中断 在高层中断,多个外设中断请求相或产生一个到CPU的中断请求(INTn)。 到达DSP控制器CPU内核的中断请求信号是两个CPU时钟宽度的

50、低电平脉冲。 CPU内核在CPU响应某个中断时自动清“0”其中断标志位(不是在外设中断级清“0”)。 外设中断控制器所完成的工作是确定是哪个外设(或外部引脚)送的中断请求以及每个外设(或外部引脚)中断请求的优先级。,2.6.3、硬件中断,中断具有优先级,例: 假设在同一时刻有CMP1INT、T1CINT、T2 PINT三个外设同时发出中断请求,此时IRQ GEN2、IRQ GEN3则会同时向CPU提出中断请求INT2、INT3,此时CPU则会首先响应INT2的CMP1INT 。,2.6.3、硬件中断,1、部分中断源(如ADCINT 、XINT1、XINT2等)同时出现在表2.3.2 INT1和

51、表2.3.7 INT6中,对于它们的优先级确定,通常是由用户在相关的寄存器中进行设置,系统复位后的默认为高优先级INT1。 2、表2.3.1为系统中断模块,如:系统复位中断、系统仿真中断和软件中断。均为不可屏蔽中断,不受外设中断扩展控制器(PIE)管理,它受CPU直接管理。,2.6.3、硬件中断,表2.3.1 系统中断模块,2.6.3、硬件中断,3、从表2.3.2表2.3.7均为外设中断,故第三列给出了各中断在中断申请有效后和在CPU响应该中断申请后分别在外设中断请求寄存器PIRQRx (x=02)和外设中断应答寄存器PIACKRx(x=02)中所对应的状态位的位置,以便在学习和DSP控制器的

52、调试中查阅。,2.6.4、CPU中断寄存器,CPU中断寄存器包括:中断标志寄存器(IFR)和中断屏蔽寄存器(IMR)。IFR和IMR寄存器管理内核级的中断INT1INT6(而外设中断在它们各自的配置/控制寄存器中都有相应的中断标志位和屏蔽位)。,2.6.4.1、CPU中断屏蔽寄存器(IMR)地址0004h,中断屏蔽寄存器(IMR)的功能是对内核级的高层中断进行使能(开放)和关闭(禁止)进行控制。包含CPU所有中断级(INT1INT6)的屏蔽位。 读IMR寄存器可以识别已被屏蔽或被使能的中断,某位为“0”,表示该中断级被屏蔽;某位为“1”,表示该中断级被允许。而向IMR中某位写“0”则表示屏蔽相

53、应的中断级的请求,写“1”则表示允许该中断级的请求。,2.6.4.1、CPU中断屏蔽寄存器(IMR),2.6.4.2、CPU中断标志寄存器(IFR)地址0006h,中断标志寄存器(IFR)的功能是记录所有内核级的高层可屏蔽中断的工作状态。用来识别或清除悬挂的中断。它包括INT6INT1共6个可屏蔽中断的标志位。,2.6.4.2、CPU中断标志寄存器(IFR),读取IFR可以识别悬挂的中断,而向IFR相应的位写“1”则清除已悬挂的中断。把IFR中当前的内容写回IFR则可清除所有悬挂的中断。 CPU响应中断或器件复位都能将IFR标志清除。 说明:(1)当D5D0某位为“0”时,表示没有中断悬挂。

54、当D5D0某位为“1”时,表示对应的INTn级的中断悬挂。当响应该中断时,相应的位被清“0”。此时,相应的外设控制寄存器的标志位不会被清“0”,若要清“0”,则应由用户在程序中对该位写“1”来清“0”。 (2)当通过INTR指令请求中断且相应的IFR位被置“1”时,CPU不会自动清除该位,必须由用户在程序中清除该位。 (3)D15D6为保留位,2.6.5、外设中断寄存器,外设中断寄存器包括: 外设中断矢量寄存器(PIVR); 外设中断请求寄存器0/1/2(PIRQR 0/1/2),其各位定义见表2.12表2.14; 外设中断应答寄存器0/1/2(PIACK R0/1/2),其各位定义见表2.1

55、5表2.17。 * 外设中断请求寄存器PIRQR 0/1/2和外设中断应答寄存器PIACKR 0/1/2是外设中断扩展模块用来向CPU产生INT1INT6中断请求的内部寄存器。这些寄存器是用来控制PIE内部操作的。它的设置是用于测试的目的,而非用户的应用目的。用户只能对其测试(可读),不能对其编程(不可写)。,2.6.5、外设中断寄存器,2.7.5.1、外设中断矢量寄存器(PIVR); 外设中断矢量寄存器的内容是最近一次被响应的外设中断的矢量地址。 外设中断矢量寄存器(PIVR)地址701Eh,2.6.5、外设中断寄存器,2.7.5.2、外设中断请求寄存器(PIRQR0/1/2) 外设中断请求

56、寄存器(PIRQR0/1/2)可以激活将被读取的外设中断请求也可模拟判断一个特定的外设中断请求。 外设中断请求寄存器0(PIRQR0)地址7010h ; 外设中断请求寄存器1(PIRQR1)地址7011h ; 外设中断请求寄存器2(PIRQR2)地址7012h; 位150 IRQ0/1/2.15IRQ0/1/2.0 0 相应的中断请求未被悬挂。 1 相应的中断请求被悬挂。 外设中断请求寄存器各位定义参见下表。,2.6.5、外设中断寄存器,2.7.5.3、外设中断应答寄存器(PIACKR0/1/2) (1)3个外设中断应答寄存器PIACKR0/1/2保存着外设的中断应答记录。各自的D15D0称为

57、对应外设的中断应答位。 (2)向某位写“1”,将引起相应的外设中断应答被插入,从而将相应的外设中断请求位清“0”,但并不改变外设矢量寄存器(PIVR)的内容。 外设中断应答寄存器0(PIACKR0)地址7014h; 外设中断应答寄存器1(PIACKR1)地址7015h; 外设中断应答寄存器2(PIACKR2)地址7016h ; 外设中断应答寄存器2(PIACKR2)各位的定义参见下表:,2.6.6、外部(引脚)中断控制寄存器,TMS320LF2407A DSP控制器的2个外部中断输入引脚XINT1、XINT2专门用来输入外部中断信号。 与XINT1、XINT2相对应的有2个外部中断控制寄存器X

58、INT1CR和XINT2CR,这2个寄存器的作用 (1)设置外部中断的使能状态; (2)设置外部中断优先级等级; (3)设置外部中断触发脉冲的边沿极性; (4)记录各自所对应的外部中断引脚的跳变。 在TMS320LF2407A DSP控制器中, 2个外部中断输入引脚XINT1、XINT2的外部输入中断信号必须至少保持6个(或12个)CLKOUT周期才能被CPU认可。,2.6.6、外部(引脚)中断控制寄存器,外部中断XINT1控制寄存器(XINT1CR)地址7070h D15 XINT1 flag XINT1标志位。该位表示在XINT1引脚上是否检测到一个跳变(极性由XINT1CR的D2位选择)

59、,无论外部中断1是否被使能,XINT1引脚上的跳变总能将该位置位。当相应的中断被应答时,该位被自动清“0”。通过软件向该位写“1”(写“0”无效),或者器件复位时,该位也能被清“0”。 0未检测到跳变 1检测到跳变,2.6.6、外部(引脚)中断控制寄存器,D14D3 Reserved 保留位。 D2 XINT1 polarity XINT1极性。该位用来设置发生在XINT1引脚上的中断信号是的上升沿有效还是下降沿有效。 0 由下降沿(由高到低跳变)触发中 1 由上升沿(由低到高跳变)触发中断 D1XINT1 priority XINT1中断优先级位。从外设中断控制器结构图上可以看出,XINT1可以被设置到CPU的中断请求INT1还是INT6,该位就决定了是哪一个中断优先级被请求。 0 高优先级(INT1) 1 低优先级(INT6) D0XINT1 enable XINT1激活位。该位用来使能或屏蔽外部中断XINT1。 0 屏蔽XINT1中断 1使能XINT1中断,2.6.6、外部(引脚)

温馨提示

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

评论

0/150

提交评论