TMS320F24x的实时多中断任务处理

时间:2020-10-06 19:42:41 理工毕业论文 我要投稿

TMS320F24x的实时多中断任务处理

摘要:TMS320F240是TI公司定点DSP芯片F24x系列中具有代表性的一种。在分析其多中断源共享DSP内核同一中断级原理的基础上,探讨该系列芯片在实时多中断任务处理的软件编程过程中的实现方法,并给出具体的应用实例。

引言

TMS320F240内部集成了完善的外围设备,包括2个10位的A/D转换器和1个串口通信接口模块(SCI),以及其独有的、可提供3个16位的定时器,3个单比较单元和3个全比较单元的事件管理器(event manager)单元。F240芯片采用多个中断源共享DSP内核同一中断级的中断结构,与常用的数学控制芯片相比,它提供了更多的中断源,可以满足对复杂控制对象的实时多中断任务处理要求,使得用户能更加方便、灵活地编写中断处理程序。

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。