中断与中断管理修改.ppt
微机原理及应用第第9 9章章 中断与中断管理中断与中断管理刘璐玲刘璐玲第第9 9章章 中断与中断管理中断与中断管理v中断原理中断原理v中断系统组成及其功能中断系统组成及其功能v中断源识别及中断优先权中断源识别及中断优先权v80868086中断系统中断系统v8086CPU8086CPU的中断管理的中断管理v可编程中断管理芯片可编程中断管理芯片8259A8259AvIBM PCIBM PC硬件中断硬件中断1.熟熟悉悉8088/8086的的中中断断类类型型、中中断断响响应应过过程程、中中断向量表断向量表2.掌握内部中断服务程序的编写掌握内部中断服务程序的编写3.理解理解8259A的内部结构、寄存器作用、中断过程的内部结构、寄存器作用、中断过程4.掌掌握握8259A的的普普通通全全嵌嵌套套优优先先权权、普普通通中中断断结结束束、边沿触发方式边沿触发方式5.了了解解的的8259A的的ICW和和OCW,注注意意命命令令字字和和状状态态字的区别方法字的区别方法6.了解了解8259A在在IBM PC系列机上的应用情况系列机上的应用情况7.掌握外部中断服务程序的编写掌握外部中断服务程序的编写【学习目的】【学习目的】v 8088 CPU的中断系统的中断系统v 中断服务程序的编写中断服务程序的编写v 中断控制器中断控制器8259A的作用的作用【学习重点】【学习重点】【难点】【难点】v1.中断向量表的填写 v2.8259A的ICW和OCW的使用v3.初始化编程概述 当当CPUCPU用查询的方式与外设交换信息时,用查询的方式与外设交换信息时,CPUCPU就要浪费很多时间去等待外设。这样就引就要浪费很多时间去等待外设。这样就引出一个出一个快速的快速的CPUCPU与与慢速的外设慢速的外设之间数据传送之间数据传送的矛盾,这也是计算机在发展过程中遇到的的矛盾,这也是计算机在发展过程中遇到的严重问题之一。为解决这个问题,一方面要严重问题之一。为解决这个问题,一方面要提高外设的工作速度,另一方面发展了中断提高外设的工作速度,另一方面发展了中断概念。中断系统是计算机的重要指标之一。概念。中断系统是计算机的重要指标之一。9 91 1 中断原理中断原理 一、从无条件传送、条件传送到中断传送一、从无条件传送、条件传送到中断传送条件传送最大的缺点就是为了条件传送最大的缺点就是为了CPUCPU和外设在时间和外设在时间上配合正确,上配合正确,CPUCPU花大量的时间用无条件方式对状态花大量的时间用无条件方式对状态线进行查询,从而降低了整个系统的工作效率。线进行查询,从而降低了整个系统的工作效率。具有中断功能的具有中断功能的CPUCPU中,有一个中,有一个硬件部件硬件部件专门用专门用于检测外设的状态线。于检测外设的状态线。检测状态信号检测状态信号状态信号有效?状态信号有效?外设处理外设处理外设处理外设处理检测状态信号检测状态信号主主程程序序条件条件传输(程序检测状态传输(程序检测状态信号)信号)中断中断传输(传输(CPU硬件检测状态硬件检测状态信号)信号)二、中断概念二、中断概念 在中断传送方式下,外设应有请求在中断传送方式下,外设应有请求CPUCPU服务的权服务的权利,当外部设备准备好向利,当外部设备准备好向CPUCPU传送数据,或者外设传送数据,或者外设已准备就绪接收已准备就绪接收CPUCPU的数据,或者有某些紧急情况的数据,或者有某些紧急情况要求处理,或者是定时时间到等等。这时,外设要求处理,或者是定时时间到等等。这时,外设向向CPUCPU发出发出中断请求中断请求,CPUCPU接收到请求并在一定条接收到请求并在一定条件下,件下,暂时停止执行原来的程序暂时停止执行原来的程序而转去中断处理,而转去中断处理,处理好中断服务再返回来执行原来程序,这就是处理好中断服务再返回来执行原来程序,这就是一个中断概念。一个中断概念。处理文档处理文档电话铃响电话铃响暂停文档暂停文档文档中作暂停记号文档中作暂停记号电话交谈电话交谈找出暂停记号位置找出暂停记号位置继续处理文档继续处理文档执行主程序执行主程序(日常事务程序日常事务程序)中断申请信号有效中断申请信号有效(中断请求中断请求)暂停执行主程序暂停执行主程序响应中断响应中断当前当前PC及寄存器入栈(及寄存器入栈(保护现场保护现场)处理外设要求处理外设要求(中断服务中断服务)寄存器及寄存器及PC出栈出栈(恢复现场及中断返回恢复现场及中断返回)继续执行主程序继续执行主程序中断举例中断举例中断过程中断过程三、中断应用三、中断应用1 1、实时故障处理实时故障处理存储器出错检测电路存储器出错检测电路 存储器存储器奇偶检测电路奇偶检测电路奇偶奇偶位位中断请求信号中断请求信号存储器出错检测电路存储器出错检测电路2 2、分时操作,同时处理分时操作,同时处理 有了中断功能,有了中断功能,CPUCPU可命令多个外设同时工作。可命令多个外设同时工作。虽然虽然CPUCPU在不同的时间点上为不同的任务工作,在不同的时间点上为不同的任务工作,但宏观上看但宏观上看CPUCPU几乎同时为不同的任务工作,极几乎同时为不同的任务工作,极大地发挥了大地发挥了CPUCPU高速性的特点。高速性的特点。9 92 2 中断系统组成及其功能中断系统组成及其功能 一、一、三个与中断有关的触发器三个与中断有关的触发器 1 1、中断请求中断请求触发器触发器 有两个特点:有两个特点:(1 1)它的输出可以作为中断请求信号,)它的输出可以作为中断请求信号,在满足一定条件的情况下把信号发送给在满足一定条件的情况下把信号发送给CPUCPU,并在,并在CPUCPU未响应时一直保存下去;未响应时一直保存下去;(2 2)当)当CPUCPU满足一定条件下响应了该中断满足一定条件下响应了该中断请求信号,执行了相关的操作后,该中请求信号,执行了相关的操作后,该中断请求信号可以被撤除。断请求信号可以被撤除。D QD QR RD D状态线状态线中断请求中断请求外设读、写操作外设读、写操作 CLK CLK+5V+5V中断源:中断源:引起中断的原因或能发出中断申请的来源。引起中断的原因或能发出中断申请的来源。(1 1)一般的输入输出设备)一般的输入输出设备键盘,打印机,鼠标等。键盘,打印机,鼠标等。(2 2)数据通道中断源)数据通道中断源软盘,硬盘等。软盘,硬盘等。(3 3)实时时钟)实时时钟用外部时钟定时发出中断信号,由用外部时钟定时发出中断信号,由CPUCPU进行进行处理。处理。(4 4)故障源)故障源(a)外设故障)外设故障电源掉电,运行超限等。电源掉电,运行超限等。(b)计算机故障)计算机故障内存出错,输入输出出错等。内存出错,输入输出出错等。(5 5)测试程序时设置的中断源)测试程序时设置的中断源硬件断点:硬件调试器硬件断点:硬件调试器软件断点:软件断点:INT 03HINT 03H调试程序应支持单步运行和断点运行调试程序应支持单步运行和断点运行2 2、中断屏蔽中断屏蔽触发器触发器 中断屏蔽触发器的功能就是决定中断请求触发器的输出中断屏蔽触发器的功能就是决定中断请求触发器的输出信号是否可以作为中断请求信号发送给信号是否可以作为中断请求信号发送给CPUCPU,这样,这样CPUCPU通过通过对中断屏蔽触发器的设置就可以达到对中断源的控制。对中断屏蔽触发器的设置就可以达到对中断源的控制。中断屏蔽触发器的作用中断屏蔽触发器的作用中断屏蔽触发器的作用中断屏蔽触发器的作用3 3、CPU内部的内部的中断允许中断允许触发器触发器CPU通过对它进行设置来决定是否对发给它的中断请通过对它进行设置来决定是否对发给它的中断请求信号进行响应。求信号进行响应。有些有些CPU,比如,比如8086CPU,设置了两种中断类型,设置了两种中断类型可屏可屏蔽中断和不可屏蔽中断蔽中断和不可屏蔽中断。可屏蔽中断受中断允许触发器控。可屏蔽中断受中断允许触发器控制,只有当制,只有当IF为为1时,时,CPU才能响应中断请求信号。而不才能响应中断请求信号。而不可屏蔽中断不受中断允许触发器的控制,只要中断请求信可屏蔽中断不受中断允许触发器的控制,只要中断请求信号有效,不管号有效,不管IF是否为是否为1,CPU就必须响应。因此不可屏就必须响应。因此不可屏蔽中断的中断优先级要大于可屏蔽中断的中断优先级。蔽中断的中断优先级要大于可屏蔽中断的中断优先级。二、二、再谈中断条件再谈中断条件 外设的中断请求信号要想发给外设的中断请求信号要想发给CPU并能最终得到并能最终得到CPU的响应,必须要满足如下两个条件:的响应,必须要满足如下两个条件:一个是中断屏蔽触发器处于一个是中断屏蔽触发器处于非屏蔽状态非屏蔽状态。在这种。在这种情况下,中断请求信号才能发给情况下,中断请求信号才能发给CPU。但。但CPU是否是否响应这个中断,还要看中断允许触发器是否处于响应这个中断,还要看中断允许触发器是否处于开开中断状态中断状态。只有。只有CPU是开中断的条件下,是开中断的条件下,CPU才能才能进入中断响应过程,处理中断事务。这就是第二个进入中断响应过程,处理中断事务。这就是第二个条件。条件。9 93 3 中断响应过程中断响应过程中断过程主要包括三个方面:中断过程主要包括三个方面:外设发中断请求信号给外设发中断请求信号给CPU即即中断请求中断请求;CPU对中断请求信号所作出反应即对中断请求信号所作出反应即中断响应中断响应;CPU执行对外设操作的子程序即执行对外设操作的子程序即中断处理中断处理。一、中断申请一、中断申请 设置中断请求触发器有效,当中断屏蔽触发器设置中断请求触发器有效,当中断屏蔽触发器状态为状态为1,则中断请求触发器输出的中断请求信号,则中断请求触发器输出的中断请求信号发给发给CPU。二、中断响应二、中断响应CPU响应响应可屏蔽中断可屏蔽中断申请必须满足申请必须满足3个条件个条件:无总线请求;无总线请求;CPU被允许中断;被允许中断;CPU执行完现行指令。执行完现行指令。三、中断处理三、中断处理 CPU响应中断后要自动完成三项任务:响应中断后要自动完成三项任务:1、关闭中断关闭中断;2、CS、IP以及以及FR的内容推入堆栈;的内容推入堆栈;3、中断服务程序段地址送入、中断服务程序段地址送入CS中,偏移地址送中,偏移地址送入入IP中。中。一旦一旦CPU响应中断,就可转入中断服务程序之响应中断,就可转入中断服务程序之中。中。中断服务程序的结构如下:中断服务程序的结构如下:push ax;保护现场;保护现场push bxsti;开中断;开中断;中断处理;中断处理cli;关中断;关中断pop bx;恢复现场;恢复现场pop axsti;开中断;开中断reti;中断返回;中断返回 四、中断源识别及中断优先权四、中断源识别及中断优先权 在在中中断断系系统统中中一一个个非非常常关关键键的的问问题题是是CPU如如何何知知道道是是哪哪一一个个中中断断源源发发出出的的中中断断申申请请信信号号。只只有有正正确确地地确确定定中中断断源源,CPU才才能能转转到到相应的中断服务程序为之服务。相应的中断服务程序为之服务。这这里里,确确定定中中断断源源的的方方法法被被称称为为中中断断源源识识别或中断方式别或中断方式。1 1、中断源识别中断源识别 包括两个方面:包括两个方面:其一,确定中断源;其一,确定中断源;其二,找到该中断服务程序的首地址。其二,找到该中断服务程序的首地址。下面我们给出解决问题的两种方案。下面我们给出解决问题的两种方案。(1)查询中断)查询中断IN AL,IPORT;从输入接口取中断信息;从输入接口取中断信息TEST AL,80H;是;是0号设备请求吗号设备请求吗?JNZ SEVO ;是,转是,转0号设备服务程序号设备服务程序TEST AL,40H;否,是;否,是1号设备请求吗号设备请求吗?JNZ SEVl;是,转是,转1号设备服务程序号设备服务程序TEST AL,20H;否,是;否,是2号设备请求吗号设备请求吗?JNZ SEV2;是,转是,转2号设备服务程序号设备服务程序TEST AL,10H;否,是;否,是3号设备请求吗号设备请求吗?JNZ SEV3;是,转是,转3号设备服务程序号设备服务程序(2 2)矢量中断)矢量中断 中断申请信号和中断响应信中断申请信号和中断响应信号是一对握手信号。在驱动一个号是一对握手信号。在驱动一个中断事件过程中,中断请求信号中断事件过程中,中断请求信号是外设发给是外设发给CPU的,当其有效的,当其有效时,表示外设请求时,表示外设请求CPU为之服务。为之服务。而中断响应信号是而中断响应信号是CPU发给外设发给外设的,当其有效时,表明的,当其有效时,表明CPU可以可以为这个外设服务,同时要求外设为这个外设服务,同时要求外设提供中断类型号。提供中断类型号。2 2、中断优先权中断优先权(1 1)软件方案)软件方案 查询方法优点查询方法优点:1、查询次序即是、查询次序即是优先权次序。优先权次序。2 2、省硬件,不需、省硬件,不需要硬件排队电路。要硬件排队电路。缺点缺点:转至服务程序转至服务程序入口时间长。入口时间长。软件查询确定优先权的软件查询确定优先权的软件查询确定优先权的软件查询确定优先权的缺点缺点缺点缺点响应中断慢。响应中断慢。响应中断慢。响应中断慢。(2 2)硬件方案)硬件方案v链形电路链形电路这种方法是利用外设在系统中的物理位置来决定其这种方法是利用外设在系统中的物理位置来决定其中断优先权的。中断优先权的。链式优先权排队电路(如图所示)链式优先权排队电路(如图所示)v编码电路编码电路 74LSl48 74LSl48是一个是一个8 8到到3 3线的优先权编码器,线的优先权编码器,它是一个它是一个1616个管脚双列直插式个管脚双列直插式TTLTTL器件。器件。9 94 80864 8086中断系统中断系统 一、一、80868086的中断源的中断源 80868086中断系统有两大类型的中断源,一类是由外部设备产中断系统有两大类型的中断源,一类是由外部设备产生的中断,我们称之为生的中断,我们称之为硬件中断硬件中断,硬件中断有时又称外中断。,硬件中断有时又称外中断。另一类是由指令在某种运行结果时产生的中断,我们称之为另一类是由指令在某种运行结果时产生的中断,我们称之为软软件中断件中断。另外对于硬件中断,又分为。另外对于硬件中断,又分为不可屏蔽中断和可屏蔽中不可屏蔽中断和可屏蔽中断断,硬件中断是通过,硬件中断是通过CPUCPU芯片的芯片的INTRINTR管脚或管脚或NMINMI管脚从外部引入管脚从外部引入的。的。INT 3INT 3指令指令INTOINTO指令指令INT 4INT 4断点断点单步单步中断中断INT 1INT 1除数除数为为0 0INT 0INT 0INT n INT n 指令指令中中 断断 逻逻 辑辑NMINMIINTRINTR非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断外设提供外设提供中断号中断号INT 2INT 2中断服务子程序的调用通过中断类型号来完成。中断服务子程序的调用通过中断类型号来完成。中断服务子程序的调用通过中断类型号来完成。中断服务子程序的调用通过中断类型号来完成。中断类型号和中断服务子程序的入口地址之间的关系:中断类型号和中断服务子程序的入口地址之间的关系:中断类型号和中断服务子程序的入口地址之间的关系:中断类型号和中断服务子程序的入口地址之间的关系:二、不可屏蔽中断二、不可屏蔽中断所谓不可屏蔽中断就是用户不能通过所谓不可屏蔽中断就是用户不能通过CPU内的中内的中断允许触发器断允许触发器IF控制的中断,由控制的中断,由8086CPU的的NMI管脚管脚引入。引入。NMI中断请求采用中断请求采用上升沿触发上升沿触发方式,这种中断方式,这种中断一旦产生,在一旦产生,在CPU内部直接生成内部直接生成中断类型号中断类型号02。不可屏蔽中断一般用于非常事件。不可屏蔽中断一般用于非常事件。例如:例如:q电源掉电前的数据保护电源掉电前的数据保护q存储器读写错误的处理存储器读写错误的处理三、三、可屏蔽中断可屏蔽中断 可可屏屏蔽蔽中中断断就就是是用用户户可可以以控控制制的的中中断断,其其途途径径是是通通过过对对CPU内内的的中中断断允允许许触触发发器器IF的的设设置置来来禁禁止止和和允允许许CPU响响应应中中断断。可可屏屏蔽蔽中中断断由由8086CPU的的INTR管管脚脚引引入入。这这种种中中断断请请求求需需要要设设备备提提供供中中断断类类型型号号,CPU响响应应中中断断后后,取取中中断断类类型型号号的的4倍倍作作为为中中断断服服务务入入口口地地址址表表的的地地址址,通通过过查查表表得得到到相相应应的的中中断断服服务务程序首地址,转去执行相应的中断服务程序。程序首地址,转去执行相应的中断服务程序。四、四、80868086中断系统中断系统1 1、软件中断、软件中断 软软件件中中断断是是由由中中断断指指令令引引起起的的。中中断断指指令令的的指指令令格格式式为为 INT INT n n,操操作作数数n n就就是是中中断断类类型型号号。当当CPUCPU执执行行完完毕毕中中断断指指令令INT INT n n后后,就就会会立立即即产产生生一一个中断类型号为个中断类型号为n的中断。的中断。(1)(1)除法中断除法中断 当进行除法运算时,若除数为当进行除法运算时,若除数为0 0或除数太小,或除数太小,使得商数大于相应寄存器所能表示的最大值,被使得商数大于相应寄存器所能表示的最大值,被称作除法出错。这时除法指令就相当于一个中断称作除法出错。这时除法指令就相当于一个中断源,它向源,它向CPUCPU发出类型发出类型0 0中断。中断。(2)(2)溢出中断溢出中断 当算术运算产生溢出时,将在当算术运算产生溢出时,将在INTOINTO指令控制下向指令控制下向CPUCPU发出类型发出类型4 4的中断,即溢出中断。的中断,即溢出中断。(3)(3)单步中断和断点中断单步中断和断点中断v单步中断单步中断 当当8086CPU8086CPU的标志寄存器中的的标志寄存器中的TFTF标志为标志为1 1时,时,8086CPU8086CPU处于单步工作方式,这时处于单步工作方式,这时CPUCPU在每条指令执行在每条指令执行后自动产生类型后自动产生类型l l的中断。的中断。v断点中断断点中断 INT3INT3指指令令是是1 1字字节节指指令令,可可将将这这条条指指令令的的目目的的代代码嵌入任意条指令的操作码处,从而实现断点中断。码嵌入任意条指令的操作码处,从而实现断点中断。v外部中断是由于外部中断是由于8088外部提出中断请求引起的程序外部提出中断请求引起的程序中断中断v利用外部中断,微机系统可以实时响应外部设备的利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部意外或紧急事件数据传送请求,能够及时处理外部意外或紧急事件v外部中断的原因是处理器外部随机产生的,所以是外部中断的原因是处理器外部随机产生的,所以是真正的真正的中断中断(Interrupt)v内部中断的原因是处理器执行程序出现异常,所以内部中断的原因是处理器执行程序出现异常,所以经常被称为经常被称为异常异常(Exception)补充说明:外部中断9 95 8086CPU5 8086CPU的中断管理的中断管理一、一、8086CPU8086CPU的中断处理顺序的中断处理顺序 8086CPU8086CPU的中断优先权排列从高到低为:的中断优先权排列从高到低为:1、除法出错中断,溢出中断,、除法出错中断,溢出中断,INT nINT n;2 2、NMINMI;3 3、INTRINTR;4 4、单步中断、单步中断。二、二、8086CPU8086CPU的中断服务入口地址表(的中断服务入口地址表(中断向量表)80868086CPUCPU在内存的前在内存的前在内存的前在内存的前1KB1KB(地址(地址(地址(地址00000H003FFH)00000H003FFH)建立一建立一建立一建立一个中断向量表,存放个中断向量表,存放个中断向量表,存放个中断向量表,存放256256个中断服务程序的入口地个中断服务程序的入口地个中断服务程序的入口地个中断服务程序的入口地址,每个地址占址,每个地址占址,每个地址占址,每个地址占4 4个字节。个字节。个字节。个字节。前两个字节为中断服务程前两个字节为中断服务程前两个字节为中断服务程前两个字节为中断服务程序偏移地址序偏移地址序偏移地址序偏移地址IP,IP,后两个字节后两个字节后两个字节后两个字节为段地址为段地址为段地址为段地址CSCS。中断类型号中断类型号中断类型号中断类型号乘以乘以乘以乘以4 4得到中断服务程序得到中断服务程序得到中断服务程序得到中断服务程序入口地址的地址入口地址的地址入口地址的地址入口地址的地址。9.6 9.6 可编程中断管理芯片可编程中断管理芯片8259A8259An n功能功能功能功能uu管理和控制管理和控制管理和控制管理和控制80 x8680 x86的的的的外部中断外部中断外部中断外部中断请求请求请求请求uu实现实现实现实现中断判优、提供中断矢量、屏蔽中断输入中断判优、提供中断矢量、屏蔽中断输入中断判优、提供中断矢量、屏蔽中断输入中断判优、提供中断矢量、屏蔽中断输入uu单片单片单片单片8259A8259A可管理可管理可管理可管理8 8级级级级中断;采用级联方式,最多可管理中断;采用级联方式,最多可管理中断;采用级联方式,最多可管理中断;采用级联方式,最多可管理6464级级级级中断中断中断中断n n内部结构内部结构内部结构内部结构uu数据总线缓冲器;数据总线缓冲器;数据总线缓冲器;数据总线缓冲器;uu读读读读/写控制电路;写控制电路;写控制电路;写控制电路;uu级联缓冲级联缓冲级联缓冲级联缓冲/比较器;比较器;比较器;比较器;uu中断请求寄存器中断请求寄存器中断请求寄存器中断请求寄存器IRRIRRIRRIRR;uu中断服务寄存器中断服务寄存器中断服务寄存器中断服务寄存器ISRISRISRISR;uu中断屏蔽寄存器中断屏蔽寄存器中断屏蔽寄存器中断屏蔽寄存器IMRIMRIMRIMR;uu优先权判别器优先权判别器优先权判别器优先权判别器PRPRPRPR;uu控制电路。控制电路。控制电路。控制电路。9.6.18259A结构与功能结构与功能D7D0INTAINT中中断断请请求求寄寄存存器器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制控制逻辑逻辑级联级联缓冲器缓冲器比较器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优优先先权权判判别别电电路路中中断断服服务务寄寄存存器器控制逻辑控制逻辑中断请求寄存器中断请求寄存器IRRIRR保存保存8条外界中断请求信号条外界中断请求信号IR0 0IR7 7的请求状态的请求状态Di i位为位为1表示表示IRi引脚有中断请求;为引脚有中断请求;为0表示无请求表示无请求中断服务寄存器中断服务寄存器ISRISR保存正在被保存正在被8259A服务着的中断状态服务着的中断状态Di i位为位为1表示表示IRi i中断正在服务中;为中断正在服务中;为0表示没有被服务表示没有被服务中断屏蔽寄存器中断屏蔽寄存器IMRIMR保存对中断请求信号保存对中断请求信号IR的屏蔽状态的屏蔽状态Di i位为位为1表示表示IRi i中断被屏蔽(禁止);为中断被屏蔽(禁止);为0表示允许表示允许v引脚引脚与与CPU相连相连v双向数据线:双向数据线:D0D7;v选通与读写控制信号线:选通与读写控制信号线:A0、v多功能设置信号线:多功能设置信号线:与外部中断源相连与外部中断源相连vIR0IR7(电平触发或边沿触发)电平触发或边沿触发)与其它与其它8259A相连相连vCAS0CAS2电源与地信号电源与地信号vVCC(5V)、GNDSP/EN 在非缓冲工作方式时,输入,决定主片还是从片;在缓冲工作方式时,输出,由它打开总线缓冲器。3.中断级连v一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259Av级连时,主8259A的三条级连线CAS0CAS2作为输出线,连至每个从8259A的CAS0CAS2v每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IRv主8259A的INT线连至CPU的中断请求输入端vSP*/EN*在非缓冲方式下,规定该8259A是主片(SP*1)还是从片(SP*0)CAS0IR0CAS1IR1CAS2IR2IR3INTAIR4IR5INTIR6IR7SP/ENCAS0INTACAS1CAS2INTIR0IR1SP/ENIR7CAS0IR0CAS1IR1CAS2IR2IR3INTAIR4IR5INTIR6IR7SP/ENINTAINTR+5V8259级联工作示意图级联工作示意图9.6.2 中断响应过程(中断响应过程(CPU与与8259A的操作过程)的操作过程)(a)申请中断)申请中断 外设外设 对应对应IR0 IR7为为“1”,判优后使,判优后使INT为为“1”CPU的的INTR输入输入“1”,申请中断。,申请中断。(b)响应中断的条件)响应中断的条件 CLI 使使 IF=0,禁止中断。,禁止中断。STI 使使 IF=1,允许中断。,允许中断。(c)响应中断)响应中断 CPU先做三个工作:先做三个工作:(1)将将FR进栈进栈 (2)使使IF=0,TF=0 (3)断点的断点的CS、IP进栈进栈9.6.2 中断响应过程(中断响应过程(CPU与与8259A的操作过程)的操作过程)(d)INTA脉冲周期脉冲周期 CPU响应中断经响应中断经INTA引脚发两个引脚发两个INTA脉冲脉冲 第一个第一个INTA脉冲,通知脉冲,通知8259A,CPU响应中断,响应中断,将将ISRi i置置1。第二个第二个INTA脉冲,脉冲,8259A送中断类型号送中断类型号,CPU将将n4找到中断找到中断服务程序入口地址,执行中断程序。服务程序入口地址,执行中断程序。(e)中断服务程序)中断服务程序(1)开中断()开中断(STI)(2)保护现场()保护现场(PUSH)(3)处理部分)处理部分(4)中断结束)中断结束 EOI(5)恢复现场)恢复现场(POP)(6)中断返回)中断返回 IRET9.6.3 8259A的工作方式的工作方式(a)设置优先级的方式设置优先级的方式 (b)中断结束的方式中断结束的方式(c)中断屏蔽方式中断屏蔽方式(d)中断触发中断触发(e)8259A的级联的级联9.6.3 8259A的工作方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自动循环方式自动循环方式特殊循环方式特殊循环方式优先权固定方式优先权固定方式优先权循环方式优先权循环方式设置优先权方式设置优先权方式普通中断结束方式普通中断结束方式特殊中断结束方式特殊中断结束方式自动中断结束方式自动中断结束方式非自动中断结束方式非自动中断结束方式结束中断处理方式结束中断处理方式屏蔽中断源方式屏蔽中断源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式中断触发方式中断触发方式边沿触发方式边沿触发方式电平触发方式电平触发方式数据线连接方式数据线连接方式缓冲方式缓冲方式非缓冲方式非缓冲方式(1)设置优先权方式v普通全嵌套方式8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其中断类型号送上数据总线,对应ISR的Di位置位,至到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套v特殊全嵌套方式v优先权自动循环方式v优先权特殊循环方式(2)结束中断处理方式什么是什么是8259A的中断结束?的中断结束?8259A利用中断服务寄存器利用中断服务寄存器ISR判断:判断:n某位为某位为1,表示正在进行中断服务;,表示正在进行中断服务;n该位为该位为0,就是该中断结束服务。,就是该中断结束服务。这里说明如何使这里说明如何使ISR某位为某位为0,不反映不反映CPU的工作状态。的工作状态。(2)结束中断处理方式v自动中断结束方式自动中断结束方式v普通中断结束方式普通中断结束方式配合全嵌套优先权方式使用配合全嵌套优先权方式使用当当CPU用输出指令往用输出指令往8259A发出普通中断结束发出普通中断结束EOI命命令令时,时,8259A就会把所有正在服务的中断中优先权最就会把所有正在服务的中断中优先权最高的高的ISR位复位位复位v特殊中断结束方式特殊中断结束方式配合循环优先权方式使用配合循环优先权方式使用CPU在程序中向在程序中向8259A发送一条特殊中断结束命令,发送一条特殊中断结束命令,这个命令中指出了要清除哪个这个命令中指出了要清除哪个ISR位位(3)屏蔽中断源方式v普通屏蔽方式普通屏蔽方式将将IMR的的Di位置位置1,则对应的中断,则对应的中断IRi被屏蔽被屏蔽,该,该中断请求不能从中断请求不能从8259A送到送到CPU如果如果IMR的的Di位置位置0,则允许,则允许IRi中断产生中断产生v特殊屏蔽方式特殊屏蔽方式将将IMR的的Di位置位置1,对应的中断,对应的中断IRi被屏蔽的同时,被屏蔽的同时,使使ISR的的Di位置位置0(4)中断触发方式v边沿触发方式边沿触发方式8259A将中断请求输入端出现的上升将中断请求输入端出现的上升沿作为中断请求信号沿作为中断请求信号v电平触发方式电平触发方式中断请求端出现的高电平是有效的中中断请求端出现的高电平是有效的中断请求信号断请求信号5.数据线连接方式v缓冲方式缓冲方式8259A的数据线需加缓冲器予以驱动的数据线需加缓冲器予以驱动8259A把把SP*/EN*引脚作为输出端,输出允许信号,引脚作为输出端,输出允许信号,用以锁存或开启缓冲器用以锁存或开启缓冲器v非缓冲方式非缓冲方式SP*/EN*引脚为输入端引脚为输入端若若8259A级连,由其确定是主片或从片级连,由其确定是主片或从片 9.6.4 8259A的编程v初始化编程8259A开始工作前,必须进行初始化编程给8259A写入初始化命令字ICWv中断操作编程在8259A工作期间可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作还可以读取8259A的信息,以便了解他的工作状态1.初始化命令字ICWv初始化命令字ICW最多有4个v8259A在开始工作前必须写入v必须按照ICW1ICW4顺序写入vICW1和ICW2是必须送的vICW3和ICW4由工作方式决定D7D6D5D4D3D2D1D0ICW11LTIMSNGLIC4D7D6D5D4D3D2D1D0表示可以任意表示可以任意为为1为为0都可以(建议为都可以(建议为0)1只能为只能为1,作为标志,作为标志中断触发方式:中断触发方式:LTIM1,电平触发方式,电平触发方式LTIM0,边沿触发方式,边沿触发方式规定单片或级连方式:规定单片或级连方式:SNGL1,单片方式,单片方式SNGL0,级连方式,级连方式是否写入是否写入ICW4IC41,要写入,要写入ICW4IC40,不写入,不写入ICW4,即,即ICW4规定的位全为规定的位全为0ICW2T7T6T5T4T3D7D6D5D4D3D2D1D0设置中断向量号设置中断向量号nT7T3为中断向量号的高为中断向量号的高5位位n低低3位由位由8259A自动确定:自动确定:nIR0为为 000、IR1为为 001、IR7为为111ICW3S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字级连命令字n主主片片8259A:Si1对对应应IRi接接有有从从片片;否则否则IRi没有连接从片没有连接从片n从从片片8259A:ID0ID2编编码码说说明明从从片片INT引脚接到主片哪个引脚接到主片哪个IR引脚引脚ICW4000SFNMBUFM/SAEOIPMD7D6D5D4D3D2D1D0嵌套方式:嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(SFNM1)n普通全嵌套方式(普通全嵌套方式(SFNM0)数据线的缓冲方式:数据线的缓冲方式:n缓冲方式(缓冲方式(BUF1)n非缓冲方式(非缓冲方式(BUF0)主片主片/从片选择:从片选择:n主片(主片(M/S=1)n从片(从片(M/S=0)中断结束方式:中断结束方式:n自动中断结束(自动中断结束(AEOI1)n非自动中断结束(非自动中断结束(AEOI0)微处理器类型:微处理器类型:n16位位80 x86(PM1)n8位位8080/8085(PM0)2.操作命令字OCWv8259A工作期间,可以随时接受操作命令字OCWvOCW共有3个:OCW1OCW3v写入时没有顺序要求,需要哪个OCW就写入那个OCWD7D6D5D4D3D2D1D0OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字屏蔽命令字内容写入中断屏蔽寄存器内容写入中断屏蔽寄存器IMRDiMi对应对应IRi,为,为1禁止禁止IRi中断;中断;为为0允许允许IRi中断。各位互相独立。中断。各位互相独立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和和EOI配配合合使使用用产产生生中中断断结结束束EOI命命令和改变优先权顺序令和改变优先权顺序L2L0的的3位编码位编码指定指定IR引脚引脚OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM设置中断屏蔽方式设置中断屏蔽方式P、RR和和RIS规规定定随随后后读读取取的的状态字状态字含义含义3.读取状态字vCPU可读出IRR、ISR、IMR和查询字vA0为低,由OCW3中RR和RIS位设定读取IRR或ISR,由OCW3中P位设定读取查询字v而A0引脚为高电平时读取的都是IMRv查询字反映8259A是否有中断请求D7D6D5D4D3D2D1D0查询字IW2W1W0D7D6D5D4D3D2D1D0中断位中断位I位为位为1,有外设请求中断有外设请求中断W2W0的编码的编码当当前前中中断断请请求求的的最高优先级最高优先级4.命令字和状态字的区别方法 利用读写信号区别写入的控制寄存器和读出的状态寄存器 利用地址信号区别不同I/O地址的寄存器 由控制字中的标志位说明是哪个寄存器 由芯片内顺序控制逻辑按一定顺序识别不同的寄存器 由前面的控制字决定后续操作的寄存器接口电路中常用的方法接口电路中常用的方法初始化主片8259Amov al,11h;写入ICW1out 20h,aljmp intr1intr1:mov al,08h;写入ICW2out 21h,aljmp intr2intr2:mov al,04h;写入ICW3out 21h,aljmp intr3intr3:mov al,1h;写入ICW4out 21h,al中断控制器的初始化程序段初始化从片8259Amov al,11h;写入ICW1out 0a0h,aljmp intr5intr5:mov al,70h;写入ICW2out 0a1h,aljmp intr6intr6:mov al,02h;写入ICW3out 0a1h,aljmp intr7intr7:mov al,01h;写入ICW4out 0a1h,al中断控制器的初始化程序段9.6.5 8259A与计算机的连接与计算机的连接(1)单片工作方式的接口电路)单片工作方式的接口电路9.6.4 8259A与计算机的连接与计算机的连接说明:说明:(1 1)数据线与控制信号对应连接。)数据线与控制信号对应连接。(2 2)由)由74LS3074LS30(8 8输入的与非门)和输入的与非门)和7474LS138LS138(三(三八译码八译码器)对地址线进行译码决定端口地址器)对地址线进行译码决定端口地址。(3 3)80868086使用低使用低8 8位数据线与位数据线与82598259A A传递信息。传递信息。80868086的的A1A1接接到到82598259的的A0A0线上,使用偶地址。线上,使用偶地址。(4 4)CAS2 CAS1 CAS0CAS2 CAS