输入输出系统(四) - I/O接口

接口可以是硬件与硬件之间, 可以是软件与软件之间; 也可以是硬件与软件之间。 这篇文章主要讲主机与I/O设备的接口。

一、 为什么要用接口?

1, 前面已经说过计算机内部采用的是总线结构, 每个外部设备都有其自己的地址, 主机通过地址来确认这次信息传输是传给哪个地址, 接口首先就要实现设备的选择, 确认哪个设备参与此次运输。 --  实现设备的选择

2, 有些设备速度很快(比如:内存), 有些设备速度很慢(比如:键盘), 要通过接口进行数据缓冲达到数据匹配的目的。  --- 实现速度缓冲使达到速度匹配

3, 接口与主机采用并行传输,  外设与接口可能采用的是串行传输; 要在接口里面完成数据格式的转换。 -- 实现数据格式的转换

4, 主机与I/O设备工作电平可能不一致, 通过接口来转换电平, 是主机与I/O设备协调运行。 -- 实现电平的转换

5, 主机将控制命令传输到接口当中, 接口将这个命令传输到外设当中。 -- 控制命令的传输

6, 反映设备的状态(“忙”、“就绪”、“中断请求”)等。 -- 反映设备的工作状态


二、接口的功能与组成

如上六条所示, 

1, 总线连接方式的I/O接口电路

输入输出系统(四) - I/O接口

设备选择线:就是地址线; 它是单向的,

数据线:数据传输线路, 双向。 条数与接口类型有关系

命令线:由主机发出, 经过译码之后可以让设备做某事。

状态线:单向。

一般接口至少都包含四个基本功能,如下图:

输入输出系统(四) - I/O接口

设备的状态标记是使用一系列的触发器来实现的, 设备一共有三种状态:忙、就绪、中断请求。 “忙”状态是使用工作触发器

来标记的。 “就绪”状态是使用完成触发器来标记的 。“中断请求”状态是使用中断请求触发器INTR来标记的, 中断请求是外部

设备向CPU发出的, 如果CPU此时处理的事情优先级小于中断请求的, 那么执行响应中断, 执行中断里面的。 但是如果此时

CPU处理的事情的优先级比中断请求高的话, 那么就暂时不响应中断; 所以就有一个屏蔽触发器MASK; 屏蔽此时的中断请求。

由上面的功能和组成可以知道I/O接口的基本电路:

输入输出系统(四) - I/O接口

三、接口分类

1, 按数据传输方式

串行传输

并行传输

2, 按功能选择的灵活性

可编程

不可编程

3, 按通用性

通用接口

专用接口

4, 按数据传输的控制方式

程序查询方式

程序中断方式

DMA方式