第9章中断技术本章主要教学内容中断技术8086中断类型中断优先权及其管理中断矢量中断处理过程中断嵌套第9章中断技术本章教学目的及要求熟悉中断的基本概念、特点、中断处理过程等基础知识掌握可编程中断控制器8259A的结构、原理、工作方式及编程应用9.1概述9.1.1中断的概念中断是指CPU在正常执行程序的过程中,由于内外部事件或程序引起CPU暂时中断当前程序运行,转去执行中断服务程序,执行完毕后再返回到断点处继续执行原来程序。如图9-1所示。现行程序断点中断服务程序图9-1中断过程示意图9.1概述中断技术的优点(1)并行操作(2)实时处理(3)故障处理9.1概述9.1.2中断源能引起中断的设备或事件称为中断源。1.中断源种类(1)设备中断(2)指令中断(3)故障中断(4)实时时钟中断(5)CPU内部运算产生的某些错误所引起的中断9.1概述2.中断源识别(1)查询中断:采用软件或硬件查询技术来确定发出中断请求的中断源。(2)矢量中断:由中断向量来指示中断服务程序入口地址。CPU响应某中断源中断请求时,控制逻辑将该中断源矢量标志送CPU,CPU根据标志自动指向相应中断服务程序入口地址,转中断服务程序。9.1概述9.1.3中断处理过程微机系统中断处理过程大致可分为中断请求、中断响应、中断服务和中断返回,如图9-2所示。1.中断请求中断源需要CPU为其服务时,可向CPU发出中断请求。中断请求可以是由中断指令或是某些特定条件产生,也可通过CPU引脚向CPU发出中断请求信号。但一般应满足两个条件:中断源已处于准备就绪状态;系统允许该中断源发出中断请求。图9-2微机系统的中断处理过程有无当前指令执行完毕有中断请求否?关中断保护现场和断点开中断中断服务关中断恢复现场开中断取下一条指令返回9.1概述2.中断响应若为非屏蔽中断请求,CPU执行完现行指令后就立即响应中断。若为可屏蔽中断请求,能否响应中断还取决于CPU内部中断允许触发器的状态。当允许中断时CPU才能响应可屏蔽中断:若禁止中断时,即使有可屏蔽中断请求,CPU也不响应。CPU要响应可屏蔽中断请求,必须满足三个条件:①无总线请求;②CPU允许中断;③CPU执行完现行指令。9.1概述CPU响应中断进入中断响应周期时,自动完成以下操作:(1)关中断(2)保护断点(3)保护现场(4)中断服务程序段地址送入CS,偏移地址送入IP9.1概述3.中断服务中断服务是指CPU执行中断服务程序,一般有如下操作:(1)保护有关寄存器内容。(2)开中断。(3)中断服务。9.1概述4.中断返回中断返回由执行中断服务程序中的中断返回指令IRET来完成。在中断返回时要进行以下操作:(1)关中断(2)恢复现场(3)恢复断点(4)开中断9.1概述9.1.4中断优先级管理多个中断源同时请求中断时,CPU必须先确定为哪一个中断源服务,要能辨别优先级最高的中断源并进行响应。CPU实现中断优先级排队的方法:软件查询法硬件优先权排队电路9.28086中断系统9.2.1中断类型8086共有256个中断矢量号,又称中断类型号。8086中断源可分为内部中断和外部中断,如下图所示。非屏蔽中断请求中断控制系统(8259A)中断逻辑可屏蔽中断请求除法错误中断单步中断断点中断INT溢出中断INTO指令中断INTNMIINTR9.28086中断系统8086系统按中断优先权从高到低的排队顺序对中断源进行响应:(1)除法错误中断、溢出中断、INTn指令中断、断点中断。(2)非屏蔽中断NMI。(3)可屏蔽中断INTR。(4)单步中断。9.2.2中断向量表中断向量是中断服务程序的入口地址。把系统中的所有中断向量集中起来放到存储器的某一区域内,这个存放中断向量的存储区就叫中断向量表,即每一个中断服务程序与表内的中断向量具有一一对应关系。中断向量表分为三部分:专用中断备用中断用户中断如图9-6所示。∶∶∶∶除法中断入口单步中断入口NMI中断入口断点中断入口溢出中断入口类型5中断入口IPCS0000H0004H0008H000CH0010H0014H类型31H中断入口类型32H中断入口00C4H00C8H类型0FFH中断入口03FCH图9-68086的中断向量表专用中断备用中断用户中断9.3可编程中断控制器8259A及其应用可编程中断控制器8259A能管理输入到CPU的中断请求,实现中断优先权判别,提供中断矢量(即中断类型号)和屏蔽中断等功能。直接管理8级中断,如采用级联方式,则不用附加外部电路就能管理64级中断输入。使用单+5V电源供电。具有多种工作方式,能适应各种系统要求。9.3.18259A的内部结构及引脚1.内部结构数据总线缓冲器读/写逻辑级联缓冲/比较器中断服务寄存器(ISR)中断请求寄存器(IRR)优先权电路IR7IR0IR1IR2IR3IR4IR5IR6中断屏蔽寄存器(IMR)D7-D0控制逻辑CAS0CAS1CAS2SP/ENRDWRCSA0内部总线INTAINT2.引脚功能1234567891011121314GND2423222120191817161528272625VCCA0D7D6D5D4D3D1D0D2CSWRRDCAS0CAS1INTAIR7IR0IR1IR2IR3IR4IR5IR6INTSP/ENCAS29.3.28259A中断管理方式1.中断优先级设置方式8259A对中断进行管理的核心是对中断优先级的管理,8259A对中断优先级的设置方式有:一般完全嵌套特殊完全嵌套优先级自动循环优先级特殊循环2.中断屏蔽方式(1)普通屏蔽方式(2)特殊屏蔽方式3.中断结束管理(1)自动中断结束方式(2)普通中断结束方式(3)特殊中断结束方式4.连接系统总线的方式(1)缓冲方式(2)非缓冲方式5.中断请求触发方式(1)电平触发方式(2)边沿触发方式9.3.38259A中断响应过程8259A应用于8086系统中其中断响应过程如下:(1)当中断请求线(IR0~IR7)上有一条或若干条变为高电平时,则使中断请求寄存器IRR的相应位置位。(2)当IRR某一位被置1后,就会与IMR中相应的屏蔽位进行比较,若该屏蔽位为1,则封锁该中断请求;若该屏蔽位为0,则中断请求被发送给优先权电路。(3)优先权电路接收到中断请求后,分析它们的优先权,把当前优先权最高的中断请求信号由INT引脚输出,送到CPU的INTR端。(4)若CPU处于开中断状态,则在当前指令执行完后,发出INTA中断响应信号。(5)8259A接收到第1个INTA信号,把允许中断的最高优先级请求位放入ISR,并清除IRR中的相应位。9.3.38259A中断响应过程(6)CPU发出第2个INTA,在该脉冲期间,8259A发出中断类型号。(7)若8259A处于自动中断结束方式,则第2个INTA结束时,相应的ISR位被清零。在其他方式中,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。若8259A为级连方式的主从结构,并且某从片8259A的中断请求优先级最高,则在第1个INTA脉冲结束时,主8259A把这个从设备标志ID送到级连线上。各个从8259A把这个标志与自己级连缓冲器中保存的标志相比较,在第2个INTA期间,被选中的从8259A的中断类型号送到数据总线上。(8)CPU收到中断类型号,将它乘以4得到中断向量表地址,然后转至中断服务程序。9.3.48259A编程及应用1.初始化编程8259A有4个初始化命令字ICWl~ICW4,在8259A开始工作之前,必须用初始化命令字建立8259A操作的初始状态,它们必须按照一定的顺序输入,如图9-10所示。YYNICW1(A0=0,D4=1)ICW1(A0=0,D4=1)ICW3(A0=1)需要ICW4吗?单片8259A?ICW4(A0=1)N图9-108259A初始化流程图2.操作方式编程用初始化命令字初始化后,8259A就进入工作状态,准备接收输入的中断请求信号。在8259A工作期间,可通过操作控制字OCW来使它按不同的方式操作。8259A共有3条操作命令OCW1、OCW2和OCW3。操作命令字应用在中断程序中,可独立使用,各操作命令字写入口地址有严格规定,即OCW1必须写入奇地址,OCW2和OCW3必须写入偶地址端口。3.8259A应用举例【例9.3】IBMPC/XT系统中8259A初始化编程。要求如下:单片8259A管理8级硬件中断,中断申请信号采用边沿触发,采用完全嵌套方式IR0最高,IR7最低,中断类型码为08H~0FH,非自动中断结束方式,端口地址为20H、21H。初始化源程序:MOVAL,13H;ICW1,边沿触发,单片,要ICW4OUT20H,ALMOVAL,08H;ICW2,中断类型码为08HOUT21H,ALMOVAL,01H;ICW4,8086/8088系统,非自动结束方式OUT21H,AL本章小结中断指CPU正常执行程序时暂时终止,转去执行中断服务程序,执行完毕又能自动返回到被中断程序继续执行。8086中断分为外部中断和内部中断。8086采用中断矢量表来管理256种中断。8086中断处理过程分为中断请求、中断响应、中断处理和中断返回。可编程中断控制器8259A能直接管理8级中断,实现中断优先权判别,提供中断矢量和屏蔽中断等功能。本章内容到此结束谢谢各位!