目录
一、I/O 接口
1. 接口和端口的关系
2. 接口的基本结构
3. 8086/8088 端口编址
二、简单接口芯片
1. 74LS244 三态门
2. 74LS273 锁存器
3. 74LS374锁存器
4. 综合应用
三、基本输入输出方式
1. 无条件传送方式
2. 查询工作方式
一、I/O 接口
1. 接口和端口的关系
CPU 与 I/O 接口进行通信实际上是通过 I/O 接口内部的一组寄存器实现的,这些寄存器通常称为 I/O 端口。I/O 端口包括 3 种类型:
- 数据端口
- 状态端口
- 命令端口(控制端口)
根据需要,一个 I/O 接口可能仅包含其中的一类或两类端口,当然也可以包含全部三类端口。
注意:简单的接口也可仅由三态门构成,但要求传输过程未完成之前信号应保持不变。
2. 接口的基本结构
(1)输入接口/输入端口
定义:负责把信息从外部设备送到 CPU 的接口或端口称为输入接口/输入端口。
在输入数据时,由于外设处理数据的时间一般要比 CPU 长很多,数据在外部总线上保持的时间相对较长,所以要求输入接口必须要具有对数据的控制能力,即只有当外部数据准备好、CPU 可以读取时才将数据送上系统数据总线。
若外设本身具有数据保持能力,通常可以仅用一个三态门缓冲器作为输入接口。
(2)输出接口/输出端口
定义:负责把信息从 CPU 送到外部设备的接口或端口称为输出接口/输出端口。
在输出数据时,同样由于外设的速度比较慢,要使数据能正确写入外设,CPU 输出的数据一定要能够保持一段时间。因此,要求输出接口必须要具有数据的锁存能力。CPU 输出的数据通过总线送入接口锁存,由接口将数据一直保持到被外设取走。
简单的输出接口一般由锁存器构成。
(3)实际使用
以上三态门和锁存器的控制端一般与 I/O 地址译码器的输出信号线相连,当 CPU 执行 I/O 指令时,指令中指定的 I/O 地址经译码后使控制信号有效,打开三态门或触发锁存器导通将数据锁入锁存器。
3. 8086/8088 端口编址
① 采用 I/O 独立编址方式
② I/O 操作只使用 20 根地址线中的 16 根:A15 ~ A0
③ 可寻址的 I/O 端口数为 64K(65536)个
④ I/O 地址范围为 0 ~ FFFFH
⑤ IBM PC 只使用了 1024个 I/O 地址:0~3FFH
举例
端口编址:
二、简单接口芯片
1. 74LS244 三态门
举例:编程判断图中的开关状态。若全闭合则转 NEXT1,否则转 NEXT2 。
端口编址:
可以任选其中一个地址如:83FCH 作为该接口的地址。
程序部分:
2. 74LS273 锁存器
3. 74LS374锁存器
不同工作状态:
4. 综合应用
举例:根据开关状态在 7 段数码管上显示数字或符号。编程实现当 4 个开关的状态分别为 0000 ~ 1111 时,在 7 段数码管上对应显示 ‘0’ ~ ‘F’ 。
端口编址:
输入端口地址为 F1H,输出端口地址为 F0H 。
对应表:
程序部分:
三、基本输入输出方式
1. 无条件传送方式
特点:要求外设总是处于准备好的状态。
优点:软件及接口硬件简单。
缺点:只适用于简单外设,适用范围较窄。
举例:请自行编程实现,读取开关的状态,并在开关闭合时,输出编码使发光二极管亮。
程序部分:
2. 查询工作方式
① 仅当条件满足时才能进行数据传送。
② 每满足一次条件只能进行一次数据传送。
③ 适用场合:
- 外设并不总是准备好
- 对传送效率和效率要求不高
④ 工作条件:
- 外设应提供设备状态信息
- 接口应具备状态端口
(1)单个外设的查询工作方式
基础版:
升级版:
举例:数据输出
-
外设状态端口地址为 03FBH,第5位为状态标志位(= 1 忙、= 0 准备完毕)
-
外设数据端口地址为 03F8H,写入数据会使状态标志置1;外设把数据读走后又把它置 0
-
试画出其电路图,并将 BUF 中的 100 个字节数据输出。
端口编址:
电路图:
(2)多个外设的查询工作方式
优点:软硬件比较简单。
缺点:CPU 效率低,数据传送的实时性差,速度较慢。