可编程中断控制器 8259A
8259A 的中断类型号
- 中断源的识别:CPU要对中断请求进行处理,必须要找到相应的中断服务程序(处理中断的程序)的入口地址,这就是中断源的识别。
两种识别方法:查询中断法和向量中断(又称矢量中断)
查询中断:主要采用软件查询,用程序查询接在中断上的每一个外设
向量中断:在具有向量中断的微机系统中,每个外设都预先指定一个中断向量,当CPU识别出某个外设请求中断并予以响应时,控制逻辑就将该外设的中断向量送入CPU,以自动地提供相应的中断服务程序的入口地址,转入中断服务。用向量中断来确定中断源主要是用硬件来实现的,通常唉微机系统中所用的的可编程中断控制器都能提供中断向量。
**当外设的个数<=8时,所有外设公用一个产生中断向量的电路,该电路由三位比较器的编码A2A1A0供给。据此不同的编码,即可转入不同的入口地址。
编码器和比较器的优先级排队电路
- 8086/8088有一个简单灵活的中断系统
- 8259A可编程中断控制器
8259A 的主要功能
(1)每片 8259A 可管理
8级优先权中断源,通过8259A的级联,最多可管理
64级优先权的中断源。
(2) 对任何一级中断源都可单独进行屏蔽
(3)能向CPU提供可编程的标识码,对于8086/8088 CPU来说就是中断类型码
(4)具有多种中断优先权管理方式,有
完全嵌套方式、
自动循环方式、
特殊循环方式、
特殊屏蔽方式和
查询方式5种
8259A的8个基本组成部分:
(1). 8位中断请求寄存器,用来存放从
外设来的中断请求信号IR0~IR7
(2). 8位中断屏蔽寄存器,用来存放
CPU送来的屏蔽信号
(3). 8位中断服务寄存器,用来记忆正在处理的
中断级别
(4). 优先权判别器,用来
管理和
识别各个中断源的
优先级别
8289A 的中断优先权控制方式(5 种)
- 完全嵌套方式(默认方式)
(1) 这是一种按固定的优先级别高低来管理中断的方式
(2)IR0固定为最高级,IR7为最低级
(3)如果 8259A 初始化未对优先权管理方式编程时,则 8259A 就自动进入这种方式
- 自动循环方式
这是一种中断源的中断优先级别将随着中断响应过程的结束而随时跟着改变的中断管理方式。
- 特殊循环方式
这是一种可以通过主程序或中断服务程序中发特殊循环方式操作命令来指定某个中断源的优先级别为最低级,而其余中断源的优先级别也随之循环变化的中断优先级管理方式
- 特殊屏蔽方式
通过操作命令 OCW3 来实现特殊屏蔽方式
- 查询排序方式
这是一种用软件查询方法来响应与 8259A 相连接的 8 级中断请求