TMS320F24x的实时多中断任务处理
关键词:TMS320F240 实时多中断任务 ISR GISR SISR
引言
TMS320F240内部集成了完善的外围设备,包括2个10位的A/D转换器和1个串口通信接口模块(SCI),以及其独有的、可提供3个16位的定时器,3个单比较单元和3个全比较单元的事件管理器(event manager)单元。F240芯片采用多个中断源共享DSP内核同一中断级的中断结构,与常用的数学控制芯片相比,它提供了更多的中断源,可以满足对复杂控制对象的实时多中断任务处理要求,使得用户能更加方便、灵活地编写中断处理程序。
(凹丫丫范文网fanwen.oyaya.net收集整理)
1 TMS320F240中断系统的特点及中断响应过程
1.1 TMS320F240的中断系统的特点
TMS320F240芯片中断系统的基本特点是:通过赋予每个中断源以不同的优先级,使多个中断源可以共享DSP内核中同一中断级,从而提供更多的中断源和更灵活的中断处理方法。具体而言,在F240器件中,所有的中断请求都是送至DSP内核进行处理的。对可屏蔽中断,DSP内核只提供了6个可屏蔽的中断级(INT1~INT6)。而F240的可屏蔽中断源大大超过了6个(例如:仅F240器件的3个通用定时器就有12个可屏蔽中断源,用户可使用的中断源则多达36个)。所以,在F240中,这6个中断级中的每一个都会被多个中断源共享,即F240在实现多中断任务时,基本上都会出现多中断源共享DSP内核同一中断的情况。当多于一个的硬件中断被触发挂起时,F240将根据优先级别的高低顺序执行相应的中断服务子程序。F240器件可以识别下列4种类型的中断源:
①复位中断;
②由6个外部引脚(XINT1、XINT2、XINT3、PDPINT、RS以及NMI引脚)产生的外部中断;
③由片内外设模块,包括事件管理模块(EV)、A/D转换模块(ADC)、串行通信模块(SCI)等产生的外设中断;
④由INTR指令、NMI指令或TRAP指令等引起的软件中断等。
其中,除了软件中断、两个外部硬件中断RS和NMI是不可屏蔽中断之外,其余的都是可屏蔽中断。相对于可屏蔽中断而言,不可屏蔽中断涉及的寄存器较少,处理方法较为简便。文中主要对可屏蔽中断的多中断任务处理进行详细分析。
1.2 TMS320F240多级中断寄存器的结构
在TMS320F240的程序空间中,中断向量占据了0000h~0003fh的地址空间。中断向量地址被分为两个地址单元,从而双字的转移指令可存放在这些单元中。为了处理多中断源共享DSP内核同一中断级的问题,DSP内部提供了多级中断控制寄存器以满足需要。
(1)CPU总中断级寄存器
①中断屏蔽寄存器(IMR)。它包含用于使能或禁止每一中断级(INT1~INT6)的屏蔽位,地址为0004h,各位情况如图1所示。它用来屏蔽外部和内部硬件中断(NMI和RS除外)。当要屏蔽某硬件中断时,就把相应位清0;当要开放某硬件中断时,就把相应位置1,并且它的每一位不受硬件复位的影响。在图1中,0表示一般情况下读的数为0,R表示读,W表示写,-0表示复位后这位为0。
②中断标志寄存器(IFR)。它包含用以指示INT1~INT6中断级中,已经发送至CPU的可屏蔽中断请求的标志位,地址为0006h,各位情况如图2所示。当有一个可屏蔽中断到达CPU时,IFR的相应标志位就置1,表明相应中断(INT1