波特率(Baudrate)的简单理解:1秒中波形变化的次数(单位Baud)。波特率又被称作为波形速率或调制速率。
在串口通信中,波特率表示串口通信的速率,即每秒传输二进制数据的位数。
不得不提的是,与之相似的概念------比特率(bitrate):1秒中传送的信号数(单位:bps 比特/秒),即单位时间内通过信道传输的比特数。由于二者定义相近,都是用来衡量调制解调器传送速率的单位,在某些调制方式下两者数值相等,所以要特别注意不要混淆。
下面浅谈一下二者之分:
首先要了解码元的概念:按照官方解释,在数字通信中常常用时间间隔相同的符号来表示一个二进制的数字,这样的时间间隔内的信号,称为码元;相应的时间间隔称为码元的宽度。最通俗的解释说码元就是一个脉冲信号。
那么波特率就是指单位时间内通过信道传输的码元数。一个码元可以只携带一个比特的数据,也可携带两个甚至更多,这与调制方式有关。两者的换算关系如下(M是指每个码元的离散电平数,可以理解为码元的种类):
值得一提的是,在曼切斯特编码中,b(比特率) : B(波特率) = 1 : 2
波特率的常用数值有:9600、19200、38400、57600以及115200等。
之所以有常用数值,是因为波特率不能随意设定,简单来说通信双方必须设置相同的波特率才能成功通信。具体原因涉及到串口通信的基本原理,以下将简要地介绍一下:
串口通信可分为并行通信和串行通信:
并行通信:优点是传输速度快,缺点是传输距离短(几米以内)、占用资源多(需占用多条数据线)、抗干扰能力差;
串行通信:优点是传输距离长、占用资源少、抗干扰能力强,缺点是传输速度慢(随着技术的提高这一差距在缩小);
其中串行通信又可分为同步串行通信和异步串行通信。
同步串行通信:通信双方在同一时钟控制下传输数据;
异步串行通信:通信双方在各自的时钟控制下传输数据;
因此,对于异步串行通信的双方来说,必须设置同样的波特率才能保证通信成功,进而约定俗成地有了像9600、115200这样的常用波特率。