第7章_中断控制器8259
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 8259A的编程结构和工作原理
从编程结构上看,下半部分有7个寄存器 它们都是8位,每个寄存器都是可编程的, 即可以用指令来对它们的内容进行设置。
(1)下半部分: ICW1~ICW4:用来容纳初始化命令字 ICW (initialization command word), 一般在系统启动时由初始化程序来设定 的,用来确定工作方式等,一旦设定, 在系统工作过程中就不再改变。
高,向CPU 发出中断请 求
8259A处理部件的工作过程(工作原理) [1]中断请求寄存器IRR接收外部的中断请 求,并使相应位置1,即锁存该请求; [2]逻辑电路根据中断屏蔽寄存器IMR(即 OCW1)中的对应位的值决定是否让此请 求进入优先级裁决器。对应位为0,通过; 对应位为1,屏蔽。
[3]中断优先级裁决器把新进入的中断请求 和当前正在处理的中断(当前中断服务 寄存器ISR的内容说明了当前正处理的 中断)比较; [4]若新进入的中断请求具有足够高的优先 级,中断优先级裁决器会通过相应的逻 辑电路使8259A的INT端为1,从而向 CPU发出一个请求。
(2) 特殊屏蔽方式
在特殊屏蔽方式下,用OCW1对屏蔽寄存 器的某一位置1后,会同时使当前中断服 务寄存器中的对应位ISn自动清0,这就 不仅屏蔽了正在处理的这级中断,而且 开放了级别较低的中断。
应用场合: 若希望在一个中断服务程序的执行过程中 响应级别较低的中断请求,可以将 8259A工作在特殊屏蔽方式。 在该方式中,如将正在执行的中断请求 对应的OCW1置1,则同时将对应的ISn 清0,这使得从外界看来,8259A好像 不在处理任何中断。
7.1.1 8259A的引脚信号、编程结构和工 作原理
(1) 8259A 的引脚 信号
接收来自CPU 中断请求应答
接收来自 I/O设备的 中断请求
向CPU发中 断请求
写入信号,通知从 数据线上接收数据
读出信号,通知将某 个寄存器的值送到数 据总线
和数据总线相连, 实现和CPU的数 据交换
芯片选通信号, 通过地址译码电 路与地址总线相 连
中断优先级裁决器 PR(priority resolver) 当前中断服务寄存器ISR(in service register
8259A处理部件的工作过程(工作原理):
IRR接收来自IR0-IR7的中断请求,并锁存
为1封锁
中断屏蔽寄存器(OCW1)对应位是否为0 为0通过。进入优先 级裁决器 与当前中断服务寄存器ISR比较优先级 低、不响 应
5 . 引入中断请求的方式 (1) 边沿触发方式 (2) 电平触发方式 (3) 中断查询方式
(1)边沿触发方式: 8259A将中断请求输入端出现的上升沿 作为中断请求信号。中断请求输入端出 现上升沿触发信号以后,可以一直保持 高电平。
(2) 电平触发方式: 把中断请求输入端出现的高电平作为中 断请求信号。当中断请求输入端出现的 中断请求得到响应后,输入端必须及时 撤除高电平,避免引起不应该有的第二 次中断。
当CPU响应中断并进入中断处理程序后, 中断控制器仍负责对外部中断请求的管 理。 本节讨论Intel 系列的可编程中断控制器 8259A的引脚信号、编程结构、工作原 理、工作方式与编程方法。
8259A的工作特点: ① 1 片8259A能管理8级中断,可以用9片 8259A来构成64级主从式中断系统。 ② 可编程,使用灵活。 ③ 只需一组5V电源
(2)特殊全嵌套方式 在此方式下,当处理某一级中断时, 如果有同级的中断请求,那么也给予响 应,从而实现一种对同级中断请求的特 殊嵌套。该方式一般用在8259A的级连 系统。此时,主片工作在特殊全嵌套方 式下,从片可以处于其他优先级方式。
主片
8259A
8259A IR5
8259A
从片
若主片正在处理来自 从片IR7的中断时, 从片的IR0上有中断 请求,主片是否接收 处理,并实现嵌套? (设IR0优先级比IR7 IR0 高) IR7
①ICW2的内容(中断类型码)送D0-D7; ②若8259A工作在中断自动结束方式,则会使 ISRK 相应位清0;
补充说明: [1] CPU获得中断类型码N后,将据4*N 从中断向量表中找到中断服务程序的入 口地址,从而转入相应的程序(还有其 他一些操作,可阅读P211)。 [2]在中断服务程序执行完后,程序中的 IRET指令将返回被中断程序。
结论:在多片8259A的级连系统中,在主片 看来,一个从片为一级,从片内部的优 先级要得到系统的确认,则主片必须工 作在特殊全嵌套方式。
2 . 屏蔽中断源的方式
(1) 普通屏蔽方式 (2) 特殊屏蔽方式
(1)普通屏蔽方式 可以通过OCW1使屏蔽寄存器的对应位 置1或置0来屏蔽或不屏蔽来自IR0- IR7的中断请求。 程序设计时,可以通过设置操作命令字 OCW1使屏蔽寄存器中的任一位或几位 为1,从而实现对某一个IR端的屏蔽。 为什么要屏蔽某些中断请求?
当CPU从内存取数据时,偶地址单元的 数据通过低8位数据线传送至CPU,奇地 址单元的数据通过高8位数据线传送到 CPU,CPU与端口之间的16位数据交换 情况与此类似。 也就是说,8259A被分配的两地址或是 偶地址、或是奇地址,不会是一奇一偶。
一般情况下,8259A 的8位数据线连接 数据总线的低8位。这样从8086CPU的 角度来说,要给8259分配两个偶地址。 也就是说,A0必须为0。
A1 A0 地址信息 A0必须 为0
但对于8259A来说,要求A0为0时,访 问偶地址端口,A0为1时,访问奇地址 端口。若直接把A0接在地址总线的A0上, 显然不能满足要求,哪如何解决这个问 题?
问题解决办法: 1片8259对应2个端口地址,一个偶地 址、一个低地址。这就要求A0接数据总 线的A1便可实现。
OCW1~OCW3:用来容纳操作命令字 OCW(operation command word), 操作命令字由应用程序设定,来对中断 处理过程作动态控制,系统在运行过程 中,操作命令字可多次设置。
(2)上半部分(8259A的处理部件): 中断请求寄存器
IRR(interrupt request register)
A1 A0
2个连 续的 偶地 址
0
1
0
0
CAS2、CAS1、CAS0, 用于级连系统指出被响 应的从片
在多片8259A级连的情况下,主片的 CAS2、CAS1、CAS0和所有的从片的 CAS2、CAS1、CAS0分别连在一起的, 主片的作为输出,从片作为输入。
主 8 2 5 9 A C A S 0 1 2 从8259
[5]如果中断允许标志IF=1,CPU在执行 完当前指令后响应中断,此时,CPU从 INTA引脚上往8259A回送两个负脉冲。 [6]第一个负脉冲到达时,8259A完成三 个动作:
①使IRR的锁存功能失效,直到第二个负脉冲 到达;
②ISR中的相应位置1; ③使IRR寄存器中的相应位清0。 [7] 第二个负脉冲到达时,8259A完成下 列动作:
第7章 中断控制器、DMA控制器 和计数器/定时器
7.1 中断控制器8259A
7.1.1 8259A的引脚信号、编程结构 与工作原理 7.1.2 8259A工作方式 7.1.3 8259A初始化命令字、操作命 令字 7.1.4 8259A使用举例
什么是中断控制器,它的作用是什么? 中断控制器是用来管理多个中断源 的专用芯片。当有多个中断源向CPU提 出中断请求时,中断控制器可以接收外 部的中断请求,并进行优先级判断,选 中级别最高的中断请求,并送至CPU的 INTR端。
如何发出中断结束命令 在程序中向8259A的偶地址端口输出一 个操作命令字OCW2,并使得OCW2中 的EOI=1,SL=0,R=0即可。(具体在 实验程序中介绍)
(4)特殊的中断结束方式 在非全嵌套方式下,当前中断服务寄存器 是无法确定哪一级中断是最后响应的, 中断的结束处理必须要指出对当前中断 寄存器的哪一个ISn位。
指出当 前的哪 个端口 被防问
当片选信号有效时,A0为0时,访问偶地址端 口; A0为1时,访问奇地址端口。
A B 8259A A0
CS
1、A0为0时,访问偶 地址端口; A0为1时, 访问奇地址端口。
地址译码
问:A0连接到 地址总线的A0吗?
地址总线
问:A0引脚是连接到地址总线的A0吗? 若是,则8259A被分配一个偶地址和一 个奇地址。 然而,8259A只有8条数据总线,或连 接8086系统中的高8位地址,或连接 8086系统中的低8位地址。
在缓冲方式时,会在输出状态字或中断 类型码的同时,从该引脚输出一低电平, 此电平下好可作为总线数据总线驱动器 启动信号。
非缓冲方式: 8259A直接与数据总线相 连. 此时,该引脚作为输入端,(1)系统中 只有单片8259A时,SP/EN端必须接高 电平,当系统中有多片8259A时,主片 的SP/EN端接高电平,而从片的SP/EN 端接低电平。
(2)中断自动结束方式,只适用于系统 中只有一片8259A,且多个中断不会嵌 套的情况。 特点:系统一进入中断,8259A就自动清 除中断服务寄存器中的对应位Isn 此种方式主要怕没有经验的程序员忘了 在中断服务程序中给出中断结束命令而 设立的。
(3) 一般的中断结束方式 用在全嵌套情况下,当向8259A发出 中断结束命令时,8259A就会把当前中 断服务寄存器的最高的非零IS位复位。 最高的非零IS位即是最后一次被响应和 被处理的中断,即当前正在处理的中断。
7.1.2
8259A的工作方式
1. 设置优先级的方式 (1) 全嵌套方式 (2) 特殊全嵌套方式 (3) 优先级自动循环方式 (4) 优先级特殊循环方式
说明: (1) 全嵌套方式 IR0为优先级最高的中断请求,其次 为IR1、IR2等 当在执行中断处理程序时,可以响应 比正在执行的中断优先级高的中断请求。
源自文库
双向,当作为输入时,为1,则该 片为主片,为0,则该片为从片。 当作为输出时,此信号使数 据总线驱动器启动。
此信号到底作为输出还是输入,决定于8259A是 否采用缓冲方式工作。
缓冲方式:在多片8259A级连的大系统 中,8259A通过总线驱动器和数据总线 相连的工作方式。
总线驱动器 8259A SP/EN 数据总线
从8259
在CPU发出第一个中断响应负脉冲时,主 片除完成例行工作外,还通过CAS2、 CAS1、CAS0发出一个编码ID2、ID1、 ID0 从片接收到编码后与本身的ICW3的D2、 D1、D0比较,若相等,则在第二个负 脉冲到来时,将自已的中断类型码送到 数据总线。
(注:从片ICW3的D2、D1、D0的值是 由该从片连接到主片的IR决定,若为 IR3,则D2、D1、D0的值为011) 结论: CAS2、CAS1、CAS0是主片和 从片的联络信号。
特殊中断结束命令实际上也是通过往 8259A的偶地址端口输出一个操作命令 字OCW2,并使得OCW2中的 EOI=1,SL=1,R=0,OCW2中的L2、 L1、L0三位指出到底对哪一个IS位进行 复位。
4 . 连接系统总线的方式
(1) 缓冲方式 (8259A通过总线驱动器和 数据总线相连,常用于多片8259A级连 的大系统) (2) 非缓冲方式 (8259A直接和数据总线 相连,常用于单片8259A的系统)
例,在计算机网络通信中,接收中断的优先级比 较高,当一个计算机站点进行发送时,一般对 接收中断要进行屏蔽,以免本站的发送过程被 其他站点的发送过程所打断,而在完成本站发 送后,要立即开放接收中断,以免其他站往本 站的发送过程迟迟得不到接收方的回答。这就 是在程序中通过对OCW1的某位置1和置0实现的。
此时,即使有最低级的中断请求,也会 发通过INT发送给CPU,从而得到响应。
3.
结束中断处理的方式
(1) 中断自动结束方式 (2) 非自动结束方式 一般的中断结束方式 特殊的中断结束方式
(1)为什么要有中断结束处理? 一个中断被响应时,8259A就会在当前 中断服务寄存器设置相应位Isn 这为中 断裁决器的工作提供依据,中断结束后, 必须使Isn清0,否则中断控制器就不能 正常工作。 中断结束处理就是使当前中断服务寄存 器ISn位清0。