您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 广西大学 微机原理及应用 第七章 中断系统和中断控制器8259A
第七章中断系统和中断控制器8259A7.1中断的基本概念7.1.1中断及中断源中断:指CPU执行程序的过程中,由于某种事件发生,强迫CPU暂时终止正在执行的程序(通常称为主程序),转去该事件的处理程序(通常称为中断服务程序),带处理完毕后,又返回到原程序的断点处,继续往下执行的过程。中断源:引起中断的原因或发出中断请求的来源。中断源的类型:1.一般的输入输出设备2.数据通道3.实时时钟4.故障信号5.软件中断根据中断源与CPU的相对关系,中断可分为内部中断和外部中断。中断分类:依据:根据中断源与CPU的相对关系。1.内部中断;2.外部中断。CPU的中断系统应具备如下功能:1.现中断及返回。2.能实现优先权排队,从而确定优先处理的中断源。3.优先权高一的中断源能中断优先权低的中断处理。7.1.2中断处理过程中断处理过程:中断请求——中断排队——中断响应——中断服务——中断返回1.中断请求:中断源向CPU发出中断的要求。中断源随机发出中断请求信号,CPU在现行指令周期结束时,才检测有无中断请求。发出中断请求的条件:外部设备已准备好,且该外设的中断请求没有被系统评屏蔽。2.中断排队和中断响应概念:CPU接收到中断请求后,从中止现行程序到转向中断服务程序入口的过程,称为中断响应。条件:1)中断是开放的;2)CPU在现行指令结束后响应中断。操作过程:1)关中断;2)保护断点、3)保护现场、4)形成中断服务程序人口地址。响应时序8086/8088中断处理过程中断处理子程序的结构模式–图1不允许被中断的中断服务程序流程图–图2不许中断的中断服务程序流程图中断返回4.中断处理——执行中断服务程序保护现场对中断源服务恢复现场中断返回开中断保护现场开中断开中断对中断源服务关中断恢复现场中断返回图1不允许被中断的中断服务程序流程图图2允许中断的中断服务程序流程图中断服务程序入口中断服务程序入口流程图7.1.3中断优先权管理实现中断优先权的判别方法:1.软件确定中断优先权接口电路软件查询程序:INAL,80H;读入各中断源中断请求触发器状态TESTAL,80H;检查A设备是否有中断请求JNZASEV;有,转至A设备中断服务TESTAL,40H;检查B设备是否有中断请求JNZBSEV;有,转至B设备中断服务TESTAL,01H;检查H设备是否有中断请求JNZ-HSEV;有,转至H设备中断服务特点:软件查询,查询的次序就是优先权高低的次序,优点:用软件确定中断优先权不需复杂的硬件电路,简单易实现。缺点:中断源较多的情况下,查询时间较长,中断响应较慢。2.硬件确定中断优先权1)中断优先权编码电路2)链式优先权排队电路3)专用硬件电路等。7.28086/8088的中断系统8086/8088具有一个功能很强、管理高效且简便灵活的中断系统,可以处理多达256种中断源,且采用向量中断方法,对256种中断只须一次间接访问就可获得任一个中断源的中断服务程序人口地址,中断响应快速。8086/8088分有两大类中断:内部中断和外部中断。7.2.18086/8088的中断指令8086/8088提供了3条中断操作指令:1.中断指令格式,INTn或INTn=0~255,为中断类型码。2.溢出中断指令INTO3.中断返回指令IRET7.2.28086/8088的中断分类分为外部中断和内部中断两大类;如图7-5所示一.软件中断(内部中断)由于执行了软中断指令或由CPU本身引起的中断。类型:1.除法出错中断0型中断,商超出了机器能表示的最大值。2.单步中断:调试方法。TF=1时,指令执行后,CPU自动产生类型1的中断——单步中断。供DEBUG调试程序使用的,中断类型号为3。设置在程序的任何地方。实质:把一条断点指令INT3插入程序中。4.溢出中断1.溢出中断服务程序(型号4)3.断点中断:定义:CPU执行一条软中断指令INTn后会立即产生中断,并调用相应的中断服务程序来完成中断功能,软中断指令的操作数n就是中断类型号。分类:1.基本的输入/输出系统BIOS对系统的主要I/O设备提供控制2.作为系统功能供用户调用的磁盘操作系统(DOS)提供的功能的调用。3.用户自己定义的软中断。5.INTn指令中断二.硬件中断(外部中断)由NMI和INTR引脚引入。NMI用来处理系统的重大故障。–掉电事故的处理:数据备份、启动备用电源。优先级次序:内部中断、NMI、INTR、单步中断。注:内部中断除单步中断其余都不可屏蔽。7.2.3中断向量表中断向量:中断处理子程序的入口地址,每一个中断类型对应一个中断向量。中断向量表:8086/8088微机系统规定所有的中断向量集中放在存储器的最低端,共1024个单元,地址00000H~003FFH,构成所谓的中断向量表。注意:中断类型码只能决定存放中断向量的地址,而不能决定中断向量本身以及中断服务程序的功能。中断向量表–专用的5个(0#~4#)系统中统一规定的中断类型。–保留的27个(5#~31#)为系统开发保留的中断类型。–可供用户定义的224个(32#~225#)已知类型中断的中断向量的获取–中断类型号×4——该中断向量在表中起始单元的地址。–寻找4个连续存储单元,获得IP及CS•中断向量表的结构中断向量(中断服务程序入口地址)在表中的地址=中断类型号×4中断向量表溢出中断0000:0014H0000:0013H0000:0010H0000:000FH0000:000CH0000:000BH0000:0008H0000:0007H0000:0004H0000:0003H0000:0000H类型5类型255供用户定义的中断(共224个)0000:007FH0000:007EH0000:03FFHCSIPCSIPCSIPCSIPCSIPCSIPCSIP专用的中断(共5个)保留的中断(共27个)类型32类型31类型0类型4类型3类型2类型1除数为0中断非屏蔽中断单步中断断点中断24H*4=90H0000:0090H0000:0091H0000:0092H0000:0093H00H46HA4H3BHIP4600H3BA4HCS3BA4:4600H中断处理子程序例n=24H中断处理过程包含:中断请求、中断排队、中断响应、中断服务和中断返回。1.中断响应条件,有内部中断发生或NMI/INTR引脚上有效中断请求信号且IF=1时,待CPU执行完当前指令后方能响应中断。7.2.48086/8088的中断处理过程特殊情况:以下几种情况CPU执行完当前指令后还不能马上响应中断,需待下条指令完成后,才允许中断响应:1)当CPU执行封锁指令(LOCK)时,2)设置段寄存器内容的指令和下条指令之间不允许中断,3)在等待指令和重复串操作指令执行过程中,可响应中断,但必须在一个基本操作完成后。2.中断处理顺序中断处理顺序即按中断优先权从高到低的排队顺序对中断源进行响应。8086/8088系统的中断处理次序如下:1)除法错误中断、溢出中断、INTn。2)非屏蔽中断NMI。3)可屏蔽中断INTR。4)单步中断。中断处理过程3.中断类型码的获取1)专用中断即除法错误、单步中断、非屏蔽中断、断点中断和滋出中断分别由8086/8088CPU的硬件逻辑电路自动提供中断类型码0~4。2)INTn指令的第二字节为中断类型码,因而软件中断指令是从指令中直接获得中断类型码。3)外部可屏蔽中断由外部硬件电路在中断响应时向CPU提供中断类型码。中断控制器8259A具有在中断响应时提供中断类型码的功能。7.3中断控制器大纲可编程中断控制器8259A(了解8259A的内部结构和功能、工作方式、级联使用,简要介绍8259A控制字)7.3.18259A的主要功能1)每片8259A能管理8级中断,在不增加任何硬件电路情况下,采用9片芯片级联构成主从式中断管理系统,可扩展至64级中断。2)每级中断都可以被屏蔽或允许。3)在中断响应周期,可提供中断源的中断类型码供CPU查找获得相应的中断向量。4)允许多级中断嵌套。5)设置多种优先权管理方式、屏蔽功能。6)8259A为可编程芯片,用户可通过编程选择不同的工作方式,使用灵活、方便。7)具有中断查询方式功能,供CPU以查询方式与各外设进行1/O操作。7.3.28259A的结构及引脚功能8259A的结构框图如图7-8所示,它由8个基本部分组成:8个基本部分组成1.中断请求寄存器IRR2.优先权判别器PR3.中断服务寄存器ISR4.中断屏蔽寄存器IMR5.数据总线缓冲器6.读/写控制逻辑7.级联缓冲/比较器8.控制逻辑二、8259A的中断处理过程下面以8259A单片使用为例,说明其中断处理过程。1、当一条或多条中断请求线IR0~IR7变高时,设置相应的IRR位。2、PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。3、CPU响应中断时,送回应答信号INTA。4、8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。5、在8259A发送中断类型号的后一个INTA脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个INTA脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。三、8259A的工作方式8259A有多种工作方式,这些工作方式可以通过初始化命令字(ICW1ICW4)和操作命令字(OCW1OCW4)来设置。1.引入中断请求的方式边沿触发方式。以上跳沿向8259A请求中断,上跳沿后可一直维持高电平,不会再产生中断。电平触发方式。以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断。中断查询方式。外设通过8259A申请中断,但8259A却不使用INT信号向CPU申请中断,CPU用软件查询确定中断源,并为其服务。2.连接系统总线的方式在大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总线连接的方式称缓冲器方式。在小系统中,则8259A不需要总线缓冲器而是将其直接接至数据总线。8259A与这种不需总线缓冲器而直接连到系统总线的方式称非缓冲器方式。3.屏蔽中断源的方式普通屏蔽方式。利用操作命令字OCW1,使屏蔽寄存器IMR中的一位或几位置1来屏蔽一个或几个中断源的中断请求。若要开放某一个中断源的中断请求,则将IMR中相应的位置0。特殊屏蔽方式。在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应,此时可采用特殊屏蔽方式。它可通过OCW3的D6D5=11来设定。4.优先级排队的方式全嵌套方式。在此种方式下中断优先级按07顺序进行排队,只允许中断级别高的中断源去中断中断级别低的中断服务程序。特殊全嵌套方式。它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同级中断请求的特殊嵌套(8259A级联使用时,某从片的8个中断源对主片来说,可以认为是同级的)。特殊全嵌套方式用于多片级联。优先级自动循环方式。在这种方式下,优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低。其初始的优先级顺序规定为IR0,IR1,…,IR7。该方式用在系统中多个中断源优先级相等的场合。优先级特殊循环方式。这种方式与优先级自动循环方式唯一的区别是,其初始的优先级顺序不是固定IR0为最高,然后开始循环,而是由程序指定IR0IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。5.结束中断的处理方式自动中断结束方式。在中断服务程序中,中断返回之前,不需发中断结束命令就会自动清除该中断源所对应的ISR位(实际上在CPU发第二个信号时,8259即自动消除ISR中的对应位)。这种方式用在多个中断不会嵌套的系统中。非自动中断
本文标题:广西大学 微机原理及应用 第七章 中断系统和中断控制器8259A
链接地址:https://www.777doc.com/doc-3795982 .html