版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、中断的基本概念二、8086/8088的中断系统三、中断控制器8259A第六章 中断技术一、中断的基本概念1、中断及中断源2、中断处理过程3、中断优先权管理1、中断及中断源 中断是一种让CPU挂起正在执行的程序而转去处理特殊事件的操作。 CPU暂时停止执行原来的程序而转去中断处理,处理好中断服务后再返回继续执行原来的程序,这样一个过程就是一个中断过程 。 能够引起CPU中断的事件称为中断源 。 中断源(1)一般的输入输出设备。如键盘,打印机等;(2)数据通道中断源。如磁盘,磁带机等直接与存储器交换数据所要求的中断;(3)实时时钟。在控制系统中使用外部硬件电路实现时间控制,当定时时间到时向CP
2、U发出中断申请;(4)故障引起的中断。如电源掉电等;(5)由中断指令或软件故障引起的中断。如系统功能调用,除数为0,或者在程序调试时设置断点等引起的中断。中断分类 根据中断与CPU的相对关系,中断分为内部中断和外部中断。 内部中断可以是中断指令设置的中断,调试程序时设置的中断,或是程序运行过程中发生的非预期情况而产生的中断; 外部中断则是由直接连到CPU引脚上的信号引起的中断,如外部设备请求服务中断,实时时钟定时到中断,电源掉电等。CPU中断系统的功能(1)实现中断及返回(2)实现优先权排队,以确定优先处理的中断源。(3)优先权高的中断源能中断优先权低的中断处理(1)实现中断及返回 当有一中断
3、源提出中断请求时,CPU首先判断是否响应该中断? * 如果CPU正在执行的是重要的程序,可以暂不响应,即关中断; *当CPU完成了当前的重要程序后,开中断予以响应,同时,保存断点,转入中断处理; * 当中断处理完后,恢复断点从而回到被中断运行的原程序继续执行; (1)实现中断及返回 * 通过设置CPU内部的中断允许触发器,开关中断 。 当设置为1,使中断允许(开中断);当设置为0,使中断不允许(关中断)。注意: 不可屏蔽中断,要求CPU立即处理。不受中断允许触发器的控制。 可屏蔽中断,受中断允许触发器的控制。(2)实现优先权排队,以确定优先处理的中断源 一个系统中有多个中断源,存在着几个中断源
4、同时请求的可能; 因此,必须事先根据中断源的重要性,给每个中断源确定一个中断优先级别优先权。 中断响应时,CPU应能首先响应优先权级别高的中断源。在中断服务处理过程中: 若新的中断申请其优先级别更高,则CPU应再一次中断,转去优先权更高的中断源服务。处理完后,再回到原来的中断服务中,这也称为中断嵌套。 若新的中断源优先权级别为同级或低级,则CPU暂不理会,继续正在处理的中断服务,直到当前中断处理结束后再去处理新的中断申请。 (3)优先权高的中断源能中断优先权低的中断处理2、中断处理过程 一个中断过程应该包含以下五个过程:(1)中断请求(2)中断排队(3)中断响应(4)中断服务(5)中断返回1、
5、中断请求中断请求外设需要外设需要CPU服务时,首先要发出中断请求。服务时,首先要发出中断请求。发出中断请求的外设就是中断源。发出中断请求的外设就是中断源。广义地说,能引起广义地说,能引起CPU程序产生中断的随机事程序产生中断的随机事件都称为中断源。不仅外部可以产生中断,件都称为中断源。不仅外部可以产生中断,CPU的内部也可以产生中断。这些中断源的共同特点的内部也可以产生中断。这些中断源的共同特点是都需要是都需要CPU对其进行适当的处理对其进行适当的处理。2、中断判优中断判优当系统具有若干个中断源时,若某一时刻有两个当系统具有若干个中断源时,若某一时刻有两个及以上的中断源同时发出中断请求,因为及
6、以上的中断源同时发出中断请求,因为CPU往往往只有一条中断请求线(往只有一条中断请求线(INTR),),而而CPU任一时任一时刻只能响应并处理一个中断,这就要求刻只能响应并处理一个中断,这就要求CPU判别判别优先级最高的中断源并响应之。优先级最高的中断源并响应之。中断判优就是要中断判优就是要解决请求中断的事件优先级的顺序问题解决请求中断的事件优先级的顺序问题。中断判优的方法有软件判优和硬件判优两种。软中断判优的方法有软件判优和硬件判优两种。软件判优电路简单,判优速度慢;硬件判优电路复件判优电路简单,判优速度慢;硬件判优电路复杂,判优速度快。杂,判优速度快。 如图,8个外设只要有中断请求,CPU
7、检测到中断请求信号,响应中断; D7D0 CPU INTRI/O 端口端口地址 80H1外设A B C D E F G H 中断请求读入端口读入端口80H的内容,逐位判别确定当前申请中的内容,逐位判别确定当前申请中断的优先权最高的中断源,从而进入相应的中断服断的优先权最高的中断源,从而进入相应的中断服务程序。务程序。用软件方法确定中断优先权用软件方法确定中断优先权申请申请中断中断CPU响应中断后,在中响应中断后,在中断服务程序中用软件判断服务程序中用软件判断中断源。断中断源。3#中中断断请请求求2#中中断断请请求求1#中中断断请请求求0#中中断断请请求求D3D2D1D0INTRIORHY340
8、XORAL,ALMOVDX,340HINAL,DXRCRAL,1JCSERV0RCRAL,1JCSERV1;读中断寄存器状态读中断寄存器状态;判断是否为判断是否为0#申请中断申请中断;判断是否为判断是否为1#申请中断申请中断;清清CF0#中中断断请请求求1#中中断断请请求求2#中中断断请请求求3#中中断断请请求求中中断断响响应应(来来自自CPU)中中断断响响应应输输出出0中中断断响响应应输输出出1中中断断响响应应输输出出2中中断断响响应应输输出出310用硬件方法确定中断优先权用硬件方法确定中断优先权菊花链式电路菊花链式电路中断优先级自上而下,中断优先级自上而下,上面端口的中断请求上面端口的中断
9、请求可以屏蔽下面的中断可以屏蔽下面的中断请求。硬件电路自然请求。硬件电路自然完成了中断判优。完成了中断判优。3 3、中断响应、中断响应中断响应就是中断响应就是CPU中断现正在进行的处理任务,转向中断现正在进行的处理任务,转向中断请求相对应的中断处理程序的过程中断请求相对应的中断处理程序的过程。在中断响应过程。在中断响应过程中应解决以下四个问题:中应解决以下四个问题:保护断点保护断点,保护现场保护现场(如标志寄(如标志寄存器或其他寄存器);存器或其他寄存器);CPU关中断关中断,不允许此时被新的中,不允许此时被新的中断源所打断;断源所打断;转入中断请求所对应的处理程序转入中断请求所对应的处理程序
10、。最后一个问题是实现最后一个问题是实现CPU控制权的转移,它是中断响控制权的转移,它是中断响应过程的关键。其实质是应过程的关键。其实质是如何由中断源得到相应服务程序如何由中断源得到相应服务程序的入口地址的问题的入口地址的问题。现在常用的方法是采用中断向量,即。现在常用的方法是采用中断向量,即由所相应的中断源在中断响应时间向由所相应的中断源在中断响应时间向CPU提供自己的中断提供自己的中断向量号,向量号,CPU根据中断向量号就能够找到中断服务程序的根据中断向量号就能够找到中断服务程序的入口地址,进而转入中断服务程序。入口地址,进而转入中断服务程序。4、中断处理、中断处理中断处理就是执行中断服务程
11、序,以完成中断中断处理就是执行中断服务程序,以完成中断源提出的处理要求源提出的处理要求,中断服务处理程序是软件编,中断服务处理程序是软件编程问题,与子程序的编写原则类似。在中断服务程问题,与子程序的编写原则类似。在中断服务程序中,用程序中,用STI指令开中断,以实现中断嵌套,并指令开中断,以实现中断嵌套,并对服务程序中的所用的寄存器应预先保护(若中对服务程序中的所用的寄存器应预先保护(若中断响应中断响应中CPU不是自动保护的话),而在服务程不是自动保护的话),而在服务程序后面加入恢复现场的语句。序后面加入恢复现场的语句。5 5、中断返回、中断返回中断返回就是控制权由中断服务程序转移到被中断返回
12、就是控制权由中断服务程序转移到被中断程序的过程。中断程序的过程。执行中断返回指令与一般执行中断返回指令与一般“返返回主程序回主程序”指令类似。所不同的是,大多数中断指令类似。所不同的是,大多数中断返回指令还有其他的附加功能,例如部分或全部返回指令还有其他的附加功能,例如部分或全部恢复恢复CPU的现场(除程序计数器外,还有标志寄的现场(除程序计数器外,还有标志寄存器存器FR等),有些等),有些CPU的中断返回指令可自动恢的中断返回指令可自动恢复全部通用寄存器的内容。复全部通用寄存器的内容。二、8086/8088的中断系统 8086/8088CPU具有一个功能很强、管理高效且简便灵活的中断系统,可
13、以处理多达256种中断源。 采用向量中断方法,对256种中断只需一次间接访问就可获得任一中断源的中断服务程序的入口地址,中断响应快速。8086/8088CPU有两类中断: * 内部中断 由执行中断指令或特殊事件引起; * 外部中断 由外围设备接口向CPU的中断请求引脚INTR和NMI发出中断请求信号而引起的。二、8086/8088的中断系统1、8086/8088的中断指令2、8086/8088的中断分类3、中断向量表4、8086/8088中断处理过程1、8086/8088的中断指令(1)中断指令指令格式: INT n ;n=0255,中断类型码指令操作: SP2 SP(修改堆栈指针), FR入
14、栈,IF=0(中断标志置0,关中断,CPU不响应可屏蔽中断) , TF=0(陷阱标志,TF0,CPU正常执行程序) ,SP2 SP (修改堆栈指针), CS入栈SP2 SP (修改堆栈指针),IP入栈 n4 IP n4+2 CS1、8086/8088的中断指令(2)中断返回指令指令格式:IRET指令操作:IP,CS,FR依次出栈,SP+6SP 所有中断服务程序,无论是软件中断,还是硬件中断,最后执行的指令一定是IRET,用以退出中断,返回断点。2、8086/8088的中断分类8086/8088的中断系统可以处理256种不同的中断。 所有可能产生的中断源有:可屏蔽中断INTR、非屏蔽中断NMI、
15、指令中断INT n和特定条件下的中断,分为两类:内部中断内部中断外部中断外部中断可屏蔽中断请求非屏蔽中断请求中断控制系统( 8259A)中 断 逻 辑.NMIINTR除法错误中断单步中断断点中断INT溢出中断INTO指令中断INT2、8086/8088的中断分类 内部中断 CPU不是通过外部中断请求而是通过内部逻辑进入中断,调用相应的中断服务程序,是CPU自启动的中断。 除单步中断外,所有内部中断为非屏蔽型的。 内部中断主要用于解决程序运行中发生的一些意外情况、程序调试、用户定义的中断或者调用系统提供的一些标准中断服务程序。(1)除法出错中断 (类型0) ;(2)单步中断(类型1);(3)断点
16、中断(类型3);(4)溢出中断(类型4);(5)软件中断2、8086/8088的中断分类内部中断(1)除法出错中断)除法出错中断(类型类型0)CPU在执行触发指令在执行触发指令DIV和和IDIV时,若发现时,若发现除数除数为为0,或商超过了寄存器所能表达的范围,就立即产,或商超过了寄存器所能表达的范围,就立即产生一个类型为生一个类型为0的内部中断,的内部中断,CPU转入除法错误中断转入除法错误中断处理程序。处理程序。注意注意:此中断是由此中断是由CPU自身产生,并没有对应自身产生,并没有对应的中断指令。的中断指令。2、8086/8088的中断分类内部中断(2)单步中断单步中断(类型类型1)此中
17、断也是由此中断也是由CPU自身产生,没有对应的中断自身产生,没有对应的中断指令,它是由指令,它是由CPU对状态标志寄存器中的陷阱标志对状态标志寄存器中的陷阱标志TF的测试而引起的。的测试而引起的。TF1,自动单步中断,用于程序调试。自动单步中断,用于程序调试。2、8086/8088的中断分类内部中断(3)断点中断断点中断(类型类型3)执行执行INT指令就产生一个类型为指令就产生一个类型为3的内部中断,的内部中断,称为断点中断称为断点中断。和单步中断类似,用于程序调试。和单步中断类似,用于程序调试。2、8086/8088的中断分类内部中断(4)溢出中断溢出中断(类型类型4)溢出中断是由溢出中断是
18、由CPU执行一条执行一条INTO指令实现的:指令实现的:当当OF1时,执行时,执行INTO就会进入类型码为就会进入类型码为4的内部中的内部中断;断;否则,按顺序执行。否则,按顺序执行。2、8086/8088的中断分类内部中断(5)软件中断软件中断当执行当执行INTn指令时,形成中断,类型码由指令指令时,形成中断,类型码由指令提供。提供。从功能上来说,类似于调用子程序,但入口地址从功能上来说,类似于调用子程序,但入口地址在中断向量表里。在中断向量表里。2、8086/8088的中断分类外部中断外部中断通过外部的硬件产生,由送至通过外部的硬件产生,由送至CPU引脚引脚NMI和和INTR上的信号引起中
19、断。上的信号引起中断。分为两类:分为两类:(1)非屏蔽中断)非屏蔽中断(n=2)一旦在一旦在NMI引脚有中断请求,引脚有中断请求,CPU立即响应。立即响应。2、8086/8088的中断分类(2)可屏蔽中断 从INTR脚引入,必须满足IF=1,且没有非屏蔽中断,CPU可以响应中断。 中断请求信号是由电平触发,必须保存到CPU响应中断请求后才能撤除。 中断允许标志IF的标志,可由指令设置: STI 开中断,将IF置1; CLI 关中断,将IF置0 。当系统复位,或CPU响应中断后,都使IF置0。3、中断向量表 中断向量即中断服务程序的入口地址,用两个字表示,低字是IP,高字是CS。 将所有中断源的
20、中断向量集中存储在内存的指定空间内,这样一个指定的存储区称为中断向量表; 8086/8088的中断类型码用8位二进制表示,共有从n=0FFh, 256个中断向量; 中断向量表建立在内存空间最低1K地址; 地址范围:00000H 003FFH(即CS=0000H)。注意:中断类型码只能决定存放中断向量的地址,并不能决定中断向量本身和中断服务程序的功能。中断中断(软中断除外软中断除外)是随机发生的事件,是随机发生的事件,CPU在每个指在每个指令周期都要巡视中断源,也就是说,在程序的执行过程中,令周期都要巡视中断源,也就是说,在程序的执行过程中,随时有可能中止当前程序,转移到正在申请的中断源对应随时
21、有可能中止当前程序,转移到正在申请的中断源对应的中断服务程序中去。的中断服务程序中去。问题:问题:CPU如何找到中断服务程序的地址?如何找到中断服务程序的地址?在正常运行的程序中不可能出现中服地址,不可能有在正常运行的程序中不可能出现中服地址,不可能有CALL中断服务程序中断服务程序指令,因为中断是随机的。指令,因为中断是随机的。8086系统一共有系统一共有256个中断源,将这些中断源个中断源,将这些中断源都编上号,依次是都编上号,依次是00HFFH号,这个号就称为号,这个号就称为中中断类型号断类型号。如溢出中断为。如溢出中断为4号中断等。号中断等。每个中断类型号都对应着相应的中断服务程序,这
22、每个中断类型号都对应着相应的中断服务程序,这些中断服务程序可以存放在存储器的任何位置。些中断服务程序可以存放在存储器的任何位置。但一旦程但一旦程序运行,这些中服的入口地址在存储器中都是已知、固定序运行,这些中服的入口地址在存储器中都是已知、固定的,的,每个中服程序的入口地址称为一个中断向量每个中服程序的入口地址称为一个中断向量。将这些中断类型号对应的中服入口地址集中起将这些中断类型号对应的中服入口地址集中起来列成一个表,放到存储器的固定区域内,这个来列成一个表,放到存储器的固定区域内,这个按顺序存放中服入口地址的表就称为中断向量表按顺序存放中服入口地址的表就称为中断向量表。中断向量表存放在存储
23、器的中断向量表存放在存储器的底部,底部,每个中服地址每个中服地址(中断向量中断向量)占用占用4个单元个单元(CS:IP),8086一共一共有有256个中断源,因此中断向量个中断源,因此中断向量表占用表占用4256=1024个存储单元,个存储单元,地址为地址为:00000H003FFH。AABBCCDDMMNNXXYY00000H003FFH00004H00008H0号中断中服地址:号中断中服地址:MMNNH:XXYYH1号中断中服地址:号中断中服地址:AABBH:CCDDH在中断系统中,在中断系统中,有相当一部分中有相当一部分中断源没有定义,断源没有定义,即中断向量空着,即中断向量空着,等待分
24、配。等待分配。8086系统对系统对256种中断类型号已进行了地址分配,种中断类型号已进行了地址分配,其其中类型号中类型号04为专用中断为专用中断,对应的中断服务程序的入口地,对应的中断服务程序的入口地址已由系统定义,用户不能更改。类型址已由系统定义,用户不能更改。类型04分别用于除法分别用于除法出错、单步中断、出错、单步中断、NMI中断、断点中断和溢出中断。中断、断点中断和溢出中断。类型类型05H3FH为系统使用的中断为系统使用的中断,(,(CPU公司和操公司和操作系统的公司)已开发使用了其中的大部分。例如类型作系统的公司)已开发使用了其中的大部分。例如类型08H0FH为为8259A中断向量号
25、,中断向量号,10H1FH为为BIOS专用专用中断向量号,中断向量号,20H3FH为为DOS专用向量号,其中的专用向量号,其中的21H为为DOS功能调用。功能调用。用户可以使用用户可以使用40H以后的系统未保留的中断向量号。以后的系统未保留的中断向量号。AABBCCDDMMNNXXYY00000H003FFH00004H00008H如何根据中断类型号获取中服入口地址?如何根据中断类型号获取中服入口地址?CPU将中断类型号乘将中断类型号乘4,即获得存放该,即获得存放该中服地址的中断向量表的首地址,中服地址的中断向量表的首地址,从该从该地址处开始的地址处开始的4个单元存放的即是所需个单元存放的即是
26、所需要的中服地址要的中服地址。4n+34n+2:4n+14n例如:中断类型号例如:中断类型号70H,存放中服地址存放中服地址的存储空间为:的存储空间为:70H401,1100,0000B=1C0H1C3H1C2H-CS1C1H1C0H-IP执行中服执行中服4、8086/8088的中断处理过程8086/8088中断处理过程包含: 中断请求、中断排队、中断响应、中断服务和中断返回。讨论:(1)中断响应条件(2)中断处理顺序(3)中断类型码的获取(4)中断响应过程(1)中断响应条件 任何一种中断,都要待CPU执行完当前指令后方能响应中断。 当CPU执行LOCK时,要等后面的指令完成后才能响应中断;
27、设置段寄存器内容的指令和下条指令之间不允许中断; 在等待指令和重复串操作指令执行过程中,可响应中断,但必须在一个基本操作完成以后。 当上述情况满足后,有内部中断、NMI、INTR(且IF1),CPU将暂时终止现行程序,进入中断响应。(2)中断处理顺序 中断处理顺序即按中断优先权从高到低的排队顺序对中断源进行响应。 8086/8088系统的中断处理次序如下:除法错误中断、溢出中断、INT n;NMI(非屏蔽中断);INTR(可屏蔽中断,需判断IF1?);单步中断。(2)中断处理顺序当CPU进入中断响应时,保护FR,TF送暂存TEMP,然后清除IF和TF,以保护本中断服务不被可屏蔽中断打断;中断返
28、回时,FR恢复;NMI的请求拥有最高优先权,需要立即处理;没有NMI,查看TEMP,以确定是否单步执行?在中断服务程序中,设置了开中断,即设置IF1,则不但可以响应NMI,也可响应优先权更高的INTR; 多个中断同时发生,按优先权从高到低响应。(3)中断类型码的获取 8086/8088的中断系统是根据中断类型码从中断向量表中取得中断服务程序的入口地址的。专用中断0 4,由硬件逻辑电路自动提供;INT n指令的第二字节为中断类型码,因而软件中断指令是从指令中直接获得;外部可屏蔽中断由外部硬件电路在中断响应时向CPU提供中断类型码。(4)中断响应过程期。由两个期。由两个INTA总线周期组成。总线周
29、期组成。当当INTR请求被响应时,请求被响应时,CPU进入了中断响应周进入了中断响应周通知申请中断的外设准备好中断通知申请中断的外设准备好中断INTA类型码,在第二个类型码,在第二个第一个第一个INTA时送上数据总线。时送上数据总线。(4)中断响应过程 INTR被响应时,CPU实际执行的过程如下:CPU取得中断类型码后,左移两位,存入内部暂存器;FR入栈;IF置零,TF置零; CS入栈;IP入栈;中断向量低字送IP;中断向量高字送CS。三、中断控制器8259A1、8259A基本构成与引脚信号2、8259A工作过程3、8259A的工作方式4、8259A编程方法1、8259A基本构成与引脚信号n(
30、1)8259A是一种功能很强的可编程中断控制器,是28脚芯片,具有很强的功能。n(2)8259A的基本构成和引脚功能8259AVCCGNDIR0IR7(INTR)INT(CPU数据总数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A08259A的基本构成n IRR是一个8位寄存器,用于锁存所有从IRi引脚输入的中断请求信号。n 输入线IR7IR0 分别连接8个中断源的中断请求信号,当中断源有中断请求时,在相应的IR引脚上送入有效信号,IRR中相应的位就置位,以锁存该中断请求信号。 中断请求中断请求寄存器寄存器IRR数据总线缓冲器读/写控制电路级联
31、缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中断源中断源8259A的基本构成的基本构成*PR用于识别各中断请求的优先权级别,并进行优先权管理。用于识别各中断请求的优先权级别,并进行优先权管理。*各中断请求的优先权级别可以由各中断请求的优先权级别可以由CPU定义或修改。定义或修改。*若若IRR有几位被置位,且未被屏蔽,表明有多个中断源同时有几位被置位,且未被屏蔽,表明有多个中断源同时申请中断。则由申请中断。则由PR经过判断确定最高优先权的中断请求,并
32、经过判断确定最高优先权的中断请求,并在在CPU响应周期内,将它送入响应周期内,将它送入ISR中相应的位。中相应的位。优先权优先权判别器判别器PR数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中断源中断源8259A的基本构成的基本构成*中断服务寄存器中断服务寄存器ISR为为8位寄存器,用于记录已被位寄存器,用于记录已被CPU响响应的中断。应的中断。*在中断响应周期里,由在中断响应周期里,由PR根据根据IRR和和IMR的状
33、态,确定的状态,确定先被响应的中断请求,送至先被响应的中断请求,送至ISR,使相应的位被置位,并一直使相应的位被置位,并一直保持(自动保持(自动EOI方式例外)。由方式例外)。由EOI命令复位。命令复位。中断服务中断服务寄存器寄存器ISR数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中断源中断源若若ISR中有多中有多个位被置位,个位被置位,是什么原因?是什么原因?8259A的基本构成的基本构成*中断屏蔽寄存器中断屏蔽寄
34、存器IMR也是也是8位寄存器,用于存放对中断位寄存器,用于存放对中断请求的屏蔽信息,其内容可编程设定。请求的屏蔽信息,其内容可编程设定。*IMR中的中的8个位对应个位对应IR7IR0这这8个中断请求,个中断请求,当当IMR中中某位被置位,对应的中断请求就被屏蔽。某位被置位,对应的中断请求就被屏蔽。则,则,IRR对应的位虽被置位,但不能送出它的中断请求对应的位虽被置位,但不能送出它的中断请求信号给信号给CPU,由此实现对各中断有选择的屏蔽。由此实现对各中断有选择的屏蔽。中断屏蔽中断屏蔽寄存器寄存器IMR数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR
35、优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中断源中断源8259A的基本构成的基本构成*数据总线缓冲器为数据总线缓冲器为8位双向三态缓冲器,是位双向三态缓冲器,是8259A与与CPU间数据传输的通道。间数据传输的通道。*CPU通过数据总线缓冲器向通过数据总线缓冲器向8259A送初始化命令和操作送初始化命令和操作命令字,或是读取状态信息。命令字,或是读取状态信息。*在中断响应周期,在中断响应周期,8259A通过数据总线缓冲器向通过数据总线缓冲器向CPU送送出中断类型码。出中断类型码。数据总线数据总线缓冲器缓冲器
36、数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.8259A的基本构成的基本构成*读读/写控制电路的逻辑功能就是负责接收写控制电路的逻辑功能就是负责接收CPU发发来的控制信号,完成规定的写入命令操作以及读来的控制信号,完成规定的写入命令操作以及读IRR、ISR和和IMR的操作。的操作。*该片该片8259A的操作过程中,片选的操作过程中,片选CS必须有效。必须有效。读读/写写控制逻辑控制逻辑数据总线缓冲器读/写控制电路级联缓
37、冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.8259A的基本构成的基本构成*级联缓冲级联缓冲/比较器用于实现比较器用于实现8259A的级联,构成主从式中的级联,构成主从式中断管理系统,使中断源由断管理系统,使中断源由8级扩展到级扩展到64级。级。*级联线级联线CAS2CAS0在主从式中断管理系统中,全部在主从式中断管理系统中,全部8259A对应相连;主片对应相连;主片8259A,其为输出线,其为输出线,CPU响应中断时,响应中断时,输出级联设备编码,
38、选中对应的从片;从片的输出级联设备编码,选中对应的从片;从片的8259A,其为输其为输入线,接收来自主片的设备编码。入线,接收来自主片的设备编码。级联缓冲级联缓冲/比较器比较器数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.8259A的基本构成的基本构成*控制电路逻辑根据控制电路逻辑根据CPU编程设定的工作方式产生片内控编程设定的工作方式产生片内控制信号,控制片内的工作;制信号,控制片内的工作;*同时,根据同时,根据IR
39、R、IMR的内容和的内容和PR判断结果,向判断结果,向CPU发发出中断请求,接受来自出中断请求,接受来自CPU的中断响应信号。的中断响应信号。控制逻辑控制逻辑数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.引脚功能n 1、中断请求输入线IR7IR0接受来自外设或8259A从片的中断请求信号。n 可设置为上升沿触发或高电平触发。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0
40、CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0中断请求中断请求输入线输入线引脚功能引脚功能*双向三态数据线双向三态数据线D7D0可与系统数据总线直可与系统数据总线直接相连,称为非缓冲方式工作;接相连,称为非缓冲方式工作;*也可通过总线缓冲器与系统数据总线相连,也可通过总线缓冲器与系统数据总线相连,称为缓冲方式工作。称为缓冲方式工作。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0双向三态双向三态数据线数据线引脚功能引脚功能中断请求线中断请求线INT,输出信号,通
41、常与输出信号,通常与CPU的可的可屏蔽中断输入端屏蔽中断输入端INTR相连,向相连,向CPU发送中断请求信发送中断请求信号。号。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0中断请求线中断请求线 引脚功能引脚功能*接收接收CPU在中断响应周期发来的中断响应信在中断响应周期发来的中断响应信号,号,8259A接到此信号后,送上中断类型码;接到此信号后,送上中断类型码;*中断类型码由编程设定。中断类型码由编程设定。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0
42、D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0中断响应线中断响应线 INTA中断响应线中断响应线引脚功能引脚功能*由由CPU的高位地址线控制,低电平时,表示的高位地址线控制,低电平时,表示8259A被选中,允许被选中,允许CPU对对8259A进行读或写操作;进行读或写操作;*高电平时,表示未选中该片。高电平时,表示未选中该片。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0片选信号线片选信号线CS片选线片选线引脚功能引脚功能地址线地址线A
43、0用以选择用以选择8259A内部不同寄存器。内部不同寄存器。*在在8088系统中,系统中,A0与与CPU的的A0相连;相连;*在在8086系统中,系统中,8259A的的D7D0与系统数据线低与系统数据线低8位相连,而位相连,而CPU与偶地址传递低与偶地址传递低8位数据信息,位数据信息,所以所以A0应与应与8086CPU的的A1相连。相连。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0地址线地址线 引脚功能引脚功能当读信号低电平时,允许当读信号低电平时,允许8259A将中断请求寄将
44、中断请求寄存器存器IRR、中断服务寄存器中断服务寄存器ISR、中断屏蔽寄存器中断屏蔽寄存器IMR的内容送上数据总线,供的内容送上数据总线,供CPU读取。读取。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0读信号读信号 RD读信号读信号引脚功能引脚功能写信号低电平时,允许写信号低电平时,允许CPU将将命令字命令字写入写入8259A。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088
45、A0)A0写信号写信号 WR写信号写信号引脚功能引脚功能*级联线级联线CAS2CAS0在主从式中断管理系统中,全部在主从式中断管理系统中,全部8259A的的CAS2CAS0与对应端相连。与对应端相连。*作为主片的作为主片的8259A,其其CAS2CAS0为输出线,在为输出线,在CPU响应中断时,用来输出级联设备编码,选中对应的从片;响应中断时,用来输出级联设备编码,选中对应的从片;*作为从片的作为从片的8259A,其其CAS2CAS0为输入线,接收来为输入线,接收来自主片的设备编码。自主片的设备编码。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS
46、0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0级联线级联线 引脚功能引脚功能非缓冲方式工作时,作为输入线,非缓冲方式工作时,作为输入线,*高电平时,表示该高电平时,表示该8259A为主片;为主片;*低电平时,表示该低电平时,表示该8259A为从片。为从片。缓冲方式下工作时,作为输出线,用于控制缓冲器接收和发缓冲方式下工作时,作为输出线,用于控制缓冲器接收和发送。送。8259AVCCGNDIR0IR7(INTR) INT(CPU数据总D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0从片编程从片编程/ /缓冲使能缓冲使能 EN/S
47、P从片编程从片编程/缓冲使能缓冲使能与与CAS2CAS0实现实现8259A的级联的级联8259A的主要功能(1) 每一片每一片8259A可管理可管理8级中断,通过级联,级中断,通过级联, 最多可最多可以管理以管理64级中断;级中断;(2)每级中断源都可单独进行屏蔽或允许;)每级中断源都可单独进行屏蔽或允许;(3) 在中断响应周期,能向在中断响应周期,能向CPU提供中断类型码,从而使提供中断类型码,从而使CPU获得相应的中断向量获得相应的中断向量;(4) 允许多级中断嵌套;允许多级中断嵌套;(5) 可设置多种中断优先权管理方式,可设置多种中断优先权管理方式,(6) 8259A是可编程芯片,用户可
48、通过编程选择不同的是可编程芯片,用户可通过编程选择不同的工作方式;工作方式;(7) 具有中断查询方式功能,使具有中断查询方式功能,使CPU以查询方式与各外设以查询方式与各外设进行进行I/O操作。操作。2、8259A工作过程当有外部中断请求时,8259A处理过程: (1)中断请求寄存器IRR接受外部中断请求并锁存,当中断屏蔽寄存器IMR为0时,则中断请求进入优先权判别器PR,由PR判断是否当前优先权最高? 如果是,则8259A的INT为1,向CPU的INTR发出中断请求;2、8259A工作过程8259A使使中断服务寄存器中断服务寄存器ISR的相应位置的相应位置1,并将,并将中断请求寄存器中断请求
49、寄存器IRR的相应位的相应位清零清零,再送出,再送出中断类型中断类型码;码;断,发回断,发回信号;信号;(2)当)当CPU的中断允许标志的中断允许标志IF=1,CPU响应中响应中INTA2、8259A工作过程 (3)若允许中断嵌套,则由8259A的PR依据ISR中的状态,判断新的中断请求优先权是否高于正在服务的中断。 若是,则送出INT=1,向CPU的INTR发中断请求信号,从而实现中断嵌套。 (4)当中断服务结束时,CPU送出中断结束命令,使8259A清除ISR的相应位,从而结束一个中断服务。3、8259A的工作方式 8259A具有十分灵活的运行方式,可以通过编程设定工作方式,满足用户对中断
50、管理的不同要求。 主要工作方式: (1)中断优先权设置方式 (2)屏蔽中断源方式(3)中断结束(EOI)方式 (4)连接系统总线方式(5)中断请求触发方式(6)级联方式 (1)中断优先权设置方式*普通全嵌套方式*特殊全嵌套方式*优先权自动循环方式*优先权特殊循环方式普通全嵌套方式 这是8259A最基本、最常用的工作方式,若对8259A初始化后没有设置其它优先权方式,则默认为此方式。 普通全嵌套方式中,8259A的8个中断源请求的优先权级别,按照IR0优先权最高、IR7优先权最低的固定优先权顺序。 当一个中断被响应后,只有比它高优先权的中断请求才会被响应。特殊全嵌套方式 与普通全嵌套方式基本相同
51、,优先权顺序按照IR0优先权最高、IR7优先权最低的固定顺序。 唯一不同在于:若CPU正在处理某一级中断时,如果有同级的中断请求,8259A也会送出中断请求给CPU。 特殊全嵌套方式是对同级中断的一种中断嵌套。 一般用在8259A级联的系统中,设定主片为特殊全嵌套方式。 当某一从片的中断请求正在被处理时,既开放主片上其他优先权高的中断请求,同时也开放了同一从片上的较高优先权的中断请求。优先权自动循环方式 一个系统的几个中断源的重要性差别不大,因而希望它的优先权不是固定不变的。 优先权自动循环方式下,优先权顺序是在变化的:初始时,IR0为最高优先权,IR7为最低优先权;当一个中断被CPU响应后,
52、它的优先权自动降为最低的;原在其下一级的中断升为最高优先权,其余循环类推。 假设,初始时有IR3中断请求,且被CPU响应,当IR3的中断服务结束后,IR3降为最低优先权。 此时的优先权顺序变为:IR4、IR5、IR6、IR7、IR0、IRl、IR2、IR3。优先权特殊循环方式 与优先权自动循环方式相似,优先权的顺序是与优先权自动循环方式相似,优先权的顺序是变化的,当一个中断被变化的,当一个中断被CPU响应,它的优先权自动响应,它的优先权自动降为最低。降为最低。优先权特殊循环方式中,初始最低优先权是由优先权特殊循环方式中,初始最低优先权是由编程设定的。编程设定的。设编程时设定设编程时设定IR4为
53、最低,则初始优先权顺序由为最低,则初始优先权顺序由高至低为:高至低为:IR5、IR6、IR7、IR0、IRl、IR2、IR3、IR4。优先权顺序还可在执行优先权顺序还可在执行EOI命令时指明最低优先命令时指明最低优先权。权。(2)屏蔽中断源方式)屏蔽中断源方式*普通屏蔽方式*特殊屏蔽方式 普通屏蔽方式 CPU对8259A的中断屏蔽寄存器IMR写入命令字OCWl,使IMR中的某个位或几个位置1,对应的中断请求就被屏蔽,从而不能被8259A送到CPU。 而IMR中被置0的那些位对应的中断请求允许从8259A送到CPU。 对中断屏蔽可以随时修改,即通过对命令字OCWl的重新设置,实现对某些中断的屏蔽
54、。特殊屏蔽方式 是在中断服务程序中使用,用于中断嵌套,实现在高优先权的中断服务程序中开放低优先权的中断请求。 实现:在中断服务程序中,用命令字OCW3对中断屏蔽寄存器IMR中相应的位置1,且清除当前中断服务寄存器ISR对应的位,从而开放低优先权的中断请求。(3)中断结束(EOI)方式 当一个中断请求被响应,8259A在中断服务寄存器ISR的相应位置l。 当中断服务结束时,必须将ISR中相应的位清0,进行中断结束操作。* 自动中断结束方式 * 普通中断结束方式* 特殊中断结束方式 自动中断结束方式 CPU一旦进入中断响应周期,8259A就自动将当前中断服务寄存器ISR中相应的位清0。 这时,尽管
55、CPU正在为某个中断源服务,但在8259A的ISR中没有对应位置1,优先权判别器PR不能依据ISR正确判别是否接收新的中断请求,就会出现低优先权中断打断高优先权中断的情况。 自动中断结束方式通常用在不允许中断嵌套的场合。普通中断结束方式 普通中断结束方式用在普通全嵌套情况下。 在中断服务结束时,必须由CPU用OUT指令发来一个普通EOI命令,8259A收到后,将当前中断服务寄存器ISR中的已置1的最高优先权的位复位。特殊中断结束方式 特殊中断结束方式多用于优先权循环情况下。 由CPU在中断服务结束时,发出一条特殊EOI命令,指明要清除ISR中的哪一位。 注意:在级联方式下,一般不用自动EOI方
56、式,而用普通中断结束或特殊中断结束方式。 一个中断结束可能要发两次EOI命令,一次对主片,一次对从片,分别清除主、从片的ISR中相应位。 (4)连接系统总线方式ENSP/ENSP/*缓冲方式缓冲方式8259A通过总线缓冲器和系统数据总线通过总线缓冲器和系统数据总线相连。相连。8259A的的端和总线缓冲器的允许端相连。端和总线缓冲器的允许端相连。输出的低电平作为总线缓冲器的启动信号。输出的低电平作为总线缓冲器的启动信号。ENSP /ENSP/ENSP/*非缓冲方式非缓冲方式8259A直接与数据总线相连。直接与数据总线相连。为输入端。单片的为输入端。单片的8259A系统,系统,作作ENSP/接高电
57、平;接高电平;多片多片8259A的级联系统,主片的级联系统,主片接高电平,从片接高电平,从片接低电平。接低电平。(5)中断请求触发方式*电平触发*边沿触发电平触发 8259A将中断请求输入线上出现高电平作为有效的中断请求信号。 注意:当中断请求输入端出现一个高电平并得到CPU响应时,应及时撤消信号。 否则,在CPU进入中断处理过程,开放中断后,会引起错误的第二次中断。限定中断源产生的中断请求触发电平的时间,限定中断源产生的中断请求触发电平的时间,持续至持续至CPU响应它的第一个响应它的第一个INTA脉冲的下降沿。脉冲的下降沿。边沿触发 8259A将中断请求输入线出现的上升沿作为中断请求信号。上
58、升沿触发后,可一直保持高电平,而不会产生重复触发。 通常用负脉冲的后沿实现边沿触发。中断查询方式 8259A提供了中断查询方式。 这种方式下,外设仍然靠中断请求要求服务,但CPU不是通过对中断请求的响应,而是靠主动查询实现对外设的服务。 在CPU为关中断情况下,外设的中断请求信号不被响应,但CPU可以通过查询方式检查请求中断的外设,获取中断请求信号,从而进入中断服务。(6)级联方式 8259A可以级联使用,一个主可以级联使用,一个主8259A可以最多带可以最多带8个从个从8259A,将中断源扩展到将中断源扩展到64级。级。INTA级联方式下,从片的级联方式下,从片的INT端接至主片的端接至主片
59、的IRi端,端,从片上的中断请求通过主片的从片上的中断请求通过主片的INT送至送至CPU;CPU发来的中断响应信号发来的中断响应信号送至主、从片上。送至主、从片上。INTAINTA主主8259A在级联线上在级联线上CAS2CAS0送出相应的标送出相应的标识符编码,若从片的标识符与主片送出的相同,该识符编码,若从片的标识符与主片送出的相同,该动作,而由该从片送上中断类型码。动作,而由该从片送上中断类型码。从片的从片的起作用。在第二个起作用。在第二个负脉冲时,主片不负脉冲时,主片不(6)级联方式 通常主片采用特殊全嵌套方式,允许同一从片上优先权高的中断请求打断优先权低的中断请求。 其余的工作方式、
60、寄存器读取方法与单片系统基本相同。8259A的级联除对中断响应信号的级联除对中断响应信号INTA的操作与单的操作与单片系统不同外,优先权的设置也不同。片系统不同外,优先权的设置也不同。4、8259A编程方法 8259A为可编程的中断控制器,它的工作状态和操作是由接收CPU的命令而确定的。 8259A在开始使用前,首先写入 初始化命令字,使其处于预定的初始状态;初始化命令字设定后,在整个系统工作过程中保持不变; 操作命令字用来控制8259A执行不同的操作方式。初始化命令字设置后,在8259A工作期间的任何时刻都可设置操作命令字,且允许重置操作命令字动态地改变8259A的操作方式。初始化命令字初始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年文职辅警专业考试题库及参考答案
- 2026年广西辅警招聘考试历年真题及参考答案
- 2026年超星尔雅移动互联网时代的信息安全与防护考试题库及参考答案【达标题】
- 2026年山西辅警招聘考试题库及答案参考
- 2025年河北雄安新区公开招聘社区工作者62名备考题库附答案
- 2026年地理环境与人类生存条件考点梳理试题
- PICC导管堵塞的解决方法
- 全国范围内环境保护法规知识竞赛试题库库试卷
- 第08课《土地的誓言》(教学设计)
- 2026年在线教育课程评价能力考核试卷及答案
- 东北三省三校哈尔滨师大附中2026届高三毕业班质量检测试题(A)数学试题试卷含解析
- 江苏苏州工业园区2025-2026学年九年级第一学期历史期末调研试卷(试卷+解析)
- 八下语文必读名著《经典常谈》考点梳理
- 2026年七年级数学春季开学第一课
- 第五范式-人工智能驱动的科技创新
- 高标准农田建设工程质量专项整治技术手册(2025年版)
- DB4406∕T 53-2025 老年人陪诊服务规范
- 2026豫信电子科技集团招聘面试题及答案
- 校园轻食店创业计划书
- 污水处理站调度与维护施工方案
- 82-2手榴弹使用课件
评论
0/150
提交评论