版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章TMS320VC33处理器结构2.1TMS320VC33概述
2.2TMS320VC33的引脚描述2.3TMS320VC33的CPU结构
2.4总线结构及管理
2.5存储器管理
2.6CPU寄存器与其它寄存器
2.7中断管理2.8外围设备本章小结
思考题和习题
2.1TMS320VC33概述
TMS320VC33(以下简称为VC33)是TI公司于2001年推出的TMS320系列的第三代处理器的升级产品,支持32位的浮点运算,144引脚的LQFP封装,是目前在国内外使用最为广泛的浮点DSP芯片之一。其主要型号有:
VC33-120:17 ns单周期指令执行时间,60MIPS,120MFLOPS。
VC33-150:13 ns单周期指令执行时间,75MIPS,150MFLOPS。
VC33的主要性能如下:
(1)低功耗,一般小于200 mW;供电电压:I/O接口为3.3 V,内核为1.8 V。
(2) 32位高性能CPU,整数可用16位短整型或32位长整型表示,浮点数可用32位单精度或40位扩展精度表示。
(3) 34K×32位片内RAM,共分为4块,其中16K和1K各2块,每个RAM块在单周期内都可以访问2次。
(4)程序总线、地址总线和DMA总线分开,允许并行地取指、读写数据及DMA操作;指令和数据字长为32位,地址线有24条,总的寻址空间为16M×32位。程序、数据及I/O都包含在这16M×32位的地址空间内。
(5) CPU结构中有一个硬件乘法器和一个算术逻辑单元ALU,单周期乘法指令,在一个周期内可以完成一次乘法和一次加法运算;ALU在单周期内对32位整数、32位逻辑或40位浮点数执行操作,ALU的结果总是保持32位的整数或40位的浮点数格式。
(6)8个扩展精度寄存器,可存储32位的整数或40位的浮点数;8个辅助寄存器和2个辅助寄存器运算单元,在单周期内产生两个地址。
(7)一个32位的桶形移位器,在单周期内向左或向右移位32位。
(8)与CPU并行操作的片内DMA控制器,DMA控制器可以读写存储器中的任何单元而不会影响CPU的工作。因此VC33可以与慢速的外部存储器或外部设备接口,而不会降低CPU的执行速度。
(9)1个全双工串行口,可编程为32位、24位、16位和8位字长,有固定和可变速率两种工作模式。每种模式可设置为爆发、连续和标准三种工作状态。
(10)两个32位的硬件定时器。
(11)内置5倍频锁相环时钟电路,可采用外部的低频时钟源获得片内的高速工作周期。
(12)采用程序自引导方式,将存储在外部的8位、16位或32位低速ROM中的程序加载到DSP内部的32K高速RAM中指定的任何位置,实现高速运行。
(13)符合IEEE1149.1标准的片内仿真和测试JTAG端口。2.2TMS320VC33的引脚描述
VC33芯片采用的是贴片型的方形封装结构,144个引脚分四边均布,每边36个引脚,相邻两引脚的间距为0.5 mm,引脚从有缺口的一角或“O”形标志的一边开始按逆时针方向顺序编号,其引脚号的编排方式与其它芯片是一致的。芯片最大高度为1.6 mm,边长最大值为22.2 mm,与电路板的连接方式是将各引脚直接焊接在电路板上。图2.1所示是该芯片外形的俯视图。表2.1进一步给出了它们的对应关系,表2.2给出引脚类型和功能。图2.1TMS320VC33的外形图表2.1引脚编号与信号名称的对应关系表2.2TMS320VC33引脚类型和功能续表
表2.2按照引脚的用途进行了分类,并给出了各类引脚的I/O特性和功能的详细说明。对该表作以下说明:
(1)表中所述类型是指引脚的输入输出类型和特性,I为输入,O为输出,Z为高阻。I/O/Z表示某类引脚有输入、输出或高阻三种状态。在某一瞬间,任何引脚只能是其中的一种状态,不可能同时出现两种或两种以上状态。
(2)表中最右边一列表示出现高阻的条件,其中S、H、R分别表示、、有效。
(3)表中所述的主总线是相对于扩展总线而言的,虽然TMS320VC33没有扩展总线,但TMS320C30和TMS320C32设置了扩展总线,为了与TMS320C3x系列其它芯片的总线名称相统一,同时也为了不引起总线控制寄存器在名称上的混淆,相对于扩展总路线而言,这里仍将不属于扩展的总线称之为主总线。
(4)在主总线接口、控制、JTAG这三种类型的引脚中,凡是引脚名称(或信号名称)上带有横线的,均表示低电平有效。
(5)按照表2.2的分类方法,把TMS320VC33的144个引脚按功能分为六类:①主总线接口:65个引脚;②控制:11个引脚;③串行口:6个引脚;④定时器:2个引脚;⑤电源及振荡器:53个引脚;⑥JTAG:7个引脚。2.2.1主总线接口信号主总线接口信号包括数据线D0~D31、地址线A0~A23、读写信号R/、外部存取选通信号、页选通信号~、就绪信号、保持信号和保持回答信号。现对上述信号作以下说明:
(1)除和为输入信号外,其它信号均有输出功能,其中数据线具有I/O功能。
(2)凡有输出功能的信号,在一定条件下都可处于高阻状态。
(3)数据线D0~D31,共32条,这就是说,TMS320VC33的字长为32位,是一种高精度芯片。数据线具有输入、输出、高阻、数据保持等状态。数据线输出的逻辑高电平为2.4~3.6 V,逻辑低电平小于0.8 V,这就是说,当数据线只作为输出脚时,可以与供电电压为5 V的CMOS集成电路直接接口,因为逻辑高电平的下限值2.4 V和逻辑低电平的上限值1.8 V与TTL电平是兼容的。但当数据线作为输入引脚使用时,其能够承受的最高电压为4.6 V,而TTL电平的逻辑高电平的最大电压可达5 V,这时必须增设电平转换接口电路。
(4)地址线A0~A23,共24条,而24条地址线可寻址的存储器空间为16 MB,每个字节的最大长度为32位,即TMS320VC33的最大寻址能力为16 MB。与数据线不同的是:地址线只有输出功能,不能作为输入引脚,其输出的逻辑电平范围与数据线相同。由于只有输出功能,所以可以与具有TTL电平的集成电路直接连接,不需要进行电平转换。另外,TMS320VC33的地址信号具有锁存功能,也就是说,如果不通过指令使地址线的状态发生改变,地址线上的电平将维持上一条指令输出的地址信号,这一点与大多数单片机的地址信号是不同的。
(5)TMS320VC33的读写操作共用一个引脚R/,该引脚为输出脚,高电平为读,低电平为写,任何时候都处于读、写两种状态之一,多数情况下与外部存取选通信号和页选通信号~配合工作。
(6)外部存取选通信号对所有外部存取操作均输出低电平,只要涉及到寻址,则它在16 MB寻址范围内均有效,即输出低电平。
(7)页选通信号~将16 MB地址空间分为4页,每页4 MB字节。各个页选通信号的有效范围如表2.3所示。表2.3~的有效范围
(8)就绪信号为输入信号,主要用于与外部低速器件接口,其方法是通过外部设计的硬件电路插入等待状态,插入的等待状态数目可以任意。换言之,如果不需要插入等待状态,该引脚应接为低电平,即任何时候都处于就绪或准备好状态。反之,如果该引脚误接成了高电平,则DSP永远不工作,一直处于未准备好的等待状态。TMS320VC33等待状态的插入也可通过软件来实现,但通过软件最多可插入7个等待状态。
(9)和分别为保持和保持回答信号,前者为输入的控制信号,低电平有效,后者为处于保持状态时的回答信号。显然,如果由于某种连接错误原因使意外地变为低电平,则DSP不工作。2.2.2控制信号控制信号共11个,包括复位信号、中断触发方式控制信号EDGEMODE、外部中断信号~、内部回答信号、微计算机引导方式和微处理器方式控制信号、高阻控制信号、通用I/O及或DSP互锁操作信号XF1、XF0。其中为输出信号,XF1和XF0既可作为输入信号,也可作为输出信号,这三个信号均有高阻状态,其它8个信号只能作为专门用途的输入信号。结合表2.2,对其中的部分信号说明如下:
(1)凡是输出信号或具有I/O功能的信号只作为输出脚使用时,可以与TTL电平兼容的电路直接接口,不需要进行电平转换。
(2)所有的输入信号,其能够承受的最高电平为4.0 V,不能直接与5 V的集成电路连接。
(3)复位信号为低电平有效,当该引脚上出现低电平时,DSP在10个CPU周期内退出正在进行的读、写操作,然后进入复位状态。进入复位状态后,地址线、数据线和各输出信号均处于高阻状态,这就是说,DSP能够正常工作的必不可少的条件是=1,准确地说,必须经历由0变为1的过程,DSP才能进入正常的工作状态,而且在工作过程中该信号一直保持为1。当由0变为1时,DSP由复位向量指定的地址开始执行程序,这里所述的复位向量也是一种中断向量,而且是中断级别最高的中断向量。当和同时为低电平时,DSP将立即进入复位状态,即不作任何试图安全地退出正在进行的读、写操作的尝试而直接进入复位状态。为使DSP进入正常的工作状态,上述两个信号必须都为高电平,但在变为高电平前,应提前10个CPU周期进入高电平状态。另外,对于特别重要的控制场合,为了避免在上电复位瞬间产生难以想象的不可控后果,最好使=0。
(4)如前所述,可以与配合使用,也可以单独使用,使地址总线、数据总线和各输出信号处于高阻状态,但应注意与的区别,前者可以使DSP的所有输出信号均处于高阻状态,而后者只能使主总线接口信号中的地址线A0~A23、数据线D0~D31、读写控制信号R/、外部存取选通信号、页选通信号~处于高阻状态。二者的另一个区别是: = 0不仅使各种输出信号处于高阻状态,同时也使DSP的存储器和寄存器的内容丢失,而仅仅使前述的4种信号处于高阻的保持状态,不丢失有关的内容。
(5) EDGEMODE是中断的边缘触发方式控制信号,若EDGEMODE = 1,在中断引脚上出现的下降沿触发中断。为了保证中断信号被可靠识别,中断引脚上出现的高电平和低电平输入信号的持续时间不应少于2个CPU周期。如果EDGEMODE = 0,则中断引脚上的低电平将连续地使中断寄存器中的中断标志位置1,CPU或DMA响应中断后在两个CPU周期内对该标志位清零。在DSP复位瞬间,不论EDGEMODE是0或是1,DSP都不对其进行检测,这是因为复位后DSP首先检测~中断引脚上的低电平,以确定由哪个中断脚触发引导方式。
(6)~是外部中断信号,其一个作用是用于上电复位瞬间进行程序的引导,所谓引导,就是将用户编写的程序由DSP外部的存储器加载到DSP内部的高速RAM中,以便高速运行;另一个作用是接受外部事件发出的中断请求,使DSP响应外部中断,进行紧急事件的处理。之所以称之为外部中断,是为了与定时器、串行口和软件陷阱等触发的中断进行区分,这是因为后者所触发的中断来自于DSP内部的计数、定时和软件本身的执行结果。当用于引导时,只要在上电瞬间将4个中断引脚中的一个接为低电平就可以了。当然,也可永久性地接为低电平,这时该引脚不再作为DSP运行过程中的中断源,其实现方法是只要将中断控制寄存器中该引脚相应的控制位设置为不允许中断的状态即可。如果在引导完成后还想将该引脚用做外部事件的中断信号,则需要增设状态转换控制电路,以使其切换为高电平状态。对引导而言,不同的中断引脚所对应的被引导的程序的首地址和传输途径也不同,具体地说,、、对应的被引导程序存放在外部存储器中的首地址分别是:1000H、400000H、0FFF000H,而为低电平时,则从串行口引导。对中断请求而言,不同引脚上的中断信号所对应的中断向量的入口地址也不同。
(7) MCBL/是微计算机引导方式和微处理器方式控制信号,若MCBL/
=1,则为微计算机引导方式,简称MCBL方式(MicrocomputerBootLoadMode);若MCBL
=0,则为微处理器工作方式,简称MP方式(MicroprocessorMode)。这两种方式下,DSP的存储器分配是不同的。2.2.3串行口信号 如表2.2所示,串行口信号共6个,分别对应于6个引脚,这6个引脚构成一个全双工的串口,即任何时候都可以同时进行数据的接收和发送,而且接收和发送的数据的字长可以是8位、16位、24位或32位。对串行口的6个信号说明如下:
(1)引脚名或信号的记忆规则。串行口的6个信号分别是CLKR0、CLKX0、DR0、DX0、FSR0、FSX0,其中CLK表示时钟,R表示接收,X表示发送,FS(FrameSynchronization)表示帧同步,每个信号最后的数字表示串口0。对TMS320VC33而言,这6个信号只构成了一个全双工的串口,但考虑到TMS320C3x系列中其它一些DSP有两个串口,为了避免不必要的混淆,并借用其它DSP的资料进行统一描述,生产商仍按多个串行口的编号规则将其记为串口0,但实际上,TMS320VC33只有一个串口。
(2)帧的概念是指一组数据的组合,TMS320VC33串口的帧同步用以指明所传输的一组数据的开始,这时所述的一组数据可以是一个字,也可以是多个字,其同步的方式视串行口的工作模式而定。
(3)前述的帧同步主要作为所传输的一组数据的同步,这组数的多少是以字的个数来表示的。而串口的接收时钟和发送时钟由是与位同步的,即每一个数据位对应一个时钟。
(4) TMS320VC33的串行口是一种多功能口,既可以定义为串口,也可以定义为通用I/O口。
(5) TMS320VC33的串口与单片机的串口是不同的,不仅引脚数目不同,而且工作方式也不同,是一种功能更强、用途更为灵活的全双工串口。
(6)所述串行口的6个引脚都有高阻状态,但只能通过和使其处于高阻状态,这就是说,不受的影响。2.2.4定时器信号
TMS320VC33有两个32位的定时器,定时器0和定时器1各用一个引脚,分别记为TCLK0和TCLK1。同串行口一样,TMS320VC33的定时器口也是多功能口,每个定时器既可单独设置为定时器,也可单独设置为通用I/O引脚,即两个定时器可以独立地设置为定时器方式或通用I/O方式。而且,即使是设置为定时器,引脚TCLK0和TCLK1也有输入或输出两种功能,如果设置为输入方式,则定时器引脚用于对外部输入的时钟进行定时或计数,即起着定时或计数的作用;如果将其设置为定时器的输出方式,则输出定时器产生的脉冲。在TMS320系列的DSP资料中,相对于DSP内部的CPU而言,将定时器、串行口和DMA作为外围(Peripheral)电路,它们的设置或控制是通过寄存器来实现的。DSP的寄存器也分为两种类型,一是与DSP内部的CPU发生直接联系的寄存器,称为CPU寄存器;另一类是设置或控制外围设备的寄存器,称为外围寄存器。其中定时器的控制寄存器有3个,串行口的控制寄存器有8个,DMA的控制寄存器有4个。2.2.5电源及振荡器信号电源及振荡器信号有53个引脚,包括CPU工作时钟H1、H3,1.8 V电源CVDD,3.3 V电源DVDD,电源地VSS,锁相环电源PLLVDD,锁相环地PLLVSS,外部时钟输入信号EXTCLK,内部晶体振荡电路输入信号XIN,输出信号XOUT,CPU时钟控制信号CLKMD0,CLKMD1,以及保留信号RS0、RS1。所有这些信号中,只有H1和H3有高阻状态。
1.电源
TMS320VC33有DVDD和CVDD两种电源,其中DVDD为3.3 V,是I/O引脚的供电电源;CVDD为1.8 V,用于对DSP芯片内部的CPU供电。采用两种电源的好处是既便于接口,又可使CPU的功耗降低。在144个引脚中,DVDD有16个脚,CVDD有8个脚,VSS有18个脚。DVDD、CVDD和VSS采用多个引脚的原因是使芯片内部的负载尽可能均匀,因此,在使用时,最好将所有的DVDD都连接到3.3 V的电源上,所有CVDD都连接到1.8 V的电源上,所有VSS都连接到电源地上。
2.振荡器振荡器即时钟发生器,其作用是为DSP提供工作时钟。时钟发生器由DSP芯片的片内振荡电路和锁相环(Phase-LockedLoop,PLL)电路组成。时钟发生器工作时,必须对其输入一个参考时钟。该参考时钟可以采用两种方法之一来产生。第一种方法是在EXTCLK引脚上直接接入一外部输入的时钟,如一体化振荡器的输出信号等,这时XIN接地,XOUT悬空,如图2.2(a)所示。第二种方法是将EXTCLK接地,通过XIN和XOUT引脚接入晶体或陶瓷振荡器,其连接方法如图2.2(b)所示。图2.2参考时钟的连接方法锁相环电路的作用是锁定参考时钟的相位,一旦达到同步或锁定后,将自动跟踪参考时钟的相位,并对输入的参考时钟进行倍频,使倍频后的时钟与参考时钟实现同步。图2.2(a)和图2.2(b)中的晶体振荡器也可以用陶瓷振荡器替代,其成本也更低。但应该说明的是,陶瓷振荡器的频率精度和稳定性远不如晶体振荡器的。与锁相环电路相关的引脚PLLVDD、PLLVSS的接法如图2.2(a)和图2.2(b)所示,这两个图中的连接方法是相同的。也可以采用图2.3所示的连接方法,如果将图2.3中与VSS相接的电阻值取为0,其接法与图2.2完全相同,上述接法都可以避免PLL有可能引入到CVDD中的高频噪声。图2.3锁相环电路的接法图2.2(b)所示电路采用了晶体振荡器,频率为8~30 MHz的晶体振荡器的典型的串联阻抗为25 Ω,当频率低于8 MHz时,阻抗将更高。为了对振荡电路滤波并使相位保持稳定,振荡电路的阻抗应为晶体振荡器阻抗的10~40倍,为此在电路中引入了补偿电阻Rd。C1和Rd构成了滤波电路,C2进一步起滤波的作用。经过上述滤波后,XIN引脚上输入的电压幅度是晶体振荡器所提供电压幅度的75%~85%。随晶体振荡器频率的不同,外接元件Rd、C1、C2也应不同的值,具体选择方法如表2.4所示。表中CL和RL分别表示晶体振荡器本身的等效串联电阻和电容。表2.4晶体振荡器电路参数选择
3.时钟方式选择通过引脚CLKMD0和CLKMD1可以对CPU的工作时钟进行选择,即对参考时钟进行倍频,可选择的倍数如表2.5所示。由表可以看出,CPU时钟可以是参考时钟频率的1倍、1/2和5倍,但锁相环电路只有在5倍频的情况下才处于工作状态。表2.5时钟控制引脚的接法与倍频的关系
1倍频时CLKMD0和CLKMD1有两种不同的接法,但二者都为低电平时,内部振荡电路不工作,其它三种情况下,内部振荡电路都处于工作状态。但并不意味着一定要采用晶体振荡器作为参考时钟,即也可以采用外部电路从EXTCLK引脚提供参考时钟,这时,内部振荡电路的工作可以理解为只是接通了片内对这一局部电路供电的电源通道。锁相环路的工作与不工作的含义与此类同。
CPU的工作时钟还可以通过指令进行控制,完整的时钟工作方式可借助图2.4加以说明。图2.4时钟工作方式(控制方法)图2.4中XOR为异或门,PLL为锁相环电路,MUX为多路选择开关电路。参考时钟可通过EXTCLK输入,也可通过XIN、XOUT两端外接晶体振荡器输入。CLKMD0和CLKMD1用于控制内部振荡电路是否工作的开关S1,同时控制PLL是否工作,还对两路MUX进行控制。CPU的工作频率可以是参考时钟的1倍、1/2或5倍,也可以通过指令MAXSPEED使其工作在倍频后工作频率的1倍,或通过LOWPOWER指令使其工作在倍频后频率的1/16,还可以通过指令IDLE2使CPU不工作。其中CPU通过IDLE2进入不工作状态后,使其重新进入工作状态的途径有二:一是对DSP复位;二是外部中断引脚上出现中断信号。
4.H1和H3
H1和H3是通过外部引脚输出的CPU的工作时钟,只作为输出用,当有效时可处于高阻状态。H1和H3的用途一是作为电路调试时检测CPU的工作时钟,二是在需要时,为DSP以外的电路提供时钟信号。H1和H3的频率一定是CPU的工作时钟频率,其周期也是CPU的指令周期,但并不一定等于外部输入时钟EXTCLK或晶体振荡器的频率,这是因为外部输入时钟EXTCLK或晶体振荡器的振荡频率要经过倍频电路倍频后才作为CPU的工作时钟,倍频的倍数通过CLKMD0和CLKMD1控制。2.2.6JTAG仿真信号
JTAG(JointTestActionGroup)实际上是检测IC芯片的一个标准,制定于1985年,1990年被修改后成为IEEE的一个标准,即IEEE 1149.1—1990。通过这个标准,可对具有JTAG口芯片的硬件电路进行边界扫描和故障检测。具有JTAG口的芯片都有以下引脚:
TCK:测试时钟输入;
TDI:测试数据输入,数据通过TDI输入JTAG口;
TDO:测试数据输出,数据通过TDO从JTAG口输出;
TMS:测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式;:测试复位时的可选引脚,输入引脚,低电平有效。含有JTAG口的芯片种类较多,如CPU、DSP、CPLD等。JTAG标准定义了一个串行的移位寄存器。寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为边界扫描单元,简称BSC(Boundary-ScanCell)。TMS320VC33的JTAG口除了TCK、TDI、TDO、TMS、外,还有两个引脚EMU0和EMU1,用以激活JTAG口,实现仿真功能。这两个引脚通过上拉电阻直接接到3.3 V电源DVDD上。
TMS320VC33的JTAG口的作用主要是用于将程序下载到芯片中,并对软硬件进行仿真。TMS320VCC33片内虽然有4K×32位的ROM,但用户不能使用该片内的ROM,因为在ROM内存放的是出厂时已经固化的引导程序,所以,通过JTAG口只能将程序下载到DSP的RAM内,一旦掉电,下载到RAM中的程序将会自动丢失,所以,该DSP中的JTAG口只能用于对DSP的测试和仿真。脱离开仿真器后DSP的自动运行需要在每次上电时,通过复位和中断引脚,将存放于芯片外部存储器中的程序自动地引导到DSP的内部RAM中。2.3TMS320VC33的CPU结构
TMS320VC33具有一个以寄存器为基础的CPU结构,CPU由以下几部分组成:乘法器;算术和逻辑运算单元(ALU);32位桶式移位器;CPU总线和寄存器总线;辅助寄存器运算单元(ARAUs);CPU寄存器组,包括28个CPU寄存器。以上各部分的连接关系如图2.5所示。图2.5中央处理单元(CPU)
1.乘法器乘法器可对整数及浮点数进行乘法运算。TMS320VC33实现了浮点运算,由于其具有高速和高度的并行运算性能,其浮点运算能以定点的运算速度进行,而且通过使用并行指令,可在一个指令周期内完成一次乘法和一次算术、逻辑运算。执行浮点乘法时,结果可以用40位浮点数表示。执行整数乘法时,结果可以用32位整数表示。
2.算术逻辑单元(ALU)
ALU对32位整数、32位逻辑及40位浮点数实行单周期操作,包括单周期的整数与浮点转换。ALU的结果总是保持32位整数或40位浮点数的格式。
3.桶式移位器桶式移位器在单周期内左移或右移的位数可高达32位。
4.CPU总线和寄存器总线
CPU总线(CPU1bus,CPU2bus)和寄存器总线(REG1bus,REG2bus)在一个指令周期内可从存储器读取2个操作数,同时从寄存器组读取2个操作数,从而可在单周期内对4个整数或浮点操作数进行并行的乘和加(减)。
5.辅助寄存器运算单元(ARAUs)两个辅助寄存器运算单元(ARAU0和ARAU1)可在单周期内产生两个地址。ARAUs与乘法器及ALU并行操作。它们支持由立即数、索引寄存器IR0和IR1给出的带有偏移量的寻址方式,还支持专门用于相关运算、卷积、有限冲激响应(FIR)、无限冲激响应(IIR)、快速傅氏变换(FFT)等专门用于数字信号处理的循环寻址和位翻转寻址。
6.CPU寄存器组
TMS320VC33的CPU寄存器组由28个CPU寄存器组成。所有这些寄存器都可被乘法器和ALU操作,既可用做通用寄存器,又可实现一些特殊的功能,例如其中的8个扩展精度寄存器特别适合于进行扩展精度浮点数的运算,8个辅助寄存器支持各种间接寻址方式,并可用做通用的32位整数及逻辑寄存器,其余的寄存器提供诸如寻址、堆栈管理、中断及块重复等功能。2.4总线结构及管理计算机的总线结构可分为两种,一是冯·诺依曼结构,二是哈佛结构。冯·诺依曼结构的特点是程序和数据共用一个存储空间,统一编址,程序和数据通过同一总线访问同一地址空间上的存储器,依靠指令计数器提供的地址来区分是指令数据还是地址。由于这种总线结构对数据和程序进行分时读写,因而执行速度慢,数据吞吐量低,但这种结构比较简单,从而使计算机的结构得到了简化。另外,半导体工艺的飞速发展对运算速度的提高起到了重要的作用,冯·诺依曼结构成为了计算机发展的一个标准。
TMS320VC33有四种总线,分别是程序总线、数据总线、DMA总线、外部总线,其中前三种总线统称为内部总线。TMS320VC33芯片完整的硬件结构框图如图2.6所示,该图不仅包括了总线结构,也给出了CPU、存储器、寄存器与内部电路的连接关系。图2.6TMS320VC33的硬件结构
TI公司的DSP采用了改进的哈佛结构,既采用了独立的程序总线和数据总线,又在程序总线和数据总线中采用了交叉连接,允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了芯片的灵活性,提高了运行速度,只要调度好两个独立的总线就可使处理能力得到提高,实现全速运行;另外,增加了高速的缓冲器(Cache)。在TMS320VC33及其它C3x芯片中,指令还可以存放在高速缓存器(Cache)中,省出了从存储器中读写指令的时间,提高了运行速度。TMS320VC33具有64个字的Cache。改进的哈佛结构有以下优点:
(1)提供了总线数据交换器,保证了总线操作的灵活性;
(2)程序总线和数据总线的宽度可以不同,支持更强大的并行操作指令,保证足够高的运算速度;
(3)解决了总线拥挤问题,提高了运算速度。2.4.1内部总线内部总线是与CPU寄存器和程序计数器(PC)相关联的总线。TMS320VC33的高性能在很大程度上归功于其优越的内部总线结构以及由此带来的并行运算性能。内部总线的特点是:程序总线与数据总线是分开的,地址总线与数据总线是分开的。内部总线的具体划分情况是:程序总线: 程序的地址总线PADDR
程序的数据总线PDATA数据总线: 数据的地址总线DADDR1和DADDR2
数据的数据总线DDATADMA总线: DMA的地址总线DMAADD DMA的数据总线DMADATA程序计数器(PC)与24位的程序地址总线(PADDR)相连。索引寄存器(IR)与32位的程序数据总线(PDATA)相连。这些总线在每一机器周期内可读取一个指令字。
24位的数据地址总线(DADDR1和DADDR2)和32位数据的数据总线(DDATA),在每一机器周期中支持两次数据存储器的读写操作。DDATA总线通过CPU1和CPU2总线将数据传输到CPU。CPU1和CPU2在每一机器周期内可将两个操作数传送到乘法器、算术逻辑单元(ALU)及寄存器组。寄存器REG1和REG2在每一个机器周期内可将两个数据传送到乘法器。
DMA设有专门的总线,由24位地址总线(DMAADD)和32位数据总线(DMADATA)构成,这些总线使DMA能与数据总线及程序总线并行地对存储器进行操作。上述总线可使程序的读取、数据的存取和DMA操作并行地进行。这些总线可以对所有TMS320VC33支持的存储空间(片内存储器,片外存储器)和CPU寄存器进行寻址和数据存取。另外,需要说明的是,虽然上述内部总线结构是针对TMS320VC33介绍的,但也适应于其它TMS320C3x系列其它型号的DSP。2.4.2外部总线在TMS320VC33中采用了多种总线,其目的是提高运算能力和速度,但对用户而言,主要涉及24条地址线和32条数据线,外部引脚通过多路选择开关连接到内部总线上,简化了芯片的外部结构,同时也提高了DSP的性能。这种通过多路切换开关输出的总线称为外部总线。由图2.6可知,外部总线有两种,一是主总线,二是外围总线。主总线是相对于扩展总线而言的,扩展总线是为了对更大的外部存储器和I/O寻址空间而增设的地址线,例如,TMS320VC30和TMS320VC32除了主总线中有24条地址总线外,还有13条地址的扩展总线。虽然TMS320VC33并无扩展总线,但仍然将通过多路切换后通过外部引脚所体现的总线称为主总线。由图2.6和表2.6可清楚地看出,主总线包括32位数据线、24位地址线、读写信号R/、外部存取选通信号、页选通信号~、就绪信号、保持信号、保持回答信号。其中页选通信号是由芯片内的地址线A22和A23经过译码产生的,外部存取选通信号也是由地址线决定的,、是总线状态的控制信号,R/根据数据总线的输入输出状态而取不同的电平。除主总线外,外部总线还包括外围总线(PeripheralBus),这种总线也是通过多路切换开关输出的总线,主要用于对定时器、串行口控制寄存器和DMA寄存器的控制,这些寄存器是与CPU无关的寄存器,因而不属于CPU寄存器,也没有专门的寄存器名称,其地址在DSP的内部RAM中。4.4.3总线管理总线管理主要涉及外部总线的管理,达到访问外部存储器和外围器件的目的。通过主总线控制寄存器和使用外部输入信号,用户可控制总线的等待状态,从而允许CPU访问低速存储器和外围设备。主总线接口控制寄存器的地址为:808064h,该寄存器为32位的寄存器,结构如图2.7所示。表2.6列出了该寄存器中各位的功能。图2.7主总线接口控制寄存器结构表2.6主总线控制寄存器各位的名称和功能需要注意的是:当改变主总线控制寄存器的某一位后,主总线在取3条指令之后,总线的状态才得以改变。一般情况下,如果存储器速度很快,则可以不插入等待状态;总线控制寄存器取值1018H,即插入0状态。表2.7给出了BNKCMP与用于定义块大小的最高有效位地址的关系。表2.7BNKCMP与用于定义块大小的最高有效位地址的关系2.5存 储 器 管 理
TMS320VC33的全部存储器空间是16M×32位,程序、数据和I/O空间都包含在这个存储器空间内,表格、系数、程序代码或数据既可以存储在RAM中,也可以存储在ROM中,这就可以最大程度地使用存储器空间并且按照需要分配存储器空间。但应注意片内可供用户使用的存储空间只有RAM,片内的ROM在芯片出厂时已固化了引导程序,用户不能对其进行修改。由图2.6可见,供用户使用的片内RAM共4块,RAM0和RAM1均为1K×32位,RAM2和RAM3各为16K×32位,4块RAM的总容量为34K×32位。存储器中还有一块64×32位的高速缓存器(Cache),供指令快速译码使用,另有一块4K×32位的ROM,用于存放引导程序。用户的程序和数据只能存放在总容量为34K×32位的四个RAM中,不能存放在ROM和Cache内。上述各RAM和Cache的位置是固定的,但ROM、中断向量以及被引导的外部程序的起始地址在16 MB空间中的位置是由用户设定的存储器的工作方式决定的,具体分配方式如2.5.1节所述。2.5.1存储器组织存储器分配方式有两种:微计算机引导方式和微处理器方式,方式的选择由MCBL/引脚上的电平决定。如果将该引脚接为高电平,则为微计算机引导方式;如果该引脚接为低电平,则为微处理器方式。这两种方式下的存储器分配情况如图2.8所示。图2.8存储器映射图这两种方式下,有四个区域是完全相同的:
(1)RAM2是完全相同的,RAM2的起始地址为800000h,结束地址为803FFFh,其大小为16K × 32位。
(2)RAM3是完全相同的,RAM3的起始地址为804000h,结束地址为807FFFh,其大小为16K × 32位。
(3)被分配在808000h~8097FFh范围内的6K×32位空间的外围总线存储器映射寄存器(PeripheralBusMemory-mappedRegister)是完全相同的。
(4) RAM0是完全相同的,RAM0的起始地址为809800h,结束地址为809BFFh,其大小为1K × 32位。两种方式下,有四个区域是有区别的:
(1)在微计算机引导方式下,出厂时固化在片内的引导程序被映射到0h~FFFh的4K×32位空间内,DSP上电复位后,该程序自动执行,将存放在外部ROM中的用户程序装载到规定的DSP的片内存储器内。而在微处理器方式下,该4K片内ROM未被映射到存储器空间中,0h~3Fh单元包含中断矢量、陷阱矢量和保留单元,它们是通过外部存取信号(有效)进行存取的。
(2)在微计算机引导方式下,1000h~7FFFFFh为外部存取空间,访问该空间时有效,该空间的大小为8 MB-4 KB,即0h~7FFFFFh为8 MB,但因4 KB的ROM被映射到存储空间了,所以,比8 MB少了4 KB。实际上,该空间内还有两个字节作为被引导的用户程序的起始地址,即外部程序的首地址,这两个地址分别是1000h和400000h,前者对应于Boot1,由外部中断引脚~触发引导程序,后者对应于Boot2,由外部中断引脚~触发引导程序。而在微处理器方式下,外部存取空间的起始地址为40h,结束地址为7FFFFFh,其大小为8 MB-64 B,即0h~7FFFFFh为8 MB,但因0h~3Fh单元所属的64 B用于存放中断矢量、陷阱矢量和保留单元,所以比8 MB少了64 B。
(3)两种方式下的RAM1有所区别。虽然RAM1的起始地址都为809C00h,结束地址也都为809FFFh,该范围内的存储空间为1K×32位,但在微计算机引导方式下,上述范围内的809FC1h~809FFFh的64 B被用于存放中断、陷阱的中断服务程序的分支指令和保留字节。微处理器方式下,RAM1所属的1K×32位空间可全部由用户使用。
(4)在两种方式下,起始地址为80A000h,结束地址为FFFFFFh的8 MB都为外部存取空间,访问该空间时有效,但在微计算机引导方式下,字节FFF000h作为被引导程序的首地址,该地址也就是由触发的Boot3所对应的地址。总之,微处理器方式和微计算机引导方式最大的差异在于是否允许引导,如果不引导,则为微处理器方式,否则就为微计算机引导方式。2.5.2中断向量和分支指令存储器分配 在微处理器方式下,复位、中断和陷阱向量被分配在0~3Fh的空间内,各向量的具体地址如图2.9(a)所示,其中陷阱是指通过软件触发的中断,向量的地址值越低,其优先级越高。由图可知,在所有中断向量中,复位的优先级最高。0~3Fh所指的64个地址中,07h、08h、0Ch~1Fh、3Ch~3Fh等26个字节为保留字,中断向量共38个。图中各符号的含义:
RESET:复位INTx:外部中断(x = 0,1,2,3)
XINT0:串行口发送中断 RINT0:串行口接收中断
TINT0:定时器0中断 TINT1:定时器1中断
DINT:DMA中断 TRAPx:陷阱(x = 0,1,2,…,27)图2.9中断向量和中断服务程序的地址分配在微计算机引导方式下,中断服务程序和陷阱的分支指令被分配在809FC1h~809FFFh所指向的63个字节中,各向量的具体地址如图2.9(b)所示。地址值越低,其优先级越高,由图可知,外部中断0的优先级最高。809FC1~809FFFh所指向的63个字节中,809FC7h、809FC8h、809FCCh~809FDFh、809FFC~809FFFh等26个字节为保留字,中断服务程序的分支地址共37个。微计算机引导方式与微处理器方式相比,前者缺少了复位所对应的中断向量,即微处理器方式下,复位也是一种中断,而且是优先级最高的中断,需要对复位给定中断向量的入口地址。而在微计算机引导方式下,不需要为复位指定中断复位的分支指令,这是由于该方式下,复位后DSP自动执行片内ROM中的引导程序,即复位后,程序计数器自动指向0h地址。另外,需要特别注意的是:在微处理器方式下,0~3Fh为中断向量、陷阱向量和保留字节;而在微计算机引导方式下,809FC1~809FFFh为中断服务程序和陷阱的分支指令和保留字节,这里强调的是分支地址,而不是向量。即前者直接指定了中断服务程序的入口地址,而后者是通过中断服务程序的分支指令给出中断服务程序的入口地址的,即后者需要对中断服务程序的入口地址进行搬迁。2.5.3外围寄存器地址分配外围寄存器地址被分配在以地址808000h开始的单元中,如图2.10所示。这里所述的外围寄存器是相对于CPU寄存器而言的,即这些寄存器与CPU无直接关联,是分配在16 MB存储空间内的。外围寄存器也可以理解为控制外围设备的寄存器,这些外围设备包括DMA、定时器0、定时器1、串行口和主总线,它们虽然在DSP芯片内部,但相对于算术逻辑单元(ALU)、辅助寄存器运算单元(ARAUs)和乘法器而言,它们与CPU并无直接的关联,因而将其称为外围设备。图2.10外围寄存器的地址分配由图可见,与5种外围设备相关的控制寄存器共19个,具体的关联关系是:
(1) DMA控制寄存器。共4个寄存器,它们分别是:DMA全局控制器寄存器、DMA源地址寄存器、DMA目的地址寄存器、DMA传输计数器。
2)定时器0控制寄存器。共3个寄存器,它们分别是:定时器0全局控制寄存器、定时器0计数器、定时器0周期寄存器。
(3)定时器1控制寄存器。共3个寄存器,它们分别是:定时器1全局控制寄存器、定时器1计数器、定时器1周期寄存器。
(4)串行口控制寄存器。共8个寄存器,它们分别是:串行口全局控制寄存器、发送端口控制寄存器、接收端口控制寄存器、收发定时器控制寄存器、收发计数器、收发周期寄存器、数据发送寄存器、数据接收寄存器。
(5)主总线控制寄存器。仅1个寄存器,用于设置主总线的等待状态以及是否启动高速缓存器等。2.5.4指令高速缓存器指令高速缓冲存储器(Cache)用于存放最近使用过的重复率比较高的指令代码,对于最近出现过的指令,可直接从Cache中取指,从而减少取指所开销的时间,加速指令的运行。当程序存储在外部低速存储器中时,Cache的作用尤为重要,对重复使用过的指令仍可实现单周期取指,减少了由于取指所占用外部总线的时间,有利于DMA及存储器配置为微处理器方式时运行速度的提高(在微处理器方式下,由于不引导,所以程序存储在外部ROM中)。Cache能以完全自动的方式工作而无需用户干涉,用户唯一需要做的是在状态寄存器中设置好是否允许Cache工作的相关控制位。
Cache的结构如图2.11所示,由64个32位字的RAM组成,这64个字分成两个段,每段32个字,这两个段分别称为段0和段1,每段各有一个19位的段基址(SegmentStartAddress,SSA)寄存器,段中的每个字对应一个标志位P,简称P标志,该标志位是32位指令字以外的一个单独的位,用以表明指令代码是否存在。Cache中还有一个段代码堆栈,简称LMRU(Least&MostRecentUsed)堆栈。该堆栈只有两个位,用于存放段代码(0或1),其中栈顶和栈底各1位,栈顶存放最新使用过的段代码,栈底存放次新使用过的段代码,这两种段代码分别简称为LRU(LeastRecentused)和MRU(MostRecentused)。图2.11Cache结构当CPU从外部存储器的某一地址中取指时,首先通过地址的比较来检测Cache中是否已经包含了该指令。首先被读取的指令在外部存储器中的高19位地址与两个SSA寄存器的内容比较,如果相符,则根据低5位地址找到32个字节中的一个,然后查该字节相对应的P标志是“1”还是“0”,如果P = 1,则该指令字就是被取指的指令;如果P = 0,则Cache中的指令与外部存储器中的指令不符,需要根据Cache算法刷新其中一段的内容。Cache控制算法使用的指令地址的划分示于图2.12中,指令地址的19位最高有效位用于选择段,而5位最低有效位在有关的段内定义了指令字地址。图2.12Cache控制算法的地址划分每次对Cache进行存取之后,LMRU堆栈跟踪两段中的哪一段用做最新使用的段,因此栈顶为0或1。若栈顶为0,则栈底必然为1,反之亦然。系统复位时,LMRU的栈顶初始化为0,而栈底初始化为1,指令Cache中的所有P标志均清零。当TMS320VC33需要从外部存储器的某一地址处取指令字时,首先检查Cache中是否已经存放有该地址处的指令,这时会发生两种可能之一:Cache被选中或Cache没被选中。若Cache被选中,即所需的指令包括在Cache中。这时:
(1) Cache中读指令字;
(2)包含该指令的段的代码被推入LMRU堆栈的栈顶,另一个段的代码推到栈底。若Cache没被选中,则指令不包括在Cache中。Cache没有被选中的类型有:
(1)指令字没被选中,段地址寄存器与指令地址的高19位相匹配,但由低5位地址确定的段内的某指令字所对应的P标志不为1,这时:①从外部存储器中读指令字并且拷贝到Cache的对应段中,拷贝后高19位地址和低5位地址与外部指令的地址完全符合,因此将该指令字所对应的P标志置1;②该段的代码推入到LMRU堆栈的栈顶,另一段的段代码移到栈底。
(2)段没被选中,两个段地址寄存器的内容与指令地址的高19位都不符,这时:①次新使用的段的32个字所对应的P标志全部清零;②被读取的指令字的高19位地址写入该段的SSA寄存器;③取指令字并且拷贝到Cache,指令字的低5位地址确定了该指令字在该段中存放的具体位置,拷贝完成后,将Cache中该字所对应的P标志置1;④含有该指令字的段的代码压入LMRU堆栈的栈顶,另一段的段代码移到栈底。需要说明的是:对DSP芯片外部的程序存储器取指时,Cache才有意义,如果是在片内取指,则Cache不工作,也不刷新。关于是否允许Cache工作的控制方法见2.7.7节中的状态控制寄存器。2.6CPU寄存器与其它寄存器
TMS320VC33的CPU寄存器共28个,它们的特点是:①有一个专门的名称;②不占用16 MB的存储空间;③译码时,每一个寄存器都有一个特定的机器代码;④可以通过乘法器和ALU(算术逻辑单元)进行操作。这28个CPU寄存器的名称、机器代码和功能描述如表2.8所示。表2.8CPU寄存器2.6.1扩展精度寄存器寄存器R0~R7称为扩展精度寄存器,这些寄存器的字长为40位,可支持40位的浮点数操作。当对浮点数操作时,任何浮点数的操作指令均使用这些寄存器的39~0位。图2.13给出了扩展精度寄存器中40位浮点数的存储格式,其中39~32位用来存储浮点数的指数e(exponent),30~0位用来存储浮点数的分数f(fraction)值,第31位是符号位s(sign),符号位和分数合起来称为尾数m。图2.13扩展精度寄存器浮点格式当进行整数运算时,扩展精度寄存器只作为32位的寄存器,该整数(有符号或无符号)存放在31~0位。采用有符号或无符号整数进行操作的任何指令仅使用31~0位,39~32位保持不变,这对于所有的移位操作也是适用的。图2.14给出了扩展精度寄存器中32位整数的存储格式。2.6.2辅助寄存器寄存器AR0~AR7称为辅助寄存器(AuxiliaryRegister,AR),这8个辅助寄存器的字长为32位,可通过CPU进行存取,其内容由两个辅助寄存器算术单元(ARAU)修改。辅助寄存器的主要功能是产生24位的地址,尤其是在间接寻址、循环寻址和位翻转寻址指令中有着重要的用途,可极大地简化程序的结构,提高相关、卷积、FIR、IIR以及FFT的运算效率,便于对大量数据的顺序存取进行地址的调整。当然,这8个辅助寄存器也可作为通用寄存器使用。2.6.3数据页指针数据页指针DP(DataPointer)是一个32位的寄存器。TMS320VC33把16 MB存储空间分为256页,每页64 KB,这256个页码用数据页指针寄存器的低8位(即7~0位)表示。通过LDP指令对该寄存器赋值。在间接寻址模式中,DP的低8位用作被寻址的数据页的地址指针,数据页指针寄存器的31~8位被用户保留且总保持为零。2.6.4索引寄存器
32位的索引寄存器(IndexRegister)IR0和IR1的主要用途是给出地址偏移量,多与辅助寄存器配合使用,在间接寻址、循环寻址、位翻转寻址中给出地址的偏移量。当然,IR0和IR1也可用作通用寄存器。2.6.5块规模寄存器
32位的块规模寄存器BK(BlockSizeRegister)的主要用途是给定数据块的大小,即给定循环寻址和位翻转寻址的存储空间的大小。2.6.6系统堆栈指针系统堆栈指针SP(System-stackPointer)是一个32位的寄存器,用来保持系统栈顶地址。SP总是指向最后堆入栈中的元素,中断、陷阱、调用、返回以及PUSH、PUSHF、POP和POPF指令均使用SP。压栈和弹出32位的堆栈指针执行预增和后减操作,并且遵循后进先出的原则;由于TMS320VC33的寻址空间为16 MB,所以只有低24位被用作地址。2.6.7状态寄存器状态寄存器ST(StatusRegister)包含了与CPU状态有关的全部信息。通常CPU根据指令的操作和运行结果是零还是负等情况来设置状态寄存器的标志位,这就是说,状态寄存器的内容会随着数据传输、存储、算术运算、逻辑操作的结果而变化。当对状态寄存器进行写操作时,状态寄存器的内容恒等于源操作数的内容,这保证了状态寄存器内容易于被保护和恢复。在系统复位时,状态寄存器的内容为0。状态寄存器的格式示于图2.15,表2.9中定义了状态寄存器中各位的名称和功能。图2.15状态寄存器表2.9状态寄存器各位的名称和功能2.6.8CPU/DMA中断使能寄存器
CPU/DMA中断使能寄存器IE(InterruptEnable)是一个32位的寄存器,结构如图2.16所示。CPU中断使能位位于第10~0位,DMA中断使能位位于26~16位,CPU/DMA中断使能寄存器中的某位为1则使能相应的中断,若为0则禁止相应的中断。复位时,这个寄存器被写为0。表2.10定义了该寄存器各位的名称和功能。图2.16CPU/DMA中断使能寄存器表2.10CPU/DMA中断使能寄存器各位的名称和功能
2.6.9CPU中断标志寄存器
CPU中断标志寄存器(IF)是一个32位的寄存器,结构如图2.17所示。当一个中断发生时,IF寄存器中相应的位被置1,通过软件对某一位写1也能引起该位相对应的中断,前提是IE寄存器中已经设置了使能该位中断。如果把0写入到IF中的某位,则清除相应的中断。复位时,该寄存器的内容为0。表2.11列出了CPU中断标志寄存器各位的名称和功能。图2.17CPU中断标志寄存器表2.11IF寄存器各位的名称和功能2.6.10I/O控制寄存器
I/O控制寄存器(IOF)是一个32位的寄存器,控制通用I/O引脚XF0和XF1的功能,这些引脚可配置为输入或输出,也可对它们进行读出和写入,结构如图2.18所示。复位时,该寄存器的内容为0。表2.12列出了I/O控制寄存器各位的名称和功能。图2.18I/O控制寄存器表2.12IOF各位的名称和功能2.6.11重复计数器和块重复寄存器
RC、RS、RE这三个寄存器是与重复操作有关的寄存器。重复计数器RC(RepeatCounter)是一个32位的寄存器,当执行一个块重复时,用于确定被重复的次数。当RC=n时,循环执行n+1次。重复起始地址寄存器RS(RepeatStart-address)是一个32位的寄存器,当工作在重复方式时,它包含所要重复的程序块的起始地址。重复结束地址寄存器RE(RepeatEnd-address)是一个32位的寄存器,当工作在重复方式时,它包含所要重复的程序块的结束地址。2.6.12其它寄存器程序计数器PC(ProgramCounter)是一个32位寄存器,它包含下一条被读取的指令的地址。必须说明的是PC寄存器不属于CPU寄存器,其内容可以通过流程控制指令进行修改。指令寄存器IR(InstructionRegister)是一个32位的寄存器,在指令译码期间,它保存指令的操作码。该寄存器被指令译码控制电路使用,CPU不能访问它。2.7中断管理
2.7.1TMS320VC33中断向量表表2.13和表2.14列出了中断向量。TMS320VC33可工作在不同的处理模式下,有MCBL/引脚状态决定的微处理器模式和微计算机引导模式。中断向量包括了中断服务子程序的入口地址,当中断发生时,程序跳转到此处开始执行。另一方面,在微计算机引导模式下,中断向量包含指向中断服务子程序的跳转指令。表2.13微处理器模式下的复位、中断及陷阱向量地址表2.14TMS320VC33微计算机引导模式下的中断及陷阱向量地址2.7.2中断优先级当在同一个时钟周期发生多个中断时,CPU按照中断的优先级来区分中断执行次序。根据中断向量表的位置对中断优先级进行设置,偏移量越靠近向量表基址的中断,其优先级别越高。表2.15给出了中断的优先级顺序。表2.15复位及中断向量优先级2.7.3与中断有关的控制寄存器有三个与中断有关的寄存器,它们相应的位可控制中断的操作,它们是状态寄存器(ST)、中断使能寄存器(IE)、中断标志寄存器(IF)。
(1)状态寄存器中的全局中断使能位GIE置1时,CPU响应相应的中断;该位置0时,所有中断禁止。
(2)通过对中断使能寄存器的每一位操作,可以使能或禁止CPU、DMA、串行口、定时器等中断。
(3)中断标志寄存器包含了中断标志位,指出相应的中断是否已经发生。2.7.4中断标志寄存器描述当中断发生时,中断标志寄存器中相应的位被置1。当CPU或DMA控制器处理此中断时,相应的中断标志位被内部中断获取信号清除为0。但是对于按照优先级排队等待处理的中断来说,如果当中断获取信号发生时仍为低电平,则中断标志位被清零后仅保持一个周期后又被置位,因为仍然为低。当为0时,IF寄存器中相应的位同样有可能为0,这取决于何时对IF寄存器进行读操作。TMS320VC33复位时IF寄存器为0,并清除所有的等待处理的中断。通过软件控制可以读取和写入中断标志寄存器的各个位。向IF寄存器的位写入1,即设置相应的中断标志位1,同样写0可以将相应的中断标志复位为0。通过这种方法,可以使用软件对所有的中断进行触发和清除。所有内部中断均占用一个H1/H3周期,如需保存IF寄存器中某一位的值,可直接对IF进行逻辑指令的操作,以此方式对IF寄存器进行修改。IF的加载有优先级,若对IF寄存器的加载动作与中断脉冲对标志进行复位的动作同时发生,则对标志的加载拥有更高的优先级,由此决定写入IF寄存器的值。2.7.5中断处理过程
TMS320VC33允许CPU和DMA并行响应处理中断。中断处理流程如图2.19所示。图2.19CPU和DMA中断处理示意图当CPU中断发生时,至少需要满足以下两个条件:
(1)将状态寄存器(ST)中的GIE位置1,对所有的中断进行全局使能;
(2)设置IE寄存器,对相应的中断进行使能。在CPU中断处理期间,IF寄存器中相应的标志位被清零,同时中断被全局禁止(GIE=0)。PC指针被压入,中断向量被取出加载到PC,同时CPU开始执行中断服务子程序(ISR)中的第一条指令。若希望中断服务子程序可以被中断,那么当进入ISR中断服务子程序后,设置GIE=1,这样中断服务可以被另外的中断暂停。需要注意的是,中断只在取指令时响应,若取指令因传输冲突或RPTS循环的执行而停止,则直到下一个取指令时,中断才可被响应。在执行RPTS的过程中不响应中断;在执行完紧跟在延迟跳转指令后面的3条指令之前,不响应中断;已经完成了取指而处于译码、读操作数和执行阶段的所有指令在被执行完后才能响应中断,而正处于取指令阶段的指令将被停止操作。2.7.6CPU中断响应时间从获取中断到执行中断服务子程序的第一条指令之前的时间被定义为CPU中断响应时间,这个阶段至少持续8个周期。表2.16解释了这8个周期,假定所有的指令均为单周期指令。表2.16中断响应描述2.7.7外部中断
TMS320VC33支持多个内部和外部中断。外部中断是在内部进行同步的,时钟H1/H3驱动3个触发器,如图2.20所示。如果中断有效,则中断输出将置位相应的中断标志寄存器(IF)。图2.20中断逻辑功能框图在H1信号的下降沿或脉冲持续时间对中断~进行触发,同时内部通过一系列的H1/H3锁存,这些锁存需要中断信号至少在一个H1/H3时钟周期内保持低电平,便于TMS320VC33进行识别。当有中断在同一个时钟周期到来时,通过选择其中之一先执行来确定中断优先级。当中断发生时,状态寄存器ST的GIE位被复位为0,禁止任何到来的中断。由此阻止了其他的中断~取得程序控制权,直到ST的GIE位被设置为1后。中断子程序返回时,RETI或RETIcond指令将ST的GIE位设置为1。对于TMS320VC33来说,外部中断为电平触发方式时,低电平的持续时间至少为一个H1/H3周期,但不能超过两个H1/H3周期,否则会被认为是多个中断。2.8外围设备
TMS320VC33有两个定时器:一个串行口和一个DMA(DirectMemoryAccess),它们是通过外围总线上的存储器映射寄存器来管理的,因而将其称为外围设备。管理这些外围设备的寄存器共18个,其中定时器0和定时器1各有3个寄存器,串行口有8个寄存器,DMA有4个寄存器。2.8.1定时器
TMS320VC33有两个32位的定时器,每个定时器有两种信号模式及内部或外部时钟模式,可以使用定时器定时一定周期的脉冲或方波信号输出,或者对外部的事件计数。使用内部时钟时,定时器可以发出信号作为外部设备(如A/D转换器)的控制信号,或者可以中断DMA控制器以开始一次数据传输。定时器中断是内部中断的一种。在外部时钟的作用下,定时器可以对外部事件进行计数,并且在指定的事件发生后中断CPU。上述两个定时器的功能、结构、控制寄存器的内容和用法是完全相同的,所不同的仅是地址。每个定时器都由一个32位的计数器、一个比较器、一个输入时钟选择器、一个脉冲发生器及支撑硬件组成,如图2.21所示。定时器的工作过程为:时钟选择器用于选择计数器的时钟源,该时钟可以采用DSP内部的CPU时钟,也可以采用外部的时钟,还可以对输入的内部或外部时钟进行反向。当采用内部时钟时,输入计数器的最高频率是CPU时钟频率fH1的1/2,或周期的2倍,记作2TH1;当采用外部时钟时,外部时钟的最高频率是CPU时钟频率fH1的1/2.6。周期寄存器用于存放需要计数的个数,计数器用于累计实际的计数值,比较器对周期寄存器和计数器的值进行比较,当二者相等时,可通过脉冲发生器产生定时器的输出信号,同时将信息反馈到定时器的全局控制寄存器的状态位TSTAT。图2.21定时器的原理框图每一个定时器有三个控制寄存器:定时器全局控制寄存器、周期寄存器、计数器。它们在存储器中的地址如图2.22所示,为了便于比较,该图还同时给出了串行口、DMA和主总线控制寄存器的地址。图2.22定时器及其它外围寄存器的地址
1.定时器引脚定时器0和定时器1各对应一个引脚,分别记为TCLK0和TCLK1,每个引脚可单独设置为定时器方式或通用I/O方式。即使设置为定时器方式,引脚TCLK0和TCLK1也有输入或输出两种功能。
2.定时器控制寄存器每个定时器使用了三个存储器映射寄存器,在存储器中的地址如图2.22所示。其功能如下:
(1)全局控制寄存器(Global-controlRegi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肥胖与糖尿病前期并发症-洞察及研究
- 护肤品成分对皮肤屏障功能的影响-洞察及研究
- 羟丙基甲基纤维素在食品包装中的应用-洞察及研究
- 分布式图像大数据存储与分析技术-洞察及研究
- 膜蛋白靶向药物的精准递送研究-洞察及研究
- 巨噬细胞在肿瘤微环境中的信号转导研究-洞察及研究
- 多源数据协同处理与智能分析-洞察及研究
- GB/T 46928-2025动植物油脂甘油一酯、甘油二酯、甘油三酯和甘油的测定高效体积排阻色谱法(HPSEC)
- 2025年高职邮政通信管理(邮政运营规范)试题及答案
- 2025年高职中医学(中医辨证论治)试题及答案
- ab股权协议书范本
- 工程造价审计服务投标方案(技术方案)
- 蟹苗买卖合同协议
- 胸外科手术围手术期的护理
- 测绘公司创新技术应用及成果
- 全球著名空港产业发展案例解析
- 科技领域安全风险评估及保障措施
- 锅炉水质化验记录表(完整版)
- 钢筋工劳务合同
- 仓储物流行业普洛斯分析报告
- DB33T 2188.3-2019 大型赛会志愿服务岗位规范 第3部分:抵离迎送志愿服务
评论
0/150
提交评论