IO接口概述
IO接口的基本功能
- 速度匹配:高速设备(CPU)与低速设备(外部IO设备)
- 信号的驱动能力:驱动外部IO设备,提升CPU带动外设的能力
- 信号形式和电平的匹配:外部IO设备的电平高低,信号类型、格式等
- 总线隔离:外部设备和CPU之间不能直接通信,防止外部干扰进入
- IO接口里面的寄存器就叫做IO端口,IO端口有三种
- 数据端口:数据传输可进可出,所以数据端口有输入和输出两个方向
- 状态端口:用来接收外部设备当前的工作状态(外部设备的缓冲区是否空闲)输入CPU,只有输入方向
- 控制端口:用来存储(锁存)各种控制信号,将CPU发出的控制信息传输出去并且负责控制外部设备
- IN指令:CPU读入端口状态,读入到累加器中
- OUT指令:CPU将数据(累加器)写出到IO端口
IO端口及其编制方式
- 状态信息既不是地址信号,也不是控制信号,所以它一定是通过数据总线送进CPU
- 若状态信息允许,则CPU发出相应的控制信号
- 数据通过数据端口,实现数据的输入或者输出
- 如今采用独立编制
- IO/#M为高电平,表示访问端口,A16-A19默认全0,无效状态
IO地址译码
- 由于端口地址资源丰富,端口地址译码常采用部分地址译码
【例】IO地址译码
- 部分地址译码,高四位任意状态
- 后两位,片内寻址,寻址具体端口
- 剩下的,片选,寻址接口芯片