中断及中断控制器本章学习要点中断技术概述8086的中断

上传人:Sc****h 文档编号:131556642 上传时间:2022-08-06 格式:DOC 页数:7 大小:93.50KB
返回 下载 相关 举报
中断及中断控制器本章学习要点中断技术概述8086的中断_第1页
第1页 / 共7页
中断及中断控制器本章学习要点中断技术概述8086的中断_第2页
第2页 / 共7页
中断及中断控制器本章学习要点中断技术概述8086的中断_第3页
第3页 / 共7页
点击查看更多>>
资源描述
第 7 章中断及中断控制器本章学习要点中断技术概述、8086 的中断类型中断优先权及其管理、中断矢量中断处理过程可编程中断控制器8259A 及其应用7-1本章知识重点7-1-1中断技术的基本概念1 中断的概念所谓“中断”是指CPU 在正常执行程序时,由于内部外部事件或程序的预先安排引起CPU暂时终止执行现行程序,转而去执行请求CPU为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行。2 中断源能引起中断的外部设备或内部原因称为中断源。按照与 CPU的位置关系可分为内部中断和外部中断。内部中断是 CPU在处理某些特殊事件时所引起或通过内部逻辑电路自己去调用的中断。外部中断是由于外部设备要求数据输入输出操作时请求CPU为之服务的一种中断。通常中断源有以下几种:(1) 一般的输入输出设备,如键盘、打印机等。(2) 实时时钟。(3) 故障源。(4) 软件中断。3 中断源识别识别中断源通常有两种方法:查询中断和矢量中断。(1)查询中断:就是用软件查询的方法确定中断源。当CPU收到中断请求信号时,通过执行一段查询程序,从多个可能的外设中查询申请中断的外设。(2) 矢量中断:又称向量中断。每个中断源预先指定一个矢量标志,要求外设在提出中断请求的同时, 提供该中断矢量标志。 当 CPU响应某个中断源的中断请求时, 控制逻辑就将该中断源的矢量标志送入 CPU, CPU根据矢量标志自动找到相应的中断服务程序入口地址,转入中断服务。这种中断源识别方法比查询中断要快很多。4中断技术的优点(1) 同步操作:中断方式不仅可以实现CPU和外设之问的并行工作,而且CPU可命令多个外设同时工作,这大大提高r CPU 的利用率,也加快了输A输出的速度。(2) 实现实时处理:利用中断技术可以及时处理随机输入到微型计算机的各种参数和信息,使微型计算机具备实时处理与控制的能力。(3) 故障处理: CPU 可以就根据故障源发出的中断请求,立即去执行相应的故障处理程序,自行处理故障而不必停机,因此提高了微型计算机工作的可靠性。7-1-2 中断系统1中断系统的功能(1) 能实现中断响应、中断服务和中断返回。当某个中断源发出中断请求 n,J , CPU可决定是否响应这个中断请求。如果紧急、 更重要的工作时, 可以暂不响应中断。 若允许响应这个中断请求,则CPU正在执行更CPU必须在执行完现行指令后, 保护断点和现场, 即把断点处的 IP 和 CS值、各寄存器的内容与标志位的状态压入堆栈, 然后再转去执行相应的中断服务程序, 同时清除中断请求信号。 当中断服务程序执行完毕后, 再恢复现场和断点, 使 CPU返回主程序继续执行, 至此 CPU的一次中断过程结束。其过程如图 7 1 所示。图 7.1中断的过程(2)能实现中断优先权排队在中断系统中, CPU一般要根据各中断请求的轻重缓急分别处理,即给每个中断源确定一个中断优先级别中断优先权,系统能够自动地对它们进行排队判优, 保证首先处理优先级别高的中断请求, 待级别高的中断请求处理完毕后,再响应级别较低的中断请求。(3) 能实现中断嵌套当 CPU响应某一中断请求, 并为其服务时, 若有优先权更高的中断源发出中断请求,则要求 CPU能打断正在执行的中断服务程序, 响应更高级别的中断请求。在高级别中断请求处理完后,再返回被打断的中断服务程序继续执行,即实现中断嵌套。 CPU允许高优先级中断请求可以打断低优先级中断服务, 使 CPU对于急需处理的事件立即作出响应。2中断类型8086采用了矢量型的中断结构,共有256 个中断矢量号,又称中断类型号。按照与CPU的相对位置关系分为外部中断和内部中断。内部中断也称软件中断,是由处理器检测到异常情况或执行软件中断指令所引起的一种 中断。通常有除法出错中断、INTO溢出中断、 INT n 中断、断点中断和单步中断等。外部中断也称硬件中断,是由 CPU的外部中断请求信号触发的一种中断,分为不可屏蔽中断 NMI 和可屏蔽中断INTR。3内部中断(1)除法出错中断:在执行除法指令DIV 或 ID时,若发现除数为0 或商超过了目的寄存器所能表达的范围,则CPU会立即产生一个中断类型码为0 的内部中断。(2)INTO溢出中断: 若上一条指令执行的结果使溢出标志位OF=I,则执行中断指令INTO时,将引起中断类型码为4 的内部中断。(3)INTn 指令: 8086CPU执行一条INT n 中断指令,就会发生一次中断,其中n 为中断类型码 ( 范围为 0 255) 。(4)断点中断: 8086CPU执行单字节中断指令INT 3,就产生一个中断类型码为3 的内部中断,它主要用于程序调试。(5) 单步中断: 当标志寄存器中的 TF 标志位为 1 时,CPU就处于单步工作方式。 这时 CPU在每条指令执行完后自动产生中断类型码为l 的内部中断, 作为中断处理过程的一部分,CPU将自动把标志寄存器的内容和断点压入堆栈保存起来,然后将TF 和清零。4内部中断的特点(1) 中断矢量号是由 CPU自动提供的,不需要执行中断响应总线周期去读取矢量号。(2) 除单步中断外, 所有内部中断都无法禁止, 即都不能通过执行 CLI 指令使 IF 位清零来禁止对它们的响应。(3) 除单步中断外,任何内部中断的优先权都比外部中断高。8086CPU的中断优先权顺序为:内部中断 ( 除法出错中断、 INTn 指令中断、 INTO 溢出中断、断点中断 ) ; NMI 中断;INTR中断和单步中断。5外部中断8086CPU有两条外部中断请求信号线:NMI 和 INTR,用来输入外设向CPU发出的中断请求信号。(1) 非屏蔽中断请求 NMI由 NMI引脚引入的是不可屏蔽中断请求, 采用边沿触发。 它不受中断允许标志位的影响,即使在关中断 (IF=O) 的情况下, CPU也能在当前指令执行完毕后就响应 NMI上的中断请求。(2)可屏蔽中断INTR由 INTR 引脚引入的是可屏蔽中断请求,采用电平触发方式,高电平有效。CPU在当前指令周期的最后一个T 状态采样INTR 中断请求线,若发现有可屏蔽中断请求,CPU将根据中断允许标志位IF 的状态决定是否响应。如果 IF=0 ,表示 CPU处于关中断状态,屏蔽INTR 线上的中断, CPU不理会该中断请求而继续执行下一条指令。如果 IF=I ,表示 CPU处于开中断状态,允许INTR 线上的中断, CPU执行完现行指令后转入中断响应周期。注意:可屏蔽中断的优先权低于非屏蔽中断。7-1-3 中断优先权与中断管理1 中断优先权实际的中断系统中常常有多个中断源,而中断申请引脚往往只有一条中断请求线。于是在多个中断源同时请求时,CPU必须首先确定为哪一个中断源服务,要能辨别优先权最高的中断源并响应之。 当 CPU在处理中断时, 也要能响应更高级别的中断申请,而屏蔽掉同级或较低级的中断申请。通常有两种方法解决中断优先权的识别问题。(1) 用软件查询方法确定中断优先权。中断优先权由查询顺序决定,最先查询的中断源具有最高的优先权。软件查询方法的优点是电路比较简单。软件查询的顺序就是中断优先权的顺序,不需要专门的优先权排队电路,可以直接修改软件查询顺序来修改中断优先权,不必更改硬件。 缺点是当中断源个数较多时,由逐位检测查询到转入相应的中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。(2) 硬件优先权排队电路硬件优先权排队电路形式众多,有采用编码器组成的,有采用链式电路的。硬件链式优先权排队电路又称为菊花环式优先权排队电路, 它是利用外设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先权最高,排在最后面的优先权最低。2 中断管理8086CPU 可管理 256 种中断。对每种中断都指定一个中断矢量号,每一种中断矢量号都可以与一个中断服务程序相对应。中断服务程序存放在存储区域内,而中断服务程序的入口地址存放在内存储器的中断矢量表内。中断矢量表是中断矢量号与它相应的中断服务程序的转换表。当CPU处理中断时,就需要指向中断服务程序的入口地址。8086 以中断矢量为索引号,从中断矢量表中取得中断服务程序的入口地址因为每个中断矢量号要占用4 个字节单元。 两个高字节单元用来存放中断服务程序入口的段地址CS,两个低字节单元用来存放从段地址到中断服务程序入El 地址的偏移值IP ,故 256 个中断矢量号要占用1024 个字节的存储单元,地址范围从00000H 003FFH。当发生中断矢量号为n 的中断请求时,CPU首先把矢量号乘以4,得到中断矢量表的地址,然后把中断矢量表4n 地址开始的两个低字节单元内容装入IP 寄存器, 再把两个高字节单元内容装入cs 寄存器,这样就把控制引导到类型rl的中断服务程序的起始地址,开始类型 n 的中断处理过程。因此,为了让 CPU响应中断后能转入相应的中断服务程序,就必须事前将中断服务程序的入口地址置入中断矢量表中。中断矢量表分为3 部分:专用中断、备用中断和用户中断。(1) 专用中断: 类型 o类型 4,共有 5 种类型。 专用中断的中断服务程序的入口地址由系统负责装入,用户不能随意修改。(2) 备用中断:类型 5类型 3FH,这是 Intel 公司为软、硬件开发保留的中断类型, 一般不允许用户改作其他用途。(3) 用户中断: 类型 40H类型 FFH,为用户可用中断, 其中断服务程序的入口地址由用户程序负责装入。这些中断可由用户定义为软件中断,由INT n 指令引入,也可以通过NTR引脚直接引入的或通过可编程中断控制器8259A 引入的可屏蔽中断。3 微机系统的中断处理过程中断处理过程大致可分为中断请求、中断响应、中断处理和中断返回4 个过程。(1) 中断请求cPu 在每条指令执行结束后去采样或查询有无中断请求信号。若查询到有中断请求,并且在允许响应中断的情况下,系统自动进入中断响应周期,由硬件完成关中断、保存断点、取中断服务程序的入口地址等一系列操作,而后转向中断服务程序执行中断处理。由于外设的中断请求是随机发生的,系统中必须设置一个中断请求触发器把随机输入的中断请求信号锁存起来,并保持到CPU响应这个中断请求后,才能清除。 设置一个中断屏蔽寄存器,用输出指令来控制它们的状态,以决定其相应中断请求信号是否能发向CPU。(2)中断响应若为非屏蔽中断请求,则蔽中断请求,必须满足以F 3行指令。CPU执行完现行指令后,就立即响应中断。 CPU若要响应可屏个条件:无总线请求; cvt :允许中断; cvu 执行完现(3) 中断处理在中断处理时要进行以下操作: 保护现场: CPU响应中断时自动完成 cS、IP 寄存器以及标志寄存器 F1ags 的保护。 开中断:主要是为了实现中断嵌套。 中断服务: CPU通过执行中断服务程序,完成对中断情况的处理。(4) 中断返回中断返回是由执行中断服务程序中的中断返凹指令 IRET 来完成的。当 CPU执行该指令时,自动会把断点地址从堆栈中弹出到 CS和 IP 中,原来的标志寄存器内容压入 Flags 。7-1-4 8259A可编程中断控制器的主要功能1 8259A 可编程中断控制器的主要功能(1) 具有 8 级中断优先权控制,通过级联方式可扩展到64 级中断优先权控制。(2) 每一级中断都可以屏蔽或允许。(3) 在中断响应周期, 8259A 可提供相应的中断类型码。(4)8259A 有多种中断管理方式,可通过编程来进行选择。2 8259A 的内部结构8259A 主要有以下几部分组成:(1)8 位数据总线缓冲器:它是 8259A 与系统数据总线的接口,CPU对 8259A 的控制字是通过它写入的; 8259A 的状态信息,通过它读入CPU;在中断响应周期,8259A 送出的中断矢量也是通过它传送给CPU的。(2) 读写控制逻辑:该部件接收来自CPU的读写命令,完成读写操作。(3) 中断屏蔽寄存器(IMR) :是对 8 级中断请求加以禁止和允许的寄存器。若某位置1,则与之对应的中断请求被禁止。(4) 中断请求寄存器 (IRR) :用来存放由外部输入的外部中断请求。 当某个输入信号为高电平时,该寄存器的相应位置 l 。(5) 中断服务寄存器 (ISR) :用来存放所有 F 在进行服务的中断请求 ( 包括尚未服务完而中途被优先权更高的中断所打断的中断请求) 。若某位为“ l ”,表示正在为相应的中断源服务。(6) 优先权电路:用来识别各中断请求信号的优先级别。(7) 控制逻辑:按照编程设置的工作方式管理8259A 的全部上作。(8) 级联缓冲器 LL 较器:这个功能部件在级联方式的主从结构中,用来存放和比较系统中各 8259A 的从没各标志 (ID) 。3 8259A 中断优先权管理(1)一般完全嵌套方式在此方式下,8259A 的中断请求输入端引入的中断具有固定的优先权排队顺序,IRo最高优先级, TR为次高优先级依次类推,IR7 为最低优先级。同时,在某个级别的中断请求正在被服务期间,8259A 将禁止同级或较低级的中断请求,但允许高优先级的中断打断低优先级的服务,实现嵌套中断。(2)自动循环方式为在这种方式下,从 IRo IR 7 引入的中断轮流具有最高优先权,当任何一级中断被处理完后,它的优先级别就被改变为最低,而最高优先级分配给该中断的下一级中断。(3) 中断屏蔽方式用中断屏蔽方式管理优先权有两种方法:普通屏蔽方式:这种方式是在IMR 中,将某一位或几位置“ l ”,来屏蔽掉相应级别的中断请求。特殊屏蔽方式:8259A 上作在特殊屏蔽方式时,所有未被屏蔽的优先级中断请求( 较高的和较低的 ) 均可在某个中断过程中被响应,即低优先级别的中断可以进入F 在服务的高优先级别中,这种方式可以在中断服务程序执行期间动态地改变系统的优先结构。(4)特殊完全嵌套方式在特殊完全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,也会给予响应,从而实现对同级中断请求的特殊嵌套。4 中断结束的管理(1)一般完全嵌套情况8259A在一般完全嵌套方式下,可采崩3 种中断结束方式:一般 EOI 方式:当任何一级中断服务程序结束时,给8259A 发送一个EOI 命令, 8259A将 ISR 寄存器中级别最高的置 1 位清零。这种方式只有在当前结束的中断总是尚未处理完的级别最高的中断时, 才能使用这种结束方式。 如果在中断服务中修改过中断级别, 则不能采用这种方式。指定 EOI 方式:在一般 EOI 方式基础上, 当中断服务程序结束给8259A 发出 EOI 命令的同时,将当前结束的中断级别也传送给8259A,这就是特殊EOI 方式。在这种方式下, 8259A将 ISR 寄存器中指定级别的相应置1位清零,适合于在任何情况下使用。自动 EOI 方式:若8259A 处于自动EOI 方式,则在第二个中断响应信号INTA 结束时,8259A 自动将 1SR寄存器相应置“ 1”位清零。中断服务程序结束时,不需要向8259A 送 EOI命令。只有在一些以预定速率发生中断,且不会发生同级中断互相打断或低级中断打断高级中断的情况下,才使用自动EOI 方式。(2)自动循环方式不指定的EOI 方式:当任何一级中断服务程序结束时,给8259A 发一个不指定的EOI命令, 8259A 将 ISR 寄存器中级别最高的置 1位清零,同时赋给它最低优先级,将最高优先级赋给比它低一级的中断请求,其他中断请求的优先级别按自动循环方式类推。指定 EOI 方式:这种方式主要用在自动循环优先权管理方式下又有嵌套的情况。,在向8259A 发中断结束命令的同时,将其中优先级别也传送给8259A。这样, 8259A 可根据用户要求将 ISR 寄存器中指定级别的相应置“1”位清零,同时赋给它最低优先级,其余中断源的优先级别按自动循环方式类推。自动 EOI 方式: 8259A 在第二个中断响应信号 INTA 结束时,自动将 ISR 寄存器中的相应置“ 1”位清零,并赋给它最低优先级,其余中断源的优先级别按自动循环方式类推。(3) 特殊完全嵌套情况CPU 应发出两个 EOI 命令,一个送给主 8259A,用来将主 8259A 的 1SR寄存器相应位清零;另一个送给从 8259A,用来将从 8259A 中的 ISR 寄存器相应位清零。5 连接系统总线的方式(1) 缓冲方式:在多片 8259A 级联的大系统中, 8259A 通过总线驱动器与系统数据总线相连。(2) 非缓冲方式:当系统中只有单片 8259A 或只有几片 8259A 工作在级联方式时,可以将 8259A 直接与数据总线相连。适用于不太大的系统。6 8259A 的编程8259A的编程包括两类: 一类是初始化编稃,8259A 必须由初始化命令字ICWl ICW4设置它的初始状态。对8259A 的初始化编程是微机上电时由基本输入输出系统BIOS 完成的,用户一般不应改变。另一类是操作方式编程,操作命令字为OCWl OCW3,它用来设定8259A的工作方式。命令字格式请参考主教材,此处不再赘述。7-2经典例题1. 8086 中断分哪两类? 8086 可处理多少种中断?答: 8086 中断可分为硬件中断和软件中断两类。8086 可处理 256 种类型的中断。2. 8086 可屏蔽中断请求输入线是什么?可屏蔽 的涵义是什么?答:可屏蔽中断请求输入线为INTR ; 可屏蔽 是指该中断请求可经软件清除标志寄存器中 IF 位而被禁止。3. 8086 的中断向量表如何组成?作用是什么?答:把内存0 段中03FFH区域作为中断向量表的专用存储区。该区域存放256 种中断的处理程序的入口地址,每个入口地址占用4 个存储单元,分别存放入口的段地址与偏移地址。4. 8086 如何响应一个可屏蔽中断请求?简述响应过程。答:当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS 、IP内容进入堆栈,请除IF、TF ;8086将类型码乘4 后得到中断向量表的入口地址,从此地址开始读取4 字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!