8259A可编程中断控制器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断屏蔽寄存器 IMR
8259A与总线的连接
8259A
总线 Vcc 数据线 D0 ~ D7 RD WR A0 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 + 5V 18.2Hz 方波 键盘 保留 串 口2 串 口1 硬盘 软盘 打印机
D0 ~ D7
IOR IOW A0 A1 ~ A9 INTA INTR
ISR2上的1,一直要保持到该中断源的中断处理结束为止,当8259A收到中断结 束命令后,ISR2才被清0,表明连接在IR2上的外设的中断服务已经结束。 有两个以上的“1”,表明有中断嵌套。
设IR2引脚有中断请求,IRR2= 1
IR7引脚 IR6 IR5 IR4 IR3
CPU 响 应 IR2 中断,回送中 断应答信号; 8259 的 INTA 引 脚收到第一个 中断响应信号 , 使 ISR 某 位 ( 如 ISR2) 置 1 时 ,把IRR中某位 (如IRR2)清0
(1) 8259A内部的结构和引脚功能
INTA
数据总线 缓冲器
INT
D0~D7 RD WR A0
控制逻辑
读 /写 逻辑
正在服务 寄存器 ISR
优先级 分析器 PR
中断请求 寄存器 IRR
CS CAS0 CAS1 CAS2
SP/EN
级联 缓冲 /比较器
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
IMR7 IMR3 IMR0
IMR IRR
1
IRR7
0百度文库
IRR3
0
IRR0
1
R7引脚
1
R3引脚
1
R0引脚
如果我们希望确保IR3引脚上的信号不被屏蔽(允许中断请求信号 能够传送到CPU),而又要求其它各个引脚上屏蔽/开放的状态不变,可以采用 如下指令:
重 要
IN AL,21H ;从8259的奇地址读入屏蔽字 AND AL,0F7H ;IMR3=0,其它不变 OUT 21H,AL ;开放(允许)IR3的中断
*2中断屏蔽寄存器 IMR Interrupt Mask Register 功能: 用于屏蔽某IR0~IR7引脚上的中断请求信号,使之不能被传递给CPU。
某位为1,则屏蔽对应引脚上的中断请求;为0,允许。 IMR与IRR的各个位一一对应
例:IR0,IR3,IR7引脚上有中断请求信号,要求只屏蔽IR7引脚上的中断请求,则对屏蔽寄 存器送入屏蔽字10000000即可
从功能的角度,认识和学习8259A!
*功能: 1)一片8259A可以管理8个中断源的识别和判优;一片8259可以级连8 片8259A,可以管理64个中断源的识别和判优。 2)对于每一个由8259管理的外中断,均可独立屏蔽或非屏蔽 3)能够向CPU提供中断源的识别码(中断类型号) 4)具有多种优先级管理方式
*INTA 中断响应信号输入端 *SP / EN (Slave Program / ENable buffer)(了解即可) 从编程/使能缓冲线 双功能引脚。工作在级联方式时,主8259A的这条引脚接高电平,从8259A 接低电平。 * CAS0,CAS1,CAS2:(CAScade lines)级联线(了解即可) 主从片的CAS0,CAS1,CAS2对应连接 *IR0~IR7 中断请求输入引脚。8个外设的中断请求信号分别连接在这些引脚上。 每一个引脚可以扩展一片8259A 注意:外设的中断请求不是直接提交给 CPU的,而是通过中 断控制器经过管理后,再传递给CPU的INTR引脚的。
A0=1,选中奇地址端口 A0=0,选中偶地址端口
8259A规定有些命令字要写入奇地址端 口,有些则应写入偶地址端口。
在80X86系统中,使用一片8259,偶地址为20H,奇地址为21H 使用两片8259A时,主片8259H,偶地址为20H,奇地址为21H 从片8259H,偶地址为A0H,奇地址为A1H * WR RD *INT 中断请求信号 8259 INT INTR CPU 上一级8259
IR2 IR1 IR0引脚
IRR7
IRR2
1 0
IRR0
IRR IMR
1
10
ISR
第二个中断响应信号,启动8259把选中的中断源的中断类型号 回送给CPU
*4 优先级分析器 PR Priority Resolver 功能:用于分析中断请求寄存器IRR中各位的优先级,对各个中断请求择优。 *择优对象:没有被屏蔽的IRi *择优时间:接收到第一个INTA信号时 *择优方式:由编程决定 *择优结果:找出优先级最高的中断源,送出中断类型号给CPU,并且使ISRi对应的位置1。 *5 逻辑控制 根据CPU对8259A设定的方式,产生8259A内部所需的控制信号,并且能够 发出INT信号和接收INTA信号。 *6 读写逻辑 *7 数据总线缓冲器:通过这一环节,可以使8259A的数据线直接与CPU的DB连接而不用增加 其它电路。 *8 级联缓存器/比较器(了解) 在多片8259A级联的情况下,用于存放和比较从8259A的级联选择代码。CPU响应中断 时,通过CS2~CS0对从8259A输出级联选择代码,选出发中断请求的从8259A;从8259A则通 过CS2~CS0接受来自主8259A的选择代码。 *9 初始化命令寄存器和操作字命令寄存器 两组可编程控制寄存器,用于设定或改变8259A的工作方式和控制方式。
6.2.2 8259A 可编程中断控制器
中断管理包括: 中断请求信号的产生和锁存环节; 中断请求的屏蔽环节; 中断判优环节; 中断源的识别环节; 向CPU传递识别码(中断向量号)的环节; 中断请求信号的撤除环节。 中断管理可以由若干块芯片来实现,与可以采用可编程接口芯片来实现。8259A就 是一块在计算机系统中,用得相当普遍的一种中断管理芯片,它不仅可以完成上面 所提及的各种操作,还具备更强的、更多的功能,具有更方便、更灵活的特性
*3 中断服务寄存器 ISR Interrupt Service Register ISR与IRR的各个位一一对应 功能:记录CPU正在为之服务的是哪一个中断源。
例如:经过优先级分析器,IR2中断被选中,8259向CPU发出中断请求,CPU响应中断,向 8259A回送两个中断响应信号INTA。第一个INTA使ISR2置1,表明CPU正在为IR2服务(正在 处理IR2中断),并且把IRR2清0, (已经响应了该中断请求,所以撤除请求标志)。
2)内部结构 *1 中断请求寄存器 IRR Interrupt Request Register 功能: 存放中断请求信号直到CPU响应中断为止。
IRR7
:
:
:
IRR0
IR7引脚
IR0引脚 或
IR7~IR0引脚上出现中断请求信号
上升边或高电平表示有中断请求,则相应的位置1。 80X86计算机系统设定的是上升边方式
片 选 20~3FH 译 码
CS
INTA INT
SP/EN CA0 CA1 CA2 GND
用于多片 8259A 级连情况
1) 引脚功能 P174 图6.15 *D0~D7: 8259A数据线。通过D0~D7,设置8259A的工作模式;外设的中断类型号也必须 通过数据线送给CPU。 * CS 片选信号 * A0:端口选择信号 8259A内部有两个可寻址的端口:偶地址端口和奇地址端口