输入输出设备I/O设备总结
扫描二维码
随时随地手机看文章
I/O设备又叫输入输出设备。
如上图,对于I/O bus 包含数据总线、控制总线、地址总线;
每一个I/O设备均连接到I/O总线上,与pc进行数据传输。所以衍生出I/O接口的概念,逐渐产生了一门技术“I/O接口技术”。
I/O接口电路位于cpu和外设之间(复杂的外设需要有一个设备控制器),外设通过I/O接口把信息传送给微处理器进行处理,微处理器将处理完的信息通过I/O接口传给外设。
一个典型的I/O接口应包含:端口,地址译码,总线驱动,控制逻辑。
I/O端口属于cpu可以直接访问的寄存器,包括状态寄存器、数据寄存器、控制寄存器。
地址译码属于对I/O总线的地址进行译码选中I/O端口。
总线驱动是在I/O端口和I/O总线之间的一个“三态门”,实现cpu和I/O接口之间的“浮空”和“联通”。
控制逻辑是接收控制端口的信息对接口工作进行控制。
(以上黑色文字,属于教课书定义,可能理解与understanding the Linux kernelⅢ出入,只作为参考)
I/O总线通过总线驱动(三态),连接到I/O port,寄存器组,通过I/O接口解读信号,发送给设备控制器进行进一步解释,转化为适当的电信号,控制外设相应的的操作。
反向操作原理相同。
I/O接口(I/O interface)分为专用的接口和通用的接口。
专用I/O接口:专门用于一个特定的硬件设备。例如:图形接口,网络接口(与网卡中的控制器封装在一起,可以接受和发送网络报文)。
通用的I/O接口,用来连接多个不同的硬件设备。例如:并口(打印机),串口(UART)、scsi接口,通用串行总线(USB)。
复杂的设备可能需要一个设备控制器(devicecontroller)来驱动。控制器的两个重要的作用参考understanding linux kernelⅢ中的文字。
比较简单的设备,如中断控制器,定时器等不需要对I/O接口的高级指令进行二次解析和电平的转换,所以不需要设备控制器。
I/o设备一般分为字符设备和块设备。