7.1 概述
MCS-51系列单片机利用并行接口可以实现数据并行传输,单片机除此之外还有可编程全双工串行通信接口,称为串行I/O接口。可以用来进行数据的串行发送和接收,也可作为一个同步移位寄存器使用,单片机通过串行接口便可实现串行通信。
数据通信按照数据的传输形式可分为两种常用形式:并行通信和串行通信。
1 并行通信
传输数据的各位同时发送或同时接收。以单字节(8bit)数据为例,单片机通过并行接口与外设并行通信的示意图如图7-1所示。
图7-1 并行通信示意图
并行传送特点:逻辑清晰、控制简单、传送速度快,并行数据有多少位就需要多少根传输线,因此传输数据需要多根传输线,系统抗干扰能力下降,故一般只在近距离通信中使用。
2 串行通信
数据的各位依次逐位传送。串行方式是将传输数据的各位按先后顺序逐位进行传送。单片机通过串行接口与外设串行通信的示意图如图7-2所示。图中,TXD是串行数据发送脚,RXD是串行数据接收脚。
串行传送特点:控制较并行传送复杂,传输速度慢,但因只需较少传输线,故适合于远距离通信。MCS-51系列单片机具备全双工的异步通信接口,使串行通信极为方便。
有时为了节省线缆数量,即使在计算机内部,CPU和某些外设之间也可以采用非并行的传输方式,如I2C、SPI、USB等标准传输方式,但它们与这里所述的串行通信有明显不同。总之,串行通信是以微处理器为核心的系统之间的数据交换方式,而I2C、SPI、USB等标准接口是微处理器系统与非微处理器型外设之间的数据交换方式。前者可以是对等通信,而后者只能采用主从方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。
图7-2 串行通信示意图
按照传输数据流向,串行通信具有三种传输形式:单工、半双工和全双工,如图7-3所示。
实际应用中,尽管多数串行通信接口电路具有全双工功能,但仍以半双工为主(简单实用),即两个工作站通常并不同时收发。
在串行数据通信中,有同步和异步两种基本方式。同步和异步的最本质区别在于通信双方是否使用相同的时钟源。
图7-3 串行通信的制式
1 异步通信
异步通信是发送端和接收端使用各自的时钟控制数据发送和接收的一种通信方式。两个时钟源彼此独立,以字符为单位组成字符帧进行的数据传送。数据以帧为单位进行传送。一帧数据由起始位、数据位、可编程校验位(可选)和停止位构成。帧和帧之间可以有任意停顿。收发双方必须在进行异步通信前事先约好异步通信的字符帧和传输速率。
异步通信特点:灵活,对收发双方的时钟精度要求较低(收发双方不同步时,能依靠在每帧开始时的不断对齐,自行纠正偏差),传送速度较低(每个字节都要建立一次同步)。STC89C52单片机只支持异步通信。
2 同步通信
通信时建立发送方和接收方时钟的直接控制,数据以块为单位进行的数据传送。同步既包含位同步,也包含字符同步,可连续串行传送数据,字符间不留间隙。
发送方先发送1~2个字节的同步字符,接收方检测到同步字符(一般由硬件实现)后,即准备接收后续的数据流。由于同步通信省去了字符开始和结束标志,而且字节和字节之间没有停顿,是在同步字符后可以接较大的数据区,同步字符所占部分很小,因此有较高的传送效率,其速度高于异步通信。
同步通信特点:数据成批传送、传输效率高(以数据块为单位连续传送,数据结构紧凑)、对通信硬件要求高(要求双方有准确的时钟)。同步通信的缺点是要发送时钟和接收时钟要保持严格同步,故发送时钟除应和发送波特率保持一致外,还要求它同时传送到接收端去。发送数据时,发送时钟的下降沿将数据串行移位输出;接收数据时,接收时钟的上升沿开始对数据位采样。