串行通信是将数据字节分成一位一位的形式在一条传输线上逐个传送,传输的数据线只需要一条,另外需要一条公共信号地线和若干控制信号线。因为一次只能传送一位,因此对于一个字节的数据,至少需要传输8位才能传输完毕。
单片机与外部设备通过串口通信时,需要将并行的数据转换为串行数据,再通过串口发送到外部设备。当单片机通过串口从外部设备接收数据时,需要将串行数据转换为并行数据。
单片机与外部设备进行串行通信,需要双方约定一个协议,即约定传输方式,这样才不会发生数据丢失问题。传输方式分为异步串行通信和同步串行通信两种方式。
异步串行通信
异步串行通信不需要发送方和接收方同步时钟信号,对硬件要求低,当前主流的串行通信标准RS232就是异步串行通信。
异步串行通信依靠起始位,停止位保持通信同步的串行通信方式,传输的数据帧一般包含1位起始位,5~8位数据位,1位校验位和1位停止位。
上图是一个完整的异步串行通信数据帧,起始位为低电平,然后是8位数据,8位数据后是校验位,校验位为低电平或高电平,最后是停止位,停止位为高电平。
例如:用异步串行传输方式发送16进制数41H,数据位为8位,采用奇校验,停止位为1位,传输波形图为:
通过上述传输波形图可以看出,起始为低电平(0t),41H的二进制数为1000 0010,1的个数为2个,因此校验位为高电平(9t),停止位也为高电平(10t)。
同步串行通信
同步串行通信要保持发送方和接收方的时钟同步,因此同步通信要使用附加信号线,即时钟同步的信号线,发送方和接收方在发送方提供的相同时钟频率下完成同步串行通信。
发送方和接收方建立同步后,在同步时钟的控制下按位进行发送接收,在发送数据位之前,需要先发送一个特定的同步字符,同步字符后面是数据位,每个数据位之间的距离均为 “位间隔”的整数倍,因此在数据传输过程中,发送方和接收方完全可以确定每个数据位的位置。
串行通信的制式
串行通信分为单工、半双工、全双工三种制式。单工是指数据只能有发送方发送数据到接收方,接收方不能发送数据到发送方,即数据传输只能是一个方向。半双工是指数据传输可以沿两个方向,但需要分时传输。全双工是指数据可以同时进行双向传输。
串行通信接口标准
RS-232是现在主流的串行通信接口之一,它被广泛用于计算机串行接口外设连接,目前较为常用的串口有9针串口和25针串口,RS-232接口对传输距离有限制,传输距离在15m之内,通信设备可以直接连接到RS-232端口,若距离较远,需要使用中继器。RS-232端口的外形和针脚说明如下图所示。
全部0条评论
快来发表一下你的评论吧 !