微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术

上传人:E**** 文档编号:89245166 上传时间:2019-05-22 格式:PPT 页数:100 大小:528.51KB
返回 下载 相关 举报
微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术_第1页
第1页 / 共100页
微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术_第2页
第2页 / 共100页
微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术_第3页
第3页 / 共100页
微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术_第4页
第4页 / 共100页
微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术》由会员分享,可在线阅读,更多相关《微型计算机接口技术 教学课件 ppt 作者 古辉 主编 5章-中断技术(100页珍藏版)》请在金锄头文库上搜索。

1、1,第五章 中断技术,2,第五章 中断技术,5.1 中断概念 5.2 IBM PC微机中断系统 5.3 可编程中断控制器8259A 5.4 8259A在微机系统中的应用 5.5 8259A的实验设计,3,5.1 中断技术,5.1.1 中断的基本概念 5.1.2 中断的处理过程 5.1.3 中断的优先权管理,4,5.1.1 中断的基本概念,中断:由于某个内部或外部的事件发生,CPU中断当前正在执行的程序,而转去执行处理该事件,处理完后,再回到原程序继续执行,这过程称为中断 。如图5.1所示。 中断源:引起中断的事件或原因。在计算机系统中,中断源一般分为两类: 内部中断:在CPU内部产生的,如CP

2、U执行程序时遇到的特殊情况(除法出错)或通过CPU执行中断指令产生的(INT n)。 外部中断:在CPU外部产生的,如I/O接口的申请,电源故障等 。 中断服务程序:处理中断事件的程序段。 中断断点:被中断中止的原程序的下一条指令的地址。 中断系统:为实现中断功能而配置的软硬件总和。,5,图5.1 中断的程序执行过程,6,5.1.2 中断的处理过程(1),中断源请求中断 中断是通过外设的接口电路向CPU提出请求信号。其接口电路一般设置中断请求触发器,保持该请求信号,直到CPU响应该中断才清除它。另外,中断源的中断请求能否发向CPU的INTR端,应能受CPU的控制,以增加处理中断的灵活性。为此,

3、在接口电路中可设置中断屏蔽触发器。如图5.2所示。 当外设准备好一个数据要输入时,便发一个选通信号STB,把数据输入锁存器中,同时使QA=1,若此时QB=1,则向CPU发出中断请求INT。而若QB=0,则与非门封锁,INT=1,中断请求被屏蔽。至于中断屏蔽触发器,可以看作是接口控制寄存器中的一位,其值由CPU通过输出指令写入。,7,图5.2 中断输入接口电路,8,5.1.2 中断的处理过程(2),中断响应 响应条件: 当前指令执行结束 ; 没有更高级的中断请求; CPU开中断(IF=1)。 响应过程: 关中断,即清IF、TF。以免在响应过程中被新的中断源中断,破坏了当前中断处理的现场。 保护断

4、点,即将标志寄存器和CS,IP依次压入栈。 获得相应的中断服务程序入口地址,执行中断服务程序。 上述操作均由CPU的内部硬件自动完成,无须用户编程。,9,5.1.2 中断的处理过程(3),中断服务 CPU转入中断服务程序后,往往要做以下几件事(如图5.3): 保护现场:将中断服务程序中用到的各寄存器压入栈,以免存放其中的主程序的数据被破坏。 开中断:以便在执行中断服务程序时,能响应更高级的中断请求。 中断处理:处理申请中断的中断源所要求的操作。 关中断:保证在恢复现场时不被新的中断打断。 恢复现场:中断服务程序结束前,将堆栈内保存的内容逐次弹出,恢复各寄存器的内容,以便主程序顺利执行。 开中断

5、:保证返回主程序后仍能响应中断。 中断返回:中断服务程序的最后一条指令总是IRET,其操作是将IP,CS,FSW的内容逐次弹出,恢复到主程序的断点处执行指令。,10,图5.3 中断响应及处理过程示意图,11,5.1.3 中断的优先权管理,中断优先权排队 :当有多个中断源同时请求时,CPU就要识别出是哪些中断源有中断请求,辨别和比较它们的优先权,先响应优先权级别最高的中断申请。这种把多个中断源按轻重缓急的优先处理权按由高到低的顺序排列,称之为中断优先权排队。它可以通过以下来实现: 软件查询法 该法须用一个简单的接口电路,如图5.4。设有3个外设A,B,C,它们的中断请求信号接到端口地址为20H的

6、中断请求寄存器上,寄存器的每个触发器输出端相或后送给CPU的INTR端。当A,B,C有哪个有中断请求时,使相应的触发器置1,进而使INTR=1,向CPU发出中断请求。若CPU响应后,转入同一中断服务程序,其流程如图5-5。,12,图5.4、图5.5,图5.4 软件查询接口,图5.5 软件查询的流程图,13,5.1.3 中断的优先权管理,具体查询程序的编程有两种方法:屏蔽法,移位法。 屏蔽法 IN AL,20H ;输入中断请求触发器的状态 TEST AL,80H JNE AISP ;外设A有请求,则转至外设A服务程序 TEST AL,40H JNE BISP ;外设B有请求,则转至外设B服务程序

7、 TEST AL,20H JNE CISP ;外设C有请求,则转至外设C服务程序 移位法 IN AL,20H SHL AL,1 JC AISP SHL AL,1 JC BISP SHL AL,1 JC CISP,14,5.1.3 中断的优先权管理,菊花莲法 它是一种获得中断优先级的简单硬件方法。其做法是在每个外设对应的接口上接一个逻辑电路,这些逻辑电路构成一个链来控制中断应答信号的通路,称为菊花链,如图5.6。电路的工作过程如下:中断请求:设备A、B、C通过接口发出中断请求,1表示请求,0表示无请求。只要有一个设备发出请求,INTR=1。中断响应:若CPU开中断,发中断响应信号。该信号先送给设

8、备A的菊花链电路,若设备A没有请求,则它输出的仍为0,往下传送;若设备A有请求,经过或门后作为接口的中断应答信号,而由于其中断请求为1,则输出的=1,使后级的中断得不到响应。 显然,越靠近CPU的接口(外设),优先级越高。图中,设备A的优先权最高,设备B次之,设备C最低。,15,图5.6 菊花链优先排队电路,(a) 菊花链,(b) 菊花链逻辑电路,16,5.1.3 中断的优先权管理,可编程中断控制器专用芯片管理方式 采用专门的可编程中断优先级管理芯片来完成中断优先级的管理。这是当前微机IBMPC最常用的方法。 中断嵌套 若CPU正在处理某一中断过程时,出现了级别更高的中断请求,CPU应能停止执

9、行级别低的中断服务程序而去处理级别更高的中断,等高级别中断处理完,再处理未处理完的低级中断,它处理完,再回到主程序。这种方式称为多重中断或中断嵌套。如图5.7,三级中断处理过程。图中,外设C的优先级最高,外设B次之,外设A最低。,17,图5.7 中断嵌套示意图,18,5.2 IBM-PC微机中断系统,5.2.1 8086/8088CPU的中断结构 5.2.2 中断向量表 5.2.3 可屏蔽中断的响应过程,19,图5.8 8086/8088中断系统结构,20,5.2.1 8086/8088CPU的中断结构(1),外部中断:由CPU的外部硬件产生,又称硬件中断。 非屏蔽中断 通过CPU的NMI引脚

10、引入,上升沿触发,由CPU内部锁存,但要求高电平持续两个时钟周期以上。该中断请求不受中断允许标志位IF控制。无论IF如何,只要NMI信号有效,CPU即在当前指令结束后,响应该中断。NMI中断类型号为2。 可屏蔽中断 通过CPU的INTR引脚引入,电平触发,高电平有效,且必须保持到当前指令结束。因为CPU只在每条指令的最后一个时钟周期采样INTR引脚。 可屏蔽中断受标志寄存器的IF控制。IF=0时,CPU不响应INTR的中断请求;IF=1时,CPU响应INTR的中断请求,开始一个“中断响应周期”。可以用指令改变IF的状态:STI开中断,CLI关中断。,21,5.2.1 8086/8088CPU的

11、中断结构(2),内部中断:由CPU执行指令的产生,又称软件中断。它包括以下几种: 除法出错: 当算术运算中遇到除数为0,或对带符号数进行除法运算时所得商超出规定范围,CPU自动产生该中断,立即转入相应的中断服务程序。该中断类型号为0。 单步中断: 通过受标志寄存器中TF标志位控制。当TF=1,CPU自动产生单片中断。CPU每执行一条指令,就进入一次单步中断服务程序。该中断类型号为1。 通过单步中断过程:首先将PSW入栈,清除TF和IF标志,将断点入栈,最后进入单步中断服务程序。进入后,由于TF=0,CPU不会以单步方式执行中断服务程序,而是连续地执行服务程序,显示CPU内部各寄存器内容,最后返

12、回断点,弹出FSW内容(使TF=1),执行下一条指令。执行完下一条指令,又显示各寄存器内容。,22,5.2.1 8086/8088CPU的中断结构(2),断点中断INT 在8086/8088指令系统中有一条设置程序断点的单字节中断指令INT,类型号默认为3。执行该指令时,CPU产生类型号为3的内部中断,而转去执行一个断点中断服务程序。其功能是显示CPU内容寄存器的内容,并给一些提示信息。 溢出中断INTO 在8086/8088指令系统中有一条单字节指令INTO。CPU执行该指令时,CPU产生类型号为4的内部中断。 该指令总是跟在带符号数进行加、减运算的指令后面。若OF=1时,执行溢出中断,进入

13、溢出中断服务程序,给出出错信息,若OF=0(无溢出),也进入该中断服务程序,但只对标志位进行测试后,就返回原程序继续执行。 用户定义的软件中断 8086/8088系统的双字节的指令INT n,可由用户自己定义一个中断,类型号为n。,23,5.2.1 8086/8088CPU的中断结构(3),内、外部中断的优先权排队 8086/8088中断系统规定,除了单步中断以外,所有内部中断的优先权均高于外部中断。所有中断的优先权顺序如表5.1所示。另外,除了单步中断外,所有内部中断都不能被屏蔽。,表5.1 8086/8088的中断,24,图5.9 中断向量表,25,5.2.2 中断向量表,所谓中断向量就是

14、中断服务程序的入口地址。而中断向量表:把系统中所有的中断向量集中起来,按中断类型号从小到大的顺序放到存储器的某一个区域内。这个存放中断矢量的存储区为中断向量表。 8086/8088CPU的中断向量表如图5.9所示,占用内存00000H003FFH最低端1KB的存储空间,存放了中断类型号0255共256级中断的入口地址。每个地址占用4个字节,其中低地址的2个字节为IP(偏移地址),高地址的2个字节为CS(段基址)。 CPU响应中断后,首先获得中断类型号n(内部产生或从数据总线读取),再通过类型号n4得到中断向量在中断向量表中的首地址,顺序取出四个内存单元的内容(两个,26,5.2.2 中断向量表

15、,字),把第一个字送入IP,第二个字送入CS,即(IP)(4n+1,4n),(CS)(4n+3,4n+2),从而使程序转向新的地址。 在8086/8088CPU的中断向量表中,类型04已由系统定义,用户不能修改。类型531是系统保留的中断,这是intel公司为软硬件开发保留的中断向量号,一般不允许用户改作其他用途。剩下的类型32255,中断向量表地址为00080003FFH,可供用户采用INTR或INT n中断使用,27,5.2.3 可屏蔽中断的响应过程,中断请求信息由外设接口或中断控制器送至8086的INTR引脚上。若IF=0,CPU就不响应中断;若IF=1且没有更高优先级的中断发生,则CP

16、U在执行完当前指令后,开始响应中断。其过程如下: 执行两个中断响应周期,读取中断类型号n。如图5.10所示为CPU中断响应周期的时序关系。在两个响应周期内,CPU会各发出一个中断响应信号INTR*负脉冲,均从T2保持到T4状态。第一个中断响应周期的告诉中断控制器,“中断已被响应,准备好中断类型号”;第二个中断响应周期的发出,中断控制器接收到后,把中断类型号送上数据总线。CPU在T4前沿(下降沿)采样该类型号。CPU将中断类型号n左移两位(4),形成中断向量表地址,存入暂存器。,28,图5.10 中断响应周期的时序关系,29,5.2.3 可屏蔽中断的响应过程,执行一个总线写周期,将标志寄存器PSW的内容压入栈。 将PSW中的中断允许IF、单步陷阱TF标志位清零。 执行一个总线写周期,将断点的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号