文档详情

微机原理与接口技术-第7章中断系统_18全解.ppt

发布:2017-06-10约字共10页下载文档
文本预览下载声明
6. 8086CPU的中断响应过程 内部中断响应过程 无INTA#周期 中断类型码固定或由指令给出 响应过程主要步骤: ① PUSH FLAG ② IF=0 ③ PUSH CS ④ PUSH IP ⑤ 取中断向量送入IP和CS 中断响应过程(续) 外部中断响应过程 非屏蔽中断,与内部中断响应过程类似 可屏蔽中断 ① INTA#(1),PIC进行优先级排队判优处理 ② INTA#(2),PIC把中断类型码放到DB上,CPU读入 ③ PUSH FLAG ④ IF=0 ⑤ PUSH CS ⑥ PUSH IP ⑦ 取中断向量送入IP和CS 7. 8086系统中各中断的优先级 优先级从高到低顺序如下: 内部中断 NMI INTR 单步中断 8. 中断优先权管理 中断优先权是事先根据中断源的重要性给每个中断源确定一个中断优先级别——优先权。 中断优先权管理就是判别和确定各个中断源的中断优先权。 中断优先权判别方法有软件和硬件两种方法。 中断优先权管理 (1)软件确定中断优先权 软件法是在CPU响应中断后,用软件查询确定哪个中断源申请中断,先被查询的先响应。 查询次序决定了中断优先权次序,最先被查询的中断源具有最高的优先权。 中断优先权管理 如图,8个外设只要有中断请求,CPU检测到中断请求信号,响应中断; 中断优先权管理 (1)软件确定中断优先权 中断优先权管理 (2)硬件确定中断优先权 由硬件实现中断优先权的判别。 * 常用的硬件电路有:中断优先权编码电路,链式优先权排队电路及专用硬件电路等。 * 利用中断控制器8259A,它具有8个优先权控制,可以通过级联,扩展至64级优先权控制,且每级中断都可设置为允许或屏蔽 。 8086/8088的中断系统 8086/8088CPU具有一个管理高效且简便灵活的中断系统,可以处理多达256种中断源。 采用向量中断方法,对256种中断只需一次间接访问,就可获得任一中断源的中断服务程序的入口地址,中断响应快速。 7.3 Intel 8259A可编程中断控制器 问题的提出: 8086只有一个可屏蔽中断输入线,如何实现处理多个外部中断请求? 解决的办法是用专用的中断控制器接口电路8259可编程中断控制器 1.功能及工作特点 1)管理和控制8086的外部可屏蔽中断请求 2)实现中断判优:每一片8259A可以管理8个中断请求,并把当前优先级最高的中断请求送到CPU的INTR端。 3)提供中断类型码,迅速地转至中断服务程序。 4)可屏蔽中断输入,每一个中断请求都可以屏蔽或允许。单片8259A可以管理8级中断,采用级联方式,最多可管理64级中断。 5) 通过编程使8259A工作在多种不同的方式。 8)CAS0?CAS2:级联总线,输入或输出,用于区分特定的从控制器。 9)SP/EN:主从片信号,输入。 SP/EN=1,8259A为主控制器; SP/EN=0,为从控制器。 10)A0:地址线,输入。用来指出当前8259A的哪个端口被访问,选择内部寄存器的端口地址。 在标准AT机中,使用两片8259A构成主从式中断系统: 主8259A的端口地址:20H,21H 从8259A的端口地址:A0H,A1H 3. Intel 8259A的内部结构 (2)当前服务寄存器ISR 用于存放当前正在进行处理的中断,ISRi与IRi中断源一一对应,用来记录CPU当前正在对哪些中断源服务。 在CPU响应IRi时,在第一个中断应答周期INTA将对应的ISRi置“1”。 当ISR全为0时,表示CPU正在执行主程序,无任何中断服务。 ISR的置“1”位一直保持到该中断源的中断处理结束为止,在收到针对8259A的结束命令后,该位才会被清0。 (3)中断屏蔽寄存器IMR 用来保存程序员写入的中断屏蔽字的8位寄存器 IMRi为“1”时,可以屏蔽对应的IRi输入的中断请求,使之不能送达8259A的优先权判别电路。 IMRi为“0”时,开放相应位IRi的中断请求。 (4)优先权判别器PR 检查中断源的优先级,并与ISR比较,确定是否将此中断请求送给CPU。 当多个中断请求同时产生时,由PR判定哪个中断请求的优先权最高 当CPU正在响应某个中断请求时,若出现新的中断请求,PR将判定新的中断请求与ISR中正在服务的中断请求哪个优先级更高,以决定是否需要马上响应新的中断请求 (5)数据总线缓冲器 8位双向三态缓冲器,是8259A与CPU之间的数据接口。 8259A初始化所需的一系列初始化命令字(ICW)和操作命令字(OCW),都是通过数据总线缓冲器写入
显示全部
相似文档