IO 接口概述

IO 接口的基本功能

image.png

  • 速度匹配:高速设备 (CPU) 与低速设备(外部 IO 设备)
  • 信号的驱动能力:驱动外部 IO 设备,提升 CPU 带动外设的能力
  • 信号形式和电平的匹配:外部 IO 设备的电平高低,信号类型、格式等
  • 总线隔离:外部设备和 CPU 之间不能直接通信,防止外部干扰进入

image.png

  • IO 接口里面的寄存器就叫做 IO 端口,IO 端口有三种
  • 数据端口:数据传输可进可出,所以数据端口有输入和输出两个方向
  • 状态端口:用来接收外部设备当前的工作状态 (外部设备的缓冲区是否空闲) 输入 CPU,只有输入方向
  • 控制端口:用来存储 (锁存) 各种控制信号,将 CPU 发出的控制信息传输出去并且负责控制外部设备

    • IN 指令:CPU 读入端口状态,读入到累加器中
    • OUT 指令:CPU 将数据 (累加器) 写出到 IO 端口

      IO 端口及其编制方式

      image.png
  • 状态信息既不是地址信号,也不是控制信号,所以它一定是通过数据总线送进 CPU

  • 若状态信息允许,则 CPU 发出相应的控制信号
  • 数据通过数据端口,实现数据的输入或者输出

image.png image.png image.png

  • 如今采用独立编制

image.png

  • IO/#M 为高电平,表示访问端口,A16-A19 默认全 0,无效状态

    IO 地址译码

    image.png image.png

  • 由于端口地址资源丰富,端口地址译码常采用部分地址译码

【例】IO 地址译码
image.png image.png

  • 部分地址译码,高四位任意状态
  • 后两位,片内寻址,寻址具体端口
  • 剩下的,片选,寻址接口芯片

image.png