微机原理 第六章 中断系统1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

西北第二民族学院电信系自动化教研室第六章中断系统本章主要知识点:1、中断的基本概念2、8086中断管理3、8086中断向量系统4、8259可编程中断控制器的功能与使用方法本章学习的重点:1、8086中断管理2、8086中断向量系统3、8259的控制字4、8259的工作方式及初始化命令和操作命令的基本编写方法西北第二民族学院电信系自动化教研室6.1中断系统基本概念什么是中断?定义:中断就是指当CPU正在执行程序时,外设(或其它中断源)向CPU发出请求,CPU暂停当前程序的执行,转向该外设服务(或称中断服务)程序,当中断服务程序运行结束后,返回原程序继续执行的过程。实现中断服务的两个条件:如何引起中断?如何处理中断的请求?中断服务的实现一般需要经历下述过程:中断请求→中断响应→断点保护→中断源识别→中断服务→断点恢复→中断返回中断的作用就是完成或实现上述的过程!西北第二民族学院电信系自动化教研室中断过程示意图6-1指令指令指令指令指令指令指令指令有中断请求指令指令指令指令返回中断服务子程序1指令指令指令指令返回中断服务子程序2有中断请求中断嵌套西北第二民族学院电信系自动化教研室原程序CPU响应中断中断返回中断请求中断处理程序图6.2代码段内中断过程示意图西北第二民族学院电信系自动化教研室6.1.1中断控制系统的作用1、分时处理(按规定的时间处理某个过程)2、故障处理(对系统运行过程中出现的特殊情况及时给予处理,例如除数为0时)3、实时处理(对系统有特殊要求的部分需要在整个运行过程中实时处理,了解系统的运行状态)西北第二民族学院电信系自动化教研室6.1.2中断源1.外部设备请求中断:系统外设所发出的中断(外部设备提出的实时处理请求)请求。2.故障请求中断:同机器硬件错误有关的中断系统称谓硬件故障中断。3.程序性中断:与用户程序有关的中断,统称为程序性中断(如DOS中断等)。西北第二民族学院电信系自动化教研室6.2中断的处理过程(重点掌握内容)处理一个中断的过程,就是如何处理以下一些基本问题的过程:1)如何产生中断输入信号(请求中断)。2)如何识别中断源。3)如何把控制转给中断服务程序。4)如何保护和恢复中断的现场。5)如何识别优先级较高的中断。6)如何开放和关闭中断。也就是说如何实现图6-1所示的过程西北第二民族学院电信系自动化教研室6.2.1中断请求与中断屏蔽1.中断请求的定义:用某种信号通知CPU指明某个外设正在请求,需要CPU中断现行程序的执行(系统能识别出是那个设备或事件要求中断)。2.中断请求的条件:(1)外设具有提出中断请求功能;(2)CPU允许该外设发中断请求。3.中断屏蔽:当此触发器在程序控制下,使触发器输出端置“1”时,允许中断(EI),若触发器输出端置“0”时,则关闭中断(DI)。(通过软件可以实现是否容许中断,既:可以有中断,也可以没有中断)西北第二民族学院电信系自动化教研室6.2.2中断优先级排队问题的提出:如果有几个外设同时有中断请求时CPU如何处理?1.中断排对:当系统有2个或2个以上的中断时,需按中断的紧急程度排队,最紧急的排序最高,依此排列,称中断优先排队。2、中断优先级:当CPU正在处理一个中断时,能响应更高级别的中断请求,而暂时停止正在执行的中断服务,既中断可以嵌套(中断服务程序中还可以有中断,如图6.1中的中断服务子程序2就为中断嵌套)。3.单级中断处理和多级中断处理(中断嵌套):单级中断处理不允许其他设备再中断CPU的程序;多级中断处理允许优先级高的中断打断优先级低的中断服务程序。西北第二民族学院电信系自动化教研室图6-3同时中断请求的处理方法(B)多级中断处理A的级别更高,可以打断B,处理完A后才处理BB处理A处理BA请求CPUCPUCPUACPUB处理A处理C处理B请求C请求CPUCPUCPUA请求B处理C处理C请求(A)单级中断处理西北第二民族学院电信系自动化教研室图6-48个以下的中断结构图6-58个以上的中断结构IRQ0IRQ1IRQ2:IRQn8259到CPU三总线到CPU三总线IRQ0IRQ1IRQ2:IRQn8259IRQ0IRQ1IRQ2:IRQnINTINTIRQ1IRQ2IRQ3:IRQnIRQ082598259(主)(从1)(从2)多于8个中断源的中断的硬件电路结构西北第二民族学院电信系自动化教研室3.中断排队与中断源的识别(1)程序查询识别(软件查询法)(2)单线串行顺序链识别(硬件查询法)(3)中断向量法识别西北第二民族学院电信系自动化教研室程序查询识别中断方法流程图YYYNNN保护现场检查IRQ1的中断状态是否为“1”IRQ1的服务程序恢复现场中断返回中断处理入口检查IRQ2的中断状态是否为“1”检查IRQ3的中断状态是否为“1”IRQ2的服务程序IRQ3的服务程序西北第二民族学院电信系自动化教研室硬件查询法(1)中断优先权排队电路,可用硬件编码器和比较器组成的优先权排队电路图6-6硬件优先权排队电路西北第二民族学院电信系自动化教研室硬件查询法(2)链式优先权排队电路也称菊花链,将所有的中断源排成一个链。各中断源在链中的前后顺序是根据中断源优先级别的高低来排列。排在链前面的优先级最高。图6-7硬件优先权排队电路西北第二民族学院电信系自动化教研室6.2.3CPU对中断的响应(中断向量识别法)1.中断向量识别法的响应的方法1)CPU中断响应的条件(1)发出中断请求信号(2)设置中断屏蔽触发器,当此触发器为“1”时,允许外设的中断请求送出至CPU。(3)CPU处于开中断状态。(4)CPU在一条现行指令结束之后响应中断。西北第二民族学院电信系自动化教研室2)CPU对中断响应的过程(重点掌握内容)(1)关中断---响应中断后,首先发出中断响应信号,内部自动完成关中断操作(本级中断源)。(2)保存断点---响应中断后,停止下一条指令的执行,把当前相关寄存器的内容压入堆栈(必须保存IP、CS,CPU自动完成此操作,为中断返回做好准备)。(3)给出中断入口地址,转入相应的中断服务程序。(4)恢复现场---完成中断服务后,将原来保存的现场信息从堆栈弹出,恢复CPU内部相关寄存器的内容。(5)开中断与返回---为使CPU能再次响应中断,在中断服务程序的最后执行开中断,同时紧跟一条返回指令,从堆栈弹出IP、CS(自动完成),恢复原程序的执行。西北第二民族学院电信系自动化教研室图6-8中断服务程序框图与程序示例入口地址:PUSHAX;保护现场PUSHBXPUSHCXPUSHDXPUSHSIPUSHDIPUSHSPPUSHBPSTI;开中断∶;中断服务CLI;关中断POPBP;恢复现场POPSPPOPDIPOPSIPOPDXPOPCXPOPBXPOPAXSTI;开中断IRET;中断返回中断服务程序入口CPU响应中断后自动关中断保护现场开中断中断服务关中断恢复现场开中断中断返回结尾部分主体部分起始部分中断嵌套西北第二民族学院电信系自动化教研室6.38086/8088中断系统结构6.3.18086/8088CPU的中断结构体系1、8086的中断源8086系统的中断源分为外部中断(中断源来自CPU外部,即外部设备的中断)和内部中断(来自CPU内部的中断)两大类。1)内部中断:(1)除法溢出中断――0号中断(2)单步中断――1号中断(3)INT指令中断(4)溢出中断――4号中断(5)软件中断西北第二民族学院电信系自动化教研室8086/8088的中断源外部中断INTRNMI8086/8088CPU中断逻辑单步(TF=1)除法出错INTO溢出INT3断点非屏蔽中断请求8259A可屏蔽中断请求INTn指令内部中断图6-98086/8088的中断源西北第二民族学院电信系自动化教研室内部中断的作用:(1)除法错中断(中断类型号为0):在执行除法指令时,若发现除数为0,则产生一个类型号为0的内部中断,CPU转去执行除法错中断处理程序。(2)溢出中断INTO(中断类型号为4):进行带符号数的算术运算时,若发生了溢出,则标志位OF=1,若此时执行INTO指令,会产生溢出中断,结束时不返回,而把控制权交给操作系统。若OF=0,则INTO不产生中断,CPU继续执行下一条指令。INTO指令通常安排在算术指令之后,以便在溢出时能及时处理。例如:ADDAX,BXINT0;测试加法的溢出西北第二民族学院电信系自动化教研室为调试程序设置的中断(1)单步中断(中断类型号为1):当TF=1时,每执行一条指令,CPU会自动产生一个单步中断。单步中断可一条一条指令地跟踪程序流程,观察各个寄存器及存储单元内容的变化,帮助分析错误原因。(2)断点中断(中断类型号为3):调试程序时可以在一些关键性的地方设置断点,它相当于把一条INT3指令插入到程序中,CPU每执行到断点处,INT3指令便产生一个中断,使CPU转向相应的中断服务程序。中断指令INTn引起的中断(中断类型号为n)程序设计时,可以用INTn指令来产生软件中断,中断指令的操作数n给出了中断类型号,CPU执行INTn指令后,会立即产生一个类型号为n的中断,转入相应的中断处理程序来完成中断功能。西北第二民族学院电信系自动化教研室2)外部硬件中断(外部中断):1)非屏蔽中断非屏蔽中断NMI:不受中断允许标志IF的影响,它总是被CPU接受的。非屏蔽中断的优先权高于可屏蔽中断。其中断请求信号是发生在NMI上的电压跳变(边沿触发)中端类型号为2。2)可屏蔽中断出现在INTR线上的请求信号是电平触发的。是否响应INTR的请求,取决于中断允许标志位IF的状态。只有当中断允许标志位IF为1时,CPU才能响应INTR的中断请求。如果IF为0,即使INTR端有中断请求信号CPU也不会响应。这种情况称为中断屏蔽。西北第二民族学院电信系自动化教研室3.中断类型号和中断向量表(重点掌握)问题的提出:如何确定中断服务的入口地址?中断号与中断服务程序对应关系?8086解决的方法为:中断类型号(中断向量):8086对每种中断都指定一个中断类型号,共256个,从0~255(00H~FFH),每一个中断类型号都与一个中断服务程序相对应(如果有该类型号的中断)。中断服务程序存放在存储区内,但该中断服务程序的入口地址存在内存储器的中断向量表内(固定区域),供中断被响应后能正确的找到该类型号的中断服务程序的入口。西北第二民族学院电信系自动化教研室中断向量表:是中断类型号与它相对应的中断服务程序入口地址之间的转换表。用户在设计中断服务程序时要预先确定一个中断类型号,不论是采用软件中断还是硬件中断,都只能在系统预留给用户的类型号中选择。图6-10给出了8086中断向量与入口地址存放位置的表。该表的物理地址为00000H~003FFH。由于该表中的实际中断服务程序的入口地址要由用户通过程序写入,所以该存储区必须留做ROM。这就是为什么在存储器设计时要把最小地址空间设计为ROM的原因。西北第二民族学院电信系自动化教研室类型0中断入口(除法出错)类型1中断入口(单步中断)类型2中断入口(NMI)类型3中断入口(断点中断)类型4中断入口(溢出中断)类型5中断入口类型31中断入口类型32中断入口类型255中断入口¡¡¡¡1587000000400800C01001407F0803FC供用户使用系统备用专用中断IPCSIPCSIPCS图6-108086中断向量表西北第二民族学院电信系自动化教研室前5个中断类型是8086规定的专用中断,有着固定的意义和处理功能;类型码5~31为系统使用或保留,类型码32~255可以由用户自行使用。但是在为某种目的设计的微机系统中,用户可使用的中断类型码另有规定,如PC/AT中断类型码70H~77H就已有安排,所以用户在进行系统开发和应用时应注意。中断类型码和中断向量在向量表中的位置之间的对应关系为:中断向量=4×中断类型码例如,中断类型码为20H的中断源对应的中断服务程序的入口地址存放在中断向量地址为:0000:0080H(4×20H=80H)开始的4个单元中。西北第二民族学院电信系自动化教

1 / 100
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功