您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第5章--8086的中断系统
5.38086的中断系统5.3.1中断结构采用中断矢量结构,每个中断有一个中断类型码(号),供CPU进行识别,最多能处理256种不同的中断类型(即256个入口矢量).一、中断向量表存放中断服务程序入口地址的表格.结构如图5-15所示。存放在存储器的最低端,占用0~3FFH(1024个)字节的地址空间。构成:每个中断入口地址占4个字节,低2字节放入口地址的段内偏移量IP,高2字节放段基址CS,4个单元的最低地址称为向量地址(中断向量)。向量地址=中断类型码*4例:设中断类型码13H,放IP=0A00H,CS=1E00H。向量地址=13H*4=4CH,由4CH、4DH单元取出IP值,由4EH、4FH单元取出CS值,得入口地址1EA00H,则从1EA00H处开始执行。可见,计算机通过中断向量转向相应的中断服务程序。二、中断分类1、内部中断:由软件中断指令INTn启动,由n提供类型号;2、外部中断:1)可屏蔽中断INTR——由外部硬设备启动,由硬件提供类型号;2)不可屏蔽中断NMI——由CPU内自动提供类型号。8086/8088的中断源可有256个,如图5-13所示专用5个(内部中断):在某些特定情况下,由CPU内硬件自动提供类型号0~4;保留27个(软件中断):由内部软件的中断指令产生,供系统开发用。用户定义224个(外部中断):由外部设备硬件启动。可以利用保留的中断类型码扩充自己需要的中断功能,只要在向量表中加入对应的中断向量即可。5.3.2外部中断一、可屏蔽中断INTR处理过程:1)接口发请求,若屏蔽位(可用命令写入)=0,通常由可编程中断控制器8259APIC驱动,INTR=1,一直保持到收到响应信号或撤消请求为止.若IF=0(关中断,可由CLI复位),CPU不响应,继续处理下一条指令;若IF=1(开中断,可由STI置位),CPU响应,2)执行两个INTA总线周期,发两个INTA信号,时序见图5-14,第一个INTA信号通知8259A请求已被接收;在第二个INTA信号有效,8259A送中断类型码(初始化时写入8259A)到数据总线,由CPU启动中断过程,同时撤消中断请求信号.二、不可屏蔽中断NMI发生“灾难性”事件(如电源掉电、存储器读写出错、总线奇偶出错或协处理器中断请求等),NMI=1,无法禁止(不受IF影响),优先级比INTR高,且是边沿触发(只要有效宽度大于2T即可),中断类型号为2,CPU响应NMI,不发INTA,不要求外设提供中断向量,自动到08H单元取入口地址。5.3.3内部中断通过软件调用的不可屏蔽中断,有以下几种:一、溢出中断——类型4(单字节指令)OF=1,执行INTO,产生一个4类中断。二、除法出错中断——类型0在执行DIV和IDIV后,出现除数为0后商大于寄存器所能表示的范围,CPU产生一个0类中断。三、INTn指令中断——类型n由系统提供或用户定义,CPU执行后,立即产生中断,转向n规定的中断服务程序去,入口地址在初始化时已预置在中断向量表中。四、断点中断——类型3(单字节指令)CPU执行INT3(简写INT)时,产生中断,进行特殊处理,如显示寄存器、存储单元的内容,以检查程序运行的结果是否正确。在调试时把断点插入程序中的关键之处,命令如-GCS:nnnnH。五、单步(陷阱)中断——类型1当陷阱标志TF=1,8086/8088处于单步工作方式,用-T命令,CPU每执行完一条指令就自动产生一个1型中断,把状态标志PSW、CS、IP压栈,清除TF和IF,则CPU执行单步中断服务程序时以非单步工作方式,单步中断服务程序结束后,弹出IP、CS、PSW,此时TF=1,CPU返回后以单步方式工作。单步中断过程可以是:打印或显示寄存器内容、指令指针值或关键的寄存器变量等,详细跟踪一个程序的具体执行过程,确定程序出错的位置。TF的设置:在PSW中,D8=TFTF置1:PUSHF,将栈顶内容与0100H相“或”,POPF;TF清0:PUSHF,将栈顶内容与FEFFH相“与”,POPF;内部中断的特点1、中断类型码或包含在指令中,或是预先规定的;2、不执行INTA总线周期;3、除单步中断外,任何内部中断都无法屏蔽;4、除单步中断外,任何内部中断的优先权都比外部中断的优先权高。8086/8088的中断优先级见表5-1。但执行内部中断时,会响应不可屏蔽中断请求,若用了开中断,也可响应可屏蔽中断请求;5、若用软件中断INTn指令,使它与外设的类型码相同,来启动由外设启动的外设中断服务程序,可用于模拟调试外部设备的中断服务程序;6、软件中断无随机性;7、软件中断可用于管理调用和系统程序的再定位。如:在一个文件中查找一个记录、向另一程序发送一个信息、请求分配存储器空间、互相通信和互相调用。5.4I/O接口中的中断控制电路5.4.1CPU与多个中断源的连接8个外设的中断请求触发器组成一个端口,如图5-16,所有INT信号相“或”后接CPU的INTR端。5.4.2中断源的识别找到相应的中断服务程序的入口地址。有两种方法:1.查询中断收到中断请求,CPU才查询,主要用软件查询。CPU依次读出每一个外设的的外设的中断状态位,通过测试该状态位来判断对应的外设是否发出请求,以转到相应的中断服务程序。例:4个外设的查询测试程序的流程图和硬件示意图如图5-17,4个请求经“或”输入,若4次都未测到,则由于出错引起,程序转向出错出口。2.向量中断(矢量中断)每个外设被指定一个中断向量,当CPU响应时,由硬件的控制逻辑送入中断向量,以提供中断服务程序的入口地址,转入中断服务。4、保护现场(有关寄存器内容和标志寄存器的状态入栈)5、执行中断服务程序6、恢复现场(有关寄存器内容和标志寄存器的状态出栈)7、开中断与返回5.4.3中断优先级根据中断源要求的轻重缓急,排好中断优先次序(即优先级或优先权),先响应优先级最高的中断请求,正在处理中断时,能响应优先级更高的中断请求,而屏蔽同级和较低级的中断请求(即多重中断).确定中断优先级的方法:1.软件查询确定中断优先级硬件:8个外设的中断请求触发器组成一个端口,如图5-18,所有INT信号相“或”后接CPU的INTR端。软件:当CPU响应后,在中断服务程序前加一段判优的查询程序,即CPU逐位检测放在中断寄存器的状态,若有请求,即转入相应的中断服务程序入口。而询问的次序即为优先级的次序。优点:省硬件;缺点:中断源较多时,查询花费的时间长,响应慢。2.硬件查询确定优先级(链式)如图5-19,INTR信号的产生同软件查询法,靠近CPU的优先级最高。当INTA=01)若本级中断触发器=1,EN=1,外设经三态缓冲器往总线送中断标志(类型号),转中断处理;下级门被封锁,INTA不下传。2)若本级中断触发器=0,本级EN=0,不响应,下级门打开,INTA传给下一设备。优点:响应快,硬件较简单。缺点:优先级固定。5-19三、中断优先级编码电路如图5-20,INT是否传入CPU的INTR端,受三方面控制:1)若中断屏蔽位IMn=0;2)受比较器控制;3)受优先级失效信号(CPU不在处理中断服务时为1)控制。优先级编码器:8个中断输入线,对应产生三位二进制优先编码,最高的为111,最低为000,但只输出优先级最高的一个A到比较器,而优先级寄存器(当前中断服务寄存器)的编码作为另一输入B,1)若AB,“AB”=0,封锁门1,禁止向CPU发INT;2)若“AB”=1,打开门1,INT送入CPU。当CPU响应后,发INTA=0,打开三态缓冲器,中断向量送入CPU.5-20中断的嵌套中断嵌套(多重中断):当CPU执行优先级较低的中断服务程序时,允许响应优先级更高的中断请求,而挂起正在处理的中断,转去处理较高的中断服务,处理完再返回被中断的较低优先级的中断服务。与单级中断的区别:(1)屏蔽本级和较低级中断请求;(2)为保证中断嵌套,进行中断服务前,在保护现场、屏蔽本级和较低级中断后,要开中(3)为使恢复现场不受干扰,先关中断。5.4.4中断传送方式的接口电路如图5-21所示中断传送方式的输入接口电路.1)输入设备准备好,发选通信号READY,一使数据送入锁存器,二使中断请求触发器U2置1;2)若系统允许,中断屏蔽触发器U3已置1,经与门U7向CPU发INTR=1信号;3)若开中断(IF=1),则在现行指令执行完后可响应中断,执行中断响应周期;4)CPU发INTA=0,一使要求外设接口将中断类型码送上数据总线,二清除中断请求触发器使U2=0;5)转去执行中断程序,发IN指令,取数据到数据总线D7~D06)返回.5.5I/O接口芯片概述5.5.1I/O接口电路的发展与分类1.发展简单接口芯片可编程I/O接口芯片段功能接口板,控制芯片组(芯片组)2.分类1)按功能选择的灵活性分(1)不可编程接口芯片(2)可编程接口芯片2)按接口的通用性分(1)通用接口芯片(2)专用接口芯片5.5.2简单的I/O接口芯片1.特点与组成电路结构简单,功能单一固定,不可通过指令改变.如:1)仅含三态缓冲器的并行接口电路Intel8216,SN74LS244,245等2)仅含数据锁存器的并行接口电路74LS273,375等3)兼具数据锁存器和三态缓冲器的并行接口电路Intel8212,74LS373,375等2三种简单的I/O接口芯片在外设接口电路中,对信息进行放大、隔离以及锁存的功能的接口芯片最简单的是缓冲器、数据收发器和锁存器。1)74系列器件是TI公司的中小规模TTL集成电路芯片。从功能和速度分为:74nnn——标准TTLnnn——代表逻辑功能74后跟L——表示低功耗;S——肖特基型ALS——高性能;F——高速型2)锁存器74LS373具有三态总线驱动输出的8D锁存器,逻辑电路和引脚图如图5-22所示,D触发器时钟连在一起作“锁存允许”(使能)信号G,输出允许为OE-。当G=H,OE=L,Q=D(直通门)G=L,OE=L,Q=Q0(保持原态)OE=H,Q=Z(高阻抗)用途:1、IBMPC/XT机中用于锁存地址信息和页面地址信息2、匹配外设和微处理器的速度。输入时,锁住设备的输入信息,保持到微处理器取走信息;输出时,锁存微处理器送出的数据直到外设取走数据。常用的锁存器还有:74LS273,573,Intel8282和8283等。3)缓冲器74LS2448缓冲器和线驱动器,逻辑电路和引脚图如图5-23所示,分二路,4根数据线的使能端G连在一起,1A1Y由1G-控制,2A2Y由2G-控制。当G=L,Y=A;G=H,Y=Z(高阻态)用途:1、存储地址驱动器、时钟驱动器和总线定向接收器和定向发送器;2、电平转换:CMOSTTL;3、IBMPC/XT机中,作存储地址缓冲器/驱动器。常用的缓冲器还有:74LS240和74LS241等。4)数据收发器74LS245三态输出的8总线收发器,逻辑电路和引脚图如图5-24所示,16个双向传送的数据端,使能端G=0,传送G=1,隔开方向控制端DIR=0,BADIR=1,AB用途:用于数据的双向传送、缓冲和驱动。常用的数据收发器还有:74LS243,Intel8286,Intel8287等。5.5.3简单的I/O接口芯片的应用举例1.74LS373、245、244在PC/XT机中的应用利用锁存器74LS373和数据收发器74LS245,将8086的双重总线分开。如图15.3和图5-27。1)地址锁存器74LS373和地址缓冲器74LS244AD7~AD0——74LS373的D端——接A7~A0A11~A8(不变)——74LS244(驱动器)A19/S6~A16/S3,A15~A12——74LS373——接系统总线A
本文标题:第5章--8086的中断系统
链接地址:https://www.777doc.com/doc-2723517 .html