研究背景与目的
- 项目中, 自测串口打包逻辑时, 需要对串口的比特与实际传输时间有对应关系, 但是在使用串口调试助手时, 发现参数内容为波特率, 因此产生疑问:
- 波特率如何定义
- 串口的比特率与之有何关联
波特率(B)
别称: 码元速率, 传码率, 符号率
含义: 每秒传送码元的数目(Baud)
通信中的概念
- 波特率的转换, 就是载波状态的变化速率, 波特率越高, 响应的传输速率越高, 频谱成分越高, 占用的带宽越宽
- 系统在使用时间域的波形表示波特率时, 需给出波特率时说明码元的进制及系统的位置
- 因为波特率中不包含进制信息, 而系统中不同的位置可能采用不同的进制
码元: 承载信息量的基本信号单位, 一个码元就是一个脉冲信号
码元进制: 8进制码元可携带log2^(8)=3
个bit
比特率(bit/s)
含义: 传信率的度量, 单位时间内传输的二进制代码的有效位
带宽单位为bps, bit/s
波特与比特的关系
比特率 = 波特率 * 单个调制状态对应的二进制位数
比特率 = 波特率 * log2(码元进制)
串口的波特率
-
串口为2进制码元类型, 每次调制的二进制位数为1, 即一个脉冲(码元)包含1bit信息
-
计算
2400, 8, N, 1
的每秒传输字节数:1.
2400/10 = 240帧
2.240*8 = 1920bit = 240Byte
3. 1Bit所需时间为1s/2400 = 0.42ms/bit
4. 传**240帧(240Byte)**数据,需要240 * 10 * 0.42 = 1008ms
总结
- 串口参数中的波特率等于比特率, 串口只是特例, 是由于串口的调制方式为” 单个调制状态对应的二进制位数为1”
- 若条件允许, 本着不解决不放过的原则, 就发现别有洞天