第3章 TMS320C54xTMDSP中断系统_第1页
第3章 TMS320C54xTMDSP中断系统_第2页
第3章 TMS320C54xTMDSP中断系统_第3页
第3章 TMS320C54xTMDSP中断系统_第4页
第3章 TMS320C54xTMDSP中断系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 tms320c54xtm dsp中断系统 第3章 tms320c54xtm dsp中断系统 3.1 c54x中断系统概述中断系统概述3.2 中断分类中断分类3.3 中断标志寄存器中断标志寄存器(ifr)和中断屏蔽寄存器和中断屏蔽寄存器(imr) 3.4 中断响应过程中断响应过程3.5 重新映射中断向量地址重新映射中断向量地址3.6 中断和中断向量表中断和中断向量表3.7 复位中断复位中断( ) 习习 题题 rs第3章 tms320c54xtm dsp中断系统 3.1 c54x中断系统概述中断系统概述 所谓中断是指这样一个过程:cpu正处理某件事情(执行程序)时,外部发生了某一事件并向c

2、pu发信号请求去处理,cpu暂时中断当前工作,转去处理这一事件(进入中断服务程序),处理完再回来继续原来的工作。实现这种功能的部件称为中断系统,产生中断的请求源称为中断源。第3章 tms320c54xtm dsp中断系统 c54x dsp支持软件中断和硬件中断。软件中断由程序指令(intr、trap、reset指令)引起。硬件中断包括外部硬件中断和内部硬件中断,分别由外部中断信号和片内外设中断信号引起。外部硬件中断如 ,内部硬件中断包括定时器、串行口、主机接口引起的中断。软件中断不分优先级,当同时有多个硬件中断时,硬件中断有优先级,c54x dsp按照中断优先级别的高低(1表示优先级最高)对它

3、们进行服务。0int3int第3章 tms320c54xtm dsp中断系统 3.2 中中 断断 分分 类类 c54x dsp的中断可以分成如下两大类: 第一类是可屏蔽中断。这些都是可以用软件来屏蔽或用软件来使能的硬件和软件中断源。c54x dsp最多可以支持16个用户可屏蔽中断。 第二类是不可屏蔽中断。这些中断是不能够屏蔽的。c54x dsp总是响应这一类中断。c54x dsp的非屏蔽中断包括所有的软件中断 与 和两个外部硬件中断,这两个中断可通过硬件控制也可通过软件控制。复位中断 对c54x dsp所有操作方式产生影响,而 中断不会对c54x dsp的任何操作模式产生影响。但 中断被声明时

4、,禁止所有其他中断。rsnminminmi第3章 tms320c54xtm dsp中断系统 3.3 中断标志寄存器中断标志寄存器(ifr) 和中断屏蔽寄存器和中断屏蔽寄存器(imr) 中断标志寄存器和中断屏蔽寄存器都是存储器映射的cpu寄存器。ifr对各硬件中断进行标志,当一个中断触发时,ifr中的相应的中断标志位置1,直到cpu识别该中断为止。imr对各硬件中断进行屏蔽或使能,某位为0表示此中断被屏蔽(禁止),某位为1表示此中断使能(以状态寄存器intm位为0为前提条件)。 第3章 tms320c54xtm dsp中断系统 图3.1所示为部分常用c54x dsp的ifr。对ifr来说,某位为

5、1表示dsp收到了一个相应的中断请求,用软件将ifr某位置1,等效于dsp收到了一个中断请求。通常在开始某中断前,都将ifr对应位中记录的过期中断标志清0。图3.1 c54x dsp中断标志寄存器(ifr)1512 11 10 9 8 7 6 5 4 3 2 1 0 resvd bxint1 brint1 brint1 int3 txint trint rxint0 brint0 tint int2 int1 int0 (a) c548 ifr 151 11 10 9 8 7 6 5 4 3 2 1 0 resvd bmint1 bmint1 brint int3 txint trint rx

6、int0 brint0 tint int2 int1 int0 (b) c549 ifr 第3章 tms320c54xtm dsp中断系统 1514 13 12 11 10 9 8 7 6 5 4 3 2 1 0 resvd dmac5 dmac4 bxint1 或 dmac3 brint1 或 dmac2 hpint int3 tint1 或 dmac1 dmac0 bxint0 brint0 tint0 int2 int1 int0 (c) c5402 ifr 1514 13 12 11 10 9 8 7 6 5 4 3 2 1 0 resvd dmac5 dmac4 bxint1 或 d

7、mac3 brint1 或 dmac2 hpint int3 bxint2 或 dmac1 brint2 或 dmac0 bxint0 brint0 tint0 int2 int1 int0 (d) c5410 ifr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 resvd ipint dmac5 dmac4 bxint1 或 dmac3 brint1 或 dmac2 hpint resvd bxint2 或 dmac1 brint2 或 dmac0 bxint0 brint0 tint0 resvd int1 int0 (e) c5420 ifr 图3.1 c

8、54x dsp中断标志寄存器(ifr)第3章 tms320c54xtm dsp中断系统 图3.2所示为部分常用c54x dsp的imr, 和 都不包括在imr中,imr不能控制这两个中断。rsnmi1512 11 10 9 8 7 6 5 4 3 2 1 0 resvd bxint1 brint1 hpint int3 txint trint rxint0 brint0 tint- int2 int1 int0 (a) c548 imr 1514 13 12 11 10 9 8 7 6 5 4 3 2 1 0 resvd bmint1 bmint1 bxint1 brint1 hpint in

9、t3 fxint trint bxomt0 brint0 tint int2 int1 int0 (b) c549 imr 图3.2 c54x dsp中断屏蔽寄存器(imr) 第3章 tms320c54xtm dsp中断系统 图3.2 c54x dsp中断屏蔽寄存器(imr) 1514 13 12 11 10 9 8 7 6 5 4 3 2 1 0 resvd dmacs dmac4 bxint1 或 dmac3 brint1 或 dmac2 hpint int3 bxint2 或 dmac1 brint2 或 dmac0 bxint0 brint0 tint0 int2 int1 int0

10、(c) c5402 imr 1514 13 12 11 10 9 8 7 6 5 4 3 2 1 0 resvd dmacs dmac4 bxint1 或 dmac3 brint1 或 dmac2 hpint int3 bxint2 或 dmac1 brint2 或 dmac0 bxint0 brint0 tint0 int2 int1 int0 (d) c5410 imr 15 1 13 12 11 10 9 8 7 6 5 4 3 2 1 0 resvd ipint dmac5 dmac4 bxint1 或 dmac3 brint1 或 dmac2 hpint resvd bxint2 或

11、 dmac1 brint2 或 dmac0 bxint0 brint0 tint0 resvd int1 int0 (e) c5420 imr 第3章 tms320c54xtm dsp中断系统 3.4 中断响应过程中断响应过程 1接收中断请求接收中断请求 一个中断由硬件器件或软件指令请求。当产生一个中断请求时,ifr寄存器中相应的中断标志位被置位。不管中断是否被处理器应答,该标志位都会被置位。当相应的中断被响应后,该标志位自动被清除。 1) 硬件中断请求 外部硬件中断由外部中断口的信号发出请求,而内部硬件中断由片内外设的信号发出中断请求。第3章 tms320c54xtm dsp中断系统 2)

12、软件中断请求 软件中断由如下程序指令发出中断请求: (1) intr 该指令允许执行任何一个中断服务程序。指令操作数(k)表示cpu分支转移到哪个中断向量地址。表3.13.6列出了用于指向每个中断向量位置的操作数k。当应答intr中断时,st1寄存器的中断模式位(intm)被设置为1以禁止可屏蔽中断。 (2) trap 该指令执行的功能与intr指令一致,但不用设置intm位。第3章 tms320c54xtm dsp中断系统 (3) reset 该指令执行一个非屏蔽软件复位,可以在任何时候被使用并将c54x dsp置于已知状态。reset指令影响st0和st1寄存器,但是不会影响pmst寄存器

13、。 当应答reset指令时,intm位被调协为1以禁止可屏蔽中断。iptr和外设寄存器的初始化与硬件复位的初始化是不同的。第3章 tms320c54xtm dsp中断系统 2应答中断应答中断 硬件或软件中断发送了一个中断请求后,cpu必须决定是否应答该中断请求。软件中断和非屏蔽硬件中断会立刻被应答,可屏蔽中断仅仅在如下条件满足后才被应答。 1) 最高优先级 当超过一个硬件中断同时被请求时,c54x dsp按照中断优先级响应中断请求。表3.13.6列出了部分c54x dsp的硬件中断和优先级。第3章 tms320c54xtm dsp中断系统 2) intm位清0 st1的中断模式位(intm)使

14、能或禁止所有可屏蔽中断。 (1) 当intm=0,所有非屏蔽中断被使能。 (2) 当intm=1,所有非屏蔽中断被禁止。 当响应一个中断后,intm位被置1。如果程序使用rete指令退出中断服务程序(isr)后,从中断返回后intm重新使能。使用硬件复位( )或执行rsbx intm指令(禁止中断)会将intm位置1。通过执行bsbx intm指令(使能中断),可以复位intm位。intm不会自动修改imr或ifr。rs第3章 tms320c54xtm dsp中断系统 3) imr屏蔽位为1 每个可屏蔽中断在imr中有自己的屏蔽位。为了使能一个中断,可以将屏蔽位置1。 intr指令会强制pc到

15、相应地址,并且获取软件向量。当cpu读取软件向量的第一个字时,它会产生 (中断应答信号)信号,而清除相应的中断标志位。 对于被使能的中断,当产生 (中断应答信号)信号时,在clkout的上升沿,地址位a6a2会指明中断号。如果中断向量驻留在片内存储器,并且用户想查看这些地址,c54x dsp必须在地址可见模式下工作(avis=1),以便中断号被译码。如果当c54x dsp处于hold模式并且hm=0时,则会产生一个中断。当 信号有效时,地址不可见。iackiackiack第3章 tms320c54xtm dsp中断系统 3执行中断服务程序执行中断服务程序 当应答中断后,cpu会采取如下的操作:

16、 (1) 保存程序计数器(pc)值(返回地址)到数据存储器的堆栈顶部。程序计数器扩展寄存器(xpc)不会压入堆栈的顶部,也就是说,它不会保存在堆栈中。因此,如果isr位于和中断向量表不同的页面,用户必须在分支转移到isr之前压入xpc到堆栈中。frete指令可以从isr返回。 (2) 将中断向量的地址加载到pc。第3章 tms320c54xtm dsp中断系统 (3) 获取位于向量地址的指令(分支转移被延时,并且用户也存储了一个2字指令或两个1字指令,则cpu也会获取这两个字)。 (4) 执行分支转移,转到中断服务程序(isr)地址(如果分支转移被延时,则在分支转移之前会执行额外的指令)。 (

17、5) 执行isr,直到一个返回指令中止isr。 (6) 将返回地址从堆栈中弹出到pc中。 (7) 继续执行主程序。第3章 tms320c54xtm dsp中断系统 图3.3 中断操作流程图接收中断请求 可屏蔽中断?intm0?否是否 imr屏蔽位1?否是信号产生响应中断iack ,硬件中断还是intr指令?否pc值保存到软件堆栈intm位置1执行中断服务程序(isr)中断返回,恢复pc值继续执行主程序是第3章 tms320c54xtm dsp中断系统 根据中断请求源的两种不同类型,分别描述其中断操作流程: (1) 如果请求的是一个可屏蔽中断,则操作过程如下: 设置ifr的相应标志位。 测试应答

18、条件(intm0并且相应的imr1)。如果条件为真,则cpu应答该中断,产生一个 (中断应答信号)信号;否则,忽略该中断并继续执行主程序。 当中断已被应答后,ifr相应的标志位被清除,并且intm位被置1(屏蔽其他可屏蔽中断)。 iack第3章 tms320c54xtm dsp中断系统 pc值保存到堆栈中。 cpu分支转移到中断服务程序(isr)并执行isr。 isr由返回指令结束,返回指令将返回地址从堆栈中弹出给pc。 cpu继续执行主程序。第3章 tms320c54xtm dsp中断系统 (2) 如果请求的是一个非屏蔽中断,则操作过程如下: cpu立刻应答该中断,产生一个 (中断应答信号)

19、信号。 如果中断是由 、 或intr指令请求的,则intm位被置1(屏蔽其他可屏蔽中断)。 如果intr指令已经请求了一个可屏蔽中断,那么相应标志位被清除为0。 pc值保存到堆栈中。 cpu分支转移到中断服务程序(isr)并执行isr。 isr由返回指令结束,返回指令将返回地址从堆栈中弹出给pc。 cpu继续执行主程序。iackrsnmi第3章 tms320c54xtm dsp中断系统 3.5 重新映射中断向量地址重新映射中断向量地址 中断向量可以映射到程序存储器的任何128字页面的起始位置,除保留区域外。中断向量地址是由pmst寄存器中的iptr(9位中断向量指针)和左移两位后的中断向量序号

20、(中断向量序号为031,左移两位后变成7位)所组成。例如,如果 被声明为低优先级,并且iptr=0001h,则中断向量的地址为00c0h,如图3.4所示。 的中断向量号为16。0int0int第3章 tms320c54xtm dsp中断系统 图3.4 中断向量地址产生iptr0 0000 00010 0 0 015 14 13 120 0 0 011 10 9 81 0 0110 6 570 0 0 03 2 1 0int40h(int0)向量位地址00c0第3章 tms320c54xtm dsp中断系统 复位时,iptr所有的位被置1(iptr=1ffh),并按此值将复位向量映射到程序存储器

21、的511页空间。所以,硬件复位后总是从0ff80h开始执行程序。加载除1ffh之外的值到iptr后,中断向量可以映射到其他地址。例如,用0001h加载iptr,那么中断向量就被移到从0080h单元开始的程序存储器空间。 注意:硬件复位( )向量不能被重新映射,因为硬件复位会加载1到iptr所有的位,因此,硬件复位向量总是指向程序空间的ff80h位置。rs第3章 tms320c54xtm dsp中断系统 3.6 中断和中断向量表中断和中断向量表表表3.1 c542 中断和优先级中断和优先级中断号(k) 优先级 名称 向量位置 功 能 0 1 rs/sintr 0 复位(硬件和软件复位) 1 2

22、nmi/sint16 4 非屏蔽中断 2 sint17 8 软件中断#17 3 sint18 c 软件中断#18 4 sint19 10 软件中断#19 5 sint20 14 软件中断#20 6 sint21 18 软件中断#21 7 sint22 1c 软件中断#22 8 sint23 20 软件中断#23 9 sint24 24 软件中断#24 10 sint25 28 软件中断#25 11 sint26 2c 软件中断#26 第3章 tms320c54xtm dsp中断系统 表表3.1 c542 中断和优先级中断和优先级12 sint27 30 软件中断#27 13 sint28 34

23、 软件中断#28 14 sint29 38 软件中断#29,保留 15 sint30 3c 软件中断#30,保留 16 3 0int/sint0 40 外部用户中断#0 17 4 1int/sint1 44 外部用户中断#1 18 5 2int/sint2 48 外部用户中断#2 19 6 tint/sint3 4c 内部定时器中断 20 7 brint0/sint4 50 缓冲串行接口接收中断 21 8 bxint0/sint5 54 缓冲串行接口发送中断 22 9 trint/sint6 58 tdm 串行接口接收中断 23 10 txint/sint7 5c tdm 串行接口发送中断 2

24、4 11 3int/sint8 60 外部用户中断#3 25 12 hpint/sint9 64 hpi 中断 2631 687f 保留 第3章 tms320c54xtm dsp中断系统 表表3.2 c548中断和优先级中断和优先级 中断号(k) 优先级 名称 向量位置 功 能 0 1 rs/sintr 0 复位(硬件和软件复位) 1 2 nmi/sint16 4 非屏蔽中断 2 sint17 8 软件中断#17 3 sint18 c 软件中断#18 4 sint19 10 软件中断#19 5 sint20 14 软件中断#20 6 sint21 18 软件中断#21 7 sint22 1c

25、软件中断#22 8 sint23 20 软件中断#23 9 sint24 24 软件中断#24 10 sint25 28 软件中断#25 11 sint26 2c 软件中断#26 12 sint27 30 软件中断#27 13 sint28 34 软件中断#28 第3章 tms320c54xtm dsp中断系统 表表3.2 c548中断和优先级中断和优先级 14 sint29 38 软件中断#29,保留 15 sint30 3c 软件中断#30,保留 16 3 0int/sint0 40 外部用户中断#0 17 4 1int/sint1 44 外部用户中断#1 18 5 2int/sint2

26、48 外部用户中断#2 19 6 tint /sint3 4c 内部定时器中断 20 7 brint0/sint4 50 缓冲串行接口 0 接收中断 21 8 bxint0/sint5 54 缓冲串行接口 0 发送中断 22 9 trint/sint6 58 tdm 串行接口接收中断 23 10 txint/sint7 5c tdm 串行接口发送中断 24 11 3int/sint8 60 外部用户中断#3 25 12 hpint/sint9 64 hp1 中断 26 13 brint1/sint10 68 缓冲串行接口 1 接收中断 27 14 bxint1/sint11 6c 缓冲串行接口

27、 1 发送中断 2831 70h7f 保留 第3章 tms320c54xtm dsp中断系统 中断号(k) 优先级 名称 向量位置 功 能 0 1 rs/sintr 0 复位(硬件和软件复位) 1 2 nmi/sint16 4 非屏蔽中断 2 sint17 8 软件中断#17 3 sint18 c 软件中断#18 4 sint19 10 软件中断#19 5 sint20 14 软件中断#20 6 sint21 18 软件中断#21 7 sint22 1c 软件中断#22 8 sint23 20 软件中断#23 9 sint24 24 软件中断#24 10 sint25 28 软件中断#25 1

28、1 sint26 2c 软件中断#26 12 sint27 30 软件中断#27 表表3.3 c549中断和优先级中断和优先级 第3章 tms320c54xtm dsp中断系统 13 sint28 34 软件中断#28 14 sint29 38 软件中断#29 15 sint30 3c 软件中断#30 16 3 0int/sint0 40 外部用户中断#0 17 4 1int/sint1 44 外部用户中断#1 18 5 2int/sint2 48 外部用户中断#2 19 6 tint /sint3 4c 内部定时器中断 20 7 brint0/sint4 50 缓冲串行接口 0 接收中断 2

29、1 8 bxint0/sint5 57 缓冲串行接口 0 发送中断 22 9 trint/sint6 58 tdm 串行接口接收中断 23 10 txint/sint7 5c tdm 串行接口发送中断 24 11 3int/sint8 60 外部用户中断#3 25 12 hpint/sint9 64 hp1 中断 26 13 brint1/sint10 68 缓冲串行接口 1 接收中断 27 14 bxint1/sint11 6c 缓冲串行接口 1 发送中断 28 15 bmint0/sint12 70 bsp#0 检测偏移中断 29 16 bmint1/sint13 74 bsp#1 检测偏

30、移中断 3031 787f 保留 表表3.3 c549中断和优先级中断和优先级 第3章 tms320c54xtm dsp中断系统 中断号(k) 优先级 名称 向量位置 功 能 0 1 rs/sintr 0 复位(硬件和软件复位) 1 2 nmi/sint16 4 非屏蔽中断 2 sint17 8 软件中断#17 3 sint18 c 软件中断#18 4 sint19 10 软件中断#19 5 sint20 14 软件中断#20 6 sint21 18 软件中断#21 7 sint22 1c 软件中断#22 8 sint23 20 软件中断#23 9 sint24 24 软件中断#24 10 s

31、int25 28 软件中断#25 11 sint26 2c 软件中断#26 12 sint27 30 软件中断#27 表表3.4 c5402中断和优先级中断和优先级 第3章 tms320c54xtm dsp中断系统 13 sint28 34 软件中断#28 14 sint29 38 软件中断#29 15 sint30 3c 软件中断#30 16 3 0int/sint0 40 外部用户中断#0 17 4 1int/sint1 44 外部用户中断#1 18 5 2int/sint2 48 外部用户中断#2 19 6 tint 0/sint3 4c 定时器 0 中断 20 7 brint0/sin

32、t4 50 mcbsp#0 接收中断 21 8 bxint0/sint5 57 mcbsp#0 发送中断 22 9 dmac0/sint7 58 dma 通道 0 中断 23 10 tint1/dmac1/sint7 5c 定时器 1(默认)/dma 通道 1 中断 24 11 3int/sint8 60 外部用户中断#3 25 12 hpint/sint9 64 hp1 中断 26 13 brint1/dmac2/sint10 68 mcbsp#1 接收中断/dma 通道 2 中断 27 14 bxint1/dmac3/sint11 6c mcbsp#1 发送中断/dma 通道 3 中断 2

33、8 15 dmac4/sint12 70 dma 通道 4 中断 29 16 dmac5/sint13 74 dma 通道 5 中断 120127 保留 787f 保留 表表3.4 c5402中断和优先级中断和优先级第3章 tms320c54xtm dsp中断系统 表表3.5 c5410中断和优先级中断和优先级 中断号(k) 优先级 名称 向量位置 功 能 0 1 rs/sintr 0 复位(硬件和软件复位) 1 2 nmi/sint16 4 非屏蔽中断 2 sint17 8 软件中断#17 3 sint18 c 软件中断#18 4 sint19 10 软件中断#19 5 sint20 14

34、软件中断#20 6 sint21 18 软件中断#21 7 sint22 1c 软件中断#22 8 sint23 20 软件中断#23 9 sint24 24 软件中断#24 10 sint25 28 软件中断#25 11 sint26 2c 软件中断#26 12 sint27 30 软件中断#27 13 sint28 34 软件中断#28 第3章 tms320c54xtm dsp中断系统 14 sint29 38 软件中断#29 15 sint30 3c 软件中断#30 16 3 0int/sint0 40 外部用户中断#0 17 4 1int/sint1 44 外部用户中断#1 18 5 2int/sint2 48 保留 19 6 tint/sint3 4c 外部定时器 20 7 brint0/sint4 50 mcbsp#0 接收中断 21 8 bxint0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论