TMS320F2812A的中断机制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

INT8
reserved reserved reserved reserved reserved reserved reserved reserved
INT9
SCIRXINTA SCITXINTA SCIRXINTB SCITXINTB ECAN0INT ECAN1INT
(SCI-A)
(SCI-A) (SCI-B) (SCI-B)
3、CPU 级中断 一旦向 CPU 申请中断,CPU 级中断标志 IFR 位将被置 1,中断标志位锁存 到中断标志寄存器之后,只有 CPU 中断使能寄存器 IER 或者中断调试使能寄存 器 DBGIER 相应的使能位和全局中断屏蔽位 INTM 被使能时才会响应中断申请。
三、CPU 中断向量和优先级
F2812 支持包含复位中断在内的 32 个 CPU 中断向量,每一个向量是一个 22 位地址,地址为相应的中断服务程序的入口地址。每一个向量被保存在连续两个
5
可屏蔽中断 1
INT2
00 0004
3F FFC4
6
可屏蔽中断 2
INT3
00 0006
3F FFC6
7
可屏蔽中断 3
INT4
Fra Baidu bibliotek
00 0008
3F FFC8
8
可屏蔽中断 4
INT5
00 000A
3F FFCA
9
可屏蔽中断 5
INT6
00 000C
3F FFCC
10
可屏蔽中断 6
INT7
00 000E
(EV-A)
T1CINT (EV-A)
T1UFINT T1OFINT
(EV-A)
(EV-A)
reserved
INT3
T2PINT (EV-A)
T2CINT (EV-A)
T2UFINT T2OFINT CAPINT1 CAPINT2 CAPINT3
(EV-A)
(EV-A)
(EV-A)
(EV-A)
(EV-A)
(EV-B)
(EV-B)
(EV-B)
(EV-B)
(EV-B)
reserved
INT6
SPIRXINTA SPITXINTA
(SPI)
(SPI)
reserved
reserved
MRINT (McBSP)
MXINT (McBSP)
reserved
reserved
INT7
reserved reserved reserved reserved reserved reserved reserved reserved
1、外设级中断 外设产生中断时,中断标志寄存器(IF)相应的位被置 1,如果中断使能寄存器 (IE)中相应的位被置位,则外设产生的中断将向 PIE 控制器发出申请。如果外设 级中断没有被使能,那么中断标志寄存器的标志位将保持不变,除非用软件清除, 如果中断产生后才被使能,且中断标志位没有被清除,同样会向 PIE 申请中断, 需要注意的是,外设的中断标志位必须用软件进行清除。 2、PIE 级中断 所有的外设中断被分成 12 组,每一组有一个中断信号向 CPU 申请中断。例 如,PIE 第 1 组复用中断 1(INT1),第 12 组复用中断 12(INT12),INT1~INT12 以外的中断直接连接到 CPU 中断上且不可复用。
图 1 TMS320F2812A 的中断功能硬件结构框图
由图 1 可知,所有的 F2812 外设(包含 SPI,SCI,EV,McBSP,CAN,ADC) 共产生 41 个中断源。
在低功耗(LPM)模式下,看门狗可以产生一个 WAKEINT 中断源,将 F2812 从 IDLE/STANDBY 模式下唤醒;
(CAN)
(CAN)
reserved
reserved
INT10
reserved reserved reserved reserved reserved reserved reserved reserved
INT11
reserved reserved reserved reserved reserved reserved reserved reserved
连接到 PIE 模块的外设和外部中断源的分组情况如表 1 所示,表中的每行里 的 8 个中断源复用一个指定的 CPU 级中断。
表 1 F2812 的 PIE 外设中断
CPU
PIE Interrupts
Interrupts INTx.1
INTx.2
INTx.3
INTx.4
INTx.5
INTx.6
INTx.7
图 2 中断扩展模块图 图 2 中断响应流程图
对于复用的 12 组中断,在 PIE 模块内每组中断都有相应的中断标志位 (PIEIFRx.y)和使能位(PIEIERx.y)。除此之外,每组 PIE 中断(INT1~INT12)都有 一个响应标志位(PIEACK)。PIEIFR 和 PIEIER 不同的设置时,硬件操作如图 2 所示。
reserved
INT4
CMP4INT CMP5INT CMP6INT T3PINT
(EV-B)
(EV-B)
(EV-B)
(EV-B)
T3CINT (EV-B)
T3UFINT T3OFINT
(EV-B)
(EV-B)
reserved
INT5
T4PINT (EV-B)
T4CINT (EV-B)
T4UFINT T4OFINT CAPINT4 CAPINT5 CAPINT6
用户定义软中断
USER11
00 003C
3F FFFC
用户定义软中断
USER12
00 003E
3F FFFE
用户定义软中断
特殊情况下,如果多个硬件中断被同时触发,F2812 就按照中断优先级的次
序来提供服务;如果 F2812 在正在执行一个中断服务程序的同时,又产生了一个
中断,此时会首先判断两个中断的优先级,如果后产生的中断的优先级高,则产
生中断嵌套,即暂停正在执行的中断服务程序,首先响应优先级高的中断,优先 级高的中断服务程序执行完毕之后,再继续执行优先级低的中断服务程序。但是 在 PIE12 组中断源中,同一组内部的中断不可嵌套,例如正在执行 TIMER0 中 断服务程序时,即使有优先级更高的 ADC 中断触发信号,也不会响应 ADC 中 断,只有当 TIMER0 中断服务程序执行完毕之后才会响应。 四、中断向量表的映射
INT13
00 001A
3F FFDA
17
可屏蔽中断 13
INT14
00 001C
3F FFDC
18
可屏蔽中断 14
DLOGIN+
00 001E
3F FFDE 19(最低) 可屏蔽数据标志中断
RTOSINT+
00 0020
3F FFE0
4
可屏蔽适时操作系统中断
保留
00 0022
3F FFE2
2
保留
NMI
TMS320F2812A 的中断机制
一、F2812 中断简介 TMS320F2812 支持 17 个 CPU 级中断,其中包括 1 个不可屏蔽中断(NMI)和
16 个可屏蔽中断(INT1~INT14,RTOSINT 和 DLOGINT)。TMS320F2812 有很多 外设,每个外设都可能产生一个或者多个外设级中断,由于 CPU 没有能力处理 所有的中断请求,因此需要一个中断扩展控制器来仲裁这些中断,外设中断扩展 模块(PIE)最多可以支持 96 个中断,每 8 个中断分成一组复用一个 CPU 级中断, 总共 12 组中断( INT1~INT12)。每个中断都会有中断向量存放在 RAM 中,构成 了整个系统的中断向量表,即中断向量表中存放的是每个中断服务程序的地址, 响应中断时,CPU 将自动从中断向量表中获取相应的中断向量。系统初始化时 需要定位中断向量表,在操作过程中也可以对中断向量表进行调整。图 1 所示为 TMS320F2812A 的中断功能硬件结构框图。
可屏蔽中断 INT13 的信号源可以来自 CPU 定时器 1 或者 XNMI _XINT13, 具体由外部 NMI 中断控制寄存器 XNMICR 的 SELECT 位决定,同时 XNMICR 的 ENABLE 位还可以使能或禁止外部 NMI 中断。
可屏蔽中断 INT14 的信号源来自 CPU 定时器 2,CPU 定时器 1/2 保留给实时 操作系统(RTOS)用,用户的应用程序不能使用。
USER5
00 0030
3F FFF0
用户定义软中断
USER6
00 0032
3F FFF2
用户定义软中断
USER7
00 0034
3F FFF4
用户定义软中断
USER8
00 0036
3F FFF6
用户定义软中断
USER9
00 0038
3F FFF8
用户定义软中断
USER10
00 003A
3F FFFA
F2812 还支持 3 个外部可屏蔽中断 XINT1、XINT2 和 XNMI _XINT13,其中 XINT1 和 XINT2 被加至外部中断扩展模块(PIE)中复用中断 INT1,XNMI _XINT13 和不可屏蔽中断 NMI 共用一个中断源,每一个外部中断输入单元包含 一个 16 位的增计数器,这个计数器可以就准确记录中断发生的时间。
CPU 定时器 0 产生的中断 TINT0 加至外部中断扩展模块(PIE)中,复用可 屏蔽中断 INT1。
这样 PIE 外部中断扩展模块 96 个中断源中,仅仅使用了 45 个,剩下的中断 没有被使用,保留给后续的芯片,但是如果对应的 PIEIFRx 位被使能的话,他们 都可以被当成软件中断来使用。
表 2 中断向量表映射配置表
在 TMS320F2812 中,中断向量表可以映射到 5 个不同的存储空间,实际使 用中 F2812 只使用了 PIE 中断向量表的存储器映射,中断向量的映射主要有以下 位/信号来控制。
WMAP:状态寄存器 1(ST1)的位 3,复位后值为 1。 M0M1MAP:状态寄存器 1(ST1)的位 11,复位后值为 1。 MP/MC:该位在 XINTCNF2 寄存器的位 8,复位时 MP/MC 引脚上的值为该 寄存器的相应位的值。 ENPIE:该位为 PIECTRL 寄存器的位 0,复位后默认为 0(PIE 被屏蔽)。 依据上述位的不同的设置,中断向量表有不同的映射方式。如表 2 所示。
32 位的地址中,高地址的高 10 位被忽略。 下表列出了可用的中断向量以及它们的存储位置,同时也指出了每一个硬件
中断的优先级。
表 1 CPU 中断向量和优先级
向量
绝对地址
VMAP=0
VMAP=1
硬件 优先级
说明
RESET
00 0000
3F FFC0
1(最高)
复位
INT1
00 0002
3F FFC2
INT12
reserved reserved reserved reserved reserved reserved reserved reserved
二、F2812 的中断操作顺序
TMS320F2812 的中断系统主要有三个中断级别,分别是外设级、PIE 级和 CPU 级,它们的操作顺序是外设产生中断以后,向 PIE 申请中断,然后 PIE 中 断向 CPU 申请中断,外部中断扩展模块的结构如图 2 所示,相应的中断响应流 程如图 3 所示。
00 0024
3F FFE4
3
非屏蔽中断
ILLEGAL
00 0026
3F FFE6E
非法指令捕获
USER1
00 0028
3F FFE8
用户定义软中断
USER2
00 002A
3F FFEA
用户定义软中断
USER3
00 002C
3F FFEC
用户定义软中断
USER4
00 002E
3F FFEE
用户定义软中断
当 PIE 控制器中有中断产生时,相应的中断标志位(PIEIFRx.y)将被置 1,如 果相应的中断使能位也被置 1,PIE 将检查相应的 PIEACKx,确定 CPU 是否准 备响应该中断,如果相应的 PIEACKx 被清零,PIE 将向 CPU 申请中断;如果 PIEACKx 被置 1,PIE 将等待,直到相应的 PIEACKx 被清零时才向 CPU 申请中 断。
INTx.8
INT1
PDPINTA PDPINTB
(EV-A)
(EV-B)
reserved
XINT1
XINT2
ADCINT TINT0 WAKEINT (ADC) (TIMER0) (LPM/WD)
INT2
CMP1INT CMP2INT CMP3INT T1PINT
(EV-A)
(EV-A)
(EV-A)
3F FFCE
11
可屏蔽中断 7
INT8
00 0010
3F FFD0
12
可屏蔽中断 8
INT9
00 0012
3F FFD2
13
可屏蔽中断 9
INT10
00 0014
3F FFD4
14
可屏蔽中断 10
INT11
00 0016
3F FFD6
15
可屏蔽中断 11
INT12
00 0018
3F FFD8
16
可屏蔽中断 12
相关文档
最新文档