DSP芯片的中断系统.doc

上传人:人*** 文档编号:542101377 上传时间:2023-07-15 格式:DOC 页数:5 大小:65.51KB
返回 下载 相关 举报
DSP芯片的中断系统.doc_第1页
第1页 / 共5页
DSP芯片的中断系统.doc_第2页
第2页 / 共5页
DSP芯片的中断系统.doc_第3页
第3页 / 共5页
DSP芯片的中断系统.doc_第4页
第4页 / 共5页
DSP芯片的中断系统.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《DSP芯片的中断系统.doc》由会员分享,可在线阅读,更多相关《DSP芯片的中断系统.doc(5页珍藏版)》请在金锄头文库上搜索。

1、TMS320C2000、TMS320C5000、TMS320C6000DSP的中断系统的比较以及TMS320C54x在中断编程中的注意事项 姓名:刘帅民 学号:201120195005 专业:通信与信息系统摘要:本文中主要针对TI公司生产的TMS320C2000系列、TMS320C5000系列和TMS320C6000系列DSP的中断系统进行简要概述,最后又简要叙述了编写TMS320C54x DSP芯片的中断程序应该注意的事项。Abstract: The article focused on the briefly discusses of TIs TMS320C2000 Series,TMS3

2、20C5000 Series and TMS320C6000 Series DSPs interrupt system,finally a brief description should be payed attention to when write the interrupt program of the TMS320C54x DSP chip .一、 中断的概述中断是指使CPU 暂停执行当前程序而转去执行中断子程序(ISR)的过程。中断分为两类:(1)可屏蔽中断(可通过软件禁止);(2)不可屏蔽中断(不能被软件禁止)。CPU一般通过以下四个步骤处理中断:(1)检测到中断请求信号;(2)

3、允许中断:对于可屏蔽中断来说需要满足一定的条件,对于不可屏蔽中断则立即响应;(3)保护现场(自动将寄存器STO,T,AI ,AH,PI ,PH,ARO,AR1,DP,ST1,DBGSTAT,PC,IER压栈保存),读取中断向量并将它赋给程序指针PC。(4)转入执行中断服务子程序(ISR)。三大系列DSP芯片的结构不同,实现的功能也不同,所以,三者的中断系统也不同。下面对三者的中断系统做一个简单的比较。二、 三大系列DSP芯片的中断系统比较1、TMS320C2000的中断系统C2000系列DSP中断可由硬件(中断引脚、外部设备、片内外设)或软件(INTR、 IFR指令或TRAP指令)触发。C20

4、00具有包括复位中断向量在内的32个中断向量,它们构成了CPU中断向量表。每个中断向量对应于中断服务子程序ISR入口的22位地址。当多个中断同时发生时,CPU会按照中断优先级来处理中断,优先级高的先响应,优先级低的后响应。1)可屏蔽中断C2000CPU的可屏蔽中断包括INT1INT14、DIOGINT和RTOSINT。其中,INT1INT14是普通GPIO 中断,DIOGINT和RTOSINT 中断只在实时仿真时使用。可屏蔽中断由控制寄存器来控制。(1)中断标志寄存器(IFR):每个比特位对应一个可屏蔽中断。IFR位为1表明有中断等待处理。(2)中断使能寄存器(IER):每个比特位对应一个可屏

5、蔽中断。IER位为1表明相应的中断打开。(3) CPU调试中断使能寄存器(DBGIER):功能与IER相同,仅用于实时仿真模式。(4) 全局中断使能位INTM:ST1寄存器的第1个比特。当它为0时,全局中断使能开。在实时仿真模式中,INTM被忽略。2)不可屏蔽的中断当C2000检测到不可屏蔽中断时,会立即转入相应的中断服务子程序。不可屏蔽中断包括:(1) 所有软件中断(INTR、TRAP指令):执行INTR中断指令时,相应的IER位会自动清0,而TRAP指令不对IFR或IER产生影响。(2) 硬件中断NMI:由NMI输入管脚的低电平触发。(3)非法指令中断(Illegalinstruction

6、trap):遇到非法的指令操作时触发此中断。(4) 硬件复位中断(RS):当输入信号RS触发此中断时,CPU寄存器被复位到初始值,然后转入执行相应的复位中断子程序。2、TMS320C5000的中断系统C5000DSP支持软件中断和硬件中断。软件中断由程序指令(INTR、TRAP、RESET指令)引起。硬件中断包括外部硬件中断和内部硬件中断,分别由外部中断信号和片内外设中断信号引起。外部硬件中断如 ,内部硬件中断包括定时器、串行口、主机接口引起的中断。软件中断不分优先级,当同时有多个硬件中断时,硬件中断有优先级,C5000DSP按照中断优先级别的高低对它们进行服务。C5000 DSP的中断可以分

7、成如下两大类:第一类是可屏蔽中断。这些都是可以用软件来屏蔽或用软件来使能的硬件和软件中断源。C5000DSP最多可以支持16个用户可屏蔽中断。第二类是不可屏蔽中断。这些中断是不能够屏蔽的。C5000DSP总是响应这一类中断。C5000 DSP的非屏蔽中断包括所有的软件中断与和两个外部硬件中断,这两个中断可通过硬件控制也可通过软件控制。复位中断对C5000 DSP所有操作方式产生影响,而中断不会对C5000DSP的任何操作模式产生影响。但中断被声明时,禁止所有其它中断。中断标志寄存器和中断屏蔽寄存器都是存储器映射的CPU寄存器。IFR对各硬件中断进行标志,当一个中断触发时,IFR中的相应的中断标

8、志位置1,直到CPU识别该中断为止。IMR对各硬件中断进行屏蔽或使能,某位为0表示此中断被屏蔽(禁止),某位为1表示此中断使能(以状态寄存器INTM位为0为前提条件)。1) 中断响应过程 (1)接收中断请求一个中断由硬件器件或软件指令请求。当产生一个中断请求时,IFR寄存器中相应的中断标志位被置位。不管中断是否被处理器应答,该标志位都会被置位。当相应的中断被响应后,该标志位自动被清除。1)硬件中断请求外部硬件中断由外部中断口的信号发出请求,而内部硬件中断由片内外设的信号发出中断请求。2)软件中断请求软件中断由如下程序指令发出中断请求:(1) INTR 该指令允许执行任何一个中断服务程序。指令操

9、作数(K)表示CPU分支转移到哪个中断向量地址。当应答INTR中断时,ST1寄存器的中断模式位(INTM)被设置为1以禁止可屏蔽中断。(2) TRAP 该指令执行的功能与INTR指令一致,但不用设置INTM位。(3) RESET 该指令执行一个非屏蔽软件复位,可以在任何时候被使用并将C5000DSP置于已知状态。RESET指令影响ST0和ST1寄存器,但是不会影响PMST寄存器。当应答RESET指令时,INTM位被调协为1以禁止可屏蔽中断。IPTR和外设寄存器的初始化与硬件复位的初始化是不同的。 (2)应答中断硬件或软件中断发送了一个中断请求后,CPU必须决定是否应答该中断请求。软件中断和非屏

10、蔽硬件中断会立刻被应答,可屏蔽中断仅仅在如下条件满足后才被应答。1)最高优先级当超过一个硬件中断同时被请求时,C5000DSP按照中断优先级响应中断。2) INTM位清0ST1的中断模式位(INTM)使能或禁止所有可屏蔽中断。(1)当INTM=0,所有非屏蔽中断被使能。(2)当INTM=1,所有非屏蔽中断被禁止。当响应一个中断后,INTM位被置1。如果程序使用RETE指令退出中断服务程序(ISR)后,从中断返回后INTM重新使能。使用硬件复位或执行RSBX INTM指令(禁止中断)会将INTM位置1。通过执行BSBX INTM指令(使能中断),可以复位INTM位。INTM不会自动修改IMR或I

11、FR。3) IMR屏蔽位为1每个可屏蔽中断在IMR中有自己的屏蔽位。为了使能一个中断,可以将屏蔽位置1。INTR指令会强制PC到相应地址,并且获取软件向量。当CPU读取软件向量的第一个字时,它会产生(中断应答信号)信号,而清除相应的中断标志位。对于被使能的中断,当产生(中断应答信号)信号时,在CLKOUT的上升沿,地址位A6A2会指明中断号。如果中断向量驻留在片内存储器,并且用户想查看这些地址,C5000DSP必须在地址可见模式下工作(AVIS=1),以便中断号被译码。如果当C5000DSP处于Hold模式并且HM=0时,则会产生一个中断。当信号有效时,地址不可见。 (3)执行中断服务程序当应

12、答中断后,CPU会采取如下的操作:(1)保存程序计数器(PC)值(返回地址)到数据存储器的堆栈顶部。程序计数器扩展寄存器(XPC)不会压入堆栈的顶部,也就是说,它不会保存在堆栈中。因此,如果ISR位于和中断向量表不同的页面,用户必须在分支转移到ISR之前压入XPC到堆栈中。FRETE指令可以从ISR返回。(2)将中断向量的地址加载到PC。(3)获取位于向量地址的指令(分支转移被延时,并且用户也存储了一个2字指令或两个1字指令,则CPU也会获取这两个字)。(4)执行分支转移,转到中断服务程序(ISR)地址(如果分支转移被延时,则在分支转移之前会执行额外的指令)。(5)执行ISR,直到一个返回指令

13、中止ISR。(6)将返回地址从堆栈中弹出到PC中。(7)继续执行主程序。3、TMS320C6000的中断系统1)中断源C6000支持软件中断和硬件中断。软件中断由指令产生中断请求,硬件中断可以来自外设的一个请求信号,如外部中断。不同型号的DSP定义中断号所对应的中断功能不同,为了达到统一使用中断号功能,DSP可以使用中断复用寄存器进行重新映射。通过中断复用寄存器映射可以把中断源映射到任何CPU中断。2) 常用中断寄存器 通过对中断寄存器进行配置,可实现各种中断功能。常用的中断寄存器如下: IER (中断使能寄存器) IFR(中断标志寄存器) ISR(中断设置寄存器) ICR(中断清除寄存器)

14、ISTP(中断向量表起始地址寄存器中断向量程序的地址可以通过ISTP寄存器进行重新映射)MUXH(中断复用寄存器)MUXL(中断复用寄存器)通过DSP data sheet可以很容易找到寄存器的绝对地址,但为了减少配置错误和方便移植,在编程时一般采用CSL函数对中断寄存进行配置。3) CSL(DSP API函数)函数使用说明在开发DSP的过程中一定要用好CSL函数,它给DSP的编程带来很多方便。使用CSL函数可以使程序易于理解和维护,同时可以有效避免在编程中的笔误。IRQ_clear(IRQ_EVT_TINT0);/对IFR寄存器进行操作,定时中断标志位清零。IRQ_enable(IRQ_EV

15、T_TINT0;/对IER寄存器进行操作,使能定时中断。IRQ_map(IRQ_EVT_TINT0,12);/对MUX寄存器进行配置,根据需要把中断号进行重新映射。IRQ_globalEnable();/对CSR中GIE标志位进行配置,标志位置1; 相应的CSL函数可以在CCS自带的PDF文档TMS320C6000Chip Support Library API Reference Guide中进行查找。4) 中断响应流程图5) 中断过程描述1. 上电复位,产生复位中断请求,上电中断无需确认,直接执行。 2. STW B0,*-B15; 进行现场保护3. MVKL addr,B0; MVKH

16、addr,B0;载入中断向量表,将中断向量表送入程序指针。4. B B0;跳转至B0中存储的地址,执行中断向量表。5. 执行_c_int00进行初始化6. 跳转至main()执行CSL函数,IO口,定时器等初始化。7. 执行while循环。8. 定时时间到,产生定时中断。 9. 重复执行2-4步骤10. 执行中断服务程序c_int14。11. 中断返回 12. LDW *B15+,B0 恢复现场。13. 继续执行while循环。三、中断编程的注意事项在中断程序的编写时有许多问题要注意,下面结合TMS320C54x的中断程序简要叙述一下在编写程序时应该注意的一些事项。TMS320C54x的中断向量可以映

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号