第 6 章 输入输出和中断技术
1. 概述
1、输入输出系统
① 系统定义 (考点):外设、I/O 接口、管理设备。
② I/O 功能与作用:外设选择、外设管理、数据缓冲、信号(电平)转换
2、I/O 分类
- 数据口(I/O)
- 状态口(I)
- 控制口(O)
3、寻址(编址方式)(考点)
端口有两种编址方式:统一编址、独立编址
① 统一编址 —— 存储映像的 I/O 寻址
把外设接口与内存统一进行编址,各占据统一地址空间的不同部分。
优点:指令强大。
缺点:地址浪费。
② 独立编址
外设地址空间和内存地址空间相互独立。
优点:地址使用充分。
缺点:指令有两套,并且要硬件支持才可编程。
大部分系统使用统一编址,但是 8086 系统使用独立编址。
4、8086/8088 CPU 的 I/O 编址方式
① 可寻址的 I/O 端口数为 64K 个,地址范围为 0000H ~ FFFFH ,并采用独立编址。
2. CPU 与外设通信的接口(简单)
1、只需要选择的 I/O 就是简单的接口。
2、输入用缓冲器/输出用锁存器 (考点)
原因:外设比较快,CPU 比较慢,为了协调速度,要用到缓冲器和锁存器。
① 单向缓冲器
单向缓冲器选用 74LS244 输入缓冲器,双向缓冲器则是 245 。
② 输出锁存器
输出锁存器选用 273 ,下降沿锁存,并且没有三态门,373 则有三态门。
3. 传送数据方式
1、无条件传送方式
CPU 直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,直接与外设传送数据。
优点:软件及接口硬件简单。
缺点:只适用于简单外设。
2、 查询传送方式
必须查询外设状态,然后再决定是否与外设传送数据。
优点:软件简单。
缺点:CPU 利用率太低。
3、中断方式
分时传送,并行处理。
优点:CPU 利用率高。
缺点:软件复杂。
4、直接存储器存取方式(DMA)
外设直接与存储器进行数据交换,CPU 不再担当数据传输的中介者。
优点:CPU 利用率最高。
缺点:增加硬件,硬件复杂。
四种传送方式(考点)
四种传送方式是什么:无条件传送方式、查询传送方式、中断方式和 DMA 。
CPU 利用率最高的传送方式是什么:DMA 。
除了 DMA ,CPU 利用率最高的传送方式是什么:中断方式。
4. 中断的概念
1、引起 CPU 中断的事件 —— 中断源
例如:
数据传送 —— 请求输入输出数据,报告故障等。
事故处理 —— 掉电、硬件故障、软件错误、非法操作、定时时间到等。
2、中断源分为:外部中断、内部中断
内部中断: CPU 内部执行程序时自身产生的中断。
外部中断: CPU 以外的设备产生的中断(数据传送)。
3、8086/8088 的外部中断信号:INTR、NMI
INTR —— 可屏蔽中断请求,高电平有效,受IF标志的控制。执行完当前指令后CPU对它作出响应 INTA 。
NMI —— 非屏蔽中断请求,上升沿有效,任何时候 CPU 都要响应此中断请求信号。
4、中断定义
所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突然事件的发生,暂时中止正在执行的程序,转去处理突然发生的事件(执行中断服务程序),处理完毕,再返回原来被中止的程序继续运行。
5. 中断过程
1、中断请求
NMI: 不可屏蔽,系统中断,边沿请求。
INTR: 可屏蔽,用户中断,电平请求。
边沿请求: 遇到上升沿就中断,如果遇到毛刺干扰,也会被当做中断,所以抗干扰能力弱,但设计简单。
电平请求: 遇到毛刺不会反应过来,只有遇到高电平才会中断,所以抗干扰能力强,但需要硬件支持。
2、中断识别
计算机中的中断源有很多,CPU 必须识别是哪一个设备产生中断。
识别中断源有两个方法:
① 软件查询(查询中断)
IN AL,IPORT ;从输入接口取中断信息
TEST AL,80H ;是0号设备请求吗?
JNZ SEVO ;是,转0号设备服务程序
TEST AL,40H ;否,是1号设备请求吗?
JNZ SEVl ;是,转1号设备服务程序
TEST AL,20H ;否,是2号设备请求吗?
JNZ SEV2 ;是,转2号设备服务程序
TEST AL,10H ;否,是3号设备请求吗?
JNZ SEV3 ;是,转3号设备服务程序
② 矢量中断
硬件上需要能够提供矢量号:
3、中断判优
中断优先级的控制方法:
硬件判优 —— 链式判优、并行判优(中断向量法)
软件判优 —— 顺序查询中断请求,先查询的先服务(即先查询的优先级别高)
4、中断响应处理(两个考题)
响应中断的条件(考点):
- IF = 1
- 当前指令执行完
- 无总线请求
相应处理(考点):
- 发出 INTA帽 中断响应信号,获得向量
- 保护 FR
- 关中断 IF = 0
- 断点保护 CS、IP
- 获得入口地址,开始执行
5、中断服务
中断服务子程序要做的工作:
-
保护现场
-
开中断(STI)
-
进行中断处理
-
关中断(CLI)
-
恢复现场
iret: IP - CS - FR(按顺序返回)
ret: IP - CS
8088 CPU 可屏蔽中断的相应过程 (考点):
6. 8086/8088 中断系统
1、中断分类
(1)外部中断(硬件中断)
-
INTR:可屏蔽中断
-
NMI:不可屏蔽中断
(2)内部中断(软件中断)
- 除法溢出:类型号 0
- 单步中断:类型号 1
- 断电中断:类型号 3
- 溢出中断:类型号 4
- 软件中断:即 INT n 指令,类型号 n(0-32)
2、中断向量表
中断类型号和中断服务子程序的入口地址之间的关系**(考点)**
eg. INT 12H在中断矢量表中的物理地址?
12H × 4 = 48 H
eg. INT 8中断服务程序首地址在中断矢量表中的物理地址?
8 × 4 = 32 = 20H
3、中断向量表的初始化
eg. 中断类型码为 48H 的中断处理子程序的名字为 INT48H ,编写程序段将该中断处理子程序的入口地址放入向量表。
CLI
MOV AX,0
MOV DS,AX
MOV AX,OFFSET INT48H
MOV SI,48H×4
MOV [SI],AX
MOV AX,SEG INT48H
MOV [SI+2],AX
STI
eg. 若外设的中断类型号为 6BH ,则此中断类型号对应的中断矢量表地址为从 01ACH 开始的四个存储单元。设中断服务程序段地址是 1000H ,偏移地址为 2000H 。
CLI
MOV AX,,0
MOV DS,AX ;置数据段段基地址为0
MOV AX,2000H
MOV [6BH*4], AX ;对偏移地址为01AC的单元
MOV AX,1000H ;送双字
MOV [6BH*4+2], AX
STI
4、区别
INTR 和其它中断的区别 (考点):
- 内部中断不需要执行从外部获得矢量
- 内部中断不受 IF 的影响
- 内部中断大部分可以预测
5、8088 系统中各中断的优先级 (小考点)
优先级从高到低顺序如下:
- 内部中断(优先级最高)
- NMI
- INTR
- 单步中断
7. 8259A
1、内部结构
一共有 28 个管脚。
初始化:2 个控制口,7 个控制字
2、命令字
8259A 有 7 个命令字。
(1)A0
- 奇地址 —— 奇口
- 偶地址 —— 偶口
3、工作原理
设置芯片的寄存器:通过命令口写入命令字