第8章中断系统和中断控制器8259A

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