您好,欢迎访问三七文档
《微机原理与接口技术》主讲:陆强信息工程学院电子信息教研室邮箱:jtian@tsmc.edu.cn电话:13505385689第7章中断技术7.1中断的基本原理(重点理解)7.2可编程中断控制器8259A(应用)7.3保护模式下的中断(自学)7.4中断应用举例§7.1中断的基本原理7.1.1中断的基本概念中断是指CPU正常运行程序的过程中,CPU内部或外部的某些事件或紧急、异常情况需要及时处理,导致CPU暂停正在执行的程序,转去执行处理该事件的程序,并在处理完毕返回原程序处继续执行被暂停的程序,这一过程称为中断。中断时,被打断执行的程序中下一条被暂停执行的指令所在的地址称为断点。中断处理主程序中断服务程序有中断请求继续执行断点返回断点图7-1中断过程示意图中断源:能引起CPU产生程序中断的随机事件叫做中断源。中断源主要分为两大类:内部中断源和外部中断源。内部中断源:即中断源在微处理器内部,如计算溢出、中断指令的执行、程序调试中指令的单步运行等。外部中断源:即引起中断的原因是外部设备,如外设的I/O请求、定时时间到、设备故障、电源掉电等。其中外部中断源可分为可屏蔽中断和非屏蔽中断。非屏蔽中断就是无条件中断,可屏蔽中断就是条件中断。1、中断源非屏蔽中断请求INT2可屏蔽中断请求中断类型码:32-255NMI(17号引脚)INTR(18号引脚)中断指令INTnN=32-255溢出指令INTOINT4断点中断INT3单步中断(TF=1)INT1除法错误INT0中断控制逻辑软件(内部)中断硬件(外部)中断中断控制系统(8259A)图2-138086微机的中断来源中断类型码:中断系统为区别不同种类的中断源,一般采用若干位二进制编码进行区分。方法是为每个中断源分配一个不同的编码,称为中断类型码。8086/8088CPU的中断类型码使用8位二进制数,范围为0~255,可以处理256种不同类型的中断,CPU根据中断类型码来识别不同的中断源。2、中断类型码3、中断请求当中断源需要CPU对它进行服务时,就会产生一个中断请求信号。请求信号有边沿请求和电平请求两种。由于每个中断源向CPU发出的中断请求信号是随机的,而CPU是在现行指令执行结束后才检测有无中断请求发生,故CPU在执行现行指令期间,必须把随机输入的中断请求信号锁存起来,并保持到CPU响应这个中断请求后才可以清除。因此,每一个中断源都设置了一个中断请求触发器,记录中断源的请求标志。当有中断请求时,该触发器被置位,当CPU响应中断请求后,该触发器被清除。4、中断响应CPU接受中断请求就称为中断响应。当CPU执行到每条指令的最后一个时钟周期时,就去检测是否有中断请求,如果有中断请求,对内部中断源,CPU会无条件响应,而对外部中断源,只有在满足响应条件时,CPU才会响应其中断请求。5、中断处理(中断服务)CPU一旦响应中断,立即进入中断处理过程。该过程就是CPU中止正在运行的程序,转去执行引起该中断事件的程序,即中断处理(服务)子程序。中断处理指从中断源向CPU发出中断请求信号到CPU将这一请求处理完成的过程,叫做中断处理过程。中断服务程序就是处理中断事件的程序段,如除法错中断服务程序、输入输出中断服务程序等。6、中断返回在中断程序的最后,通过执行一条中断返回指令(IRET),将CS、IP及标志寄存器的内容从堆栈中弹出,使CPU返回到中断前的程序,并从断点处继续执行。中断系统是指能够实现计算机的中断功能而配置的相关硬件、软件的集合。一个完整的中断系统应具备如下功能:①设置中断源:就是确定中断源的中断请求方式。②中断源识别:当中断源有请求时,CPU能够正确地判别中断源,并能够转去执行相应的中断服务子程序。③中断源判优:当有多个中断源同时请求中断时,系统能够自动地进行中断优先权判断,优先权最高的中断请求将优先得到CPU的响应和处理。④中断处理与返回:能自动地在中断服务子程序与主程序之间进行跳转,并对断点进行保护。7、中断系统§7.1中断的基本原理7.1.2中断工作方式的优点故障检测和自动处理计算机系统出现故障和程序执行错误都是随机事件,事先无法预料,采用中断技术可以有效地进行系统的故障检测和自动处理。实时信息处理在实时信息处理系统中,需要对采集的信息立即做出响应,以避免丢失信息,采用中断技术可以进行信息的实时处理,特别是对紧急事件的处理。并行处理(以打印机为例)中断技术实现了CPU和外部的并行工作,从而消除CPU的等待时间,提高了CPU的利用率。另外,CPU可同时管理多个外部设备的工作,提高了输入/输出数据的吞吐量。以打印机为例发中断请求空闲接收数据接收数据准备发中断请求打印打印打印机执行主程序继续执行主程序继续执行主程序响应中断中断返回响应中断中断返回启动打印机传送数据传送数据CPUCPU与打印机并行工作补充知识§7.1中断的基本原理7.1.3中断处理过程一个完整的中断处理过程包括:中断请求、中断响应、中断处理和中断返回4个步骤。§7.1中断的基本原理7.1.4中断优先级和中断嵌套中断嵌套的概念中断嵌套指CPU在执行低级别中断处理子程序时,有较高级别的中断请求产生,CPU能够暂停执行级别低的中断处理子程序,转去处理这个级别高的中断,处理完后再返回低级别的中断处理子程序继续运行。图7-5中断嵌套示意图主程序低级中断请求STI低级中断处理子程序高级中断请求STI高级中断处理子程序如果同一时间有多个中断源向CPU提出中断请求,CPU该如何处理,这就涉及到多级中断的管理问题,其关键是中断优先级的控制问题。中断优先级是指每个中断源在接受CPU服务时的优先等级。1、中断优先级2、中断优先级的原则不同优先级的多个中断源同时发出中断请求时,应按照优先级别由高到低次序响应并处理,实现优先级排队。高优先级请求可以中断低优先级的中断处理程序(实现中断嵌套),反之不能(低优先级的中断请求不可以打断高优先级的请求)。一种中断源,不管是什么级别,一旦得到响应,与它同级别的中断源不能再打断它。中断优先级判别一般可采用软件优先级排队和硬件优先级排队两种方法。软件优先级排队软件优先级排队是指各个中断源的优先权由软件安排。方法是:当CPU响应中断后,利用软件查询有哪些外设申请中断,判断哪个中断源的级别更高,并首先为它进行中断服务。3、中断优先级的判别图7-3实现软件查询的接口电路D7...D0INTR中断请求寄存器=1CPU电源故障磁盘键盘输入打印机INT在实际应用中,一般将8个外设的中断请求触发器组合起来,作为一个端口,并赋以端口号,如图7-3所示。把8个外设的中断请求信号相“或”后,作为INTR信号,这样只要有一个外设有中断请求,就可向CPU发出INTR信号。当CPU响应中断后,把中断寄存器组成的这个端口的状态读入CPU,逐位检测,若有中断请求就转到相应的服务程序的入口。软件查询法的优缺点:优点:利用软件完成中断优先权的检测,不需要硬件判优电路。优先权由查询的次序来决定,首先查询的即为优先级最高的。缺点:不管外设是否有中断请求都需要按次序逐一询问,因而效率较低。特别是在中断源较多的情况下,转至中断服务程序的时间较长。硬件优先级排队硬件优先级排队是指利用专门的硬件电路或中断控制器对系统中各中断源的优先权进行安排。链式优先权排队电路是一种简单的中断优先权硬件排队电路,又称为菊花环式优先权排队电路,它是利用外设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先权最高,排在最后面的优先权最低,电路如图7-4所示。图7-4实现硬件查询的接口电路三态缓冲器三态缓冲器三态缓冲器三态缓冲器&A1&B1&C1&&&&&1C2B2A2Q中断触发器设备1Q中断触发器设备2Q中断触发器设备3Q中断触发器设备n1=INTRINTA(来自CPU)ENENENEN数据总线当任一外部设备申请中断后,中断请求信号送到CPU的INTR端,CPU发中断响应信号。当前一组的外设没有发出中断申请时,/INTA信号会沿着菊花链线路向后传递,传送到发出中断请求的接口。当某一级的外设发出了中断申请,此级的逻辑电路就阻塞了的通路,后面的外设接口不能接到信号。此级接口收到信号后撤销中断请求信号,向总线发送中断类型号,从而CPU可以转入中断处理。§7.2可编程中断控制器8259A7.2.18259A的主要特性和内部结构主要特性可编程中断控制器8259A是Intel公司专为80x86CPU控制外部中断而设计开发的芯片。它将中断源优先级判优、中断源识别和中断屏蔽电路集于一体,不需要附加任何电路就可以对外部中断进行管理,单片可以管理8级外部中断,在多片级联方式下,可以管理多达64级的外部中断(扩展8片8259A构成64级主从式中断系统)。§7.2可编程中断控制器8259A可以直接管理8个中断源,级联方式下不用附加电路就可以管理64个可屏蔽中断源,并具有优先权判决功能。能为中断源提供中断向量码。可以对每一级中断进行屏蔽控制。可提供多种可供选择的工作方式,并能通过编程进行控制。7.2.18259A的主要特性和内部结构(续)主要功能内部结构8259A内部结构如图7-6所示,主要由数据总线缓冲器、读/写控制逻辑、级联缓冲/比较器、中断控制逻辑、中断请求寄存器、中断服务寄存器、中断屏蔽寄存器、优先权判决器组成。(1)数据总线缓冲器数据总线缓冲器为三态、双向、8位寄存器,数据线D7~D0与CPU系统总线连接,构成CPU与8259A之间信息传送的通道。(2)读/写控制逻辑读/写控制逻辑用来接收CPU系统总线的读/写控制信号和端口地址选择信号,用于控制8259A内部寄存器的读/写操作。(3)级联缓冲/比较器8259A既可以工作于单片方式,也可以工作于多片级联方式。级联缓冲/比较器提供多片8259A的管理和选择功能,其中一片为主片,其余为从片。(4)中断控制逻辑中断控制逻辑按照编程设定的工作方式管理中断,负责向片内各部件发送控制信号,向CPU发送中断请求信号INT和接收CPU回送的中断响应信号,控制8259A进入中断管理状态。(5)中断请求寄存器(interruptrequestregister,IRR)IRR是一个8位寄存器,用于记录外部中断请求。其中D7~D0分别与外部中断请求信号IR7~IR0相对应,当IRi(i=0~7)有请求(电平或边沿触发)时,IRR中的相应位Di置1,在中断响应信号有效时,Di被清除。(6)中断服务寄存器(interruptserviceregister,ISR)ISR是一个8位寄存器,用于记录CPU当前正在服务的中断标志。当外部中断IRi(i=0~7)的请求得到CPU响应进入服务时,由CPU发来的第一个中断响应脉冲将ISR中的相应位Di(i=0~7)置1(并将一直保持到该级中断处理过程结束或处理过程中被清除为止。在多重中断时,ISR中可能有多位同时被置“1”),而ISR的复位则由8259A中断结束方式决定。若定义为自动结束方式,则由CPU发来的第二个中断响应脉冲的后沿将Di复位为0;若定义为非自动结束方式,则由CPU发送来的中断结束命令将其复位。(7)中断屏蔽寄存器(interruptmaskregister,IMR)IMR是一个8位寄存器,用来存放IR7~IR0的中断屏蔽标志(用来屏蔽已被锁存在IRR中的任何一个中断请求)。它的8个屏蔽位D7~D0与外部中断请求IR7~IR0相对应,用于控制IRi的请求是否允许进入。当IMR中的Di位为1时,对应的IRi请求被禁止;当IMR中的Di位为0时,则允许对应的中断请求进入。(对所有要屏蔽的中断请求线,IMR相应位置“1”,即请求不能进入PR去判优。)(8)优先权判决器(priorityregister,PR)优先权判决器对IRR中记录的内容与当前ISR中记录的内容进行比较,并对它们进行排队判优,以便选出当前优先级最高级的中断请求。如果IRR中记录的中断请求的优先级高于ISR中记录的中断请求的优先级,则由中断控制逻辑向CPU
本文标题:微机原理 中断技术
链接地址:https://www.777doc.com/doc-3264432 .html