中断系统
F2812芯片的CPU支持一个不可屏蔽中断(NMI)和14个可屏蔽中断(INT1~INT14),这些中断称为CPU级中断。芯片内部集成了许多外部设备,如SPI、SCI、CAN等。这些外设可产生一个或多个中断信号,这样使得CPU的中断资源不够用。因此F2812芯片内部又设计了外设中断扩展模块,将外设中断源每8个编为1组,连接到CPU的1个中断端口上。CPU的12个中断,就可以支持96个外设中断。F2812芯片只用了其中的45个。如图1即为F2812芯片中断源总图。
图1 F2812芯片中断源总图
所有的中断源中,经过PIE的中断源,称为复用中断,因为它们中有许多中断共用同一个CPU中断端口;不经过PIE的中断源称为非复用中断,因为它们独占一个CPU中断端口。
复用型中断产生过程见图2。复用中断过程可明确的分成三个阶断:
外设级:
每个外设中断,在外设模块内部都有对应的中断标志(IF)和中断使能(IE)。达到中断产生的条件(如串口接收到一个数据,等),相应的中断标志(IF)置1。如果对应的中断使能(IE)为1,则外设输出中断信号。
PIE级:
PIE内,外设中断源编成12组,每组8个。假设某外设输出的中断信号接到第x组第y个上(INTx.y),相应的PIE中断标志(PIEIFRx.y)置1。如果对应的PIE使能(PIEIFRx.y)为1,则PIE输出第x路中断信号。
CPU级:
PIE输出第x路中断信号后,CPU级中断标志位(IFR.x)置1,如果对应的中断使能位(IFR.x)1为1,且全局中断屏蔽(INTM)为0,中断信号最终送到CPU。
图2 复用中断产生过程
图3为PIE中断源与外设中断的连接关系图。行表示每组中断源,列表示该组中断源中每路对应的外设中断。
图3 PIE中断源与外设连接关系
图4为复用中断请求及响应流程图。其步骤如下:
(1)
某外设中断标志与使能均为1,外设输出中断信号;
(2)
对应PIE中断标志PIEIFRx.y置1;
(3)
满足以下条件,PIE输出中断信号给CPU:
a
对应的使能位为1;
b
对应的中断确认位(PIEACKx.y)为0。如果中断确认为1,表示上一次中断尚未响应;该位必须软件清零,表示已响应;
(4)
如果步骤3通过,则中断信号输出给CPU,同时中断确认位(PIEACKx.y)置1;
(5)
对应中断标志(IFRx)置1;
(6)
如对应中断使能(IERx)为1,中断信号输出给CPU;
(7)
如全局中断屏蔽(INTM)为0,中断信号送达CPU;
(8)
CPU响应中断,并从PIE中取回相应的中断向量;中断向量是根据当前PIEIERx与PIEIFRx的值解码得到。
图4 外设中断请求与响应流程图
限于篇幅关系,PIE中断响量表不在本章中描述,将在后续PIE编程相关章节中详细描述。
文章评论(0条评论)
登录后参与讨论