第9章-可编程中断控制器8259课件
- 格式:ppt
- 大小:2.38 MB
- 文档页数:75


可编程中断控制器8259详解
中断系统的使用极大的提高了CPU的利用率。
中断是一种机制,这种机制实现的过程可分为请求-->响应-->服务-->返回。
可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片。
其内部结构及引脚图如下:
中断申请的过程可大概描述为:中断源发生-----》(此中断未被屏蔽)中断优先级判定(高于正在服务的中断则打断)------》向cpu发送中断请求-----》cpu 回复一个inta告诉中断申请成功------》中断服务寄存器相应的位置位,表示这个中断正在被执行---------》当收到cpu的第二个inta的时候,中断逻辑单元把中断号发给cpu,cpu调用相应的中断程序执行------》发送中断号时,将ISR的相应位复位(利用完了就复位,主要是把中断号拿出来。
如果不复位,则每次逻辑电路放在总线上的中断号就会出错),表示执行完毕。
其内部涉及的关键型寄存器有:中断请求寄存器,中断屏蔽寄存器,中断优先级判别寄存器,中断服务寄存器。
对于8259A的各个模块的官方描述如下:。
82598259A是一个可编程的中断控制器,应用在实时的、以中断方式进行监控的计算机系统中。
用一片8259A可以管理8个等级的中断申请。
并可再经级联扩展多至8片8259A,使得中断等级可扩展多至64级。
8259A可以作为一个I/O外围器件,用系统软件编程,它所具有的多种优先权方式可以通过主程序在任何时候进行改变或重新组织。
这意味着可以按照全系统的外围情况和要求,设计出一个完整的中断结构,用来实现优先管理、中断屏蔽以及自动中断矢量转移。
它几乎可以适合于任何一种中断控制的结构,因而得到了广泛的应用。
1 引脚图8259A为28脚双列直插式封装的器件。
2 内部结构其工作过程如下:第一步:当中断请求线(IR0~IR7)上有信号输入时,就把中断请求寄存器IRR相应的位置1。
第二步:当IRR的一位置1后,就会与IMR中相应的屏蔽位进行比较,如该屏蔽位为0,则请求被发送给优先级分析器;如该屏蔽位为1,则封锁该请求。
第三步:当一个中断请求被输入优先级分析器后,将由优先权分析器判定其优先权,然后向CPU 发中断申请,INT脚变高(INT联到8086的INTR)。
第四步:CPU的INTR引脚为异步状态接收,也就是它可以在任何时间(与时钟无关)接收中断。
在软件控制下利用STI指令(中断置位)或CLI(中断复位)指令可分别将CPU的“中断开放标志位”IF置位或复位,可以做到接受或不理睬在INTR上的中断申请。
第五步:假定CPU中的IF标志为1,则CPU在完成当前指令的即进入中断响应周期,这个中断响应周期将标志寄存器入栈,然后清除IF标志,关闭了中断。
再将代码段寄存器和指令指针也入栈(这是为了从中断服务程序返回),然后CPU发出第二个 INTA脉冲通知8259A,说明8086已经允许了它的中断请求。
若8086用于“最小方式”,则INTA脉冲信号为8086 INTA引脚上的信号;若8086用于“最大方式”时,则8086 LOCK脚在中断响应序列执行期间变为低电平。