理论教育 PIE控制器:中断信号多路传送优化方案

PIE控制器:中断信号多路传送优化方案

更新时间:2025-01-03 理论教育 版权反馈
【摘要】:图2-21给出了采用PIE模块的中断信号多路传送框图。PIE模块将8个外设模块和外部引脚的中断组合到一个CPU中断。这些中断分为12组:PIE组1~12。对于这些单路的中断,PIE将中断请求直接送到CPU中断。图2-22说明了在不同的PIEIFR和PIEIER寄存器条件下PIE控制器的硬件行为。在这种特殊情况中,使用了DBGIER寄存器,且忽略了INTM位。PIE中的96个中断的每一个中断都有一个对应的32位向量。然而为了从PIE中接收更多的中断,PIE中断应答位必须由用户程序清零。

2803x CPU支持一个不可屏蔽中断(NMI)和16个可屏蔽中断(INT1~INT14,CPU实时操作系统中断RTOSINT和CPU数据记录中断DLOGINT)。2803x有许多外设,每个外设都可以产生一个或多个中断请求,需要一种集中外设所有中断的控制器PIE来裁定从不同中断源来的中断请求。

图2-21给出了采用PIE模块的中断信号多路传送框图。PIE将多达96个中断源每8个一组、共12个中断信号送入CPU(INT1~INT12)。

由图可见,中断系统包括三个层次:外设级、PIE级和CPU级。

(1)外设级

一旦外设产生中断事件,对应外设中断标志寄存器中的相应中断标志位就置1。如果对应的中断使能位设为1,则外设的中断请求信号INTx.y(x=1~12,y=1~8),可以送到PIE控制器。如果外设模块级中断没有使能,则中断标志位保持置位,直到被软件清零。如果中断标志先置位且保持为l,然后再使能,则PIE对这种中断请求的响应是不确定的,应该避免这种情况。在外设模块寄存器中的中断标志必须由用户程序清零。

(2)PIE级

PIE部分的每一个中断都有一个中断标志位PIEIFRx.y和一个中断使能位PIEIERx.y。对每个CPU中断组INT1~INT12都有一个应答位PIEACKx(x=1~12)。

PIE模块将8个外设模块和外部引脚的中断组合到一个CPU中断。这些中断分为12组:PIE组1~12。1个组的中断组合到一个CPU中断。例如,PIE组1组合到CPU中断1(INT1),而PIE组12组合到CPU中断12(INT12)。其余的CPU中断是单路的。对于这些单路的中断,PIE将中断请求直接送到CPU中断。在PIE中的每一个中断组都有对应的中断标志位(PIEIFRx.y)和中断使能位(PIEIERx.y)。图2-22说明了在不同的PIEIFR和PIE⁃IER寄存器条件下PIE控制器的硬件行为。

978-7-111-57271-8-Chapter02-125.jpg

图2-21 采用PIE模块的中断信号多路传送

978-7-111-57271-8-Chapter02-126.jpg(www.daowen.com)

图2-22 典型的PIE/CPU中断响应过程

一旦向PIE控制器发出中断请求后,对应的PIE中断标志(PIEIFRx.y)置1。如果对应的PIE中断使能位(PIEIERx.y)也为1,则PIE将检查对应的PIEACKx位,确定CPU是否做好准备来响应该组的一个中断。如果该组的PIEACKx位为0,那么PIE将向CPU发出中断请求。如果PIEACKx位为1,那么PIE将等待,直到它清零时,才能再次发出中断请求INTx。

(3)CPU级

一旦中断请求送入CPU后,CPU级的中断标志寄存器IFR中的中断标志位就置1。如果此时CPU中断使能寄存器IER或仿真中断使能寄存器DBGIER中的相应位为1,且全局中断屏蔽位INTM(ST1.0)为0即使能,则CPU就进入中断服务程序,响应中断。

表2-23为在CPU级需要使能可屏蔽中断的中断处理进程。在一般的中断处理进程中(大多数情况是这样)没有使用DBGIER寄存器。如果DSP处于实时模式和CPU正在运行,那么使用一般的中断处理进程。当28x处于实时仿真模式且CPU停止时,使用不同的进程。在这种特殊情况中,使用了DBGIER寄存器,且忽略了INTM位。

2-23 中断使能

978-7-111-57271-8-Chapter02-127.jpg

一旦有中断请求,并且又使能了中断,CPU就会准备执行相应的中断服务程序。在开始阶段,CPU将相应的IFR和IER位清除,清除位EALLOW和LOOP,置位INTM和DB⁃GM,清空流水线,保存返回地址并自动保存现场信息。然后从PIE模块取出中断向量。如果该中断是组合的,则PIE模块将由PIEIERx和PIEIFRx寄存器给出相应的中断服务程序(ISR)地址译码。

将要执行的中断服务程序的地址直接从PIE中断向量表中取得。PIE中的96个中断的每一个中断都有一个对应的32位向量。PIE模块中的中断标志(PIEIFRx.y)在取回中断向量后,硬件自动清零。然而为了从PIE中接收更多的中断,PIE中断应答位必须由用户程序清零。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈