波特率偏差对UART通讯的影响

通讯原理

UART(Universal Asynchronous Reciver/Transmitter),通用异步收发器,异步通讯说明无时钟信号,通过检测数据包中的起始位和停止位来接收数据,数据通信格式如下:
在这里插入图片描述

图1:UART数据通信格式

起始位数据位奇偶校验位停止位
1 bit(低电平)通常为1Byte1 bit(可选)1 bit(高电平)

波特率与时钟的关系

时钟因子 = 时钟频率 / 波特率 = 时钟频率 * 位周期
波特率:在1个单位时间内能传输的数据量(单位bit)
位周期:传输一个bit数据所需的时间
时钟因子:设置波特率时的时钟分频系数

波特率偏差

当收发端波特率存在轻微偏差(±4%左右,具体需要根据波特率进行实验测试)时,UART仍可正确通讯,其原理如下(数据格式以 1 bit 起始位 + 8 bit 数据位 + 1 bit 停止位 为例):

波特率 = 1 / 位周期

  • 当收发端波特率相同时(Baud),位周期也相同,接收端根据当前位周期 T r x T_{rx} Trx对接收到的数据进行采样接收,采样点将正好落在每1 bit数据的中心,即采样周期 T s T_s Ts=位周期 T r x T_{rx} Trx=位周期 T t x T_{tx} Ttx,如图一所示,此时能够保证每1 bit数据都能够正确采样,即整个数据正确接收。
  • 当发送端波特率出现偏差时(Baud '),位周期发生变化,接收端位周期Trx保持不变,接收端根据当前采样周期 T s T_s Ts T s = T r x T_s = T_{rx} Ts=Trx)对接收到的数据进行采样接收,此时采样点与所接收数据中心并不完全对应( T t x ≠ T s T_{tx} \neq T_s Ttx=Ts)。
    在这里插入图片描述

图2:采样偏差( Δ T = T t x − T s \Delta T = T_{tx} - T_s ΔT=TtxTs

  • 与位周期有关,当接收端采样周期Ts小于发送端位周期Ttx时,采样点偏左;反之偏右。此时采样每1 bit数据时均存在些许采样偏差 Δ T \Delta T ΔT,当传输整个数据(8 bit)累积偏差( 8 × Δ T 8 \times \Delta T 8×ΔT)超过半个发送端位周期( 1 2 × T t x \frac{1}{2} \times T_{tx} 21×Ttx)时,数据采样将发生错误,此时整个数据不能够正常接收。

  • 值得注意的是,每次接收数据采样点均会从第1 bit 数据初始化,这意味着采样偏差并不会累积至下一次数据传输,如图1所示,每次检测到下降沿时将重新开始进行数据采样。

因此,理论上发送一个字节数据(8 bit数据,不包含起始位和停止位)接收端采样累积偏差( 8 × Δ T 8 \times \Delta T 8×ΔT)不超过发送端位周期 T t x T_{tx} Ttx的50%则数据能够正确发送接收。

结论:能否成功通讯与单个数据的数据长度收发端相对位周期偏差有关。

参考链接:https://baijiahao.baidu.com/s?id=1633378965807142906&wfr=spider&for=pc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值