异步串行通信波特率(异步串行通信波特率误差分析)

生活常识 2023-05-15 15:35生活常识www.xinxueguanw.cn

波特率比特率 异步串行通信波特率误差分析

众所周知,异步串行通信在计算机和仪器设备控制系统中有着广泛的应用。而在对异步通信串口进行设计时,它们的通信波特率是必须考虑的问题。

波特率(Baud Rate) 单位 bps -- 每秒传送的字节数 Byte Per Second.。它是模拟线路信号的速率,也称调制速率,以波形每秒的振荡数来衡量。如果数据不压缩,波特率等于每秒钟传输的数据位数,如果数据进行了压缩,那么每秒钟传输的数据位数通常大于调制速率,使得交换使用波特和比特/秒偶尔会产生错误。波特率与比特率的关系是比特率=波特率X单个调制状态对应的二进制位数。 在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。每秒钟通过信道传输的信息量称为位传输速率,简称比特率。比特率表示有效数据的传输速率。

作为嵌入式领域的通信波特率一般按以下公式计算:

BaudRate =X* fosc/BRcnt

其中:Baud Rate: 为我们所需要的波特率,如:9600,115200,921600等等;

X: 为系统时钟的倍频系数,对于一个预设的嵌入式系统,此知为固定值

fosc:为所选晶振的标称频率

BRcnt:为产生预设波特率的值,此值一但计算出来,不会更改

从上式可以看出,要得到无误差的准确波特率,必须:

1) 晶振频率稳定严格与标称频率一致

2) 上式左右表达式要严格恒等

然而实际应用中,往往达不到如此完美,总会有一些因素导致上面两条件被破坏,从而引起波特率产生误差。从公式中我们知道波特率产生误差的来源有二

1) 因各种因素(如:环境温度、老化等)导致的晶振频率偏移,致使与标称频率不一致

2) 公式中的BRcnt为整数,当我们需要的某个波特率而按上式计算时,可能无法恰使得BRcnt为整数,从而导致了左右式不等,即是无法得到我们所期望的波特率

实践表明,当波特率的相对误差小于4.5%时,不会影响数据的正确接收,一般要保证传输的可靠性,要求误差不大于2.5%。

在实际使用中,只要一个字节(10或11bit)累计误差小于半bit时间即可。因为在发现stop位时一个字节同步接收完成,下一个字节的起始位会重新开始同步。

异步串行波特率计算公式 异步串行通信中波特率要保持一致

Copyright@2015-2025 www.xinxueguanw.cn 心血管健康网版板所有