输入输出系统(四) - I/O接口
接口可以是硬件与硬件之间, 可以是软件与软件之间; 也可以是硬件与软件之间。 这篇文章主要讲主机与I/O设备的接口。
一、 为什么要用接口?
1, 前面已经说过计算机内部采用的是总线结构, 每个外部设备都有其自己的地址, 主机通过地址来确认这次信息传输是传给哪个地址, 接口首先就要实现设备的选择, 确认哪个设备参与此次运输。 -- 实现设备的选择
2, 有些设备速度很快(比如:内存), 有些设备速度很慢(比如:键盘), 要通过接口进行数据缓冲达到数据匹配的目的。 --- 实现速度缓冲使达到速度匹配
3, 接口与主机采用并行传输, 外设与接口可能采用的是串行传输; 要在接口里面完成数据格式的转换。 -- 实现数据格式的转换
4, 主机与I/O设备工作电平可能不一致, 通过接口来转换电平, 是主机与I/O设备协调运行。 -- 实现电平的转换
5, 主机将控制命令传输到接口当中, 接口将这个命令传输到外设当中。 -- 控制命令的传输
6, 反映设备的状态(“忙”、“就绪”、“中断请求”)等。 -- 反映设备的工作状态
二、接口的功能与组成
如上六条所示,
1, 总线连接方式的I/O接口电路
设备选择线:就是地址线; 它是单向的,
数据线:数据传输线路, 双向。 条数与接口类型有关系
命令线:由主机发出, 经过译码之后可以让设备做某事。
状态线:单向。
一般接口至少都包含四个基本功能,如下图:
设备的状态标记是使用一系列的触发器来实现的, 设备一共有三种状态:忙、就绪、中断请求。 “忙”状态是使用工作触发器
来标记的。 “就绪”状态是使用完成触发器来标记的 。“中断请求”状态是使用中断请求触发器INTR来标记的, 中断请求是外部
设备向CPU发出的, 如果CPU此时处理的事情优先级小于中断请求的, 那么执行响应中断, 执行中断里面的。 但是如果此时
CPU处理的事情的优先级比中断请求高的话, 那么就暂时不响应中断; 所以就有一个屏蔽触发器MASK; 屏蔽此时的中断请求。
由上面的功能和组成可以知道I/O接口的基本电路:
三、接口分类
1, 按数据传输方式
串行传输
并行传输
2, 按功能选择的灵活性
可编程
不可编程
3, 按通用性
通用接口
专用接口
4, 按数据传输的控制方式
程序查询方式
程序中断方式
DMA方式