9-中断控制器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若CPU响应中断,则将它送入中断服务寄存器ISR。 若8259A正为某一中断服务,而又出现新的中断请求,
则PR判断新的中断请求级别是否更高。若是,则进入 中断嵌套。
20
2、8259A内部结构
(5)读/写控制逻辑
该电路的功能是接收来自CPU的读/写命令,完成对 8259A内部端口的读写操作。具体的操作内容由CS、 A0、WR、RD四个信号共同决定。
CS W R 0 0 0 0 0 0 1 1
R A0 D 1 0 1 0 0 1 0 1


写ICW1, OCW2, OCW3 写ICW2, ICW3, ICW4, OCW1 读IRR, ISR, 查询字 读IMR
21
2、8259A内部结构
(6)级联缓冲/比较器 当多片8259A采用主从结构级联时,该部件 用来存放和比较系统中各8259A的从片选择代 码。
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
IMR ISR
0 0
0 0
0 0
0 0
1 0
0 0
0 0
0 0
由上面的叙述可以看出,普通屏蔽方式的命令字可在主程序或中断服务 程序中写入,而特殊屏蔽方式的命令字应当在中断服务程序中写入。
29
三、8259的工作方式 5、优先级排队的方式
–固定优先级:
继续执行 返回断点2
例:设某中断源的类型码为4AH,试画出求中 断服务处理程序的示意图。 解: 中断向量表指针为 4*n=4*4AH=128H, 即:0000:0128H。 通过中断向量表,中断服务程序的入口 地址为0F000H:1806H。如图:
3
8086系统的中断类型和中断向量表
中断向量表
物理地址 00000 H 00001 H 单元内容 类型 0 中断处理程 序 入口地址 类型 1 中断处理程 序 入口地址 ………… ………… ………… ………… 003FF H 类型 FFH 中断处理程 序 入口地址 INT MOV 4AH AL,30 地址 0:0124 0:0125 0:0126 0:0127 0:0128 0:0129 0: 012A 0: 012B 0: 012C 0: 012D 0: 012E 0:012F 单元内容 类型 49 H 中断 向量 06 H 18 H 00 H
5
中断嵌套
若CPU正在处理某一中断过程时,出现了级别更高的中断 请求,CPU应能停止执行级别低的中断服务程序而去处理 级别更高的中断,等高级别中断处理完,再处理未处理完 的低级中断,它处理完,再回到主程序。这种方式称为多 重中断或中断嵌套。下图为一个三级中断处理过程。图中, 外设C的优先级最高,外设B次之,外设A最低。

一旦IRi=1中断请求被响应,则IRi=0(复位)
例:如果当前IRR=35H ,问有哪几个中断请求尚未被响应?
IRR 0
IR7
0
IR6
1
IR5
1
IR4
0
IR3
1
IR2
0
IR1
1
IR0
16
2、8259A内部结构
(2)中断服务状态寄存器ISR
ISR是8位寄存器,用来记录CPU当前正在为哪个或哪几 个中断源服务。 当CPU响应IRi请求时,ISR中相应位置1。当ISR中的有 多个“1”时,表明CPU正在为较低中断服务时,又有较高的 中断请求,CPU又转去处理较高的中断,形成中断服务嵌套。 当某个中断处理完毕,ISR的相应位复位(或用指令或自 动)。 例:如果当前ISR=45H ,问有哪几个中断请求已经被响应? 如果按照IR0的中断优先级最高,IR7的中断优先级最低排序, 当前正在相应的是哪一级中断?
输入: 从片接地
27
三、8259的工作方式 3、中断屏蔽方式 –普通屏蔽方式
• 当CPU执行主程序时不希望某几个中断源申请 中断,或在执行某一中断服务程序时不希望比 该中断源级别更高的中断源申请中断,可采用 此法。 • 方法是:将中断屏蔽字写入IMR,若某位写入 “1”,则禁止相应的IR申请中断,若写入 “0”,则开放相应的中断源。
00004 H
向量地址: 4AH*4=0128H
I P=1806H
F0 H
类型 4B H 中断 向量
CS=F000H
00008 H
F000:1806 中断处理 服务程序 IRET
4
中断优先权排队 :
当有多个中断源同时请求时,CPU就要 识别出是哪些中断源有中断请求,辨别和比 较它们的优先权,先响应优先权级别最高的 中断申请。 这种把多个中断源按轻重缓急的优先处理 权按由高到低的顺序排列,称之为中断优先 权排队。
指各中断源的优先级由IRi引脚编号确定,优先级是 固定的。 有普通全嵌套方式和特殊全嵌套方式两种
23
三、8259的工作方式
1、中断触发方式
电平触发方式
在该方式下, 8259A把IRi端出现的高电平作为中断请求信号。 使用时须注意的是,当出现一个中断请求信号并得到响应(ISR的 相应位置位)后,必须及时撤除高电平,否则会产生不必要的第二 次中断请求。
边沿触发方式
在该方式下, 8259A把IRi端出现的上升沿作为中断请求信号。 边沿触发的优点是申请中断的IRi端可以一直保持高电平,不会被 误判为又一次中断请求。
相连。
– WR:写控制信号,输入,低电平有效。与控制总线上的



信号相连。 RD:读控制信号,输入,低电平有效。与控制总线上的信 号相连。 CS:片选信号,输入,低电平有效。CPU的高位地址经 地址译码电路选中它。 INT:中断请求信号,输出,高电平有效。是8259A向 CPU输出的中断请求。
10
发出中断请求。
IMR的值可通过软件设置或改变。 例:如果当前IMR=48H ,问有哪几个中断请求被屏蔽?
IMR 0
IR7
1
IR6
0
IR5
0
IR4
1
IR3
0
IR2
0
IR1
0
IR0
19
2、8259A内部结构
(4)优先权判别电路PR
PR用于判别已进入IRR中且未被IMR屏蔽的各中断
请求的优先级别。当多个中断请求同时产生时,优先 权处理器PR根据IMR的内容和用户设定的优先级规则, 判断这些请求信号的最高级,向CPU输出中断请求信 号INT。
– 非缓冲方式
• 当系统中只有单片或片数不多的8259A时,一般将 8259A直接与数据总线相连。此时,8259A的 SP/EN端作为输入信号。单片8259A时,SP=1。若 多片互连时,主片的SP=1,从片的SP=0。
25
缓冲方式
数据缓冲器
输出: 作为数据缓 冲器的选通 信号
26
非缓冲方式
输入: 主片接+5V
当IR0有中断请求时,优先级高于IR2,中断IR2,给与响应 。
有三个中断请求已经被响应(IR6,IR2,IR0),当前正 在执行的是IR0的中断服务。 如果此时IR3有中断请求,是否能够给与响应?
18
2、8259A内部结构 (3)中断屏蔽寄存器IMR
IMR是8位寄存器,用来屏蔽已被锁存在IRR中的 中断请求信号。 当IMR的第i位被置1时,相应的IRi被屏蔽,不能 进入系统的下一级优先权处理器去判优,不能向CPU
中断查询方式
外设通过8259申请中断时,8259不使用硬件信号INT向CPU发 中断请求,而是CPU用软件来查询8259当前受到的中断请求,并 响应该请求。 24
三、8259的工作方式 2、连接系统总线的方式
– 缓冲方式
• 在多片8259A级联的大系统中,8259A通过总线驱 动器和数据总线相连。此时,8259A的SP/EN端输 出一个低电平(EN=0)作为总线驱动器的启动信号, 即与总线驱动器的允许端相连。
ISR 0
IR7
1
IR6
0
IR5
0
IR4
0
IR3
1
IR2
0
IR1Biblioteka 1IR017
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
ISR
0
0 1
0
0
0
0 1
0
0 1
如果按照IR0的中断优先级最高,IR7的中断优先级最低排序,
当IR6有中断请求时,没有更高级的请求,给与响应 。
当IR2有中断请求时,优先级高于IR6,中断IR6,给与响应 。
主 程 序 外设A 外设B 外设C 中断服务 中断服务 中断服务 子程序 子程序 子程序 中断 中断 中断 响应 响应 响应 B C
外设A 中断请求
中断 返回
中断 返回 IRET
中断 返回 IRET
IRET
6
§9.1 可编程中断控制器8259A
一、8259协助CPU处理中断事务所做的工作
中断源的优先级排队管理 接受、扩充外设的中断请求 向CPU提供中断类型号 实施中断请求的禁止和允许
12
二、 8259A的引脚功能及内部结构
SP/EN:主从片设定/允许缓冲信号,双向双功 能,低电平有效。 8259数据线与系统数据总线间连接方式采用非 缓冲方式(即直接相连,无数据总线驱动器)时, 作为输入。主8259接高电平,从8259接低电平。 8259数据线与系统数据总线间连接方式采用缓 冲方式(即有数据总线驱动器)时,作为输出,用 于启动数据总线驱动器。 如果工作在缓冲方式并且有级连应用时,作为 输出,用于启动数据总线驱动器。主从片的设置 用软件解决。
11
二、 8259A的引脚功能及内 部结构
INTA:中断响应信号,输入,低电平有效。接
收来自CPU的中断响应信号INTA。 IR7~IR0:外设向8259A发出的中断请求信号, 输入,高电平有效。接收来自外设接口发出的中 断请求。 CAS2~CAS0:级连信号线,双向。当8259A 作为主片时,为输出线;当8259A作为从片时,为 输入线。
第九章
中断控制器
1
中断的基本概念
一、什么是中断:
指CPU在正常运行程序时,由于内部或外部事件引起CPU暂 时中止执行现行程序,转去执行请求CPU为其服务的那个外 设或事件的服务程序,待该服务程序执行完后又返回到被中 止的程序这样一个过程。 主程序 中断服务程序 中断服务程序:处理中断 事件的程序段。 中断断点:被中断中止的 中断请求 原程序的下一条指令的地 址。 断点
二、 8259A的引脚功能及内部结构 A0:地址选择信号,输入,用来选择内部端口。
8259A只有两个端口地址,常把A0=0所对应的端 口称为“偶端口”,把A0=1所对应的端口称为“奇 端口”。 当8259A与8位CPU8088相连时,其A0其可直接 与8088的A0线相连;
当8259A与16位CPU8086相连时,由于其D7~ D0接8086的低8位,因此,8086的A1接到该引脚, 此时8259A的端口均为偶地址。
7
二、 8259A的引脚功能及内部结构
1、8259A的引脚:
8
二、 8259A的引脚功能及内部结构
8259A的内部结构框图
9
二、 8259A的引脚功能及内 部结构
• 8259A引脚功能
8259A是28个引脚封装的双列直插封芯片,芯 片引脚功能定义如下: – D7~D0:双向、三态数据线,可与系统的数据总线直接
13
8259工作于非缓冲方式
输入: 作为主片时接+5V 作为从片时接地
14
8259工作于缓冲方式
数据缓冲器
输出:
作为数据缓冲器 的选通信号
15
2、8259A内部结构
(1)中断请求寄存器IRR
IRR是8位寄存器,用来接收来自外设中断源的中断 请求。 它通过IR7~IR0与8个中断源相连。若IRi=1时,IRR 的相应第i位置1。若最多有8个中断请求信号同时进入 IR7~IR0端,IRR全被置1。
中断返回中断返回中断返回中断响应中断响应中断响应外设a中断请求外设a中断服务子程序外设b中断服务子程序外设c中断服务子程序iretiretiret91一8259协助cpu处理中断事务所做的工作中断源的优先级排队管理接受扩充外设的中断请求向cpu提供中断类型号实施中断请求的禁止和允许8259a的引脚功能及内部结构108259a引脚功能8259a是28个引脚封装的双列直插封芯片芯片引脚功能定义如下
28
三、8259的工作方式
–特殊屏蔽方式
•在执行某一中断服务程序时,仅对本级中断进行屏蔽, 允许接受级别较低的中断请求。 •设置特殊屏蔽方式后,对正在响应的某级中断,编程 使IMR对应位置1,就会同时使ISR的对应位复位。这样, 不只屏蔽了当前正在处理的本级中断,而且开放了较低 级的中断请求。
例如正在执行IR3的中断服务:
(7)数据总线缓冲器: 数据总线缓冲器是一个8位的双向三态缓冲器, 用来连接8259A和系统数据总线。 8259A通过它与CPU进行命令、状态、数据 信息的传送。
22
2、8259A内部结构
(8)控制逻辑
控制逻辑电路中有七个寄存器,其中ICW1~ICW4用 来存放初始化程序设定的工作方式字、管理8259A的 工作;OCW1~OCW3用来存放操作命令字,对中断处 理过程进行动态控制。 控制逻辑电路有两个控制作用: 一是根据IRR,IMR,PR的状态,通过INT向CPU请求 中断, 二是接收来自CPU的INTA信号,使ISR相应位置1,且 使IRR 相应位置0,避免该中断源一次申请产生两次或 两次以上中断。
相关文档
最新文档