UART波特率:它需要多准确?

最常见的时序敏感任务之一是UART通信。接口缺少外部时钟,只有当内部波特率相等时,Tx和Rx器件才能可靠地共享数据。

但当然“相等”并不是一个真正的工程词 - 我们总是要考虑噪声,误差和变化,而对于微控制器的内部振荡器,我们不是在谈论百万分之几。根据我的经验,微控制器很少提供内部振荡器,其精度优于±1.5%。具有±1.5%时钟源的两个微控制器的波特率相差3%。这够好吗?

波特率,比特周期和采样

(注意:对于剩下的分析,我们将使用Tx器件作为参考;换句话说,我们假设Tx器件始终处于标称波特率,并且Rx器件处于不准确的波特率。)

要记住的第一件事是,唯一相关的错误是差变送器的波特率和接收器的波特率之间(而不是预期的波特率和实际波特率之间的差)。例如,如果两个通信设备都以9800波特率运行,即使预期速率(基于标称时钟频率)为9600波特,您也可以轻松传输数据。

下图显示了UART接收中涉及的基本时序过程。如果接收器波特率与发送器波特率完全匹配,并且在位周期的正中间对第一位进行采样,则最后一个数据位也将在位周期的正中间进行采样。
在这里插入图片描述
如果波特率(以及比特周期)不同,则每个采样点将逐渐靠近比特转换。换句话说,最后一个数据位是受波特率差异影响最严重的位。注意:为方便起见,我们始终假设Rx位周期长于Tx位周期; 如果我们假设一个较短的Rx比特周期,结果将是相同的。
在这里插入图片描述
解决最大允许误差:更简单的版本

基于这种观察,我们可以首先提出以下建议:如果在从最后一个数据位到停止位的转换之前对最后一个数据位进行采样,则波特率足够准确。(我们假设系统可以容忍不正确采样的停止位。)但是我们不希望在预期转换之前采样一纳秒; 我们需要一些保证金。我认为合理的余量是20%-ie,最后一位必须在从最后一个数据位到停止位的转换之前的位周期的至少20%被采样。

在这里插入图片描述
Tx设备的位周期定义如下:
在这里插入图片描述
如果我们使用E来表示接收器的波特率和发送器的波特率之间的百分比差的绝对值,那么我们在Rx端的附加位周期时间如下:
在这里插入图片描述
对于第一次分析,我们将通过假设定时过程在起始位的正中间开始来简化。因此,对于一个八数据位接口,采样时间为最后一个数据位会被8ΔT被关闭RX。因此,我们的准确性足够的条件如下:

在这里插入图片描述
因为我们说最后一个数据位的可接受采样窗口是从50%(理想值)到80%(接近我们愿意去的转换),80% - 50%= 30%= 0.3 。

我们可以解决最大允许E如下:
在这里插入图片描述
因此,基于这种简化的分析,只要发送器波特率和接收器波特率之间的差异小于3.75%,八位数据位UART通信就应该是可靠的。

转自:https://baijiahao.baidu.com/s?id=1633378965807142906&wfr=spider&for=pc

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值