资源预览内容
第1页 / 共92页
第2页 / 共92页
第3页 / 共92页
第4页 / 共92页
第5页 / 共92页
第6页 / 共92页
第7页 / 共92页
第8页 / 共92页
第9页 / 共92页
第10页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
主讲:禹定臣,微机原理及接口技术,信息工程学院,第7章 8086中断系统与中断控制器,微机原理与接口技术,中断的基本概念 8086中断系统 中断处理过程 可编程中断控制器8259A,主要内容,7.1 概述,图7.1 中断示意图,1. 什么是中断?,7.1.1 基本概念,(1)实现CPU 与外设的并行工作, 提高了 CPU 的效率。,(2)实现实时处理。,(3)实现故障处理。,2. 应用中断技术的优点,引起中断的原因,产生中断请求的来源。,通常有以下几种:, 一般的I/O 设备,如键盘、打印机等。 实时时钟。 硬件故障。 中断指令或软件故障,如程序错、运算 错、调试程序而设置的中断(例如设置 断点,单步运行等)。,3. 中断源,(1)实现断点地址的保护与恢复。 (2)实现现场信息的保护。 (3)实现中断优先级的排队。 (4)实现中断的嵌套。,4. 中断系统的功能,5. 中断优先级,当多个中断源请求中断时,CPU响应优先级高的中断,挂起优先级低的中断。当CPU运行中断服务子程序时,又有新的更高优先级中断申请进入, CPU要挂起原中断进入更高级的中断服务子程序,实现中断嵌套。,7.1.2 实现中断优先级的方法,软件查询方式 硬件方式 菊花链法 矢量中断优先级,1. 软件查询方式,图7.2 软件查询优先级管理电路,图7.3 软件查询中断流程图,采用软件查询方式的特点:, 询问的次序,即为优先权的次序。 硬件简单。 由查询转至相应的服务程序的时间长, 尤其在中断源较多的情况。,2. 硬件方式,图7.4 菊花链优先级排队电路,图7.5 菊花链逻辑电路,3. 矢量中断优先级,利用专用的可编程中断控制器管理中断优先级,又称专用芯片中断管理方式。典型的可编程中断控制器是8259A。,7.2 8086的中断系统,8086有256种中断,分为两大类:,7.2.1 中断类型,外部中断(硬件中断) 内部中断(软件中断),图7.6 8086中断类型,1. 外部中断 (硬件中断),(1)非屏蔽中断 NMI(类型号2),有效,不受FR 中IF 的影响,常用于 处理系统的重大故障。,(2)可屏蔽的中断INTR,高电平有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外设的中断。,2. 内部中断(软件中断),通常由三种情况引起:,(1)INT n 指令中断 (n 为中断类型号),(2)处理 CPU 某些错误的中断, 除法错中断 (中断类型号0) 溢出中断 (INTO)(中断类型号4),(3)为调试程序设置的中断, 单步中断,当 FR 中TF = 1时,每执行一条指令,CPU 产生类型为1 的单步中断。, 断点中断,设置断点实际上是把指令 “INT 3” 插入到程序中,CPU 每执行到断点处的 “INT 3”指令,便产生类型为3 的中断。,8086 系统中,中断优先级的次序为:,7.2.2 中断优先级,7.3 中断处理过程,一个完整的中断处理过程为: 中断请求(中断源提出) 中断检测(判断是何种类型中断) 中断响应 执行中断服务程序 中断返回,7.3.1 8086CPU对中断的响应流程,CPU响应中断要有三个条件: 外设提出中断申请; 本中断位未被屏蔽; 中断允许(可用指令STI开中断)。 满足上述条件,则CPU在当前指令执行完后响应中断。,1. 一般的中断响应过程,图7.7 中断响应流程,CPU 在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR 或NMI 信号线。若发现有中断申请,则不进入取指周期,而转入中断响应周期。,下面以INTR 为例,说明8086 CPU 响应中断的过程。,2. 8086CPU响应外部中断的过程,执行一条指令,最后一个总线周期的最后一个T状态?,有INTR?,中断开放? (FR中的IF=1?),关中断CLI (置FR中IF=0),断点地址(IP. CS)入栈,FR 入栈,转入相应中断服务程序,保护现场,中断服务处理,恢复现场,开中断STI (置FR中IF=1),中断返回IRET,取下一条指令,No,No,No,Yes,Yes,Yes,图7.8 8086CPU 响应 INTR 的过程,讨论:,(1)为什么要在中断服务程序中执行 STI 指令? (2)STI 指令在中断服务程序中的不同 位置时,对CPU 处理中断有何影响?,CPU 响应中断后,如何得到中断服务程序的入口地址,转入到中断服务程序?8086CPU 通过建立中断向量表的方法解决。,7.3.2 中断向量和中断向量表,1. 中断向量表,图7.9 中断向量表,中断向量 (中断服务程序入口地址) 在表中的地址 = 中断类型号 4,BIOS 负责01FH 共32个中断向量的装入。用户若想装入自己的中断向量到向量表中的,可用以下方法:,2. 中断向量的装入,(1)用STOS 指令填空中断向量表,假设类型号60H 的中断向量为,CLICLDMOVAX, 0MOVES, AXMOV DI, 460H; DI 指向表中对应位置MOVAX, OFFSET_INTR; 取偏移地址STOSW; ALDI,AHDI+1, DI+2DI MOV AX, SEG_INTR; 取段基址STOSWSTI,SEG_INTR: OFFSET_INTR。,(2)利用MOV 指令写入中断向量,CLIMOVAX, 00HMOVES, AXMOVBX, 460H; BX 指向表中对应位置MOVAX, OFFSET_INTRMOVES:BX, AX; 装入偏移地址MOVAX, SEG_INTRMOVES:BX+2, AX; 装入段基址,(3)利用DOS 功能调用“ INT 21H ” 的 AH = 25 H 装入中断向量,MOVAL, 60H; 类型号ALMOVAH, 25H; 功能号25HAHMOVDX, SEG_INTRMOVDS, DXMOVDX, OFFSET_INTR; DS:DX=中断向量INT21H,图7.10 8086转入中断处理程序的过程,3. 8086CPU转入中断服务程序的过程,(1)取类型号; (2)计算向量地址; (3)根据向量地址查表,将偏移地址送 IP,段基址送CS; (4)转入中断服务程序,进行中断处理。,7.4 8259A可编程中断控制器,在PC机中,可以使用可编程中断控制器 Intel 8259A 来扩展外部中断。,(2)每一级中断均可以屏蔽。 (3)在中断响应周期,8259A 可提供相应的 中断向量。 (4)可编程使8259A 工作在多种不同的方式。,(1)1片8259A 能管理8级中断,通过级联用 9片8259A可构成64 级主从式中断系统。,8259A的主要功能:,图7.11 8259A 内部结构逻辑框图,7.4.1 8259A内部结构与引脚信号,1. 数据总线缓冲器,8位、双向、三态缓冲器,8259A通过它与 CPU 进行数据和命令的传送。,D0D7直接与CPU 数据总线的低8位连接。,2. 读/写控制逻辑,CPU 通常利用:,OUT 指令,,IN 指令,,接收来自CPU的读写命令RD、WR,片选信号CS及端口选择信号A0。读写操作由这四个信号的组合控制实现。,3. 中断请求寄存器 IRR,8位寄存器,用于存放请求服务的中断源,并使对应位置“1”( IRi1),直到IRi 得到响应。,4. 中断服务寄存器 ISR,8位寄存器,用于存放当前正在处理的中断级,并使对应位置“1”。中断嵌套时,可能多个位置“1”。,5. 中断屏蔽寄存器 IMR,8位寄存器,可对IRR起屏蔽作用,由软件设置屏蔽位。某位置 “1”,对应 IRi 禁止产生中断。,6. 优先权分析器PR,实现优先权的判断与处理。对刚进来的中断与正在服务中的中断进行优先权的比较分析,将具有最高优先权的中断请求送入中断服务寄存器 ISR,并向 CPU提出中断请求。,7. 控制逻辑,按初始化设置的工作方式,控制8259A 各部件的工作,并向CPU发出INT信号,以及接收CPU 的INTA信号。,8. 级联缓冲/比较器,用于级联控制,扩展外中断。 在级联工作时,1片8259A作主片,其余(1 8片) 8259A 作从片,最多可管理64 级向量优先级中断。,图7.12 8259A 的引脚图,7.4.2 8259A的工作原理,CPU若响应中断,往8259A回送两个负脉冲。 第一个负脉冲到达, 8259A做3件事: 使IRR锁存功能失效; 使ISR中相应位置“1”; 使IRR相应位置“0”。 第二个负脉冲到达, 8259A完成操作: 将中断类型码(ICW2)送D7D0; 若工作在中断自动结束方式下,将ISR中相 应位清“0”。,7.4.3 8259A的工作方式,1. 设置优先级的方式,普通全嵌套方式 特殊全嵌套方式 优先级自动循环方式 优先级特殊循环方式,(1)普通全嵌套方式,8259默认方式,中断请求按优先级07 处理,0级最高。 一个中断被响应时: 送出中断类型码数据总线; ISR对应位ISn 1; 进入中断服务程序。,(2)特殊全嵌套方式,处理某一级中断时,可响应同级中断请求。一般用于8259A级连系统中。 特殊全嵌套方式使用时,应使: 主片工作在特殊全嵌套方式; 从片工作在其它优先级方式。 整个级连系统仍处在从片的优先级方式。,(3)优先级自动循环方式,一般用在系统中多个中断源优先级相等的场合。 这种方式的中断优先级队列是变化的。一个设备受到中断服务后,其优先级自动降为最低。 初始优先级队列:IR0、IR1、IR7。 例:IR0处理完后,优先级队列为IR1IR7、IR0 IR4处理完后,优先级队列为IR5IR3、IR4,(4)优先级特殊循环方式,初始最低优先级由编程确定,最高优先级也由此而定。 如:初始最低优先级定为IR5,则最高优先级为IR6。,2. 屏蔽中断源的方式,(1)普通屏蔽方式,通过屏蔽寄存器屏蔽对应位的中断请求输入。,(2)特殊屏蔽方式,设置某一屏蔽位时,会同时使ISR中的对应位清0。从而开放了其它级别较低的中断。 特殊屏蔽方式总是在中断处理程序中使用的。,3. 结束中断处理的方式,中断处理结束的动作是使ISn 位清0。,(1)中断自动结束方式,系统一进入中断过程,8259A自动将ISR中对应位ISn清除。 这种方式只能用于系统中只有一片8259A,且多个中断不会嵌套的情况。,(2)一般中断结束方式,用于全嵌套情况,由中断服务程序的最后一条中断结束命令清除最高的IS位。,(3)特殊中断结束方式,在中断结束命令中指出要清除ISR中哪个IS位。 这种方式用于非全嵌套情况,此时,由ISR无法确定当前正在处理的是哪级中断。,4. 连接系统总线的方式,(1)缓冲方式,多片8259A级连系统中, 8259A通过总线驱动器与数据总线相连的方式。 在这种方式下,要将的 SP/ EN 端连总线驱动器的允许端。,(2)非缓冲方式,小系统中,直接将8259A与数据总线相连。对单片或多片8259A, SP/ EN 有不同接法。,5. 引入中断请求的方式,即外设 8259A的信号。,(1)边沿触发方式,中断请求输入端出现的上升沿作为中断请求信号。,(2)电平触发方式,中断请求输入端出现的高电平作为中断请求信号。 在电平触发方式下,中断请求得到响应后,输入端应及时撤除高电平。,(3)中断查询方式,外设仍通过向8259A发中断请求信号要求CPU服务,但8259A不使用INT信号向CPU发中断请求信号。 CPU使用软件查询确认中断源。,7.4.4 8259A的初始化命令字和操作命令字,初始化命令字 ICW和操作命令字OCW确定8259A的工作状态和操作方式,由CPU发出。 ICW:确定8259A的工作状态,在系统复位后写入。 OCW:控制8259A的操作方式,如中断屏蔽、中断结束、优先级循环方式等。可在初始化后任何时刻写入。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号