单片机通过I/O接口电路与外设传送数据,I/O接口分为串行I/O接口和并行I/O接口两种。不同外设的工作速度差别很大,串行I/O接口采用逐位串行移位的方式传输数据,可以满足速度要求不高的串行设备接口要求;并行I/O接口采用并行方式传输数据,可以与外设高速传输数据。然而,大多数外设的速度很慢,无法与微秒级的单片机速度相比。为了保证数据传输的安全、可靠,必须合理设计单片机与外设的I/O接口电路。
1.I /O接口的功能
(1)数据传输速度匹配
单片机在与外设传送信息时,需要通过I/O接口实时了解外设的状态,并根据这些状态信息,调节数据的传输,实现单片机与外设之间的速度匹配。
(2)输出数据锁存
单片机传输速度很快,数据在总线上保留时间短,为保证输出数据能被外设可靠接收,在扩展的I/O接口电路中应具有数据锁存器功能。
(3)输入数据三态缓冲
由于外设要通过数据总线向单片机输入数据,如果总线上“挂”有多个外设,则传送数据时可能会发生冲突。为了避免数据冲突,每次只允许一个外设使用总线传送数据,其余的外设应处于隔离状态。因此,设计的I/O接口电路应能够为数据输入提供三态缓冲功能。
CPU并行处理数据,而有些外设只能处理串行数据,这时由I/O口完成串、并转换;而单片机与PC串行通信时,因为通信双方电平不匹配,需要用I/O接口进行电平变换。
2.I/O接口与端口的区别
I/O接口(Interface)是CPU与外界的连接电路,是CPU与外界进行数据交换的通道,外设输入原始数据或状态信号、CPU输出运算结果或发出命令等都要通过I/O接口电路。
I/O端口(Port)是CPU与外设直接通信的存储地址,通常将I/O接口电路中能够被CPU直接访问的寄存器或缓冲器称为端口。CPU通过这些端口来读取外设状态、发送命令或传输数据。一个接口电路可以连接一个或多个端口。例如,8255A并行I/O接口芯片中就包含有1个命令/状态端口和3个数据端口。
3.I/O端口编址
单片机采用地址的方式访问I/O端口,因此,所有接口中产生的I/O端口必须进行编址,以使CPU通过端口地址交换信息。常用I/O端口的编址有独立编址方式和统一编址方式。
(1)独立编址方式(www.xing528.com)
独立编址是将I/O端口地址空间和存储器地址空间严格分开,地址空间相互独立,编址界限分明。
(2)统一编址方式
统一编址是将I/O端口地址空间与数据存储器单元同等对待,每个I/O端口作为一个外部数据存储器RAM地址单元编址。单片机操作I/O端口时如同访问外部存储器RAM那样进行读/写操作。
8051单片机对I/O端口采用统一编址方式。
4.单片机与外设间的数据传送方式
单片机与外设之间的数据传送方式有同步、异步和中断三种。无论采用哪种数据传送方式都需要通过I/O接口电路,以实现和不同外设速度的匹配。
(1)同步传送方式
单片机与外设的速度相差不大时,采用同步方式传送数据,以实现同步无条件的数据传送。例如,单片机和片外数据存储器之间的数据传输方式就是同步传送方式。
(2)异步传送方式
单片机与外设的速度相差较大时,需要经过查询外设的状态进行有条件的传送数据,如外设空闲时,允许传输数据;外设忙时,禁止传输数据。异步传送的优点是通用性好,硬件连线和查询程序比较简单,但是数据传输效率不高。
(3)中断传送方式
中断传送方式是指利用单片机本身的中断功能实现数据传送。外设准备就绪时,向单片机发出数据传送的中断请求信号,触发单片机中断。单片机响应中断后,进入中断服务程序,实现与外设之间的数据传送。采用中断方式可以大大提高单片机的工作效率。
5.I/O接口电路种类
可编程I/O接口芯片的种类比较多,为单片机扩展I/O端口提供了便利。常用的片外I/O接口芯片有TTL芯片、CMOS器件以及可编程并行接口芯片(如8155H、8255A)。但使用可编程I/O接口芯片时,扩展电路繁杂,8155H、8255A器件也已经淘汰,实际已经很少使用。目前高性能单片机端口资源很丰富,需要时,可以选择具有多个I/O端口的单片机芯片。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。