当前位置:文档之家› 第8章 PIE中断系统及其应用

第8章 PIE中断系统及其应用

共256字长度数据空间; 中断向量映射配置表:
2013年2月1日
3.2 中断向量的映射方式
根据上面的表格可以知道:控制位的不同设 置,中断向量表有不同的映射方式。
2013年2月1日
3. PIE中断向量表:见表8.6(P129)
2013年2月1日
4 可屏蔽中断处理
可屏蔽中断的响应过程实质上是中断产生、使 能到处理的过程。 使能/禁止复用外设中断 PIE寄存器: PIECTRL、PIEIFR PIEIER、PIEACK 外设向CPU发出的复用中断请求
2013年2月1日
处理流程:某个可屏蔽中断产生后 首先将中断标志寄存器(IFR)置位为1 单独使能IER和全局使能INTM 涉及到的寄存器:IFR、IER、INTM
2013年2月1日
4.1 PIE配置及控制寄存器
…………………………………
2013年2月1日
PIEVECT:这些位表明获取PIE矢量表的起始地址; ENPIE:使能PIE模块 ENPIE=1表明所有矢量都从PIE矢量表中获取; ENPIE=0时表明所有数量都从boot ROM或外部 接口zone 7中获取;
2013年2月1日
3.1 中断向量的分配
复用中断模式在使用中断过程中多个中断源共 用一条中断线,每条中断线连接地中断向量都在 中断向量表中占32位地址空间,用来存放中断服 务程序的入口地址; 中断复用程序必须处理所有输入的中断请求, 这就要求编程人员在服务程序的入口处采用软件 方法将这些中断分离开,以便能够正确地处理; 但软件分离的方法势必会影响中断的响应速度, 因此,在实时性要求高的应用中不能使用。因此 就涉及到如何加快中断服务程序的问题。
IFR、IER、DBGIER、INTM
2013年2月1日
4.2 CPU中断涉及的寄存器
中断使能寄存器
中断使能设置:置1使能中断 IER |= 0x0008; //使能中断INT4 IER&= 0xFFF7;//禁止中断INT4 系统复位或CPU中断响应后,CPUIFR将自动清零
2013年2月1日
2013年2月1日
1、中断源
两个不可屏蔽中断RESET和NMI各自占用独立 的专用中断,同时NMI中断也可以选择同定时器1 复用INT13;
2013年2月1日
2013年2月1日
CPU一共支持16个中断(RESET、NMI、 INT1~INT14);其中RESET、NMI是不可屏蔽中 断;INT1~INT14是可屏蔽中断(INT13、INT14留 给实时操作系统);
2013年2月1日
3) CPU级中断
一旦向CPU请求中断,相应于INTx的CPU级中 断标志位(IFR)置1。中断标志位锁存到IFR后, 只有CPU中断使能寄存器(IER)或调试中断使能 寄存器(DBGIER)和全局中断屏蔽位(INTM)被使 能时才会响应中断请求;
2013年2月1日
3) CPU级中断
2013年2月1日
2013年2月1日
3.2 中断向量的映射方式
在F2812中采用外设中断扩展模块(PIE)以 加快中断服务程序; 中断向量表可以映射到5个不同的存储空 间。实际应用中,只使用PIE中断向量表映 射;
PIE中断向量映射地址:0x0000D00 ~ 0x0000 0DFF,
2013年2月1日
2) PIE级中断
一旦PIE控制器有中断请求,相应的中断标志位 被置1(PIEIFRx.y); 如果相应的PIE中断使能位(PIEIERx.y)被置1, 则PIE检查相应的PIEACKx位以确定CPU是否准 备响应该中断; 如果PIEACKx清零,则PIE向CPU发出中断请 求;如果PIEACKx置1,则PIE将等待直到 PIEACKx被清0才向CPU发出中断请求; 返回
2013年2月1日
实际用户可以修改使用的外设中断只有45个
2013年2月1日
2.1 中断操作流程
包含三部分中断 外设级中断、PIE级中断、CPU级中断
2013年2月1日
2.1 中断操作流程
2013年2月1日
1) 外设级中断
外部设备中断事件发生,则其对应的寄存器 中的中断标志位被设为1(Interrupt Flag: IF); 若相应的中断使能位(Interrupt Enable: IE)被 设为1,则外部设备向PIE控制器发出一个中 断请求;
当定时器被使能(TCR.Bit4=0),定时器时钟 经过预定标计数器(PSCH:PSC)递减计数,预 定标计数器产生下溢后向定时器的32位计数 器(TIMH:TIM)借位; 定时器计数器(TIMH:TIM)递减计数,当产 生溢出后,会向CPU发送中断;
2013年2月1日
5.2 定时器工作原理
若中断被使能,则中断请求提交给PIE,IF仍为1; 若中断未被使能,则IF仍为1,直至软件清0;
外设寄存器中的IF位需手动清0;
2013年2月1日
1) 外设级中断
外设级中断通过IFR与IER使能控制; 注意:外设寄存器的中断标志必须采用软件 进行清零;
返回
2013年2月1日
2) PIE级中断
1. 定时器寄存器地址名称
0x0000 0C18~0C3F 保留
2013年2月1日
2. 定时器控制寄存器(TCR)
每个字段含义 见教材P136
2013年2月1日
3. 定时器预定标寄存器(TPR)
2013年2月1日
4. 定时器计数器(TIM)
2013年2月1日
4. 定时器周期寄存器
2013年2月1日
2013年2月1日
PIEACKx:每一位对应一个中断 BIT 0对应INT1; BIT 11对应INT12
2013年2月1日
这些寄存器位表明中断是否产生 x=1~12;INTx表示CPU INT1~INT12
2013年2月1日
这些寄存器位表明是否使能中断
2013年2月1日
4.2 CPU中断涉及的寄存器
可屏蔽中断通过相应的中断使能寄存器使能或 禁止产生的中断;
2013年2月1日
1、中断源
在F2810和F2812处理器中,定时器1和定时器2 预留给实时操作系统DSP/BIOS使用,其中断分配 给INT14和INT13,用户在程序中不可以修改;
2013年2月1日
1、中断源
其余12个可屏蔽中断直接连接在外设中断扩展模 块,供外部中断和处理器内部的外设单元使用;
CPU级使能可屏蔽中断采用CPU中断使能寄存 器(IER)还是中断调试使能寄存器(DBGIER)与中 断处理方式有关。
标准处理模式下,不使用中断调试使能寄存器 (DBGIER); 当F281x使用实时调试且CPU被停止时,才使用中 断调试使能寄存器(DBGIER),此时INTM不起作用;
4.2 CPU中断涉及的寄存器
全局中断使能
全局中断使能设置:置1时禁止所有的中断 asm(“CLRC INTM”); //使能全局中断 asm(“SETC INTM”); //禁止全局中断
2013年2月1日
5 定时器中断应用举例
5.1 定时器基本操作
F2812有三个32位CPU定时器(TIMER0/1/2) TIMER1/2预留给实时操作系统使用 TIMER0可以供给用户使用 定时器的功能框图如下图
2013年2月1日
2013年2月1日
3 中断向量
中断向量的分配 中断向量的映射方式
2013年2月1日
3.1 中断向量的分配
PIE支持96个中断,每个中断都有自己的中 断向量存放在RAM中,构成整个系统的中断 向量表,如表8.2所示; 在相应中断时,CPU将自动地从中断向量表 中获取相应的中断向量; CPU获取中断向量和保存重要的寄存器需要 花费9个CPU时钟周期,因此CPU能够快速地 响应中断;
2013年2月1日
5) PIE寄存器及其地址
PIE寄存器地址:0x0000 0CE0~0x00000CFF PIECTRL(PIE控制寄存器):0x0000 0CE0 PIEACK(PIE响应寄存器):0x0000 0CE1 PIEIER1:0x0000 0CE2 PIEIFR1:0x0000 0CE3 … … PIEIER12:0x0000 0CF8 PIEIFR12:0x0000 0CF9 保留:0x0000 0CFA~0x0000 0CFF
8.6 定时器中断应用举例
具体见教材P139
2013年2月1日
2013年2月1日
用户可以操作修改的中断是INT1~INT12,其中 每一个中断组又复用了8个外设中断;所以外设中 断一共有96个;
都能产生1个或多个中断; 但由于CPU并不能同时处理所有的外设中断请求; 因此需要一个PIE控制器对这些外设和外部管脚 的中断请求进行仲裁; PIE矢量表用来存放每一个中断服务的地址;不 论是复用还是非复用的中断都对应着一个矢量表;
2013年2月1日
2013年2月1日
5.2 定时器工作原理
工作时钟
若处理器采用30MHz的外部时钟,经过锁相 环10/2倍频后,系统的时钟工作在150MHz; 定时器选择SYSCLKOUT作为定时器时钟, 所以工作频率也是150MHz;
2013年2月1日
5.2 定时器工作原理
计数原理
2013年2月1日
3) CPU级中断
中断标志寄存器(IFR) 中断使能寄存器(IER) 全局中断屏蔽使能(INTM)
2013年2月1日
4)中断优先级
CPU中断的优先级:由高到低分别为RS, NMI,INT1~INT14; PIE控制每组8个中断的优先级:由高到低为 INTx.1~INTx.8。
PIE模块复用8个外设中断引脚向CPU申请中断; 这些中断被分为12组,每组有一个中断信号向 CPU申请中断;
相关主题