资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
第11页 / 共48页
第12页 / 共48页
第13页 / 共48页
第14页 / 共48页
第15页 / 共48页
第16页 / 共48页
第17页 / 共48页
第18页 / 共48页
第19页 / 共48页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第7章 中断系统及8237ADMA控制器,教学内容,7.1 中断系统,7.1.1 中断的概念及其作用,7.1.2 中断处理系统,7.2 8086CPU的中断系统,7.2.1 8086CPU的中断源,7.2.2 8086CPU的中断响应过程,7.2.3 中断向量表,7.2.4 中断程序设计,7.3 中断控制器Intel8259A,教学目标,掌握8086中断系统结构,特点及使用。,重点内容,1 中断的概念及其作用。,2 中断处理(中断源识别、优先级判断、嵌套管理、处理过程)。,3 8086CPU中断系统。,难点内容,8086CPU中断系统。,学时数,4学时,7.1 中断系统,7.1.1 中断的概念及其作用,1、中断的概念,中断计算机在执行正常程序的过程中出现内部或外部某些事件的请求时,CPU暂时停止当前程序的正常执行,转去执行请求事件的处理操作,CPU在事件处理结束后再回到被暂时中断了的程序继续往下执行。,2、中断系统的作用,(1)并行处理,(2)实时处理,(3)故障处理,7.1.2 中断处理系统,一个完整的中断处理系统必须实现以下功能:,中断源识别、中断优先级判断、中断嵌套管理以及CPU的中断响应、中断服务和中断返回。,1、中断源识别,中断源引起程序中断的事件。,在具有多个中断源的系统中,CPU需要识别哪一个中断源有中断请求。常用的中断技术有单线中断、多线中断和向量中断三种。,单线中断通过查询中断源提供中断地址信息。,多线中断每个中断源有一根输入线,由于CPU引脚线有限而只能管理少量的中断源。,向量中断由每个中断源经接口电路向CPU提供中断源的设备标志,CPU将程序转向相应中断设备的中断处理。向量中断技术如图7-2所示,当CPU响应中断后,由中断源提供中断地址信息,引导程序进入中断服务程序的入口。,2、中断优先级判断,中断优先级判断的具体方法可分为:软件查询、硬件排队和专用中断控制器。,(1)软件查询方式,在CPU响应中断后,通过用户编程采用程序查询的方法确定中断源的优先级。查询的顺序决定了各中断源的优先级。,软件查询方法的优点是接口电路简单,且优先权次序可以按查询的先后顺序而改变。缺点是中断源较多时,由查询转到相应中断服务程序的时间较长,因而,此方法一般用于中断源较少、实时性要求不高的场合。,(2)硬件排队方式,图7-5是一个用硬件编码器和比较器构成的优先权排除电路。,其中共有8个中断源,任一个中断源有中断请求时,通过“或”门可以产生一个中断请求信号。,如果当前不在中断处理中,则“与”门2打开,中断请求“与”门2进入CPU。,如果当前正在某一中断处理中(即已响应了一个中断请求),但此中断源的优先级低于正在请求中断的中断源,则“与”门1打开,中断请求“与”门1进入CPU;若正在处理中的中断源的优先级高于正在请求中断的中断源,则这个请求中断的中断源被阻隔,暂时无法进入CPU,将等待正在处理的中断结束后才能进入CPU。,(3)专用中断控制器,3、中断嵌套管理,中断嵌套CPU响应了一个中断请求,正在中断处理中,又有一个中断源发出中断请求。,若发出中断请求的中断源的优先权级别更高,中断系统使CPU暂停当前的中断服务,转而响应和处理中断优先级更高的中断请求,处理结束后,再返回原优先级较低的中断服务。,若发出中断请求的中断源的优先权级别低于当前正在处理的中断源,CPU不予响应,等待当前中断处理结束后,再予以响应。,4、中断处理过程,一般包括中断请求、中断优先级判断、中断响应、中断服务和中断返回5个基本阶段。,7.2 8086CPU中断系统,7.2.1 8086CPU的中断源,8086CPU的中断系统可处理256个中断,可分为两大类:外部中断和内部中断。,1、中断源的类型,(1)外部中断(硬件中断),分为非屏蔽中断和可屏蔽中断两种。,1)非屏蔽中断,通过NMI引脚进入CPU。只要NMI引脚有中断请求,CPU就必须响应,常用作处理重大故障和紧急情况。,2)可屏蔽中断,通过引脚INTR进入CPU。CPU对此中断请求是否响应由标志位IF决定,当IF=1时才能响应。,(2)内部中断(软件中断),1)单步中断中断类型号是1。当标志位TF=1时,CPU每执行一条指令就产生一个单步中断。,2)除法出错中断中断类型号是0。当除数为0或商超出了限定范围时产生此中断。,3)断点中断中断类型号是3。用于在程序调试时设置断点。,4)溢出中断中断类型号是4。指令为INTO,如果该指令的上一条指令使标志位OF=1,则在执行指令INTO时产生溢出中断。,5)指令中断中断类型号是n。指令格式为INT n。指令中断和INT、INTO一样,都能引起CPU的中断响应,但INT、INTO为单字节指令,且中断类型号是固定的,而INT n是双字节指令,类型号n是指令给出的。,内部中断的特点:,内部中断的类型号都是固定的,或是在中断指令中给定的。不需要进入INTA总线周期获取类型号;,不受中断允许标志位IF的影响;,用一条指令或由某个标志位启动进入中断处理程序,这样 的中断没有随机性。,2、中断源的优先级,7.2.2 8086CPU的中断响应过程,7.2.2 8086CPU的中断响应过程,1、内部中断和非屏蔽中断的响应及处理过程,1)中断请求与检测。,2)确定中断向量地址。将中断类型号乘以4获得中断向量地址。,3)保护各标志位状态和屏蔽INTR中断和单步中断。将标志寄存器入栈,并清除IF、TF标志。,4)保存断点。将断点地址(即IP和CS)入栈。,5)执行中断服务程序。从中断向量表中取出中断服务程序的入口地址送到IP和CS,在中断服务程序中要保护现场。,6)中断返回。执行IRET指令,从堆栈中取回断点地址送IP和CS。,2、可屏蔽中断,1)中断请求与检测。CPU每执行一条指令后都会检测INTR上有无中断请求。,2)判断是否响应。如果IF=1,则在执行完当前指令后响应中断请求。,3)确定中断向量地址。执行连续两个中断响应总线周期,第一个周期通知中断源中断请求已被响应,第二个周期中断源将中断类型号送上数据总线的低8位,CPU在T4的前沿从数据总线上获得中断类型号。然后将中断类型号乘以4得到中断向量地址。,以下4)、5)、6)与内部与非屏蔽中断相同。,4)保存断点。将断点地址(即IP和CS)入栈。,5)执行中断服务程序。从中断向量表中取出中断服务程序的入口地址送到IP和CS,在中断服务程序中要保护现场。,6)中断返回。执行IRET指令,从堆栈中取回断点地址送IP和CS。,7.2.3 中断向量表,中断向量是中断服务程序入口地址。,中断向量表是中断服务程序入口地址表。,中断向量地址是中断向量在中断向量表中的位置。,中断向量地址与中断类型号之间的关系可表示为:中断向量地址中断类型号*4。,8086中断系统最多可有256个中断源,每个中断有一个中断类型号(0255),每个类型号对应一个中断向量,每个中断向量4个字节,前两个字节是偏移量IP,后两个字节是段基址CS,256个中断向量占用最低1KB内存,即03FFH。中断向量表如图7-10所示。,8086的前5个中断向量是专用的,接下来的27个中断向量由操作系统使用,剩下的中断向量可以由用户使用。,例7-1某中断源的类型号为34,且已知部分中断向量表如图7-11所示,试求中断服务程序入口的物理地址。,解:34*4=136,即中断向量地址为:,88H,查中断向量表得中断向量为:,A123H:B678H,中断服务程序入口的物理地址为:,AC8A8H,7.2.4 中断程序设计,中断程序设计分为主程序设计和中断服务子程序设计两部分:主程序用来完成相关的初始化工作,为实现中断做好准备;中断服务子程序用来完成相关的中断处理工作。,1、主程序设计,初始化工作分三部分:,CPU本身工作的初始化,中断控制器8259A的初始化,通用接口的初始化,2、中断服务子程序设计,中断服务子程序含有以下七个部分:,(1)保护中断时的现场。,(2)若允许中断嵌套,则设置开中断。,(3)执行中断处理程序。,(4)设置关中断,,(5)给中断命令寄存器送中断结束命令EOI。,(6)恢复中断时的现场。,(7)用中断返回指令IRET返回主程序。,7.3 中断控制器Intel8259A,8259的功能:,1)具有864级的中断优先权管理功能(多于8级时,必须通过级连扩展实现)。,2)每一级都可以通过编程实现中断屏蔽或开放。,3)在中断响应周期,8259A可以自动提供相应的中断类型号。,4)可以通过编程来选择8259A的各种工作方式及任意设定中断类型号。,7.3.1 8259A的引脚信号及结构,1.8259A的外部引脚信号及结构,引脚信号如图712b,引脚信号的作用见表72。,2.8259A的内部结构,(1)数据总线缓冲器,用于与CPU进行数据交换。,(2)读/写控制逻辑,用于实现读/写操作。,(3)级联缓冲/比较器,用于控制多片8259A的级联,使得中断级可以最多扩展至64级。扩展时用一片主片,多片从片。,(4)中断请求寄存器IRR,具有锁存功能的8位寄存器,用于寄存所有外部中断请求。当8个中断请求IR0IR7中任何一个的输入上升为高电平时,IRR中相应的位置1,该位在中断响应过程中被清除。,(5)中断服务寄存器ISR,8位寄存器,用于存放正在被服务的中断级。在中断响应的第一个INTA周期将ISR相应位置1,同时对应的IRR位复位。ISR的复位由8259A中断结束方式决定。若是自动结束方式,则由CPU在第二个INTA周期后沿将其复位;若是非自动结束方式,则由CPU发送的中断结命令将其复位。允许多重中断时,ISR多位同时被置成1。,(6)中断屏蔽寄存器IMR,8位寄存器,用于寄存要屏蔽的中断级。该寄存器的每一位对应一个中断级,1表示屏蔽该级中断请求,0表示开放该级中断请求。寄存器内容可以通过软件以屏蔽命令设置。各屏蔽位相互独立(屏蔽高优先级的中断不会影响低优先级的中断)。,(7)优先权比较器PR,用于存放IRR中各请求信号的优先级,并排队判优,若中断允许嵌套时,所选最高优先级还要和ISR中内容比较,以实现高优先级的嵌套中断。,(8)中断控制逻辑,控制逻辑是8259A的内部控制器。根据中断请求寄存器IRR的置位情况和中断屏蔽寄存器IMR设置的情况,通过优先级判别器PR判定优先级,向8259A内部及其他部件发出控制信号,并向CPU发出中断请求信号INT,接收CPU的中断响应信号 ,使中断服务寄存器ISR相应位置1,并使中断请求寄存器IRR相应位清0。当CPU第二个 信号到来,控制8259A送出中断类型号,使CPU转入中断服务子程序。如果方式控制字ICW4的中断自动结束位为1,则在第二个 脉冲结束时,将8259A中断服务寄存器ISR的相应位清0。,7.3.2 8259A的工作方式,8259A共有6种工作方式。,1.中断请求方式,(1)边沿触发器方式,中断请求输入端(IR0IR7)的上升沿实现中断请求。,(2)电平触发方式,中断请求输入端(IR0IR7)的高电平实现中断请求。要求高电平保持到中断请求被响应,且在中断返回前撤除,否则将引起又一次中断。,(3)中断查询方式,8259A不向CPU发INT信号,由CPU不断查询8259A,当发现有中断请求时,就转入相应的中断服务程序。查询时,系统先关中断,然后将查询方式命令字OCW3送到8259A,再对8259A执行一条输入指令,8259A便将一个如下格式的查询字送上数据总线。,D7 D6 D5 D4 D3 D2 D1 D0,I W2 W1 W0,I=1表示有设备请求中断服务。W2W1W0组成的代码表示当前中断请求的最高优先级。,2.中断源屏蔽方式,(1)普通屏蔽方式,在中断屏蔽寄存器IMR中写入中断屏蔽字。1使对应中断输入被屏蔽,0则对应中断输入被允许。,(2)特殊屏蔽方式,用于屏蔽当前已响应的中断,并将ISR中的对应位清0,以开放其他优先权较低的中断输入。在进入
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6