输入输出技术概述
- I/O端口的基本功能
- I/O端口及其编址方式
- I/O地址译码
I/O接口
接口要解决的问题
- 速度匹配 –> 数据的缓冲与暂存
- 信号的驱动能力 –> 信号驱动
- 信号形式和电平的匹配–> 信号类型转换
- 信息格式 –> 信号格式转换
- 时序匹配(定时关系)
- 总线隔离 –> 三态门
接口中的寄存器,就是端口
- 对于数据而言,有输入输出两方向,所有有两个端口
- 数据输入寄存器(or 三态门
- 数据输出寄存器(锁存器
- 状态寄存器
- 保存外设当前状态,供CPU读取(输入寄存器)
- 命令寄存器
- 存放控制命令(设定接口功能、参数和工作方式)
- 用于锁存控制信号
I/O端口编址
端口
: 接口电路中用于缓存数据及控制信息的部件
- 数据端口
- 状态端口
- 控制端口
- 计算机系统中包含各种不同功能的接口电路
- 每个接口中含1个或多个端口
- 端口编址
- 为确保CPU能够访问到每个不同的端口
- 寻址端口的方法:
- 先找到端口所在的接口电路芯片 –> 片选
- 再再该芯片上找到具体访问的端口 –> 片内寻址
- 若接口中仅有一个端口,则找到芯片即找到端口
- 若接口中有多个端口,则找到芯片后需再找端口
每个端口地址=片选地址(高位地址)+片内地址
- 8086/8088寻址端口的能力:
- 64K个端口
- 端口的编址方式:
- 与内存统一编址
- 独立编址
独立编址
:内存地址资源充分利用,能够应用于端口的指令较少
- 采用I/O独立编址方式,与内存共用地址总线,用IO/#M信号状态区分
- 访问端口时仅使用地址总线的:A15~A0
- 可寻址的I/O端口数为64K(65536)个,I/O地址范围: 0~FFFFH
- IBM PC只使用了1024个I/O地址(0~3FFH)
I/O 地址译码
- 目的:
- 确定端口的地址
- 参加译码的信号:
- #IOR, #IOW, 高位地址信号
- 对端口读/写信号的产生条件
- IO/#M=1
- #RD=0 –> #IOR=0
- #WR=0 –> #IOW=0
OUT 指令将使总线的#IOW信号有效
IN 指令将使总线的#IOR信号有效
当接口只有一个端口时:
- 无片内地址,全部地址信号均为高位地址(可全部参与译码),译码输出直接选择该端口;
当接口具有多个端口时:
- 则16为地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。
由于端口资源丰富,端口地址译码常采用部分地址译码
I/O地址译码例
某外设接口有4个端口,地址为2F0H–2F3H,由
译码得到,而 用来区分接口中的4个端口。试画该接口与系统的连接图。 地址范围:
- XXXX 0010111100 00
- XXXX 0010111100 11
高4位可以为 任意状态,不参与译码电路连线(图中不接入
低2位,必须为片内地址
I/O端口译码电路的输入信号,不可能包含
,因为,能寻址的端口最多16位地址
读写控制信号必须作为译码器的输入信号
简单接口芯片
简单–> 没有可能,通过软件的方式改变工作模式,不可能改变传输方向; 内部没有更多的辅助控制逻辑,只是简单的通道,没有独立端口;
接口的分类及特点
- 按传输信息的方向:
- 输入接口
- 输出接口
- 按传输信息的类型:
- 数字接口
- 模拟接口
- 按传输信息的方式分类:
- 并行接口
- 串行接口
接口特点
- 输入接口:
- 要求对数据具有控制能力
- 常用三态门实现
- 输出接口:
- 要求对数据具有锁存能力
- 常用锁存器实现
对于三态门,也有C标记出没有圈圈的,高电平导通版本
三态门接口
- 特点:
- 具有对数据的控制能力,但不具备对数据的控制能力
- 74LS244
- 含8个三态门的集成电路芯片
- 在外设具有数据保持能力时,用来输入接口
两侧各有4个三态门,每个三态门的控制端都连着含有非门的低电平有效引脚(1和19)
锁存器接口
- 特点:
- 具有对数据的锁存能力
- 8D锁存器
- 74LS273: 8D触发器,不具备数据的控制能力
- 74LS373: 含三态的8D触发器,具有对数据的控制能力
- 既可以做输入接口,也可以做输出接口。
74LS273
- 由8个D触发器组成
仅当CP端出现 上升沿 时Q端才会改变
基本I/O方法
- 无条件传送
- 查询式传送
- 中断方式传送
- 直接存储器存取(DMA)
有的教材/课程,将前两种方式,统一地称为
程序控制方式
DMA可以被认为是,通道技术(大型机)的雏形阶段
无条件传送
- 要求外设总是处于准备好状态
- 优点:
- 软件及接口硬件简单
- 缺点:
- 只适用于简单外设,适应范围较窄
读取开关状态,闭合则亮,断开则一直重复
查询工作方式
- 仅当条件满足时才能进行数据传送;
- 每满足一次条件只能进行一次数据传送
- 使用场合:
- 外设并不总师准备好
- 对传送速率和效率要求不高
- 工作条件:
- 外设应提供设备状态信息
- 接口应具备状态端口
优点:
- 软硬件比较简单
缺点:
- CPU效率低,数据传送的实时性差,速度较慢
中断控制方式
特点:
- 外设在需要时向CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行自己的程序。
优点:
- CPU效率高,实时性好,速度快。
缺点:
- 程序编址相对较为复杂。
以上三种I/O方式的共性
- **信息的传送均需通过CPU
- 软件:
- 外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式);
- 硬件:
- I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的。
- 缺点:
- 程序的执行速度限定了传送的最大速度
DMA 控制方式
DMA,直接存储器存取
- 特点:
- 外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;
- 总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。
DMA控制方式的工作过程
- 外设向DMA控制器发出“DMA传送请求”信号QRD;
- DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD;
- CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD信号进行响应;
- DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK
DAM工作方式
- 周期窃取:
- 每个DMA周期只传送一个字节或一个字就立即释放总线。
- 数据块传送:
- DMAC在申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。
- 直接存取方式:
- DMA的数据传送请求直接发到主存储器,在得到响应后,整个工作过程在DMA控制器中由硬件完成。
下面两种方式,硬件成本更高,会比较贵。
今天微机过程中,更多是 周期窃取
每申请到一次总线的控制权,只占用一次周期,完成一次传送
然后将总线换给cpu一个周期,cpu在此周期做其他的事情
结束后,再重新请求,总线控制权
总结
- 无条件传送:
- 简单,使用范围小,仅适用于“随时准备好”的低速外设
- 查询工作方式
- 简单,适用于具备“状态信息”的低速外设
- CPU效率低,控制实时性差
- 中断方式
- 适用于中速外设
- 相对于查询方式,CPU效率较高,控制实时性较好
- DMA方式:
- 数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率。
- 控制复杂,硬件陈本相对较高
简单IO接口电路实例
例1 查询工作方式
外设状态端口地址位03FBH,第5位(bit5)为状态标志BUSY/#READY;
外设数据端口地址为03F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0010111100
要求:
画出该控制系统电路图
利用查询工作方式,将DATA下100B数据输出
- 题目分析:
- 外设有1位状态位,需要通过输入接口将状态信息输入系统;
- 可选择一个三态门或74LS244接口
- 数据需由系统输出,需要通过输出接口
- 可选择74LS273接口
- 输入接口地址=03FBH,bit5=1表示BUSY
- 输出接口地址=03F8H
- 待输出数据在内存中的首地址=DATA;
- 待输出数据块大小=100B
- 外设有1位状态位,需要通过输入接口将状态信息输入系统;
1 | LEA SI, DATA |
例2
根据开关状态在7段数码管上显示数字或符号
- 设输出接口的地址为F0H,输入接口地址为F1H
- 当开关的状态分别为0000~1111时,在7段码数码管上对应显示‘0’~‘F’
题目分析:
输入设备:4个开关
输出设备:1个七段数码管
需要1个输入接口,1个输出接口
1 | Seg7 DB 3FH, 06H, 5BH,... |
- Post title: microcomputer_principle_13_I/O技术
- Create time: 2023-02-25 19:33:57
- Post link: embedded-system/microcomputer-principle-13-i-o技术/
- Copyright notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.