?第六章 输入 /输出接口技术
第 六 章 输入 /输出 和中断技术
? 6.1 输入 /输出接口基本概念
? 6.2 主机与外设间数据传送控制方式
? 6.3 中断技术
? 6.4 可编程中断控制器 8259A
?第六章 输入 /输出接口技术
6.1 输入 /输出接口基本概念
一个简单的微机系统需要 CPU,存储器, 基本
的输入/输出系统以及将它们连接在一起的各种信
号线和接口电路 。
微机与外界交换信息称为输入或输出, 凡是受
计算机控制并能与计算机交换信息的设备称为输入 /
输出设备 (I/O设备 ),或称为 外设 。
外设不能直接与微机相联,需通过接口电路协
调它们之间的工作。 接口 是系统中一个部件和另一
个部件的相互连接。 接口电路的作用 是把计算机输
出的信息变成外设能够识别的信息,把外设输入的
信息转换成计算机所能接受的信息。
返回本章首页
?第六章 输入 /输出接口技术
I/O接口的功能:
( 1) I/O地址译码与设备选择。
( 2)信息的输入输出。
( 3)命令、数据和状态的缓冲与锁存。
( 4)信息转换。
为了完成上述功能,CPU与 I/O接口进行通
信实际上是通过 I/O接口内部的一组寄存器来实
现的,这些寄存器统称为 I/O端口:
?第六章 输入 /输出接口技术
? 一般接口有一组输入 /输出端口寄存器:数据端口
寄存器、状态端口寄存器、控制端口寄存器。
? 数据端口寄存器:为输入 /输出 CPU和存储器的数
据提供缓冲。对应传送的是数据信息,其可以是:
数字量、模拟量、开关量等。
? 状态端口寄存器:保存外设和接口状态信息,供
CPU查询。对应传送的是状态信息,如:忙、就
绪、满、空等。
? 控制端口寄存器:保存 CPU发出的命令,以控制
接口和外设所执行的动作。对应传送的是控制信
息,如:控制外设启动和停止等。
?第六章 输入 /输出接口技术
? 所有与外设的信息交换都是通过 I/O端口进行的,
目前有通用的可编程接口电路(即可编程接口芯
片)。
一、输入 /输出 (I/O)端口寻址方式
在微机中,CPU与存储器,I/O设备间通过数
据总线交换信息,如何区分现在访问的是 I/O设备
还是存储器?即对外设的寻址问题。 目前主要有
两种方式,外设与存储器独立编址;外设与存储
器统一编址。
?第六章 输入 /输出接口技术
又称专用 I/O指令寻址方式, I/O端口地址与存
储器地址是分开的 。 CPU对端口寄存器的访问通过
IN和 OUT指令完成, 并有直接寻址方式和间接寻址
方式两种 。 它们寻址空间不同 。
?直接寻址,IN AL,PORT;端口 PORT的一个
字节送 AL。
IN AX,PORT; PORT和 PORT+1
连续两个端口 16位数据送 AX,其
中 PORT口数据给 AL,PORT+1
口数据给 AH。
1、外设与存储器独立编址
?第六章 输入 /输出接口技术
OUT PORT,AL
OUT PORT,AX
直接寻址方式端口地址号的范围是 00H~FFH。
? 间接寻址,MOV DX,PORT
OUT DX,AL; (PORT) AL
IN AX,DX; AX ( PORT,PORT+1)
间接寻址方式端口地址号的范围是 0000H~FFFFH。
? M/IO=0:低 8位( 16位)地址作为端口地址指向 I/O
端口;
? 读写控制信号 RD和 WR控制 I/O设备和存储器的读和
写操作。
?第六章 输入 /输出接口技术
? 8086系列构成的微机系统均采用此寻址方式。且用专
用的 I/O指令。
二、外设与存储器统一编址
又称存储器映象寻址。此时每个 I/O端口看作存
储器中的一个单元,并赋以存储器地址。当 CPU要访
问 I/O端口时,如同访问存储器一样,所有访问存储
器的指令同样适合于 I/O端口,通常把存储器中最后
一小部分地址分配给各个 I/O接口。
优点:简化指令系统设计,可使用全部存储器指令。
缺点:减少一定量的内存容量,数据存取时间长 (MOV
需 20个以上时钟周期,专用 I/O指令 10个时钟周期。
?第六章 输入 /输出接口技术
( a )存储器映射方式示意图 ( b ) I/ O 映射方式示意图
图 6 -1 I/O 映射方式和存储器映射方式的示意图
I/O 空间
0000H
FFFFH
00000H
内存空间
FFFFFH
1M
00000H
供 I/O 接
口使用
内存空间
FFFFFH
?第六章 输入 /输出接口技术
6.2 主机 与外设间数据传送控制方式
微机系统中主机与外设传送数据控制方式:
一, 程序传送控制方式
二、中断传送方式
三、直接存储器存取( DMA)传送方式
?第六章 输入 /输出接口技术
一、程序传送控制方式
是指完全靠程序来控制信息在 CPU与 I/O设备之
间的传送,又分为:无条件(同步)传送方式,条
件(查询)传送方式。
1、无条件传送
指外设已准备好,而又不必检查它们的状态情
况下,可直接采用输入 /输出指令同外设传送数据。
是最简单的一种,所需硬软件较少,但必须已知外
设已准备好发送数据或能接收数据才能使用,否则
会出错。很少使用。
?第六章 输入 /输出接口技术
2、条件传送
也称查询传送或异步传送方式。 CPU在传送
前,利用程序不断询问外设的状态,若外设准备
好,CPU就立即与外设进行数据交换;若没有准
备好,则 CPU就处于循环查询状态,直到外设准
备好为止。
? 查询输入
假设状态寄存器,用 Status_port表示其地址 ;
数据寄存器,用 Data_port表示其地址 ;
设状态口最高位为 1表示数据准备好,为 0表
示数据没准备好。
?第六章 输入 /输出接口技术
查询输入流程图
读状态信息
准备好?
输入数据
N
Y
?第六章 输入 /输出接口技术
查询工作方式连接示意图
CPU 接口 外设系统总线
状态
数据
控制
?第六章 输入 /输出接口技术
AGAIN,IN AL,Status_port
AND 80H ;测状态口最高位
JZ AGAIN
IN AL,Data_port
?第六章 输入 /输出接口技术
? 查询输出
假设状态寄存器,用 Status_port表示其地
址 ; 数据寄存器,用 Data_port表示其地址 ;
设状态口最高位为 1表示输出设备忙,为 0
表示输出设备空闲。
?第六章 输入 /输出接口技术
查询输出流程图
读状态信息
Busy?
输出数据
N
Y
准备输出数据
?第六章 输入 /输出接口技术
AGAIN,IN AL,Status_port ;读状态信息
TEST AL,80H
JNZ AGAIN ;最高位 =1时,忙
MOV AL,STORE ;最高位 =0时,闲
OUT Data_port,AL
?第六章 输入 /输出接口技术
二、中断传送方式
中断是外设 (或其它中断源 )中止 CPU当前正在
执行的程序,转向该外设服务的程序,即完成外设
与 CPU间传送一次数据,一旦服务结束,又返回主
程序继续执行。这样,在外设处理数据期间,CPU
同时可以处理其它事务,外设处理完时主动向 CPU
提出服务请求,而 CPU在每条指令执行的结尾阶段
均检查是否有中断请求 (这种检查由硬件完成,故不
占 CPU时间 )。
?第六章 输入 /输出接口技术
返回本节
入口
主程序
中断
服务
程序



断点
图 6 -8 中断过程
中 断 过 程
?第六章 输入 /输出接口技术
三、直接存储器存取 (DMA)传送方式
数据传送执行的时间小于完成中断过程所需时间;
大量数据在高速外设与存储器之间传送 —采用 DMA
方式。
DMA方式是利用专门的硬件电路,让外设接口
可直接与内存进行高速的大批量数据传送,而不经过
CPU,这专门硬件就是 DMA控制器 —DMAC。目前
有可编程大规模集成电路芯片,Intel8237-5,
Intel8257/8257-5,Motorola MC6844等。
1,DMA的工作过程
?第六章 输入 /输出接口技术
接口提出传送请求 DMAC
DMAC CPU发总线请求
CPU DMAC发总线允许
发送存储器地址
传送数据
传送结束?
DMAC撤消 DMA请求,结束 DMA传送
修改地址指针和
字节计数器的值
N
Y
?第六章 输入 /输出接口技术
2,DMA操作的基本方法
? 周期挪用,是当 CPU不访问存储器的那些周期“挪
用”来进行 DMA操作。
DMAC不用通知 CPU有它来控制总线; DMAC
必须能识别出可挪用的周期,此电路较复杂;传送
的数据不连续不规则。
? 周期扩展,使用专门时钟发生器 /驱动电路,当需要
DMA操作时,DMAC发请求信号给时钟电路,使供
给 CPU的时钟周期加宽,而 DMA和存储器的时钟周
期不变。这加宽的时钟周期用来 DMA操作。 DMA操
作结束后,CPU恢复正常时钟继续操作。
使 CPU处理速度降低; CPU时钟加宽有限度,
从而每次传送只能是一个字节。
?第六章 输入 /输出接口技术
? CPU停机方式
是最简单、最常用的 DMA操作方法。 DMAC
向 CPU发出请求信号进行 DMA传送,CPU在当前
总线周期结束后,下一个总线周期开始让出总线控
制权由 DMA来控制,传送完后 CPU收回总线控制
权,继续执行被中断的程序。
DMA操作时,CPU空闲,降低了 CPU的利用
率;影响 CPU对中断响应和动态 RAM的刷新。使
用时应注意。
3,DMA传送方式
单字节传送方式:每次 DMA请求只传一个字节数据。
字节组传送方式:每次 DMA请求传送一个数据块。
?第六章 输入 /输出接口技术
6.3 中 断 技 术
6.3.1 中断系统基本概念
在微机中,中断是指当 CPU执行程序过程中,
由于随机的事件(包括 CPU内部的和 CPU外部的
事件)引起 CPU暂时停止正在执行的程序,而转
去执行一个用于处理该事件的程序 ----称为中断服
务程序(或中断处理程序),中断处理完后又返
回被中止的程序断点处继续执行,这一过程就称
为中断 。
?第六章 输入 /输出接口技术
通常在计算机的有关部件内, 如 CPU,外
设接口等, 添加一些硬件逻辑, 构成中断控制
逻辑, 还在指令系统中, 设有一些管理中断的
指令, 以实现中断功能, 此类软硬件的配置称
为中断系统 。 主要实现如下功能:
1,分时操作
2,故障处理
3,实时处理
?第六章 输入 /输出接口技术
引起中断的原因, 或发出中断请求的来源称为 中断源 。
1,外部设备请求中断,是指系统中外设所发生的中断
请求, 如键盘, 打印机, A/D转换器 。
2,实时请求中断,实时中断用于实时系统中, 在工业
控制中经常使用 。
3,故障请求中断,同机器硬件错误有关的中断系统称
谓硬件故障中断 。 在计算机一些关键部位设有故障自
动检测装置 。 如:运算出错, 存储器读写出错, 外设
故障, 电源掉电报警等 。
4,程序性中断,与用户程序错误有关的中断, 统称为
程序性中断 。 主要是使用户调试程序时, 能检测中间
结果或寻找错误所在而采用的检查手段 。
?第六章 输入 /输出接口技术
6.3.2 中断的一般处理过程
这里以外设中断处理过程为例 。 一个完整的
中断处理过程应包括:中断请求, 中断排队, 中
断响应, 中断处理, 中断返回 。
一, 中断请求
中断源向 CPU发出中断请求:
外设准备好, 想信息交换;
当前执行程序允许中断请求;
CPU有中断允许触发器 。
?第六章 输入 /输出接口技术
二、中断优先级
? 开中断指令 STI和关中断指令 CLI。
? CPU复位时, 自动关中断 。
? CPU响应中断后自动关中断 。
中断请求是随机的,有时会出现多个中断源同
时提出中断请求,响应哪个中断源?安排中断优先
级顺序 —中断排队。有硬件和软件方法。
最紧急和速度最高的设备排在最优先位置上。
软件法:软件查询;
硬件排队:硬件逻辑电路代替程序查询。
?第六章 输入 /输出接口技术
? 中断优先级,当 CPU正在处理中断时, 能响
应更高级别的中断请求, 而屏蔽掉同级或较
低级别的中断请求 。
? 单级中断处理和多级中断处理, 单级中断处
理不允许其他设备再中断 CPU的程序;多级
中断处理允许优先级高的中断打断优先级低
的中断服务程序 。
?第六章 输入 /输出接口技术










Y
Y
Y
N
N
N
保护现场
检查 IRQ1 的中断状态是否为,1,
检查 IRQ2 的中断状态是否为,1,
检查 IRQ3 的中断状态是否为,1,
IRQ1 的服务程序
IRQ2 的服务程序
IRQ3 的服务程序
恢复现场
中断返回
中断处 理入口
?第六章 输入 /输出接口技术
I/O D AT A BU S
中断请求 IR Q
S YN
POL
1 号设备 接口 2 号设备 接口 n 号设备 接口
C PU
硬件排队
?第六章 输入 /输出接口技术
三、中断响应
CPU在执行每条指令的 最后一个机器
周期 的 最后一个时钟周期采样 INTR端,
若发现有中断请求, 下一机器周期不再进
入取指周期, 而进入中断响应周期, CPU
发出 中断响应信号 INTA,外设根据 INTA
提出 中断服务程序入口地址 (或部分地址 ),
CPU转向该中断服务程序执行 。
?第六章 输入 /输出接口技术
? 中断响应的条件
1)设置中断请求触发器;
2)设置中断屏蔽触发器,当此触发器为,1”或
,0”时,允许外设的中断请求被送出至 CPU;
3) CPU处于开中断状态;
4) CPU在执行完现行指令后响应中断。
?第六章 输入 /输出接口技术
? 中断响应的过程
1) 发出中断响应信号, CPU发出给中断源;
2) 同时自动关中断, 即置中断允许触发器 IF为, 0”;
3) 保存断点;
4) 保护现场;
5) 输入中断服务程序逻辑入口地址 。
?第六章 输入 /输出接口技术
四、中断处理
首先保护现场, 执行中断服务, 恢复现
场, 开中断 。
1,起始部分 —保护现场
2,主体部分 —中断服务
3,结尾部分 —恢复现场
五, 中断返回
中断服务程序的最后一条指令是中断
返回指令, 回到主程序断点处继续执行 。
?第六章 输入 /输出接口技术













中断服务程序入口
CPU 响应中断后
自动关中 断
保护现场
开中断
中断服务
关中断
恢复现场
开中断
中断返回
入口地址,PUSH AX ;保护现场
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH SP
PUSH BP
CLI ;开中断
∶ ;中断服务
STI ;关中断
POP BP ;恢复现场
POP SP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
CLI ;开中断
IRET ;中断返回
结尾部分
主体部分
起始部分
?第六章 输入 /输出接口技术
6.3.3 8086/8088中断系统
8086具备处理 256种中断类型的能力 。 中
断源可来自 CPU的内部, 也可以来自外部设备;
可以是硬件产生, 也可以是软件产生 。
8086CPU各中断源如下图所示 。
?第六章 输入 /输出接口技术
8086/8088的中断源
I NTR
N MI
8086/8088 CPU




单步( TF=1 )
除法出错
INT O 溢出
INT 3 断点
非屏蔽中断请求
8259A







INT n 指令
?第六章 输入 /输出接口技术
?外部硬件中断
8086/8088有两条外部中断请求线:非屏
蔽中断 NMI和可屏蔽中断 INTR。
一, 可屏蔽中断 INTR
? INTR线上的中断请求是高电平有效, 且须保
持到当前指令结束 。
? INTR信号一般来自可编程中断控制器 8259A。
? 8259A用来管理各种外围芯片所产生的中断请
求, 确定哪个中断请求的优先级别最高, 并
向 8086CPU发中断请求信号 INTR。
?第六章 输入 /输出接口技术
? CPU根据标志寄存器 FR中的中断允许位 IF来决
定是否响应 INTR:
IF=1,CPU处于开中断状态,允许响应中断;
IF=0,CPU处于关中断状态,不响应中断。
? 可用 STI,使 IF=1;
CLI,使 IF=0。
? 系统复位使 IF=0; CPU响应中断后自动使 IF=0。
二、非屏蔽中断
? 是 NMI线,采用边沿触发器,用于通知 CPU发生
灾难性事件。 如:电源掉电、存储器读写出错等。
?第六章 输入 /输出接口技术
? NMI信号是不能禁止的,不受 IF的影响,且立
即被 CPU锁存起来,在当前指令执行完后,
CPU就立即响应。
? NMI比任何一个 INTR的优先级都高,若同时
发生,则 NMI首先得到 CPU的响应。
? 当发生 NMI中断时,CPU不需要发响应 NMI的
中断响应信号 INTA,CPU会自动启动 NMI的
中断服务程序。
?第六章 输入 /输出接口技术
?内部中断
内部中断是 CPU根据软件中的 某条指令或
软件对标志寄存器中某个标志的设置 而产生的,
从内部中断的产生过程来说,完全和硬件电路
无关。
一,8086内部中断类型
1、类型 0 — 除法出错
除法运算( DIV或 IDIV指令)所得的商大
于被除数所在寄存器能容纳的最大值。 --CPU
产生类型 0中断。(自动产生)
?第六章 输入 /输出接口技术
2、类型 1 – 单步中断
FR中有 TF标志位,CPU每执行一条指令都测
TF状态。 TF=1,CPU产生中断类型 1的中断,转
入单步中断的程序。
3、类型 3 – 断点中断
有一条专门设置断点的指令 –INT 3。进入断
点中断程序。
4、类型 4 – 溢出中断 (INT O)
5、用户自定义的软件中断
有一两字节中断指令 INT n:第一字节是软件中
断的 操作码 ;第二字节是 中断内型码 。 CPU根据
中断类型码就可以找到中断服务程序入口地址。
?第六章 输入 /输出接口技术
二,8086/8088内部中断的特征
1,中断类型代码是指令中指定的, 或隐含的,
或是预定的 。
2,CPU不执行中断响应总线周期 INTA。
3,除单步中断外, 其他内部中断的优先级都比
外部中断的要高, 都不能被屏蔽 ( 禁止 ) 。
4,单步中断的优先级是所有中断里最低的, 它
可以用中断允许标志位 TF置 0来屏蔽 。
?第六章 输入 /输出接口技术
8086/8088中断优先级别
中断源 优先级
除法错,INT n,INT O 最高
NMI ↑
INTR
单步(陷阱) 最低
?第六章 输入 /输出接口技术
三、中断类型号和中断向量 (指针 )表
? 中断类型号,对每种中断都指定一个中断类型号代码,
从 0~ 255,每一个中断类型号都可以与一个中断服务
程序相对应。 中断服务程序 存放在存储区域内,而 中
断服务程序的入口地址 存在内存储器的 中断向量表内 。
外部中断,INTR是第二个中断周期采样
数据线取得; NMI是 CPU自动
产生中断类型号 2;
? 中断类型号 内部中断,0~4号自动产生;
INT n:其中 n为中断类型号。
? 中断向量表,是 中断类型号 与它相应的 中断服务程序
入口地址 之间的 转换表 。
?第六章 输入 /输出接口技术





00 3F F H
00 3F C H
00080H
00 07 C H
00014H
00012H
00 00 C H
00008H
00004H
00000H
专用
中断向量
( 5 个)
系统保留
中断向量
( 27 个)
用户可用
中断向量
( 224 个)
16 位
CS
IP
255 号向量

32 号向量
31 号向量

5 号向量
4 号向量 ( 溢出 )
3 号向量
2 号向量(非屏蔽)
1 号向量(单步)
0 号向量(除法错)
?第六章 输入 /输出接口技术
表 IBM PC/ XT机的中断类型号的安排
中断类
型号
地址
( H) 中断功能
中断类
型号
地址
( H) 中断功能
20 80-83 程序结束 26 98-9B 绝对磁盘写
21 84-87 DOS系统调用 27 9C-9F 程序结束,驻 留内存
22 88-8B 结束地址 28 A0-A3 DOS内部使用
23 8C-8F 中止处理 29~2E A4-BB DOS保留
24 90-93 错误处理 2F BC-BF DOS内部使用
25 94-97 绝对磁盘 读 30~ 3F C0-FF DOS保留
?第六章 输入 /输出接口技术
? 响应中断时,从四个存储单元取中断服务程序的
起始地址,赋给 IP和 CS。
? 8086系统中,存储器最低端 1KB存储空间
(00000H~003FFH)用来存储各个中断服务程序的
起始地址。故可存 256个起始地址。
? 中断服务程序的起始地址通常称为 中断向量 (中断
指针、中断入口地址 )。
? 存储这些地址的连续空间称为 中断向量表或中断
指针表 。
?第六章 输入 /输出接口技术
四, 8086/8088中断处理过程
1) 将中断类型码乘 4,指向中断向量表中的中断
处理子程序的入口地址;
2) 保存 CPU的状态;
3) 清除 IF和 TF的状态标志位;
4) 保存正在执行的主程序断点;
5) 转中断处理子程序入口地址;
6) 执行中断处理子程序;
7) 返回到被中断了的主程序的断点处继续执行 。
?第六章 输入 /输出接口技术







?第六章 输入 /输出接口技术
6.4 Intel 8259A可编程中断控制器
6.4.1 8259A的框图和引脚
6.4.2 工作方式
6.4.3 8259A的编程
?第六章 输入 /输出接口技术
6.4.1 8259A的框图和引脚
8259A是一种可编程控制器,用来实现中断优先
级管理、中断屏蔽自动中断矢量转移等功能。
1) 一片 8259A可处理 8级优先级的中断, 级连 (9
片 )8259A可构成 64级的主从式中断系统 。
2) 每一级中断都可以被屏蔽或允许 。
3) 8259A可提供相应的中断向量, 从而能迅速地
转至中断服务程序 。
4) 通过编程使 8259A工作在多种不同的方式 。
5) 工作时只需要一组 +5V电源 。
?第六章 输入 /输出接口技术
8259A结构方框图
D7 ~ D0
SP/EN
CAS0
CAS1
CAS2
数据总线
缓冲器
读 / 写
控制逻辑
级连缓冲
比较器
控制逻辑控制逻辑
读 / 写
控制
逻辑
RD
WR
A0
CS
控制逻辑
中断
服务
寄存器
ISR
优先权
判别
电路
中断
请求
寄存器
IRR
中断屏蔽寄存器 IMR
INTA INT
内部总线
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
?第六章 输入 /输出接口技术
82
59A



V C C
A0
I N TA
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
I N T
S P / E N
CA S 2
CS
WR
RD
D7
D6
D5
D4
D3
D2
D1
D0
C A S 0
C A S 1
GND
1 825 9A 28
2 27
3 26
4 25
5 24
6 23
7 22
8 21
9 20
10 19
11 18
12 17
13 16
14 15
?第六章 输入 /输出接口技术
一、基本功能
1、中断请求寄存器 IRR。用来寄存外部输入的中
断请求。 8位对 8个中断请求输入信号 IR7~IR0,
有请求,该位置 1,且具有锁存功能。
CPU选种某个中断请求时,IRR中相应位复位。
2、中断服务寄存器 ISR
用来寄存由判优电路选中的当前正在被服务的
所有中断优先级。
3、优先权栽决器 (判优电路 )
确定寄存在 IRR中的各个中断请求位的最高优
先级。
?第六章 输入 /输出接口技术
4、中断屏蔽寄存器 IMR
对 IRR起屏蔽作用。用来存放要屏蔽掉的中断
线的某些位 (被屏蔽位置 1)。
5、数据总线缓冲器
? 双向、三态 8位缓冲器。用于 8259A和系统数
据总线相连。传送 控制字和状态信息 。
? 小系统中 D7~D0直接与 CPU DB相连;大系统
中通过总线驱动器与 CPU DB相连。
6、读 /写 (控制 )逻辑
?第六章 输入 /输出接口技术
接受 CPU控制命令字或 8259A状态信息,
? RD读信号,CPU通过 DB线读 8259A的 IRR,ISR、
IMR或中断的状态。
? WR写信号:通知 8259A从 DB上接收控制命令字。
? CS芯片选通信号,CPU AB线的 A7~A1经译码器
输出控制。确定其地址空间的基地址。
? A0:与 AB的 A0相连。用于读写 8259A内部的不
同寄存器。
7、级联缓冲器 /比较器
用于存储并比较系统中所用的全部 8259A芯
片的中断类型码数据。
?第六章 输入 /输出接口技术
8,INT:中断请求信号。与 8086 CPU的中断请求
输入端 INTR相连,用来向 CPU请求中断。
9,INTA:来自 CPU的中断响应信号。
二、工作过程
8259A与 8086/8088系统连接如下图所示,其工作
过程:
1、外设通过 IR0 ~ IR7请求中断,高电平有效,使
IRR相应位置 1并锁存;
2、据 IMR把 IRR中非屏蔽的中断请求送判优电路去
排队;
?第六章 输入 /输出接口技术
8259A与 8086/8088连接图
AD0
AD7
INTA
INTR
D0 IR0
D7 IR7
INTA
INT
中断输入
8086/8088 8259A
?第六章 输入 /输出接口技术
3、判优电路确定当前非屏蔽的最高优先级,通
过控制逻辑把 INT送 CPU的 INTR端;
4,CPU若响应该请求,则向 8259A发两个 INTA
信号,第一个 INTA脉冲到来时,完成:
? 使 IRR锁存功能失效。即 IR0 ~ IR7上的请求信
号不予接收;
? 使当前 ISR中的相应位置 1,以便为判优电路下
次判优提供依据;
? 使 IRR相应位复位。
第二个 INTA脉冲到来,完成:
?第六章 输入 /输出接口技术
? 使 IRR锁存功能有效;
? 中断类型码寄存器内容送 DB上,供 CPU读;
? 若 8259A处于自动结束方式,则在该脉冲结束
时,把当前 ISR的相应位复位。
?第六章 输入 /输出接口技术
6.4.2 工作方式
8259A进入正常工作之前, 须用初始化
命令字对系统中每个 8259A芯片进行工作方式
的设定 。 可设定的工作方式有以下几种:
一, 中断嵌套方式
二, 中断结束方式
三, 数据缓冲方式
四, 中断请求触发方式
五, 中断屏蔽方式
六, 中断优先权循环方式
七, 中断查询与读状态
?第六章 输入 /输出接口技术
一、中断嵌套方式
分全嵌套方式和特殊嵌套方式。
1、全嵌套方式
8259A最常用的工作方式。若对 8259A进行
初始化编程后,未用操作命令字设定其工作方
式,则自动按全嵌套方式工作。其特点:
? 优先级固定,IR0最高,依次为 IR7最低;
? 判优电路选当前请求中最高级,ISR相应位置 1,
直至收到中断结束命令 EOI为止;
? ISR置位期间,禁止响应同级或较低级的中断,
但能响应较高级中断;
?第六章 输入 /输出接口技术
? 可用 IMR屏蔽任一中断请求 (OCW1命令 )。
2、特殊全嵌套方式
多用于多片级联,主片在特殊全嵌套方
式,从片不是。与全嵌套方式有两点不同:
? 主片不屏蔽同级从片的中断,实现对同级中
断请求的特殊嵌套;
? 从片中断服务程序结束处,要检测从片刚服
务完的中断是否是该从片唯一的中断。
?第六章 输入 /输出接口技术
二、中断结束方式
有自动结束方式和非自动结束方式 (特殊中
断结束方式和非特殊中断结束方式 )。
1、自动结束方式:在第二个 INTA脉冲后沿使 ISR
相应的服务位复位,结束中断(单片系统中)。
2、非自动结束方式:在中断服务程序返回之前,
须向 8259A送中断结束命令 EOI,使 ISR中的当
前服务位复位。主从级联送两个 EOI(主从各一
个 )。
?第六章 输入 /输出接口技术
三、数据缓冲方式
1、缓冲方式:多片级联系统中,需在 SP/EN端
输出一个有效低电平,开启缓冲工作。主从
8259A都需设定; 主片 8259A设 SP/EN=1,从
片 8259A设 SP/EN=0;只有一个 8259A时,
SP/EN=1。
2、非缓冲方式:单片或级联不大系统中。
8259A数据总线缓冲器直接与系统 DB相连。
?第六章 输入 /输出接口技术
B7 ~ B0
T 74 LS 245 OE
A7 ~ A0
DT/R
INTR
DEN
局部数据总线
B7 ~ B0
T 74 LS 245 OE
A7 ~ A0
SP/EN D7 ~ D0
从控 B
CAS2 - 0 INTA INT
SP/EN D7 ~ D0
从控 A
CAS2 - 0 INTA INT
SP/EN D7 ~ D0
主控制器 INT
IR5 IR6 INTA CAS2 - 0
+5V 1k Ω
B7 ~ B0
OE 74 LS 245 T
A7 ~ A0
+5V 1k Ω
+5V 1 k Ω
系统数据总线
INTA
8259A缓冲方式下级连结构
?第六章 输入 /输出接口技术
8259A非缓冲方式下级连结构
地址总线
控制总线
数据总线
CS A0 DB INTA INT
CAS0
8259A 从控 A CAS1
CAS2
SP/EN IRQ7 ┅ IRQ0
CS A0 DB INTA INT
CAS0
CAS1 8259A 主控
CAS2 IRQ7 ┅ IRQ0
SP/EN 7 6 5 4 3 2 1 0
CS A0 DB INTA INT
CAS0
8259A 从控 B CAS1
CAS2
SP/EN IRQ7 ┅ IRQ0
GND 7 6 5 4 3 2 1 0
GND 7 6 5 4 3 2 1 0
VCC 7 6 5 4 3 2 1 0
C AS2
?第六章 输入 /输出接口技术
四、中断请求触发方式
1,边沿触发方式,8259A选定中断请求为正跳变
(边沿 )触发;
2,电平触发方式,8259A选定中断请求为高电平
触发 。
注,响应后, 须及时撤除高电平, 否则 CPU进入
中断处理过程, 且开中断前未去除高电平信号,
则可能引起不该有的第二次中断 。
3,中断响应过程
?第六章 输入 /输出接口技术
中断响应过程
1) 当它的一条或多条中断请求线 ( IR7~ IR0)
变为高电平时, 它就使中断请求锁存器 IRR相
应的位置 1。
2) 8259A分析这些请求, 它就向 CPU发出高电
平有效信号 INT,请求中断服务 。
3) 当前一条指令执行完毕, 且 IF=1时, CPU响
应中断请求, 进入中断响应总线周期 。
?第六章 输入 /输出接口技术
4) 8259A接到来自 CPU的第一个脉冲 ( INTA),
把允许中断的最高优先级请求位, 置入服务
寄存器 ISR,并把 IRR中对应的位清零 。
5) CPU在第二个总线周期,再次发出一个脉
冲( INTA),8259A接到第二个脉冲,送出
中断类型码,CPU读取该类型码。
?第六章 输入 /输出接口技术
ALE
L O C K
I N T A
D 7 - D 0
INT
IR
C LK
T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4
类型码
中断响应总线周期时序
?第六章 输入 /输出接口技术
五、中断屏蔽方式
1、正常屏蔽方式:由 OCW1送入 IMR中的一位
或若干位置 1来相应地屏蔽掉对应位的中断级。
2、特殊屏蔽方式:执行较高优先级中断服务过
程中,对优先级较低的中断全部屏蔽。但有
时要求响应较低中断请求,也可采用此方式,
用 OCW3中的 D6D5位来设定,此时 OCW1中置
1位的被屏蔽,置 0位的中断不管其中断级如
何,都可响应。
?第六章 输入 /输出接口技术
六、中断优先权循环方式
全嵌套方式中,中断请求优先级是固定不变的。
但有时需改变优先级,有两种方法:
1、自动循环方式:某一级中断服务后,自动被
赋予最低优先级,将最高优先级赋给比其低
一级的中断请求,其它以循环方式类推。由
OCW2设定。
2、特殊循环方式:给某中断源赋最低优先级,
则别的中断源的优先级也相应确定了。
如,IR5为最低优先级,则 IR6就为最高优先级,
其它级依次类推。由 OCW2设定。
?第六章 输入 /输出接口技术
七、中断查询与读状态
CPU可以通过读命令读取 8259A内部几个
寄存器的状态 (IRR,ISR等 )来确定是否有中
断请求未响应,工作状态等。
?第六章 输入 /输出接口技术
6.4.3 8259A的编程
8259A的操作和工作方式是用软件通过命
令字进行控制的。有两类命令字:初始化命
令字 ICW和操作命令字 OCW。
一、初始化命令字
二、操作命令字
三,8259A的寻址
四、编程举例
?第六章 输入 /输出接口技术
一、初始化命令字
正常操作开始之前,系统中的每片 8259A都
须由 2~4个初始化命令字 (ICW)来设定其状态和
方式。
( 1)芯片控制 ICW1
( 2)设中断类型码 ICW2
( 3)标志主片 /从片 ICW3
( 4)方式控制 ICW4
( 5)初始化命令字的编程顺序
?第六章 输入 /输出接口技术
芯片控制初始化命令字 ICW1,写入偶地址端口。
A0 D7 D6 D5 D4 D3 D2 D1 D0
0
1 要 ICW4
0 不要 ICW4
1 单片方式
0 级连方式
1 间距为 4
0 间距为 8
偶地址端口
80/85 中断地址
特征位
1 电平触发
0 边沿触发
A 7 A 6 A 5 1 L T I M A D I S N G L I C 4
中断请求 IR0~IR7
触发方式
8086系
统不用
?第六章 输入 /输出接口技术
设中断类型码初始化命令字 ICW2,写入奇地址端口。
A0 D7 D6 D5 D4 D3 D2 D1 D0
1
中断类型号的高 5 位 8259A 自动 填入
T 7 T 6 T 5 T 4 T 3 0 0 0
用于规定 IR0~IR7所对应的中断类型码的高 5位,
低 3位由 8259A自动产生。
?第六章 输入 /输出接口技术
设中断类型码初始化命令字 ICW2,写入奇地址端口。
A0 D7 D6 D5 D4 D3 D2 D1 D0
1
中断类型号的高 5 位 8259A 自动 填入
T 7 T 6 T 5 T 4 T 3 0 0 0
用于规定 IR0~IR7所对应的中断类型码的高 5位,
低 3位由 8259A自动产生。
?第六章 输入 /输出接口技术
标志主 /从片初始化命令字 ICW3,
写入奇地址端口。
1 - IRi 输入引脚接从片的 IN T
0 - IRi 输入引脚未接从片的 IN T
A0 D7 D6 D5 D4 D3 D2 D1 D0
S3 S2 S1 S0 S4 S5 S6 S7 1
主片 ICW3:表示主片的输入端 IR0~IR7上是否接从片;
从片 ICW3:由 D2~D0规定从片的输出线 INT接到主片
的哪个 IRi上,i=0~7。
?第六章 输入 /输出接口技术
方式控制初始化命令字 ICW4,写入奇地址端口。
1 - 8088/8086CPU
0 - 8080/8085 CPU
1 - 自动 EOI 方式
0 - 非自动 EOI 方式
1 - 特殊完全嵌套方式
0 - 一般完全嵌套方式
0 × 非缓冲方式
1 0 缓冲方式从片
1 1 缓冲方式主片
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 SFNM BUF M/S AEOI uPM
ICW4标志位
?第六章 输入 /输出接口技术
80
59A









开始
初始化 I C W 1
初始化 I C W 2
是否用级连方式?
初始化 I C W 3
是否用 I C W 4?
初始化 I C W 4
准备接近中断请求
结束
Y
Y
Y
N
N
?第六章 输入 /输出接口技术
二、操作命令字
对 8259A送好初始化命令字后,就准备接
收输入线上的中断请求。但可通过使用操作命
令字进一步控制和修改操作方式,可根据需要
随时写入操作命令字 OCW,没有顺序限制。
1、中断屏蔽操作命令字 OCW1
2、优先级循环方式和中断结束方式设置操作命
令字 OCW2
3、工作方式控制操作命令字 OCW3
?第六章 输入 /输出接口技术
1,OCW1(中断屏蔽操作命令字)
OCW1用于设置 8259A的屏蔽中断操作,它
可以直接对中断屏蔽寄存器 IMR的相应屏蔽位
进行操作。 A0=1表示 OCW1,M0~M7分别对应
中断屏蔽寄存器 IMR的相应位,其中 1表示该位
中断请求被屏蔽,0表示该位中断请求允许。写
入奇地址端口。其格式如下:
?第六章 输入 /输出接口技术
2,OCW2(优先级循环方式和中断结束方式)
其具体格式如下,其中 L2L1L0用来选
择 IR0~IR7( 000~111),R,SL,EOI的组
合方式如下页所示。写入偶地址端口。
0
标志位
?第六章 输入 /输出接口技术
?第六章 输入 /输出接口技术
3,OCW3工作方式控制操作命令字
OCW3主要有三个方面的功能:控制 8259A
的中断屏蔽;设置中断查询方式;设置读 8259A
内部寄存器命令。其具体格式如下:
0
标志位
ESMM0 SMM 0 1 P RR RIS
A0 D7 D6 D5 D4 D3 D2 D1 D0
不用,
通常为 0
1:查询方式
0:非查询 (中断 )方式
?第六章 输入 /输出接口技术
ESMM SMM 功能
1 1 设置特殊屏蔽
1 0 清除特殊屏蔽
0 1 无意义
0 0 无意义
RR RIS 功能
1 1 在下一个 RD脉冲读 ISR
1 0 在下一个 RD脉冲读 IRR
0 1 无意义
0 0 无意义
?第六章 输入 /输出接口技术
三,8259A的寻址
为设定 8259A的工作方式,需利用软件将初始
化命令字及操作命令字写入 8259A;另一方面为知
道 8259A的工作状态,又须将其内部一些寄存器的
内容读出来。为此,利用 CS有效选中 8259A,再
用 A0来寻址不同的寄存器和命令字。
在硬件系统中,8259A有两个端口地址:
ICW1,OCW2,OCW3,ISR,IRR占一个;
ICW2,ICW3,ICW4,OCW1,IMR占另一个。
具体地址根据硬件连接确定。同一端口靠标志位
和写入顺序加以区别。
?第六章 输入 /输出接口技术
8259A寄存器及 I/O端口的寻址
CS RD WR A0 功能 8259A端口 PC/XT机端口
0 0 1 0 读 IRR,ISR 偶地址 20H
0 0 1 1 读 IMR 奇地址 21H
0 1 0 0 写 ICW1,OCW2,OCW3 偶地址 20H
0 1 0 1 写 ICW2,ICW3,ICW4,OCW1 奇地址 21H
0 1 1 × 无操作
1 × × × 无操作
?第六章 输入 /输出接口技术
四、编程举例
例 1:在 IBM PC/XT系统中,8259A处于单片、全
嵌套方式,采用非特殊屏蔽和非自动结束方式。
中断请求信号是边沿触发。当中断响应时,
8259A输出中断类型码 08H~0FH。上电初始化
时,关中断。工作开始时,中断全开放。两个
端口地址,20H,21H。
程序如下:
MOV AL,13H ; ICW1,00010011
OUT 20H,AL
?第六章 输入 /输出接口技术
MOV AL,8 ; ICW2,00001000
OUT 21H,AL
MOV AL,9 ; ICW4,00001001
OUT 21H,AL
MOV AL,0FFH ; OCW1:关中断,11111111
OUT 21H,AL
MOV AL,0 ; OCW1:开中断,00000000
OUT 21H,AL
?第六章 输入 /输出接口技术
例 2:查 IBM PC/XT系统中,8259A的正确性。
MOV AL,00
OUT 21H,AL ; IMR清零
IN AL,21H ;读 IMR
OR AL,AL
JNZ ERROR ;有错,转出错处里程序
MOV AL,0FFH ;正常,置 IMR全 1
OUT 21H,AL
IN AL,21H ;读 IMR
ADD AL,1
JNZ ERROR ;有错,转出错处理程序;正常,继续执行程序
?第六章 输入 /输出接口技术
? P292:
6.1,6.3,6.5,6.7,6.8,6.11、
6.12,6.13,6.14
?第六章 输入 /输出接口技术
THANK YOU VERY MUCH !
?本章到此结束,
?谢谢您的光临!
返回本章首页结 束放映