目标: 单片机串口通信理解(一)
1.通信的基本概念
通信的方式可以分为多种,按照数据传送方式可分为串行通信和并行通信。按照通信的数据同步方式,可分为异步通信和同步通信。按照数据的传输方向又可分为单工、半双工和全双工通信。在这个单片机上起的作用是单片机与上面模块的通信和单片机之间的通信
1.1串行通信与并行通信
(1)串行通信
串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂,速度慢
串行通信
(2)并行通信
并行通信通常是将数据字节的各位用多条数据线同时进行传送,通常是8位、16位、32位等数据一起一块一块的传输。
特点:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难,抗干扰能力差。
并行通信
1.2异步通信与同步通信
(1)异步通信
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双
方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间
间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。
特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。
异步通信
异步通信
(2)同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。
同步通信
1.3单工、半双工与全双工通信
(1)单工通信
单工是指数据传输仅能沿一个方向,不能实现反向传输。
单工
(2)半双工通信(RS485)
半双工是指数据传输可以沿两个方向,但需要分时进行。
半双工
(3)全双工通信(RS232)
全双工是指数据可以同时进行双向传输。
全双工
1.4通信速率
衡量通信性能的一个非常重要的参数就是通信速率,通常以比特率(Bitrate)来示。比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。
如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:
10位×240个/秒 = 2400 bps
比特率(不是波特率):定时器,或者说是计数器。使用计数器对一个较稳定的频率信号计数,比如使用11.0592M的晶振,12分频产生921600Hz的频率信号。这个921600就是51的串口的时基。
比特率
是测量每秒可传输数据比特位(1或者0)数量的单位。例如,Bitrate=1024bps是指每一秒钟传输了1024个1或者0。
波特率
表示每秒钟一个信号(从0变为1或从1变为0)或符号(连接的电压、频率或相位)在通信通道中改变状态或发生变化的次数。例如,Baudrate=1024Bdps是指该通道每秒钟最多改变状态1024次。
在上面的例子中,波特率和比特率是相同的。但由于波特率可以被理解为单位时间内传输符号的个数(传符号率),通过不同的调制方法可以在一个符号上负载多个比特信息。
所以如果该符号是二进制的话,波特率在数值上等于比特率的,但是意义还是不同,一个是符号,一个是比特。
为了提高通信速度,更高级的调制解调器会使用能在一个符号中发送多个位的调制技术。如果通道在一个波中发送4个位,那么波特状态只改变1次。因此,在这种情况下比特率等于波特率的4倍。