第6章 I/O接口的扩展应用
由于外部设备(简称外设)与CPU的速度差异很大,且外设的种类繁多,数据信号形式多样,控制方案复杂,所以外设不能与CPU直接相连,必须通过接口电路使CPU与外设之间达到最佳耦合与匹配。因此,接口是CPU与外设连接的桥梁,是信息交换的中转站。
大多数情况下,外设的速度是很慢的,无法跟上微秒级的单片机速度,为了保证数据传输的安全、可靠,必须设计合适的单片机与外设的I/O接口电路。I/O接口是指输入/输出接口,分为并行接口和串行接口两种,是CPU和输入/输出设备进行数据传输的通道。I/O接口通常由大规模集成电路组成,可以和CPU集成在同一块芯片上,也可以是一块独立的芯片。常见的输入设备有键盘、开关及各种传感器等,输出设备有LED显示、打印机等。MCS-51系列单片机内部有4个并行I/O接口和1个串行I/O接口。并行接口采取多位数据同时传输数据。串行接口采用逐位串行移位方式传输数据。对于简单的I/O设备单片机可以直接连接,当连接设备有特殊要求,或系统较为复杂,需要使用较多的I/O接口时,就必须通过外接I/O接口芯片来完成单片机与I/O设备的连接,如图6-1所示。
图6-1 单片机与I/O接口、I/O设备的连接
I/O接口与I/O端口的区别如下:
I/O接口是CPU与外界的连接电路,是CPU与外界进行数据交换的通道,CPU发出命令和输出运算结果以及外设输入数据或状态信息都是通过I/O接口电路。
I/O端口是CPU与外设直接通信的地址,通常是I/O接口电路中能够被CPU直接访问的寄存器地址或缓冲器称为端口。CPU通过这些端口发送命令、读取状态或传输数据。一个接口电路可以有一个或多个端口,包含地址端口、数据端口、控制端口、命令端口、状态端口等。例如,可编程并行接口芯片8255A包含一个命令/状态端口和3个数据端口,有些端口只读不写,有些端口只写不读。