微机原理中断技术

上传人:精****档 文档编号:43982427 上传时间:2018-06-07 格式:DOC 页数:14 大小:1.19MB
返回 下载 相关 举报
微机原理中断技术_第1页
第1页 / 共14页
微机原理中断技术_第2页
第2页 / 共14页
微机原理中断技术_第3页
第3页 / 共14页
微机原理中断技术_第4页
第4页 / 共14页
微机原理中断技术_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《微机原理中断技术》由会员分享,可在线阅读,更多相关《微机原理中断技术(14页珍藏版)》请在金锄头文库上搜索。

1、中断的定义 CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起 CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为 中断服务程序或中断处理程序),以处理该事件,该事件处理完后又 返回被中断的程序继续执行,这一过程称为中断。 中断源引起CPU中断的事件中断源。例如:外设请求输入输出数据,报告故障等事件掉电、硬件故障、软件错误、非法操作、定时时间到等 中断源分为:外部中断、内部中断 内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断 8086/8088 的外部中断信号:INTR、NMIINTR可屏蔽中断请求,高电平有效,受IF标志的控制。

2、IF=1 时,执行完当前指令后CPU对它作出响应。 NMI非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此 中断请求信号。 中断过程四个步骤: 中断请求 中断响应 中断服务 中断返回 以下以外部中断 为主介绍这四个步骤。 1)中断请求外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚;中断请求信号:边沿请求,电平请求 例如,NMI为边沿请求,INTR为电平请求中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。在8086/8088系统中,外设的中断要经过8259A可编程中断控制器 (PIC)的排队判优后向CPU发出:(I/O接口) PIC CPU

3、中断源识别计算机中的中断源有很多,CPU必须识别是哪一个设备产生中断。识 别中断源有两个方法:软件查询。将中断信号从数据总线读入,用程序进行判别。中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断 源。(8086/8088即采用此种方法) 2)中断响应 中断响应 CPU响应可屏蔽中断申请必须满足3个条件: 无总线请求; CPU被允许中断; CPU执行完现行指令若NMI 和 INTR 同时发生,则首先响应NMI 。 2)中断响应(续)CPU中断响应时,要做下述三项工作: 向中断源发出INTA 中断响应信号; 断点保护,包括CS 、IP 和FLAGS ( PSW )。这主要是 保证中断结束

4、后能返回被中断的程序。 获得中断服务程序首地址(入口)。 如何得到中断处理程序的首地址? 固定入口法 中断向量法 常用 IPL IPH CSL CSH FLAGL FLAGHSP进入中断服 务程序时3)中断处理(中断服务) 中断处理 CPU响应中断后要自动完成三项任务1、关闭中断; 2、CS、IP以及FR的内容推入堆栈; 3、中断服务程序段地址送入CS中,偏移地址送入IP中。 一旦CPU响应中断,就可转入中断服务程序之中。中断服务程序的结构如下:4)中断返回执行中断返回指令IRETIRET 指令将使CPU 把堆栈内保存的断点信息弹出到IP 、CS 和FLAG 中,保证被中断的程序从断点处能够继

5、续往下执行。 7.3 8086的中断系统 一、中断分类8086/8088系统中,可以处理256个不同类型的中断,其编号从 00H0FFH,称为中断类型号。 内中断: 除法出错 类型号0 自动产生 单步中断 类型号1 DEBUG执行T命令 断点中断 类型号3 DEBUG执行G命令 溢出中断 类型号4 执行 INTO INT n 类型号n(05H 0FFH)外中断: 不可屏蔽中断 类型号2 自动产生 可屏蔽中断 类型号(32 255) 由8259管理不可屏蔽中断所谓不可屏蔽中断就是用户不能通过CPU内的中断允许触发器 IF控制的中断,由8086CPU的NMI管脚引入。NMI中断请求采用上升沿 触发

6、方式,这种中断一旦产生,在CPU内部直接生成中断类型号02。 三、 可屏蔽中断可屏蔽中断就是用户可以控制的中断,其途径是通过对CPU内的 中断允许触发器IF的设置来禁止和允许CPU响应中断。可屏蔽中断由 8086CPU的INTR管脚引入。这种中断请求需要设备提供中断类型号, CPU响应中断后,取中断类型号的4倍作为中断服务入口地址表的地址,通过查表得到相应的中断服务程序首地址,转去执行相应的中 断服务程序。 四、中断向量的装入 8086的中断系统 与中断有关的控制线为:NMI、INTR、INTA8086系统的中断源内部中断除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。单步中断:类型

7、号1,TF=1时产生(当前指令需执行完)断点中断:类型号3,这是一个软件中断,即INT 3指令。溢出中断:类型号4,这是一个软件中断,即INTO指令。软件中断:即INT n指令,类型号n(0-255)。外部中断非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。 8086/8088 CPU的中断响应过程 内部中断响应过程 无INTA周期中断类型码固定或由指令给出响应过程主要步骤: PUSH FLAG IF=0 PUSH CS PUSH IP 取中断向量送入IP和CS 中断响应过程(续)外部中断响应过程非屏蔽中断,与内部

8、中断响应过程类似 可屏蔽中断 INTA(1),PIC进行优先级排队判优处理 INTA(2),PIC把中断类型码放到DB上,CPU读入 PUSH FLAG IF=0 PUSH CS PUSH IP 取中断向量送入IP和CS 8086系统中各中断的优先级优先级从高到低顺序如下: 内部中断 NMIINTR 单步中断 7.4 可编程中断控制器8259APIC,Programmable Interrupt Controller可对8个中断源实现优先级控制 可扩展至对64个中断源实现优先级控制 可编程设置不同工作方式根据中断源向x86提供不同中断类型码引脚分配及功能见教材8259A的内部结构 8259A的

9、内部结构IRR 中断请求寄存器 用来存放由外部输入的中断请求信号IR0IR7,允许多位置1。ISR 中断服务寄存器 保存、记录正在处理中的中断请求,当任何一级中断被响应, CPU正在执行它的中断服务程序时,ISR相应位置1。PR 优先级判别器 对保存在IRR中的中断请求进行优先级识别,送出最高级别中断 请求到ISR中;当出现多重中断时,PR判定是否允许所出现的中断去 打断正在处理的中断。IMR 中断屏蔽寄存器 实现对各级中断的有选择的屏蔽,当某位为1,表示禁止这一级 中断请求进入系统 7.5.1 8259A的工作过程8259A对中断请求的处理过程如下: 当某IRi 有效时,IRR 相应位置1

10、若有效的IRi 未被屏蔽,则 向CPU 发出中断请求 检测到第1 个INTA 信号后,置ISRi=1,IRRi=0 检测到第2 个INTA 信号后,把ISRi=1中最高优先级的中断类 型码放到DB上 若工作在AEOI 方式,在第2 个INTA 结束时,使ISRi复位; 否则由CPU发出EOI命令使ISRi复位 7.5.2 8259A的工作方式8259A的工作方式有如下几类: 中断优先方式与中断嵌套 中断结束处理方式 屏蔽中断源的方式 中断触发方式 级联工作方式 中断优先方式与中断嵌套中断优先方式 两类优先级控制方式:固定优先级 和循环优先级 固定优先级方式 所有中断请求IRi 的中断优先级固定

11、不变 优先级排列顺序可编程改变 加电后8259A 的默认方式,默认优先级顺序从高到低为IR0 IR7 中断优先方式与中断嵌套(续)循环优先级方式 中断源轮流处于最高优先级,即自动中断优先级循环 初始优先级顺序可用编程改变 某中断请求IRi 被处理后,其优先级别自动降为最低,原来比 它低一级的中断上升为最高级 中断优先方式与中断嵌套(续)中断嵌套方式 在中断处理过程中允许被更高优先级的事件所中断称为中断嵌 套。8259A 有两种中断嵌套方式: 普通全嵌套方式(默认方式) 一中断正被处理时,只有更高优先级的事件可以打断当前的 中断处理过程而被服务。特殊全嵌套方式 一中断正被处理时,允许同级或更高优

12、先级的事件可以打断 当前的中断处理过程而被服务。 注: 特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用 于从属8259A或单8259A系统。 中断结束处理方式当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后, 则必须清零该ISRi位。使ISRi=0是通过向8259A发出中断结束命令 (EOI命令)实现的。三种EOI命令 自动EOI (AEOI ) (自动EOI 方式) 非指定EOI (NSEOI ) (正常EOI 方式) 指定EOI (SEOI ) (特殊EOI 方式 ) AEOI:在第2个INTA结束时,由8259A使ISRi自动复位;因不保留当前正在服务的

13、中断的状态,故AEOI不能用于中断嵌 套方式SEOI:由CPU 发出一条SEOI 命令,该EOI 命令中指出了所要 复位的ISR 的位号。 用于特殊屏蔽方式NSEOI :由CPU 发出正常EOI 命令,该EOI 命令使ISRi=1 的 位中优先级最高的那一位复位。 用于普通全嵌套方式 屏蔽中断源的方式IMR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1 禁止, IMi=0 允许。特殊屏蔽方式: 提供了允许较低优先级的中断能够得到响应的特殊手段。 原理 :假定当前正在处理IR6 ,先进入特殊屏蔽方式,然后 设置IM6=1。这时,除IR6 外的所有中断请求均能得到响应。 特殊屏蔽方式中只

14、能用SEOI命令结束中断。 中断触发方式边沿触发IRi出现上升沿表示有中断请求 电平触发 IRi 出现高电平表示有中断请求 在第1 个INTA 结束前,IRi 必须保持高电平 级联工作方式单片8259A可支持8个中断源;采用多片8259A级连,可最多支持64个中断源。n片8259A可支持 7n+1个中断源;级连时只能有一片8259A为主片,其余的均为从属片;涉及到的8259A引脚包括:CAS0-CAS2SP/ENIRiINT 级连电路连接方法 7.5.3 8259A的编程使用8259A的控制命令分为初始化命令字ICWICW1ICW4向8259A写入ICW的过程称为初始化编程操作命令字OCW OCW1OCW3向8259A写入OCW的过程称为操作方式编程 8259A的初始化顺序 8259的初始化流程如图 注意次序不可颠倒 8259A的控制命令字初始化8259A必须从ICW1开始写ICW1意味着重新初始化8259A写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。 IC

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号