第9章(2) 中断系统和中断控制器8259A
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2>特殊全嵌套方式
特殊全嵌套方式与全嵌套方式基本相同,所不
同的是,当CPU处理某一级中断时,如果有同级
中断请求,那么CPU也会作出响应,从而形成了
对同一级中断的特殊嵌套。
特殊全嵌套方式通常应用在有8259A级连的系统
中。
3>优先级自动循环方式 即一个中断源的中断请求被响应之后,其优先 级自动降为最低。
(4)中断服务寄存器ISR
ISR 存放当前正在进行服务的所有中 断。 ISR 中相应位的置位是由优先权判决 电路根据 IRR 中各请求位的优先权级别和 IMR 中屏蔽位的状态,将中断的最高优先 级请求位选通到ISR中。
(5) 控制逻辑
当有未被屏蔽的高级别的中断请求时,
通 过 控 制 逻 辑 输 出 高 电 平 的 INT 信 号 , 向
特殊的中断结束方式是指在CPU结束中断处理 之后,向8259A发送一个特殊的中断结束命令, 这个特殊的中断结束命令,明确指出了中断 响应寄存器ISR中需要复位的位。
若中断控制器8259A工作在优先级自动循环方式下, 引脚IR3、IR4、IR6、IR7同时发出了中断请求,请写 出在整个执行过程中优先级队列的变化情况。 时刻0:初始化 优先级队列为IR0、IR1、IR2、IR3、IR4、IR5、IR6、IR7 时刻1:IR3被响应执行后 优先级队列变为: 时刻2:IR4被响应执行后 优先级队列变为: 时刻3:IR6被响应执行后 优先级队列变为: 时刻4:IR7被响应执行后 优先级队列变为:
1 号设备接口
2 号设备接口
n 号设备接口
I/O DATA BUS
3 中断处理过程
中断请求 优先级判别 中断响应 保存现场 中断服务 恢复现场 中断返回
(1)中断请求
概念:外部设备需要CPU资源时,产生一个中 断信号发送到CPU的中断输入引脚。 原理:每个中断源对应一个中断请求标志位, 由中断请求寄存器锁存。中断请求信号需要保 持到CPU对其进行中断响应后才能撤销。
8259A的主要功能
每片8259A可管理8级优先权中断源,通过级联, 最多可管理64级优先权的中断源。 对任何一级中断源都可单独进行屏蔽。
向 CPU 提供可编程的标识码(中断号),为不能 提供中断号的外设提供中断管理。
可编程,提高中断优先管理的灵活性。
1. 8259A外部结构及内部结构
2>一般的中断结束方式
一般的中断结束方式适用在全嵌套的情
况下,当 CPU 用输出指令向 8259A 发一般
中断中断结束命令时,8259A才会使中断
响应寄存器ISR中优先级别最高的位复位。
3>特殊的中断结束方式
在循环优先级模式下,系统无法确定哪一级 中断为最后响应和处理的中断,也就是说, CPU无法确定当前所处理的是哪级中断,这时 就要采用特殊的中断结束方式。
(5)执行中断
CPU通过中断号确定进入哪个中断处理
进入中断处理程序,可以允许CPU响应其 它中断
8086/8088处理器通过装入CS和IP寄存器 实现中断服务程序跳转
(6) 恢复现场
CPU关闭中断Hale Waihona Puke Baidu应
将保存在堆栈中的所有寄存器内容弹出, 恢复到中断前的寄存器原值
(7)返回
8086/8088处理器通过IRET指令从中断状态 返回。 IRET 指令将自动恢复先前保存的 IP 和 CS 值 以及标志寄存器FR或EFR的值,从而跳转到 主程序断点地址。 返回之后,CPU自动打开中断允许响应其它 中断请求。
(2)优先级判别
多个中断源同时发起中断请求时,CPU需要 对多个中断源的优先级进行判断,响应最紧 急的中断请求。
中断源的优先级需要根据中断源的紧迫性、 重要性以及外设处理速度等进行综合考虑
不可屏蔽中断发生,优先响应不可屏蔽中断。
(3) 中断响应
对于内部中断,CPU通过判断中断源自动跳 转到相应的中断服务程序入口地址,执行中 断服务子程序。
(2)系统总线的连接方式
当 8259A 以级联方式用在一个大的系统下时,就 要求对数据总线进行驱动缓冲。系统总线的连接 方式就是用来设定系统总线与 8259A 数据总线之
间是否需要进行缓冲。
1>非缓冲方式
2>缓冲方式
(3)中断源的屏蔽方式
1>普通屏蔽方式
8259A的每个中断请求输入,都要受到屏蔽寄
为此,采取以下几点措施: 1)以端口地址区分 2)把命令字中的某些位作为特征码来区分 3)以命令字的写入顺序来区分 在PC/XT中,两个端口地址分别是:奇地址(A0=1, 大地址)和偶地址(A0=0,小地址)。
存器中相应位的控制。若相应位为“1”,则 中断请求不能送CPU。屏蔽是通过对屏蔽寄存 器IMR的编程,来加以设置和改变的。
2>特殊屏蔽方式
有些场合下,临时改变中断优先级顺序, 允许级别低的事件中断级别高的事件, 引入了对中断的特殊屏蔽方式。
需要编程设置特殊屏蔽方式
(4)优先权的管理方式
1> 普通全嵌套方式 这是8259A默认的优先权设置方式,在全 嵌套方式下, 8259A 所管理的 8 级中断优 先权是固定不变的,其中IR0的中断优先 级最高,IR7的中断优先级最低。
2.8259A的初始化命令字及初始化编程
初始化编程:指系统在上电或复位后对可编程器 件进行控制字设定的一段程序。
初始化命令字:一般在系统复位后的初始化编程 中设置,用于确定 8259A 的基本工作方式,设置 以后一般保持不变。
初始化命令寄存器组包括4个寄存器:ICW1-ICW4
由于8259A只有一条地址线A0,所以它只能有两个 端口地址,而8259A有7个命令字,每个命令字要 写入相应的寄存器。
中断源:引起中断的事件 断点:主程序被打断的位置 中断服务程序 :中断源的响应和处理函数
断点
任务1 任务2 任务4 中断1
中断源
中断服务程序
任务5
中断2
任务3
中断源
中断的用途
响应外部事件:掉电,除零,报警等 实时多任务调度:加快响应速度 CPU与外设并行处理:提高CPU利用率 分时系统基础:时钟中断驱动的操作系统
二、中断控制器8259A
8259A的主要功能
8259A的结构及引脚功能 8259A的工作方式 8259A的初始化命令字
8259A的初始化编程
8259A的主要功能
中断控制器的功能:在多个中端源的系统中, 接收外部中断请求并判断,选择优先级最高 的外部中断请求,向 CPU 发起中断请求信号。
(2)中断屏蔽寄存器IMR IMR(Interrupt Mask Register)用来存 放屏蔽位信息,IMR的每一位可以禁止 IRR 中对应位的中断请求输入信号进入。如果 屏蔽优先权级别较高的中断请求输入时, 不会影响到优先级较低的中断请求输入。
(3)优先权判决电路 它在中断响应期间,根据控制逻辑规定的 优先权级别和中断屏蔽寄存器IMR的内容, 把中断请求寄存器IRR中允许中断的优先权最 高的中断请求位送入中断服务寄存器ISR。
对于外部中断,CPU判断标志位IF,若CPU 允许响应外部中断(IF=1),向发出中断请 求的外设返回一个中断应答信号,否则CPU 不响应该中断请求。
(4)保存现场
CPU响应中断,首先需要禁止CPU响应中 断信号,并保存中断返回地址以及其它可 能被破坏的寄存器
8086/8088 CPU的基本中断现场保护需要 将CS寄存器和IP寄存器压入堆栈
CPU申请中断。
当CPU允许中断时,发出中断响应信号
INTA。在中断响应期间,它允许ISR的相应
位置位,并发送相应的中断向量,通过数据
总线缓冲器输出到总线上。
(6) 数据总线缓冲器
这是 8 位双向三态缓冲器,用作 8259A 与数据总线 的接口,传输命令控制字、状态字和中断向量。 (7)读/写控制电路
系统启动时, 8 级中断优先级默认为 IR0 — IR7 , 若 8259A 工作在优先级自动循环方式下,则中 IR2、IR3、IR4。
这时,刚好IR4发出了中断请求,CPU响应之后,
断优先级自动变为 IR5 、 IR6 、IR7 、 IR0 、IR1 、
4>优先级特殊循环方式 优先级特殊循环方式与自动循环方式相比, 只有一点不同,即初始化的优先级是由程 序控制的,而不是默认的IR0—IR7。
9.3 中断系统
中断系统概述 中断控制器8259A
一、 中断系统概述
中断、中断源 中断优先级 中断处理过程
1.中断及中断源
中断的概念
中断 :CPU 收到外部请求时停止当前任务, 转而执行外设任务,完成后继续执行被打 任务1 断的任务
任务2 任务4 中断1
任务5
中断2
任务3
中断及中断源
(1)中断触发方式
1>边沿触发方式 8259A将中断请求输入端出现的上升沿,作为中断请求 信号,上升沿后 相应引脚,可以一直保持高电平。
按照引入中断请求的方式,8259A有下列几种工作方式:
2>电平触发方式
8259A将中断请求输入端出现的高电平作为中断请求 信号,在这种方式下,必须注意:中断响应之后,高 电平必须及时撤除,否则,在CPU响应中断,开中断 之后,会引起第二次不应该有的中断。
2.中断的优先级
中断优先级
优先级判别方法
中断优先级
原因:中断处理的重要程度和时延要求不同
含义:按照中断源的重要程度为每个中断源分 配不同的优先级,并以优先级大小进行排序, 确定多个中断源请求时对不同中断源的服务次 序,称之为中断优先级。
工作原理:多个中断源同时向CPU请求中断时, 选择当前优先级最高的中断进行处理。 规则:优先级可以是固定的,也可以动态调整
优先级判别方法
软件查询方式
CPU接受多个中断请求后,用软件查询的 方法,确定哪个中断源首先被查询到;先被 查询的先响应;
中断被查询的次序就是优先权的高低次序; 次序需要程序员在编辑查询程序时设置约定
优先级判别方法
硬连接串行排队链方式:用硬件实现软件查询
中断请求 IRQ
POL CPU SYN
CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 8259A 28 27 26 25 24 23 22 21 20 19 18 17 16 VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2
(5)结束中断处理的方式
分为自动结束方式( AEOI )和非自动结束方 式(EOI)。
非自动结束方式又可进一步分为一般的中断 结束方式和特殊的中断结束方式。
1>中断自动结束方式(AEOI)
这种方式仅适用于只有单片8259A的场合, 在这种方式下,系统一旦响应中断,那么 CPU在发第二个INTA脉冲时,就会使中断响 应寄存器 ISR 中相应位复位, CPU 可以再次 响应任何级别的中断请求。
15
8259A的内部结构
INTA
INT
D 7~D 0
RD WR
CS A0
数据总线 缓冲器
控
制
逻
辑
读/写 控制电路 中 断 服 务 寄存器 (ISR) 优先权 判 决 电 路 中断 请求 寄存器 (IRR)
CAS 0 CAS 1 CAS 2 SP / EN
级联缓 冲/比较器
IR 0 IR 1 IR 2 IR 3 IR 4 IR 5 IR 6 IR 7
中断屏蔽寄存器(IMR)
8259A的内部结构框图
其内部各组成模块有如下功能:
(1) 中断请求寄存器IRR
8259A 有 8 条外部中断请求输入信号线 IR 0 IR7,每一条请求线上有一个相应的触发器来保 存请求信号,当第i个IR端有中断请求时,IRR 中的相应位置“1 ”;当中断请求响应时,IRR 中的相应位置“0”。
该部件接收来自CPU的读/写命令,实现对8259A的 读/写操作。
(8)级联缓冲器/比较器 它们实现8259A芯片之间的级联,使得中断源可以 由8级扩展至64级。
补充 8259A的主要工作方式
普通全嵌套方式 优先级固定方式 设置优先级方式 优先级循环方式 特殊循环方式 自动中断结束方式 结束中断处理方式 非自动中断结束方式 8259A工作方式 屏蔽中断源方式 普通屏蔽方式 特殊屏蔽方式 边沿触发方式 中断触发方式 电平触发方式 数据线连接方式 缓冲方式 非缓冲方式 普通中断结束方式 特殊中断结束方式 特殊全嵌套方式 自动循环方式