保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

TMS320F24x的实时多中断任务处理


断的向量偏地址写入到对应的事件管理中断向量寄存器(EVIVRA/EVIVRB/EVIVRC)中。而对于由系统外设模块产生的中断,DSP控制器将分配的中断向量偏移地址写入到系统中断向量寄存器(SYSIVR)中。用户可以通过读取该寄存器来取得外设中断的中断向量偏移地址。所以在编程开发时,先要编好一个中断向量表,对于没有用到的中断也应该编上,并让它返回到一个空位置,以免发生意外情况。这里,给出事件管理器B组的INT3级中断向量寄存器的结构示意图,如表1所列。关于每一个中断级的中断向量寄存器(IVR)单元和每一中断事件的偏移量的详细信息,见F240的数据手册。

表1 TMS320F240 INT3级中断控制向量表

中断源名称 DSP内核中断级向量地址 外设向量寄存器地址 外设向量偏移地址 是否可屏蔽 控制器模块 中断功能 TPINT2 INT3(0006H)

事件管理器中断组B EVIVRB(7433H) 002AH 可 EV.GPT2 定时器2周期中断 TCINT2 002CH 可 EV.GPT2 定时器2比较中断 TUFINT2 002DH 可 EV.GPT2 定时器2下溢中断 TOFINT2 002EH 可 EV.GPT2 定时器2上溢中断 TPINT3 002FH 可 EV.GPT3 定时器3周期中断 TCINT3 0030H 可 EV.GPT3 定时器3比较中断 TUFINT3 0031H 可 EV.GPT3 定时器3下溢中断 TOFINT3 0032H 可 EV.GPT3 定时器3上溢中断

2 TMS320F240实时多中断任务处理的软件实现

由于F240器件采用了多个中断源共享内核同一中断级的中断方式,不仅提供了更多的中断源,而且使得用户能方便地处理各种中断源的中断请求。

如图5所示,当系统有多中断任务产生时,一旦有中断任务被响应,则CPU终止当前正在执行的程序代码,转移至中断服务子程序并执行。中断服务子程序主要分两个步骤完成。

①转移至通用中断服务子程序(GISR-G功Interrupt Service Routine)。当中断级中的某一个中断被响应时,CPU将转移至相应的向量地址,并根据该地址转移至GISR。例如,若INT3中的一个中断被响应,则程序计数器(PC)值被存入栈顶,然后PC机中装入程序寄存器地址0006h。地址0006h和0007h中包含一条转移指令。该指令使CPU转移至GISR。

②转移至特定中断服务子程序(SISR-Special Interrupt Service Routine)。当一个外设中断请求被响应时,外设产生一个相应于该特定中断事件的向量地址偏移量。该偏移量通常被锁存在系统中断向量寄存器(SYSIVR)或事件管理中断向量寄存器(EVIVRA/EVIVRB/EVIVRC)中。GISR必须读取存储在IVR中的值,确定具体的子中断源,并据此产生转移至SISR的转移目标地址,然后进行特定的中断处理。

在对SISR进行处理完毕之后,ISR以一条返回指令RET结束。该指令将把返回地址从堆栈弹出。然后,CPU继续执行被中断的代码序列。

如果对于某一中断级,并没有多中断源共享的情况,则直接在GISR中进行中断处理即可。此时,没有必要进入SISR进行子中断源的判断。另外,进入中断后,INTM位自动置1,以防止其它的可屏蔽中断。若想允许中断嵌套,则要在ISR中清除INTM位(CLRC INTM),在全局上重新使能可屏蔽中断,使得新的ISR得以嵌套。

图6 中断服务程序结构框图

    下面结合一个具体的机器人DSP控制程序,给出DSP实时多中断任务处理的实例。在本机器人DSP控制程序中,一共要完成四个中断实时处理任务,并且涉及到了多个中断源共享DSP内核同一中断级的中断方式。中断服务程序结构框图如图6所示。串行中断SCI占用了INT1第一级中断,完成DSP与上位机的通信任务。定时器T1中断占用了INT2第二级中断,完成传感器的位置信息采集和PID控制任务。而定时器T2中断和定时器T3中断则共用了INT3第三级中断,完成

《TMS320F24x的实时多中断任务处理(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/164989.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。