0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

波特率漂移导致通信异常的故障排查过程

AGk5_ZLG_zhiyua 来源:佚名 作者:佚名 2019-01-08 13:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

示波器的协议解码功能大家都不生疏,你是否有过波形看起来正常,协议参数、解码设置都正确,却无法正常解码的经历呢?本文以UART协议为例,分享由于波特率漂移导致通信异常的故障排查过程。

什么是波特率漂移呢?可以理解为被测部件晶振有偏差,导致实际波特率和正常的波特率不一致。为什么波特率漂移会导致通信异常呢?本文从波形出发,带你自检解码结果。

一、波特率漂移导致通信异常的故障排查

引出这样一个真实的例子,PC端发送串口数据为“0xEE 0x61 0x32 0xFF 0xFC 0xFF 0xFF”,示波器解码结果为“0xEE 0x98 0xF6 0xFC 0xFF”初步判定通信故障。但协议参数设置和解码设置都正确,为什么会出现收发不一致的现象呢?

下文将解码时协议参数设置中的波特率都设置为9600 bps,实际为9600 bps,10126 bps的波形图解码结果对比(如图1所示)分析为例,分享波特率漂移后导致波形有偏差,从而出现通信异常的原因排查过程。

图1 同一解码波特率下的不同波形解码结果图

首先讲讲UART的解码原理。当示波器解码UART信号时,将空闲电平之后的下降沿作为开始位,然后从波形中等间隔采样,以等间隔时间段内的采样点中的多数状态作为该位的解码数值。不同波特率的波形,最小数据位宽不一致,时间T=1/采样率,实际采样率大的波形对应的时间就小,所以从图1中可看出波特率为10126bps的波形像往左偏移了。

当解码时设置的波特率同为9600时,采样点的位置是根据9600的波特率来确定的,当实际采样率和9600bps有偏差时,误差会逐渐累积,从而导致解码有偏差。设置的数据位宽越大,越容易叠加误差。

二、自检波特率方法

从波形出发,根据波形最小位宽估算波特率,此法适用于波特率偏差较大或不确定波特率该设置多少时。这是工程师们较习惯的自检方法。估算波特率需要看波形中的最小位宽,从来图2看,时基档位为100us,最小位宽刚好占一格,则最小位宽为100us左右,换算之后等于10000bps。

想要得到更精确的波特率数值,可以使用示波器的测量功能。打开示波器面板中的【measure】,选择波特率测量项,观察波特率测量结果对比,如下图2红框内的测量结果。

开头中引出的例子,正是因为波特率产生了漂移,实际为10000 bps,而解码时按照正常部件的9600bps来设置,这么一算,波特率误差大于4%,因此会导致解码结果不正确。换个晶振再解码,通讯果然正常了。

图2 从波形最小位宽估算波特率图

总结

在解码中波特率虽然只是一个参数,但因其漂移产生的影响不容忽视,它可能就是导致通信故障的因素。解码前注意检验波特率,这么一个小细节也许可以省去日后排查故障的时间。从波形出发,重新审视示波器价值,它用来观察波形和分析数据就是为了检测被测部件是否正常的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 示波器
    +关注

    关注

    113

    文章

    6967

    浏览量

    194689
  • 波特率
    +关注

    关注

    2

    文章

    319

    浏览量

    35444

原文标题:波形正常但是解码失败?可能是波特率漂移了

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    UART波特率计算及UART收发回显实验

    决定串口波特率的寄存器有BRR(Bite Rate Rigister),SEMR(Serial Extended Mode Rigister)和MDDR(Modulation Duty
    的头像 发表于 10-17 09:51 2384次阅读
    UART<b class='flag-5'>波特率</b>计算及UART收发回显实验

    【排障帖】分享串口通信常见问题自查流程

    参数,如波特率、校验位等不一致,同样会导致无法正常通信。 此外,以下这些细节也是我们在排查过程中需要注意的: ①信号干扰与屏蔽: 通信信号在
    发表于 09-10 11:45

    115200的波特率,为啥实际速度只有11KB/s?

    波特率≠真实速度! 这几个概念确实容易混淆,但它们描述的是通信过程中不同层面的速率指标。让我们一起来理清楚它们的区别和联系↓ 主要区别解析 比特 (Bit Rate): 指每秒传输的
    的头像 发表于 09-10 11:18 395次阅读

    请问如何使用低功耗 UART (LP UART) 波特率补偿?

    如何使用低功耗 UART (LP UART) 波特率补偿?
    发表于 08-21 07:05

    波特率是什么

    波特率是串行通信中的一个核心参数,用于描述数据在传输线路上的传输速率。以下从定义、单位、与比特的关系、实际应用及设置注意事项等方面进行详细说明: 一、定义与本质 波特率(Baud R
    的头像 发表于 07-22 11:11 5754次阅读

    可编程电源的通信波特率应如何设置?

    (如14400bps)导致兼容性问题。 通信距离与波特率平衡 短距离(<10m):可选用高波特率(如115200bps)以提高数据传输效率,适用于实时监控或高速控制场景。 长距
    发表于 07-07 15:01

    基于瑞萨64位MPU RZ/G2L的uboot串口多波特率支持介绍

    本文主要介绍基于瑞萨64位MPU RZ/G2L,讨论uboot下非常规波特率115200的支持方法,用于解决客户对uboot下特殊波特率的需求,供客户参考。
    的头像 发表于 07-04 15:54 2761次阅读
    基于瑞萨64位MPU RZ/G2L的uboot串口多<b class='flag-5'>波特率</b>支持介绍

    直流充电测试负载常见故障排查

    直流充电测试负载作为高精度电力电子设备,其故障排查需结合电力电子、自动控制、热力学等多学科知识。本文从典型故障现象出发,结合工程实践案例,梳理系统性排查方法。 一、
    发表于 03-18 12:32

    CAN总线故障排查:从问题到解决的实战案例

    视频推荐在工业现场的煤安监控网络中,CAN总线通信常因复杂环境出现数据丢失问题。本文以一起煤安监控网络中CAN总线数据丢失的故障排查案例,简述了排查过程和解决方法,为工业现场CAN
    的头像 发表于 02-28 11:37 1404次阅读
    CAN总线<b class='flag-5'>故障</b><b class='flag-5'>排查</b>:从问题到解决的实战案例

    Java应用OOM问题的排查过程

    导读 本文记录最近一例Java应用OOM问题的排查过程,希望可以给遇到类似问题的同学提供参考。 前言:此文记录最近一例Java应用OOM问题的排查过程,希望可以给遇到类似问题的同学提供参考。在本地
    的头像 发表于 02-12 11:15 1072次阅读
    Java应用OOM问题的<b class='flag-5'>排查过程</b>

    CAN总线十万个为什么 | CAN自定义波特率有什么用?

    导读CAN总线通信中,波特率一致并不总能保证通信顺畅。本文将揭秘自定义波特率的原理和应用,探讨如何通过优化采样点和提高容忍度解决通信问题,助
    的头像 发表于 02-07 11:36 1100次阅读
    CAN总线十万个为什么 | CAN自定义<b class='flag-5'>波特率</b>有什么用?

    异步串行接口有哪些,异步串行接口为何需要波特率

    在现代电子通信领域,异步串行接口作为数据交换的一种基本方式,广泛应用于各种嵌入式系统、计算机设备以及远程通信网络中。本文将深入探讨异步串行接口的主要类型,并解析为何波特率在异步串行通信
    的头像 发表于 01-29 14:47 1577次阅读

    AN-891: ADuC703x系列LIN波特率计算

    电子发烧友网站提供《AN-891: ADuC703x系列LIN波特率计算.pdf》资料免费下载
    发表于 01-14 15:53 0次下载
    AN-891: ADuC703x系列LIN<b class='flag-5'>波特率</b>计算

    请问MSC1210串口UART1如何设置波特率

    如题,MSC1210的手册上面有提到,UART0的波特率可以进行选择,可选择为T1的溢出作为波特率的设置,但是UART1的波特率如何设置?是和UART0的波特率一样吗?还是需要其他
    发表于 01-02 08:27

    RS232通信波特率设置说明

    RS232通信波特率设置是确保数据正确传输的关键参数之一。以下是对RS232通信波特率设置的说明: 一、波特率的概念
    的头像 发表于 12-10 16:26 6393次阅读