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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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中断涉及的寄存器
CPU级使能可屏蔽中断采用CPU中断使能寄存 器(IER)还是中断调试使能寄存器(DBGIER)与中 断处理方式有关。
标准处理模式下,不使用中断调试使能寄存器 (DBGIER); 当F281x使用实时调试且CPU被停止时,才使用中 断调试使能寄存器(DBGIER),此时INTM不起作用;
当定时器被使能(TCR.Bit4=0),定时器时钟 经过预定标计数器(PSCH:PSC)递减计数,预 定标计数器产生下溢后向定时器的32位计数 器(TIMH:TIM)借位; 定时器计数器(TIMH:TIM)递减计数,当产 生溢出后,会向CPU发送中断;
2013年2月1日
5.2 定时器工作原理
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
2013年2月1日
2013年2月1日
5.2 定时器工作原理
工作时钟
若处理器采用30MHz的外部时钟,经过锁相 环10/2倍频后,系统的时钟工作在150MHz; 定时器选择SYSCLKOUT作为定时器时钟, 所以工作频率也是150MHz;
2013年2月1日
5.2 定时器工作原理
计数原理
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.2 中断向量的映射方式
在F2812中采用外设中断扩展模块(PIE)以 加快中断服务程序; 中断向量表可以映射到5个不同的存储空 间。实际应用中,只使用PIE中断向量表映 射;
PIE中断向量映射地址:0x0000D00 ~ 0x0000 0DFF,
2013年2月1日
3) CPU级中断
中断标志寄存器(IFR) 中断使能寄存器(IER) 全局中断屏蔽使能(INTM)
2013年2月1日
4)中断优先级
CPU中断的优先级:由高到低分别为RS, NMI,INT1~INT14; PIE控制每组8个中断的优先级:由高到低为 INTx.1~INTx.8。
第8章 中断系统及其应用
2013年2月1日
主要内容
中断源 PIE控制器概述 中断向量表 PIE矢量表 可屏蔽中断处理 CPU定时器 举例
2013年2月1日
1、中断源
C28xDSP内核总计16个中断线,其中包括2个不 可屏蔽中断(RESET和NMI)与14个可屏蔽中断;
共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 单独使能IΒιβλιοθήκη BaiduR和全局使能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日
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日
1、中断源
两个不可屏蔽中断RESET和NMI各自占用独立 的专用中断,同时NMI中断也可以选择同定时器1 复用INT13;
2013年2月1日
2013年2月1日
CPU一共支持16个中断(RESET、NMI、 INT1~INT14);其中RESET、NMI是不可屏蔽中 断;INT1~INT14是可屏蔽中断(INT13、INT14留 给实时操作系统);
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日
实际用户可以修改使用的外设中断只有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控制器发出一个中 断请求;
2013年2月1日
用户可以操作修改的中断是INT1~INT12,其中 每一个中断组又复用了8个外设中断;所以外设中 断一共有96个;
2013年2月1日
2、PIE中断扩展
28x的每个外部设备都能产生1个或多个中断; 但由于CPU并不能同时处理所有的外设中断请求; 因此需要一个PIE控制器对这些外设和外部管脚 的中断请求进行仲裁; PIE矢量表用来存放每一个中断服务的地址;不 论是复用还是非复用的中断都对应着一个矢量表;
8.6 定时器中断应用举例
具体见教材P139
2013年2月1日
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日
3.1 中断向量的分配
复用中断模式在使用中断过程中多个中断源共 用一条中断线,每条中断线连接地中断向量都在 中断向量表中占32位地址空间,用来存放中断服 务程序的入口地址; 中断复用程序必须处理所有输入的中断请求, 这就要求编程人员在服务程序的入口处采用软件 方法将这些中断分离开,以便能够正确地处理; 但软件分离的方法势必会影响中断的响应速度, 因此,在实时性要求高的应用中不能使用。因此 就涉及到如何加快中断服务程序的问题。
可屏蔽中断通过相应的中断使能寄存器使能或 禁止产生的中断;
2013年2月1日
1、中断源
在F2810和F2812处理器中,定时器1和定时器2 预留给实时操作系统DSP/BIOS使用,其中断分配 给INT14和INT13,用户在程序中不可以修改;
2013年2月1日
1、中断源
其余12个可屏蔽中断直接连接在外设中断扩展模 块,供外部中断和处理器内部的外设单元使用;
若中断被使能,则中断请求提交给PIE,IF仍为1; 若中断未被使能,则IF仍为1,直至软件清0;
外设寄存器中的IF位需手动清0;
2013年2月1日
1) 外设级中断
外设级中断通过IFR与IER使能控制; 注意:外设寄存器的中断标志必须采用软件 进行清零;
返回
2013年2月1日
2) PIE级中断
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日
3) CPU级中断
一旦向CPU请求中断,相应于INTx的CPU级中 断标志位(IFR)置1。中断标志位锁存到IFR后, 只有CPU中断使能寄存器(IER)或调试中断使能 寄存器(DBGIER)和全局中断屏蔽位(INTM)被使 能时才会响应中断请求;
2013年2月1日
3) CPU级中断
装载值
预定标计数器(PSCH:PSC)产生溢出后,使用 分频寄存器(TDDRH:TDDR)中的值重新装载; 定时器计数器(TIMH:TIM)产生溢出后,使用 32位周期寄存器(PRDH_PRD)中的值重新装载;
2013年2月1日
5.3 定时器中断结构
2013年2月1日
5.4 定时器寄存器
PIE模块复用8个外设中断引脚向CPU申请中断; 这些中断被分为12组,每组有一个中断信号向 CPU申请中断;
例如:PIE第1组复用CPU的中断1(INT1); PIE第12组复用CPU的中断12(INT12); 其余不复用的中断则直接向CPU提出请求;
对于复用中断,在PIE模块内每组中断有相应的 中断标志位(PIEIFRx.y)和使能位(PIEIERx.y) 除此之外,每组PIE中断(INT1~INT12)有一个 响应标志位(PIEACKx)
相关文档
最新文档