《DSP在现代测控技术中的应用》课件第2章_第1页
《DSP在现代测控技术中的应用》课件第2章_第2页
《DSP在现代测控技术中的应用》课件第2章_第3页
《DSP在现代测控技术中的应用》课件第2章_第4页
《DSP在现代测控技术中的应用》课件第2章_第5页
已阅读5页,还剩533页未读 继续免费阅读

下载本文档

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

文档简介

第2章TMS320LF240xA系列DSP的结构、原理及硬件资源

2.1TMS320LF240xA的硬件结构

2.2TMS320LF240xA的系统配置

2.3TMS320LF240xA的存储空间及存储器

2.4TMS320LF240xA的中断系统

2.5TMS320LF240xA的寻址方式和指令系统

2.6TMS320LF240xA的时钟和低功耗电路

2.7TMS320LF240xA的数字I/O模块

2.8TMS320LF240xA的模/数转换模块(ADC)2.9TMS320LF240xA的事件管理器模块(EV)2.10TMS320LF240xA的串行外设接口模块(SPI)2.11TMS320LF240xA的串行通信接口模块(SCI)2.1TMS320LF240xA的硬件结构2.1.1TMS320LF240xA系列DSP的主要性能特征在TMS320LF24x系列DSP中,按制造工艺主要分为5V供电的TMS320F/C24x和3.3V供电的低功耗TMS320LF/LC240xA两类。

TMS320F/C24x系列DSP主要包括内部集成Flash的TMS320F243/F241/F240和内部集成ROM的TMS320C242等产品,该系列芯片采用5V电源供电,最高运算速度为20MIPS,内部具有544字的双存取RAM(DARAM)、最大16K字的Flash存储器或4K字的ROM存储器,其中F243和F240具有外部存储器接口,可对存储器进行扩展。在片上外设方面,该系列芯片具有2~3个通用定时器和看门狗定时器,有8/12个脉宽调制信号(PWM)输出通道,8/16通道的10位A/D转换通道,并集成有串行外设接口(SPI)、串行通信接口(SCI)和局域网控制器(CAN总线)等模块,具有多达32个通用的数字I/O引脚,为工业控制和测控领域中的应用提供了丰富的片上外设接口。TMS320F/C24x系列DSP的具体资源如表2-1所示。

表2-1TMS320F/C24x系列DSP的具体资源

TMS320LF/LC240xA采用3.3V的低电压设计,其最高运算速度提高了一倍,达到40MIPS。TMS320LF2407A是该系列产品的典型代表,目前在工业控制和测控领域中的应用也越来越广泛。TMS320LF240xA的主要特征如下所述。

(1)采用高性能的静态CMOS技术,指令周期最高可达到25ns(即执行速度为40MIPS)。

(2)片上集成了高达32K字、具有代码加密功能的Flash或ROM存储器;集成了高达2.5K字的程序/数据RAM存储器,其中包括544字的双存取RAM(DARAM)和2K字的单存取RAM(SARAM)。

(3)支持两个功率驱动保护中断、复位中断和两个可屏蔽中断共5个外部中断资源。

(4)具有多达40个独立的多路复用的可编程的数字I/O引脚。

(5)具有丰富的片上外设:最多两个事件管理器EVA和EVB(每个事件管理器包括2个16位通用定时器、8个16位脉宽调制信号产生通道、3个外部事件捕获单元、正交脉冲编码电路),看门狗定时器模块,16路或8路10位A/D转换模块,CAN总线模块,串行外设模块(SPI),串行通信模块(SCI)和PLL锁相环电路等。

图2-1TMS320LF2407A引脚图(PGE封装)表2-2TMS320LF/LC240xA系列DSP的具体资源

2.1.2TMS320LF240xA系列DSP的硬件结构

TMS320C24x系列数字信号处理器(DSP)是针对工业控制领域应用而专门设计的一种片上的计算机系统,它在片上不但具有一个适于进行数字信号处理的高效处理器,而且还集成了存储器和适应工业控制领域应用的丰富的片上外设,从而构成了一个基本的片上系统,为工业控制和测控方面的应用提供了一个性能良好、稳定性高的计算机系统。

TMS320LF2407A是2000系列中目前应用最为广泛的产品。TMS320LF2407A的基本结构包括中央处理器单元(CPU)、存储器、片内外设与专用硬件电路三个组成部分。其中,CPU中主要包括中央算术逻辑单元(CALU)、累加器(ACC)、乘法器(MUL)、移位寄存器和寻址单元等。存储器包括片内FlashROM、片内ROM、SARAM和DARAM。片内外设与专用硬件电路包括数字输入/输出模块(数字I/O)、事件管理器模块(EV)、模/数转换器模块(ADC)、串行外设模块(SPI)、串行通信模块(SCI)和局域网控制器模块(CAN)等。图2-2给出了TMS320LF2407A的主要硬件单元的结构功能框图。

图2-2TMS320LF2407A的主要硬件单元的结构框图

2.1.3DSP芯片的引脚说明

TMS320LF/LC240xA系列DSP产品中,不同的芯片由于具有不同的外部接口功能和不同的封装形式,因此其引脚数目和引脚分布各不相同。其中,TMS320LF2407A采用PGE封装,具有144个引脚,其引脚数量和功能是TMS320LF/LC240xA系列DSP中最全的,因此熟练掌握TMS320LF2407A的引脚功能对该系列其他芯片的应用具有重要意义。图2-3按照对应的功能模块关系给出了TMS320LF2407A的引脚图,该图可以加深读者对DSP引脚功能的理解和掌握。表2-3~表2-11按功能模块给出了该芯片各引脚功能的详细说明。

图2-3按功能模块给出的TMS320LF2407A的引脚图表2-3事件管理器A对应引脚功能说明

表2-4事件管理器B对应引脚功能说明

表2-5A/D转换器对应引脚功能说明

表2-6CAN、SCI、SPI通信模块对应引脚功能说明

表2-7外部中断与时钟模块对应引脚功能说明

表2-8振荡器/PLL/Flash/Boot模块对应引脚功能说明

表2-9JTAG仿真测试引脚

表2-10外部空间扩展引脚

表2-10外部空间扩展引脚表2-11电

2.1.4DSP的总线结构

区别于一般计算机系统采用的冯·诺依曼型总线结构,DSP系统采用哈佛型总线结构,在这种结构中程序空间和数据空间相对独立,具有各自的总线。这样相对于冯·诺依曼型总线,哈佛总线结构比较复杂,但由于不同空间总线的并行性,因此哈佛结构为DSP系统提供了更高的总线效率。

作为TI公司的TMS320系列的数字信号处理器,C24xDSP具有一个基于2xLPASIC技术的C2xxDSP核心,它具有独立的6条16位内部数据和程序总线结构,其总线结构如图2-4所示。

图2-4TMS320C24x系列DSP内部总线结构

这6条总线的具体功能如下所述。

(1)程序地址总线(PAB):提供对程序存储器读、写操作时的地址。

(2)数据读地址总线(DRAB):提供对数据存储器读操作时的地址。

(3)数据写地址总线(DWAB):提供对数据存储器写操作时的地址。

(4)程序读总线(PRDB):在CPU访问程序存储器时按指令的执行要求由程序存储器向CPU传输指令代码、立即数和表操作数据。

(5)数据读总线(DRDB):在对数据存储器进行读操作时将指定数据由数据存储器读入到CPU中的中央算术逻辑单元(CALU)和辅助寄存器算术运算单元(ARAU)。

(6)程序和数据写总线(DWEB):在对程序存储器或数据存储器进行写操作时将需写入的数据由CPU送至相应的存储器。

由C24xDSP的内部总线结构可知,由于具有独立的数据读地址总线(DRAB)和数据写地址总线(DWAB),因此DSP允许CPU在同一时钟周期内完成对数据空间的读和写操作。2.1.5DSP的中央处理单元

中央处理器(CPU)是DSP的运算处理核心,它的主要任务是按指令的要求完成相应的处理和计算任务。CPU内部功能结构如图2-5所示。

TMS320LF240xA系列DSP的CPU主要由以下几个部分组成:

(1)1个32位的中央算术逻辑单元(CALU);

(2)32位累加器(ACC);

(3)输入定标移位器(ISCALE);

(4)16×16位硬件乘法器(MUL);

(5)输出定标移位器(OSCALE);

(6)系统状态寄存器(ST0和ST1);

(7)辅助寄存器和辅助寄存器算术单元(AR和ARAU)。

图2-5TMS320LF240xA系列DSP的CPU内部结构功能框图

1.中央算术逻辑单元

中央算术逻辑单元(CALU)用来实现DSP中大部分算术运算和逻辑运算,这些功能包括:16位加法、16位减法、布尔逻辑操作、位测试、移位和位循环功能。其中,大部分运算只需要一个时钟周期。

CPU核心中的CALU如图2-6所示,C24x核心中的CALU是一个32位的算术逻辑器件,它有两个32位输入,其中一个来自数据总线或乘法器的输出,另一个来自累加器。两个32位输入按指令完成算术逻辑运算,结果送入32位累加器。

CPU的状态寄存器中与中央算术逻辑单元的状态相关的状态位有两个,它们分别是溢出方式位(OVM)和符号扩展模式位(SXM)。OVM位决定了当CALU计算发生溢出时采用正常溢出或饱和溢出方式。SXM位决定了CALU运算中的符号扩展方式,当SXM=0时符号扩展方式无效,当SXM=1时符号扩展方式有效。

2.32位累加器

32位的累加器(ACC)主要用于存放来自中央算术逻辑单元的32位运算结果,并可在其中对数据进行移位,累加器的结果可以作为输入直接送至中央算术逻辑单元(CALU),也可送至输出移位单元进行0~7位移位后输出。

累加器可分为高16位和低16位单独操作,分别记为ACCH和ACCL。如图2-6所示,人们经常将CPU的状态寄存器中的进位标志C画于累加器前,用于表示累加器和进位标志之间的进位关系。

图2-6CALU和ACC的结构

CPU的状态寄存器中与累加器的状态相关的状态位有四个,它们分别是溢出方式位(OVM)、溢出标志位(OV)、进位位(C)和测试控制标志位(TC)。OVM位决定了当累加器计算发生溢出时采用正常溢出或饱和溢出方式;OV是当前累加器是否溢出的标志位,未检测到累加器溢出时OV=0,检测到累加器溢出时OV=1且被锁存;C位是进位标志位,当累加器进行加、减、移位或循环移位操作时可能影响C标志,当C=1时表明当前操作发生了进位或借位,当C=0时表明当前操作未发生进位或借位;TC用于标志测试的结果,当执行相关的测试指令时,根据被测试位的结果,该位被置为0或1。

3.输入定标移位器

如图2-5所示,输入定标移位器(ISCALE)位于数据/程序总线和中央算术逻辑单元(CALU)之间,用于完成数据/程序总线和CALU之间的数据传递。C24x系列DSP的数据/程序总线都是16位的,而CALU是32位的,所以由数据/程序总线向CALU加载数据时必须实现16位到32位的转换,ISCALE就主要完成这一功能。ISCALE可对输入数据进行0~16位的移位,并在移位后对数据的高位和低位进行补位,以将其扩展为32位数据输入至CALU。由于ISCALE是独立于CALU的硬件器件,因此它的移位操作与CALU的计算并行进行,并不占用CPU额外的时钟开销。

CPU的状态寄存器中的SXM位可影响ISCALE的高位补位方式,ISCALE在对16位数据进行移位后对低位总是补入相应数目的0。对于高位,当SXM=0时高位补0,当SXM=1时高位进行符号扩展。

4.16×16位硬件乘法器

硬件乘法器(MUL)是DSP器件的一个标志性器件,C24x系列DSP核心中有一个16×16位的硬件乘法器,它可以在单个机器周期内完成乘法运算并产生一个32位的有符号或无符号的乘积结果。这使得DSP较其他类型的处理器来讲可以更高效率地完成乘法运算。我们知道,在数字信号处理领域,一般算法都需要进行大量的乘法运算,这样硬件乘法器就使得DSP具有了十分突出的数字信号处理能力。

图2-7硬件乘法器

如图2-7所示,在乘法器工作的过程中,有两个专门的寄存器辅助硬件乘法器完成乘法运算,它们分别是临时寄存器(TREG)和乘积寄存器(PREG)。由图2-7可以看出,乘法器的两个输入,一个来自数据或程序总线,另外一个必须来自临时寄存器(TREG)。也就是说,TREG用于存放参与运算的一个乘数,TREG中的数据可由数据总线进行加载。乘积寄存器(PREG)用于存放乘法器的运算结果。32位的PREG保证了两个16位乘数一次相乘后结果不会溢出。在硬件乘法器的输出处配置有一个专门用于乘积结果移位的乘积移位器(PSCALE),存储于PREG中的乘积结果经过乘积移位器的移位处理后送至中央算术逻辑单元。此处对乘积结果的移位处理主要是为了消除乘法符号数在运算过程中产生的多余的符号位。由图2-7可以看到,PSCALE共支持4种移位,分别为-6、0、1、4位的移位,其中正数代表左移,负数代表右移。移位位数由CPU的状态寄存器中的乘积移位模式PM位决定,具体如表2-12所示。

表2-12乘积移位器的乘积移位模式

5.输出定标移位器

输出定标移位器(OSCALE)位于累加器的输出端。32位累加器中的数据需要保存到存储器中时,可根据需要对累加器中的数据进行移位定标后,通过16位的数据总线送至存储器,输出定标移位器就是完成输出数据的移位定标的专门器件。如图2-6所示,OSCALE可对累加器中的数据完成0~7位移位后送至数据总线。由于OSCALE是独立于CALU的硬件器件,因此这一移位过程不需要额外的时钟开销。

6.系统状态寄存器

C24x系列DSP具有两个16位的寄存器,它们用于保存描述CPU当前计算状态和对CPU的计算模式进行控制的信息,这两个寄存器称为系统状态寄存器(ST0和ST1)。通过读取ST0或ST1中相关位的值可以获取CPU的当前状态,置位或清零相关的位可以改变CPU的状态或计算模式。DSP允许将存储器ST0和ST1的值存入数据存储器或从数据存储器中加载到这两个寄存器,这就允许在子程序调用和退出时保存和恢复CPU的状态。下面分别介绍ST0和ST1的构成及其各位的含义。

1)ST0

系统状态寄存器ST0的各位如表2-13所示。

表2-13系统状态寄存器ST0寄存器ST0的各比特域的具体含义如下所述。

●位15~13:ARP,辅助寄存器指针。与间接寻址相关,在间接寻址时选择当前的辅助寄存器。当使用LST以外的指令修改ARP的值时,修改前的ARP值被复制到辅助寄存器指针缓冲器ARB(见ST1)中。

位12:OV,溢出标志位。该位标志着当前中央算术逻辑单元(CALU)是否发生溢出。未检测到CALU溢出时OV=0,检测到CALU溢出时OV=1。一旦发生溢出,OV位将保持置位状态,直到发生复位,或执行以OV(溢出)或NOV(不溢出)为条件的条件跳转指令,或执行LST指令时被清0。

●位11:OVM,溢出模式位。OVM位决定了当CALU计算发生溢出时采用正常溢出还是饱和溢出方式。当OVM=0时为正常溢出方式;当OVM=1时为饱和溢出方式,即当发生上溢时用最大的正数7FFFFFFFh加载累加器,当发生下溢时用最小的负数80000000h加载累加器。饱和溢出方式在图像处理等应用场合十分有用。

位10:保留位。

●位9:INTM,中断模式位。通过INTM位可以在全局上屏蔽或使能所有的可屏蔽中断,相当于可屏蔽中断的总开关。当INTM=0时,使能所有的可屏蔽中断;当INTM=1时,禁止所有的可屏蔽中断。INTM位不影响不可屏蔽的复位中断(RS)、不可屏蔽中断(NMI)和所有软件中断。LST指令不影响INTM位。

位8~0:DP,数据存储器页指针。与直接寻址方式相关,在直接寻址方式中,逻辑上将数据存储空间分为512页,这9位DP可以表示当前寻址的数据页的页码。采用直接寻址方式访问数据空间时,由DP中的数值和指令中给出的低7位地址一起构成实际寻址的16位物理地址。

2)ST1

系统状态寄存器ST1的各位如表2-14所示。

表2-14系统状态寄存器ST1寄存器ST1的各比特域的具体含义如下所述。

●位15~13:ARB,辅助寄存器指针缓冲器。当使用LST以外的指令修改辅助寄存器指针缓冲器(ARP)的值时,修改前的ARP值被复制到辅助寄存器指针缓冲器ARB中。这样相当于为前一个使用的辅助寄存器指针值留有一个备份,可以在程序中方便地回到上一个使用的ARP。

位12:CNF,片内DARAM配置位。通过该位设置,可以方便地将片内的DARAM存储器映射到数据地址空间或程序地址空间。当CNF=0时,片内DARAM映射到数据地址空间;当CNF=1时,片内DARAM映射到程序地址空间。

●位11:TC,测试/控制标志位。该位用于存放中央算术逻辑单元(CALU)进行位测试的结果。当位测试指令BIT或BITT对指定位的测试结果为1,或辅助寄存器比较指令CMPR的比较条件成立,或归一化指令NORM对累加器最高两位进行异或操作结果为真时,TC=1。条件跳转、条件调用和条件返回指令都可以TC位的值作为条件。

●位10:SXM,符号扩展模式位。该位决定着DSP对数据高位的扩展方式。当SXM=0时,禁用符号扩展方式,利用补0对高位进行扩展;当SXM=1时,数据在被CALU使用之前对高位进行符号扩展。一些指令不受SXM的影响,如无论SXM为何值,在执行ADDS、LDU和SUB指令时禁用符号扩展模式。

●位9:C,进位位。当算术逻辑单元(CALU)进行加、减、累加器(ACC)移位或循环移位操作时可能影响C位。对CALU进行的一般32位运算,加法运算产生进位时置1,减法运算产生借位时清0;加法运算未产生进位时清0,减法运算未产生借位时置1。对带16位移位的ADD指令或SUB指令,加法运算产生进位时置1,减法运算产生借位时清0,未产生进位或未产生借位时对C位没有影响。进位和借位定义在第32位。

位8~5:保留位。

●位4:XF,引脚状态位。该位指示DSP的XF引脚的电平状态,XF是输出引脚,通过指令改变该位的值可以改变DSP的XF引脚的输出电平。SSBX指令可将XF位置1,RSBX指令可将XF位清0。

●位3~2:保留位。

位1~0:PM,乘积移位模式位。PM位控制硬件乘法器输出通道的乘积定标移位器(PSCALE)对乘积结果的移位位数。PSCALE共支持4种移位,分别为-6、0、1、4位的移位,其中正数代表左移,负数代表右移,具体见表2-12。

7.辅助寄存器和辅助寄存器算术运算单元

如图2-5和图2-8所示,DSP的CPU核心中有8个16位的辅助寄存器,分别用AR0~AR7表示。8个辅助寄存器专门用于间接寻址。在间接寻址中,系统将待访问的数据空间地址赋值给AR0~AR7中的任意一个辅助寄存器,以该辅助寄存器的值为地址进行寻址。图2-8中给出了状态寄存器中辅助寄存器指针(ARP)和辅助寄存器指针缓冲器(ARB)的逻辑功能示意。如图2-8所示,给3位的ARP可以赋值0~7,其值表示当前间接寻址时使用的辅助寄存器的编号,它在逻辑上像一个指向当前辅助寄存器的指针,从这个意义上我们将ARP称为辅助寄存器指针。ARB是ARP的备份,在ARP每次更新时(LST指令除外),更新前的ARP值被复制到辅助寄存器指针缓冲器ARB中。

图2-8辅助寄存器AR和辅助寄存器算术运算单元ARAU的结构原理图

除进行间接寻址外,辅助寄存器作为DSP中独立的寄存器还具有以下用途。

(1)将辅助寄存器用做软件计数器,按照计数需要对它进行加、减计数操作。

(2)将辅助寄存器用做通用寄存器,如利用LAR指令向辅助寄存器加载数据,利用SAR指令将辅助寄存器的值存入存储器。

(3)利用辅助寄存器进行条件转移、条件调用和条件返回操作,如利用CMPR将AR0与当前AR中的值进行比较,然后将比较的结果置于状态寄存器ST1中的测试/控制标志位TC中,用于控制程序的条件转移、条件调用和条件返回操作。

在许多算法的实现中,我们经常需要对数据空间中的一段地址进行连续访问,或按照一定的规律进行跳跃式的访问,这样我们通过编写程序即可按规律实现对访问地址的修正。修正地址的指令必然要争用CPU的时间,因此在完成大量的数据处理时需要耗费大量的时间在地址的修正上。由图2-8可以看出,DSP的硬件结构中为8个辅助寄存器(AR)配备了专门进行算术运算的硬件单元,即我们所提到的辅助寄存器算术运算单元(ARAU)。在利用间接寻址时,对AR值的修正(即对寻址地址的修正)所需进行的算术运算由专门的硬件ARAU来完成,不需要耗费CPU额外的时间。这一功能为大量的数字信号处理时的数据寻址提供了很大方便,使间接寻址具有更好的灵活性和更高的效率。

2.2TMS320LF240xA的系统配置

1.系统控制与状态寄存器SCSR1表2-15系统控制与状态寄存器SCSR1寄存器SCSR1的各比特域的具体含义如下所述。

●位15:保留位。

位14:CLKSRC,DSP的CLKOUT引脚时钟输出选择位。CLKOUT是DSP的时钟输出引脚,DSP通过该引脚可以输出时钟信号。当CLKSRC=0时,CLKOUT引脚输出DSP的系统时钟;当CLKSRC=1时,CLKOUT引脚输出看门狗时钟。

表2-16PLL时钟倍频系数配置表

●位8:保留位。

●位7:ADC_CLKEN,模/数转换模块时钟使能位。当ADC_CLKEN=0时,禁止模/数转换模块时钟,该模块处于停机状态;当ADC_CLKEN=1时,使能模/数转换模块时钟,该模块正常工作。通过该位置1或清0,可以使能或禁用该模块,这样在不用该模块时可以通过编程使其处于停机状态以降低系统的功耗。

位6:SCI_CLKEN,串行通信接口模块时钟使能位。当SCI_CLKEN=0时,禁止串行通信接口模块时钟,该模块处于停机状态;当SCI_CLKEN=1时,使能串行通信接口模块时钟,该模块正常工作。

●位5:SPI_CLKEN,串行外设接口模块时钟使能位。当SPI_CLKEN=0时,禁止串行外设接口模块时钟,该模块处于停机状态;当SPI_CLKEN=1时,使能串行外设接口模块时钟,该模块正常工作。

●位4:CAN_CLKEN,CAN总线模块时钟使能位。当CAN_CLKEN=0时,禁止CAN总线模块时钟,该模块处于停机状态;当CAN_CLKEN=1时,使能CAN总线模块时钟,该模块正常工作。

位3:EVB_CLKEN,事件管理器B模块时钟使能位。当EVB_CLKEN=0时,禁止事件管理器B模块时钟,该模块处于停机状态;当EVB_CLKEN=1时,使能事件管理器B模块时钟,该模块正常工作。

●位2:EVA_CLKEN,事件管理器A模块时钟使能位。当EVA_CLKEN=0时,禁止事件管理器A模块时钟,该模块处于停机状态;当EVA_CLKEN=1时,使能事件管理器A模块时钟,该模块正常工作。

●位1:保留位。

●位0:ILLADR,无效地址检测位。当检测到程序对无效地址的访问时,该位被置1并产生一个不可屏蔽中断(NMI)。若要清0,则必须由用户对该位写1。

由SCSR1中的7~2位的功能可知,我们可以通过相应位置1或清0,使能或禁用相应的模块,这样可在不用某个模块时通过编程使其处于停机状态以降低系统的功耗,当需要使用该模块时再将SCSR1中相应位置1使能其时钟。

2.系统控制与状态寄存器SCSR2

表2-17系统控制与状态寄存器SCSR2●位15~7:保留位。

位6:I/PQUAL,输入时宽限定位。该位用于设定一些输入引脚,如捕获输入引脚CAP1~CAP6、外部中断输入引脚XINT1~XINT2、A/D转换启动信号ADCSOC及功率驱动保护中断输入。PDPINTA/B等引脚输入信号可被有效检测到并锁存的最小脉冲宽度。当这些引脚发生宽度小于设定值的电平跳变时,不会对引脚状态产生影响。当这些引脚被设为数字I/O功能时,该位无效。通过改变可锁存的有效脉冲的宽度,可根据实际系统的信号特点尽可能地减少误检测。

●位5:WDOVERRIDE,看门狗(WD)保护位。该位决定是否允许用户通过软件禁止看门狗的工作。当该位为0时,不允许用户通过软件禁止WD工作;当该位为1时,允许用户通过软件禁止WD工作。该位的复位值为1,用户可以通过软件向该位写1来使其清0,但该位清0后只能通过复位使其为1,而不能通过软件方法将该位置1。

位4:XMIFHI-Z,输入时钟限定器外部存储器接口信号(XMIF)高阻状态控制位。该位控制所有的XMIF接口信号引脚的状态。当该位为0时,所有的XMIF接口信号为正常驱动模式;当该位为1时,所有的XMIF接口信号均为高阻状态。

位3:BOOT_EN,引导ROM使能位。该位控制DSP系统的引导状态,反映了DSP的BOOT_EN/XF引脚在复位时的电平状态,该位可由用户通过软件方式置1或清0。当该位为0时,程序空间的0000h~00FFh地址被引导ROM块占用,DSP系统由引导ROM引导,此方式下禁用片上的Flash存储器;当该位为1时,禁用引导ROM,对TMS320LF2407来说,程序空间的0000h~FFFFh地址被映射到Flash存储器,系统由Flash存储器中的程序引导。

位2:MP/MC,微处理器/微控制器方式选择位。DSP有一个称为MP/MC的输入引脚,复位时该引脚的电平状态决定了DSP处于微处理器工作方式或微控制器工作方式,称为微处理器/微控制器方式选择引脚。当DSP处于微处理器工作方式时,系统程序空间的0000h~7FFFh地址段被映射到片外;当DSP处于微控制器工作方式时,系统程序空间的0000h~7FFFh地址段被映射到片上的Flash存储器。该位反映了复位时DSP的MP/MC引脚的电平状态。在复位后可通过软件将该位置1或清0来改变DSP的工作方式。

●位1:DON,片上的SARAM在数据空间映射选择位。该位决定了片上2K大小的SARAM是否映射到数据空间。当DON=0时,片上的SARAM不映射到数据空间,数据空间的0080h~0FFFh地址段为保留地址;当DON=1时,片上的SARAM映射到数据空间的0080h~0FFFh地址段。

位0:PON,片上的SARAM在程序空间映射选择位。该位决定了片上2K大小的SARAM是否映射到程序空间。当PON=0时,片上的SARAM不映射到程序空间,程序空间的8000h~87FFh地址段映射到片外;当PON=1时,片上的SARAM映射到程序空间的8000h~87FFh地址段。

当DON和PON均为1时,片上的SARAM既映射到数据空间的0080h~0FFFh地址段,同时又映射到程序空间的8000h~87FFh地址段。也就是说,当访问数据空间的0080h~0FFFh地址段或程序空间的8000h~87FFh地址段时,实际上访问了同一物理存储器,即片上集成的容量为2K的SARAM存储器。这里所涉及的存储器与存储空间及地址映射的概念可参考本书2.3节的相关内容。

2.3TMS320LF240xA的存储空间及存储器

2.3.1TMS320LF240xA的片上存储器

1.只读存储器只读存储器(ROM)主要有两个特点:一是对用户来讲,ROM是只读的,一般不能或不易写入数据;二是掉电之后ROM中的数据不会丢失。这些特点使得ROM主要用于存放程序。C24x系列DSP中许多型号的产品都集成了片上的ROM资源(产品型号中有LF标志的DSP由于片上集成了Flash存储器,一般没有ROM资源),具体如表2-1和表2-2所示。片上ROM中主要是TI公司预先写入的DSP的引导程序,用户如需要定制ROM,可以将程序和数据以目标文件(.obj)的格式提交给TI公司,由TI公司将其转化为相应的代码并编程掩膜写入产品的ROM中。

2.单存取随机存取存储器

单存取随机存取存储器(SARAM)是非顺序存取的存储器,用户可对存储器中任意位置的数据进行随机的读/写操作。所谓单存取,是指这种存储器在一个机器周期内只能被访问一次,也就是说,每个机器周期只能进行一次读操作或写操作。掉电时存储器上的数据将会丢失。C24x系列DSP产品一般都集成了片上的SARAM存储器,不同型号的产品集成的SARAM存储器容量不同,具体如表2-1和表2-2所示。片上SARAM存储器一般用做数据存储器来存放数据,在C24x系列DSP系统中也可以被映射到程序存储器,用以存放程序代码或表数据。

3.双存取随机存取存储器

双存取随机存取存储器(DARAM)也是非顺序存取的存储器,用户可对存储器中任意位置的数据进行随机的读/写操作。与SARAM的不同之处在于可以在CPU的一个机器周期内对其进行读和写操作,在机器周期的主相进行写操作,而在从相进行读操作,这样实质上在一个机器周期内完成了对存储器的两次访问,即所谓的双存取。DARAM在掉电时其中的数据也会丢失。C240x系列DSP产品一般都集成了544字的片上的DARAM存储器,不同型号的产品集成的SARAM存储器其容量不同,具体如表2-1和表2-2所示。在C240x系列DSP系统中,DARAM被分为B0块(256字)、B1块(256字)和B2块(32字)三个不同地址的区域。片上DARAM存储器一般用做数据存储器来存放数据,在系统对其进行访问时,它比SARAM具有更高的效率。在C24x系列DSP系统中,DARAM的B0块(256字)也可以被映射到程序存储器,用以存放程序代码或表数据。

4.Flash型存储器

Flash型存储器也称为闪存存储器,它一方面类似于ROM存储器在调电时不会丢失数据,另一方面允许用户在一定条件下对其进行写入数据和擦除数据的操作。DSP为每个Flash存储器都提供了一组控制寄存器来控制该Flash块的擦除、编程和测试等状态,通过对该寄存器进行编程,用户可以方便地对Flash存储器进行多次擦除和编程。因此,系统中一般使用Flash型存储器来作为程序存储器,这样不但掉电时不会丢失程序,还可方便地进行程序的修改和擦除。在产品型号中,有LF标志的DSP芯片片上都集成了Flash型存储器。这些芯片中,不具有外部存储器扩展接口的其片上的Flash型存储器始终处于使能状态,具有外部存储器扩展接口的芯片在复位时由其MP/MC引脚的电平状态决定是否使能片上的Flash型存储器。Flash型存储器一般只作为程序存储器使用,为保证程序的知识产权,有些C240x系列DSP的Flash型存储器具有加密位,这对于产品的开发是很有商业意义的。

2.3.2TMS320LF240xA的存储空间

1.程序存储空间

TMS320LF240xA系列DSP系统具有64K字的程序寻址空间,映射到程序空间的存储器称为程序存储器,它主要用于存放程序代码和需要存放于程序空间的表。利用DSP的特定引脚和控制位,用户可以在一定程度上定制分配到程序空间的存储器。与程序空间映射相关的主要有DSP的MP/MC引脚、状态寄存器ST1中的CNF位、系统控制与状态寄存器SCSR2中的PON位。

DSP的MP/MC引脚称为微处理器/微计算机模式选择,由外部控制该引脚的电位。对于具有外部存储器扩展接口的DSP,复位时若该位电平为低,则DSP处于微计算机模式,程序空间的0000h~7FFFh地址段映射到片内Flash,并从该地址开始执行程序;复位时若该位电平为高,则DSP处于微处理器模式,程序空间的0000h~7FFFh地址段映射到片外存储器,并从该地址开始执行程序。在复位后可通过软件对系统控制与状态寄存器SCSR的第2位进行置1或清0来改变DSP的工作方式和程序空间的映射。对于不具有外部存储器扩展接口的DSP,程序空间的0000h~7FFFh地址段始终映射到片内Flash。

CNF位位于状态寄存器ST1的第12位,称为片内DARAM配置位。通过该位设置,可以方便地将片内的DARAM存储器的D0块(256字)映射到数据地址空间或程序地址空间。当CNF=0时,片内DARAM映射到数据地址空间;当CNF=1时,片内DARAM映射到程序地址空间的FF00h~FFFFh地址段。

PON位位于系统控制与状态寄存器SCSR2的第0位,称为片上的SARAM在程序空间的映射选择位。该位决定了片上2K大小的SARAM是否映射到程序空间。当PON=0时,片上的SARAM不映射到程序空间,程序空间的8000h~87FFh地址段映射到片外;当PON=1时,片上的SARAM映射到程序空间的8000h~87FFh地址段。

TMS320LF2407A的程序空间映射如图2-9所示。

2.数据存储空间

TMS320LF240xA系列DSP系统具有64K字的数据寻址空间,映射到数据空间的存储器称为数据存储器,它主要用于存放程序中定义的变量和常量、输入/输出的数据、程序执行中产生的中间结果和需要存放于数据空间的其他数据。利用DSP的特定控制位,用户可以在一定程度上定制分配到数据空间的存储器。与数据空间映射相关的主要有状态寄存器ST1中的CNF位,系统控制与状态寄存器SCSR2中的DON位。

CNF位位于状态寄存器ST1的第12位,称为片内DARAM配置位。通过该位设置,可以方便地将片内的DARAM存储器的D0块(256字)映射到数据地址空间或程序地址空间。当CNF=0时,片内DARAM映射到数据地址空间;当CNF=1时,片内DARAM映射到程序地址空间的FF00h~FFFFh地址段。

DON位位于系统控制与状态寄存器SCSR2的第1位,称为片上的SARAM在数据空间的映射选择位。该位决定了片上2K大小的SARAM是否映射到数据空间。当DON=0时,片上的SARAM不映射到数据空间,数据空间的0080h~0FFFh地址段为保留地址;当DON=1时,片上的SARAM映射到数据空间的0080h~0FFFh地址段。为便于用户在程序中访问寄存器,DSP中几乎所有的寄存器都在数据空间中进行编址,这样在程序中就可以像访问数据存储器一样访问寄存器,该寄存器称为存储器映射的寄存器。图2-10表示存储器映射的寄存器在数据空间中的地址段,每个寄存器具体的地址可以参考相应DSP芯片的说明书。本书在介绍相关的存储器时一般也会给出TMS320LF2407ADSP中该寄存器的地址。图2-9TMS320LF2407ADSP存储空间映射图2-10TMS320LF2407ADSP存储器映射的寄存器

3.I/O空间

DSP系统提供了专门的I/O地址空间,主要用于对外部设备的访问。DSP系统中对I/O空间采用了独立于存储器空间的16位独立编址,因此I/O空间的寻址范围也为64K。由于采用了独立于存储器空间的编址方式,因此指令系统中应具有专门针对I/O空间的访问指令,两条专门的指令IN和OUT用于完成对这些空间的访问。

需要注意的是,有两个片上的寄存器映射在I/O空间:一个是Flash存储器控制模式寄存器,地址为FF0Fh,用于控制Flash存储器的正常、擦除、编程和测试等工作模式;另一个是等待状态产生控制寄存器,地址为FFFFh,用于控制产生访问外部存储器和外部设备时的等待状态。

TMS320LF2407A的I/O空间映射图如图2-9所示。2.3.3TMS320LF240xA系列DSP系统的存储器扩展

在设计基于DSP的应用系统时,如果应用程序或数据对存储器空间要求较大,经常会遇到片上集成的存储器不足以提供所需的存储器容量的情况,则此时可以选用具有外部扩展接口的DSP芯片,通过DSP的外部扩展接口实现外部扩展存储器。进行存储器扩展可以解决两个问题:一是可实现存储器容量的升级;二是可以与其他处理器或数字器件共享存储器,以实现数据的共享和数据交换。

LF/LC240xA系列DSP的外部扩展接口主要包括16位地址信号、16位数据信号和控制信号,控制信号主要包括读/写控制信号、选通控制信号和状态信号等。图2-11给出了DSP外部扩展接口的原理示意图,具体每个引脚的功能详见表2-10。图2-11DSP外部扩展接口的原理示意图在需要给DSP扩展外部存储器时,首先要根据应用的要求和选用的DSP处理器的参数来选择合适的存储器器件。一般主要从存储器的类型、容量、价格和速度等几个方面来选择存储器,还可按照应用要求(作为程序存储器还是数据存储器,长期存放数据还是在系统工作时存放数据),DSP的接口电平等方面的因素选择存储器的类型。在选择容量时,既要考虑到系统当前的程序、数据量的大小,也应考虑系统调试和功能扩展的要求。存储器的访问速度是衡量存储器性能的一项重要指标,在选择存储器时必须保证其速度与DSP的外部接口时钟相匹配,这样才能保证它们之间的访问时序。在很多情况下,DSP相对于选择的存储器时钟较高,它们之间的时序无法直接匹配时,可以采用DSP的READY引脚产生等待延时来访问存储器,也可通过对DSP片上集成的等待状态发生器编程来产生适当数目的等待周期。图2-12给出了一个在DSP系统中扩展Flash型存储器的例子。从图2-12中可以看出,DSP与Flash主要连接了地址信号、数据信号、选通信号和控制信号四种类型的信号。地址信号是将DSP的16位地址线直接与Flash的地址线对应相连,具体的对应连接关系按Flash在DSP的存储器空间中的映射关系决定。例如,若Flash为32K存储器,且DSP存储空间为7FFFh~FFFFh地址范围,则应将DSP的A0~A14与FLASH的A0~A14对应相连,并将DSP的A15位地址线取非后参与片选信号的译码。对于数据线,由于图2-12所示的Flash为16位存储器,因此只需将其16根数据线与DSP的数据线对应相连。图2-12DSP与Flash型存储器的连接原理图2-13给出了一个在DSP系统中扩展16位静态RAM存储器的例子。由图2-13可见,DSP与SRAM的连接也主要是地址信号、数据信号、选通信号和控制信号四种类型的信号。由图2-13中可见,DSP的A0~A14直接和SRAM的A0~A14地址线相连,因此该SRAM存储器占用了DSP的32K地址空间。由于DSP的高位地址(A15)没有参与译码,因此仅由地址线的连接无法确定SRAM被映射在0000h~7FFFh地址段还是8000h~FFFFh地址段。由于以DS作为选通信号,即当DSP访问外部数据空间时DS为低电位,选通该SRAM存储器,因此该SRAM被映射到DSP系统的数据空间属于数据存储器。由图2-9所示的TMS320LF240xA系列DSP程序空间映射图可知,低32K(0000h~7FFFh地址段)均被映射在DSP片内,DSP对这段地址寻址时并不会驱动外部扩展接口,因此该RAM存储器一定处于DSP数据空间的高32位,即它的地址范围为8000h~FFFFh。图2-13中W/R信号为存储器的输出控制信号。DSP外部扩展接口的READY信号通过电阻上拉,即READY一直为就绪状态,因此该SRAM与DSP工作于同步方式,选择SRAM时应选用访问速度较快的存储器,以保证它们的访问时序能够匹配,否则只能通过对等待状态发生器进行编程来加入适当数量的等待状态。图2-13DSP与16位静态RAM存储器的连接原理图

以上两个例子都是在DSP中扩展16位存储器,由于TMS320LF2407A的外部扩展接口是16位的,因此在扩展时只需要将16位的数据总线直接连接。事实上,也可以用两片8位的存储器拼成一片16位的存储器,如图2-14所示。图2-14中,其他信号的连接与图2-13完全相同。在实践中如需实现16位的DSP与8位系统交换数据时,也可将DSP数据总线的某8位与8位系统相连,将其他8位置0或置1。

图2-14DSP与两片8位静态RAM存储器的连接原理图

2.4TMS320LF240xA的中断系统

2.4.1TMS320LF240xA的中断系统构成

TMS320LF240xA系列DSP的CPU可以接受6个级别的可屏蔽中断申请,分别为INT1~INT6,相对来讲具有较强的外部中断处理能力。由于TMS320LF240xA具有十分丰富的片上外设,在测控系统的应用中,我们还需要在片外扩展一些具有数字接口的外部设备,这样DSP在工作时就需要处理更多的外设中断源,因此DSP应具有更高的中断处理能力。类似于微处理器系统中的中断控制器8259,TMS320LF240xA在片上集成了一个片上外部中断控制器,用来对中断系统进行扩展,我们将其称为外设中断扩展(PIE)。PIE具有46个中断请求输入,6个中断请求输出对应于DSP的CPU的6个级别的中断请求。这样DSP共可接受46个外设中断请求,并在PIE中将46个外设中断请求按优先级分为6个级别发送给DSP的CPU。其具体结构如图2-15所示。

当外设发出中断请求时,中断请求被直接送到PIE,由PIE接受和管理外设的中断请求,PIE总共可管理46个外设的中断请求。PIE将外设的中断请求按优先级分为6个级别,PIE判断外设中断的优先级级别,并产生相应的中断请求发送到CPU。CPU按中断是否屏蔽和中断的优先级来决定是否响应中断,并根据PIE提供的中断向量调用中断服务程序以响应中断。这就构成了TMS320LF240xA系列DSP中所谓的两级中断处理结构体系,在这个体系中CPU只接受和管理INT1~INT6的6个中断,它并不知道也不关心具体是由哪个外设发出的中断请求,具体的外设中断源由PIE管理,PIE中有专门的寄存器记录46个外设中断源,并在CPU响应中断时向CPU提供中断向量。

相应于硬件上的两级中断管理结构,DSP的中断服务程序(ISR)也分为全局中断服务程序(GISR)和专用中断服务程序(SISR)。

CPU对它响应的6个优先级的中断分别有一个中断服务程序,我们称之为全局中断服务程序(GISR)。例如,当CPU响应一个优先级为1级(INT1)的中断时,CPU将分支到GISR1的入口地址并执行GISR1。在GISR中主要完成CPU状态和原程序执行的上下文的保存,并由PIE确定触发中断的中断源,控制CPU分支到相应的SISR中执行对应的中断操作,执行完SISR的任务后返回原程序。其具体过程如图2-16所示。

图2-15TMS320LF240xA系列DSP中断系统结构

图2-16中断服务程序的两级结构

表2-18TMS320LF240xADSP的中断源优先级和中断入口地址向量

图2-17DSP对可屏蔽中断的响应流程

表2-18TMS320LF240xADSP的中断源优先级和中断入口地址向量表2-18TMS320LF240xADSP的中断源优先级和中断入口地址向量表2-18TMS320LF240xADSP的中断源优先级和中断入口地址向量2.4.2TMS320LF240xA的中断响应过程

本节将主要讨论DSP对可屏蔽硬件中断的响应过程。可屏蔽硬件中断的中断源是片上外部设备或是通过外部中断引脚输入的片外中断信号。DSP对中断的响应是由CPU和PIE两个部分分级完成的。因此,中断响应过程主要是由外部设备、PIE和CPU三个器件共同参与完成的。本节将通过分析这三个器件在中断响应中的作用来说明中断响应的整个过程。图2-17按功能模块给出了DSP中断响应的流程,为体现与中断服务程序的两级结构,图中也按GISR和SISR两个模块给出了中断服务程序的结构。图2-17中左半部分是参与中断响应的三个硬件模块的响应流程,当外部设备具有中断要求时,由外部设备向PIE发送中断请求,PIE按中断优先级向CPU递交中断请求,并在CPU响应中断后向CPU提供外设中断向量。图2-17的右半部分是CPU响应中断后执行的中断服务程序的两个程序模块。中断源是外设模块,当外设中发生中断事件时,中断事件将外设寄存器(PR)中的中断标志位(IF)置1,中断标志位为1表明外设有中断请求。然后判断外设寄存器(PR)中的中断使能位(IE)是否使能该外设中断,当IE=1时允许外设发出中断请求,当IE=0时禁止外设发出中断请求。因此,当IF置1且IE=1时,外设就向外设中断扩展模块(PIE)发出中断请求。否则,外设就在IF置1的状态下等待软件将IE置1后立即向PIE发送中断请求。若在此等待期间IF被清0,则此次中断请求将取消,不会被发送至PIE。

图2-17DSP对可屏蔽中断的响应流程

PIE接到外设发来的中断请求后,在外设中断请求寄存器(PIRQ)对应的请求位置1,表示接到这个中断请求,并按照中断的类型确定中断的优先级,向CPU发送相应的中断请求(INT1~INT6)。

CPU接到PIE发来的中断请求后,首先将中断标志寄存器(IFR)中的相应位置1,表示接收到这个中断请求。然后CPU在中断屏蔽寄存器(IMR)中查询该中断对应的位是否为1,以判断该中断是否被屏蔽。若IMR中相应位为0,则说明该优先级的中断在CPU中被屏蔽,这时CPU将暂停响应该中断,直到IMR中相应位被置1或IFR中的标志位被软件清0,以取消该中断请求。若IMR中相应位为1,则说明该优先级的中断在CPU中未被屏蔽,这时CPU将继续判断状态寄存器ST0中的中断模式位(INTM位)的值。

当INTM=1时,所有的可屏蔽中断均被屏蔽,此时CPU暂停对该中断的响应,等待INTM被清0时继续响应中断;当INTM=0时,CPU正式进入对该中断的响应。CPU将IFR中该中断对应的标志位清0,将INTM位置1以暂时关闭对其他可屏蔽中断的响应,并将该优先级中断所对应的中断向量地址(表2-18中的CPU中断向量地址,范围为0000h~000Ch)加载到程序计数器(PC)以分支到全局中断服务程序(GISR)。同时CPU向PIE发布一个对该中断的响应应答,PIE接到应答信号后清除PIE的外设中断请求寄存器(PIRQ)对应的中断请求标志,将该中断外设中断向量(PIV)的值加载到PIE的外设中断向量寄存器(PIVR)中。至此对CPU来讲,中断只有INT1~INT6这6种中断,46种外设中断源对CPU来讲完全是透明的。

全局中断服务程序(GISR)是针对CPU直接响应的6个中断源的中断服务程序(ISR),INT1~INT6中每个中断应对应有一个GISR,因此DSP系统中应具有6个GISR。GISR的主要功能有两个:一是保存CPU状态和原程序执行的上下文;二是由外设中断向量寄存器(PIVR)读取被CPU响应的中断所对应的外设中断向量(PIV),并由PIV的值确定专用中断服务程序(SISR)的入口地址,控制CPU分支到SISR。

专用中断服务程序(SISR)是处理外设中断的具体程序,一般系统中用到的外设中断都具有自己的SISR,根据外设中断所需完成的任务不同,SISR的具体内容也不相同。一般在完成了特定的处理任务后,SISR应通过指令语句将外设寄存器(PR)中的中断标志位(IF)清0,并将CPU状态寄存器ST0的INTM位清0,以解除对所有可屏蔽中断的禁止。

为了保持中断系统的完整性,也为保证在发生意外错误时系统以可以控制的方式正常运行,DSP在中断系统中引入了假中断向量。所谓假中断向量,是指在中断系统中人为设置的一种中断,其目的是当中断系统因为某种错误在CPU响应中断后不能正确获得中断向量值时,调用假中断服务程序以使系统退出中断响应,恢复到正常的工作状态。具体地说,当一个CPU中断被响应后,CPU将由外设中断扩展(PIE)的外设中断向量寄存器(PIVR)读取PIV的值,用以确定SISR的入口地址,此时若因某种错误使PIE未将中断的PIV值加载到PIVR中,则CPU读出的将是假中断的PIV值,即0000h。用户可以在假中断服务程序中使系统退出本次中断响应,以避免系统因错误的PIV值而发生程序执行失控。

2.4.3TMS320LF240xA中断相关的寄存器

1.CPU中的中断寄存器

1)中断标志寄存器(地址为0006h)

中断标志寄存器(IFR)是CPU中专门用于存放发送到CPU的各个中断请求标志的寄存器,该寄存器是一个16位的寄存器,其中的6位对应于中断INT1~INT6,某位为1表示接到相应的中断请求且该请求处于挂起状态。对IFR可进行读/写操作,读IFR寄存器可以识别挂起的中断,写IFR可以清除写入位对应的已处于挂起状态的中断请求。应注意的是,要清除IFR的相应位,应对该位写1,而不是写0。对由外设硬件引起的中断,在中断被CPU响应后CPU会自动将IFR中的相应位清除,但对由INTR指令发出的中断请求,中断响应后CPU不会自动清除IFR的相应位,该位必须由用户通过软件来清除。CPU在复位时IFR中所有位均被清除。

中断标志寄存器(IFR)各位的结构如下:

●位15~6:保留位。这些位读出时始终为0。

●位5:INT6的中断标志位。该位为0时表示没有INT6级的中断被挂起;该位为1时表示至少有一个INT6级的中断被挂起,此种情况下在程序中向该位写1可将该位清除为0,即清除该中断请求。

位4:INT5的中断标志位。该位为0时表示没有INT5级的中断被挂起;该位为1时表示至少有一个INT5级的中断被挂起,此种情况下在程序中向该位写1可将该位清除为0,即清除该中断请求。

●位3:INT4的中断标志位。该位为0时表示没有INT4级的中断被挂起;该位为1时表示至少有一个INT4级的中断被挂起,此种情况下在程序中向该位写1可将该位清除为0,即清除该中断请求。

●位2:INT3的中断标志位。该位为0时表示没有INT3级的中断被挂起;该位为1时表示至少有一个INT3级的中断被挂起,此种情况下在程序中向该位写1可将该位清除为0,即清除该中断请求。●位1:INT2的中断标志位。该位为0时表示没有INT2级的中断被挂起;该位为1时表示至少有一个INT2级的中断被挂起,此种情况下在程序中向该位写1可将该位清除为0,即清除该中断请求。

●位0:INT1的中断标志位。该位为0时表示没有INT1级的中断被挂起;该位为1时表示至少有一个INT1级的中断被挂起,此种情况下在程序中向该位写1可将该位清除为0,即清除该中断请求。

2)中断屏蔽寄存器(地址为0004h)

中断屏蔽寄存器(IMR)是CPU中专门用于控制是否屏蔽某一可屏蔽中断的寄存器,该寄存器是一个16位的寄存器,其中的6位对应于中断INT1~INT6是否屏蔽或使能,某位为1表示使能该优先级的可屏蔽中断,为0表示禁止该优先级的可屏蔽中断。对IMR可进行读/写操作,读IMR寄存器可以识别各种优先级的可屏蔽中断的屏蔽状态,写IMR可以改变各种优先级的可屏蔽中断的屏蔽状态,向某位写0可以屏蔽该优先级的中断,而写1可以使能该优先级的中断。当然,通过该位使能某个优先级的中断,该优先级中断能否被CPU响应取决于CPU状态寄存器ST0中的INTM位的状态。CPU复位时IMR中所有位均不受影响。

中断屏蔽寄存器(IMR)各位的结构如下:

●位15~6:保留位。这些位读出时始终为0。

●位5:INT6的中断屏蔽位。该位为0时表示屏蔽优先级为INT6的中断;该位为1时表示使能优先级为INT6的中断。

●位4:INT5的中断屏蔽位。该位为0时表示屏蔽优先级为INT5的中断;该位为1时表示使能优先级为INT5的中断。

位3:INT4的中断屏蔽位。该位为0时表示屏蔽优先级为INT4的中断;该位为1时表示使能优先级为INT4的中断。

●位2:INT3的中断屏蔽位。该位为0时表示屏蔽优先级为INT3的中断;该位为1时表示使能优先级为INT3的中断。

●位1:INT2的中断屏蔽位。该位为0时表示屏蔽优先级为INT2的中断;该位为1时表示使能优先级为INT2的中断。

位0:INT1的中断屏蔽位。该位为0时表示屏蔽优先级为INT1的中断;该位为1时表示使能优先级为INT1的中断。

2.外设中断扩展(PIE)中的中断寄存器

1)外设中断向量寄存器(地址为701Eh)

在DSP对外设中断的响应过程中,CPU只接受6个中断源INT0~INT6的中断请求,具体的外设中断源由PIE管理,在CPU响应中断执行专用中断服务程序(SISR)时PIE需要向CPU提供外设中断向量(PIV),CPU由PIV计算SISR的入口地址。外设中断向量寄存器(PIVR)是PIE中专门用于向CPU提供外设中断向量的寄存器,PIE应在接到CPU的中断响应应答时将请求中断的PIV存至PIVR供CPU读取。外设中断向量寄存器(PIVR)为16位寄存器,用于存放16位的最近一次被应答的外设中断向量。

2)外设中断请求寄存器0~2(地址为7010h~7012h)

当外设向PIE提出中断请求时,PIE将记录每一外设的中断请求,并按中断请求的优先级向CPU发出INT1~INT6的中断请求。当相同优先级有两个或两个以上外设中断请求时,PIE将记录每一个外设中断请求,并按同一优先级内的优先顺序等待CPU的应答,当接到CPU的应答后相应的中断请求记录会被自动清除。外设中断请求寄存器(PIRQR)是PIE中专门用于记录外设中断请求的寄存器。由于TMS320LF240xA系列DSP共可响应46种外设中断,每种外设中断都需要一位来记录中断请求,这样共需要46个二进制位,因此在PIE中共有3个16位的外设中断请求寄存器(PIRQR),分别记做外设中断请求寄存器0(PIRQR0)、外设中断请求寄存器1(PIRQR1)和外设中断请求寄存器2(PIRQR2)。3个寄存器的某位为0时表示相应外设中断类型没有被挂起的中断请求;某位为1时表示相应外设中断类型有被挂起的中断请求。在外设中断的响应过程中,DSP会自动完成对外设中断请求寄存器的置1或清0操作,一般在程序中不对该寄存器进行读/写操作,但在系统调试中,可对PIRQR0~PIRQR2进行读/写操作来测试系统的中断功能。读该寄存器可了解各外设中断的挂起状态,写1到该寄存器的位会向CPU发送相应优先级的中断请求,写0对该寄存器没有影响。表2-19~表2-21列出了PIRQR0~PIRQR2中各位所代表的外设中断类型。表2-19外设中断请求寄存器0(PIRQR0)中各二进制位的定义

表2-20外设中断请求寄存器1(PIRQR1)中各二进制位的定义表2-21外设中断请求寄存器2(PIRQR2)中各二进制位的定义

3)外设中断应答寄存器0~2(地址为7014h~7016h)

外设中断应答寄存器(PIACKR)用于保存CPU对PIE中断请求的应答信号,每一种外设中断都对应有一个二进制位,用于表示该中断的应答状态,因此PIE中共有3个16位外设中断应答寄存器,分别记做外设中断应答寄存器0(PIACKR0)、外设中断应答寄存器1(PIACKR1)和外设中断应答寄存器2(PIACKR2)。该寄存器中某位为0表示相应的外设中断未被响应,为1表示相应的外设中断正被响应。在外设中断的响应过程中,DSP会自动完成对外设中断应答寄存器的置1或清0操作,一般在程序中不对该寄存器进行读/写操作,但在系统调试中,可对PIACKR0~PIACKR2进行读/写操作来测试系统的中断功能。读该寄存器的结果为0,写1到该寄存器的位会给PIE一个假的外设中断响应信号,从而使PIE中相应的外设中断请求寄存器位清0,但它并不更新外设中断向量寄存器(PIVR)的值。表2-22~表2-24列出了PIACKR0~PIACKR2中各位代表的外设中断类型。表2-22外设中断应答寄存器0(

温馨提示

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

评论

0/150

提交评论