历史上的今天
返回首页

历史上的今天

今天是:2024年12月19日(星期四)

正在发生

2018年12月19日 | 因波特率漂移导致的通讯异常问题的排查技巧

2018-12-19

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

 

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

 

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

 

引出这样一个真实的例子,PC端发送串口数据为“0xEE 0x61 0x32 0xFF 0xFC 0xFF 0xFF”,示波器解码结果为“0xEE 0x98 0xF6 0xFC 0xFF”初步判定通信故障。但协议参数设置和解码设置都正确,为什么会出现收发不一致的现象呢?下文将解码时协议参数设置中的波特率都设置为9600 bps,实际为9600 bps,10126 bps的波形图解码结果对比(如图1所示)分析为例,分享波特率漂移后导致波形有偏差,从而出现通信异常的原因排查过程。

 

image.png?imageView2/2/w/550

 

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

 

首先讲讲UART的解码原理。当示波器解码UART信号时,将空闲电平之后的下降沿作为开始位,然后从波形中等间隔采样,以等间隔时间段内的采样点中的多数状态作为该位的解码数值。不同波特率的波形,最小数据位宽不一致,时间T=1/采样率,实际采样率大的波形对应的时间就小,所以从图1中可看出波特率为10126bps的波形像往左偏移了。当解码时设置的波特率同为9600时,采样点的位置是根据9600的波特率来确定的,当实际采样率和9600bps有偏差时,误差会逐渐累积,从而导致解码有偏差。设置的数据位宽越大,越容易叠加误差。

 

二、自检波特率方法

 

从波形出发,根据波形最小位宽估算波特率,此法适用于波特率偏差较大或不确定波特率该设置多少时。这是工程师们较习惯的自检方法。估算波特率需要看波形中的最小位宽,从来图 2看,时基档位为100us,最小位宽刚好占一格,则最小位宽为100us左右,换算之后等于10000bps。想要得到更精确的波特率数值,可以使用示波器的测量功能。打开示波器面板中的【measure】,选择波特率测量项,观察波特率测量结果对比,如下图 2红框内的测量结果。

 

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

 

image.png?imageView2/2/w/550

 

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

 

总结

 

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

 

 

 

 


推荐阅读

史海拾趣

BK Precision公司的发展小趣事

为了满足全球市场的需求,BK Precision开始实施全球化战略。公司不仅在美国本土设立了多个办事处和研发中心,还在欧洲和亚洲等地建立了分支机构。通过与国际授权分销商的合作,BK Precision成功地将产品推向全球市场,并赢得了众多国际客户的信赖。同时,公司还积极参与国际电子行业的展会和交流活动,提升品牌知名度和影响力。

Defender Security公司的发展小趣事

近年来,生成式AI技术的快速发展为网络安全带来了新的变革。Defender Security公司紧跟这一趋势,将生成式AI技术应用于网络安全领域。他们利用生成式AI技术来模拟和预测网络攻击行为,从而提前发现潜在的安全威胁。通过不断的技术创新和应用实践,Defender Security在网络安全领域取得了显著的成果。

AND Displays公司的发展小趣事

随着公司规模的扩大和实力的增强,AND Displays开始实施国际化战略。公司在全球范围内设立了多个研发中心和生产基地,以便更好地满足不同地区客户的需求。同时,公司还加强了与国际同行的交流与合作,共同推动显示技术的创新与发展。通过全球布局和资源整合,AND Displays逐渐成为了全球显示行业的领军企业之一。

以上五个故事从不同角度展示了AND Displays公司在电子行业中的发展历程和成就。这些故事不仅反映了公司的技术实力和市场竞争力,也体现了公司对环保、可持续发展等社会责任的关注和担当。

Fairchild Imaging公司的发展小趣事

Fairchild Imaging一直致力于成像技术的创新。在XXXX年,公司成功研发出一款具有划时代意义的图像传感器,该传感器以其高清晰度、低噪声和宽动态范围等特性,赢得了市场的广泛认可。这一技术的突破不仅为Fairchild Imaging赢得了众多客户的青睐,还为公司后续的发展奠定了坚实的基础。

AdaptivEnergy公司的发展小趣事

Fairchild Imaging公司的历史可以追溯到1950年成立的Fairchild Camera & Instrument Company。这家公司自创立以来,就凭借其创新的技术和优质的产品,在许多重大的政府、国防项目中发挥了关键作用。随着公司业务的不断拓展,Fairchild Camera & Instrument Company逐渐将业务重心转向半导体和集成电路领域,并在此领域取得了显著成就。最终,Fairchild Imaging从Fairchild Camera & Instrument Company中独立出来,专注于高端成像技术的研发和应用。

GTE Microcircuits公司的发展小趣事
优化复合放大器的增益稳定性主要涉及到选择合适的放大器类型(如低噪声、高精度运算放大器)、精确的电路设计(如使用温度系数低的电阻和电容)、以及适当的电源去耦和滤波技术。此外,采用反馈网络来稳定增益也是一种常见的方法。

问答坊 | AI 解惑

A/D转换

老师我们的硬件电路做好了,但软件不知道从何入手呢…

查看全部问答>

硬盘被重新分区后重装了系统,如何恢复里面的数据啊!跪求!!

  硬盘被重新分区后重装了系统,如何恢复里面的数据啊!跪求!!急!…

查看全部问答>

请教关于ARM启动代码中堆栈的初始化?

启动代码中堆栈的初始化是不是只是定义一下要用到的堆的长度,比如IRQ中断,按书上说堆空间是要自己申请的,而栈是系统自动分配的,要是这样的话那初始化就应该是只对堆的长度进行定义了?还有就是我怎么确定要定义多长的堆栈空间呢?谢谢了!…

查看全部问答>

大家帮我看看,我用厂家提供的BSP生成的OS 在开发板上无法启动,有详细信息,该如何修改

下面的情况均在厂家提供的开发板上试验 内存情况:       内存:64MByte SDRAM(2片16位的SDRAM芯片组成32位接口)       NOR Flash:32MByte内存(2片intel E28F128组成32位接口) 测试的BSP有下面两个 ...…

查看全部问答>

请问“要通过中断来实时接收100ms的数据”,这个机制怎么建立阿

我最近想做一个红外码学习器,在按下遥控按钮后,就把接收到的红外数据保存下来。但是,在多进程里面由于有调度问题,实时性很难控制,不知哪位高手做过没有,请帮忙指点一下阿…

查看全部问答>

快过年了,希望eeworld能组织个TI DSP开发板的团购!

快过年了,还有点余钱,希望eeworld能组织个TI DSP开发板的团购,这样在假期中能够边玩边学,两不误。 希望有相同想法的同学们顶起!!!!!!!!!!…

查看全部问答>

Kinetis DAC模块

DAC简介    Kinetis10包含两个独立的12位数模转换模块,DAC0和DAC1,用于将数字转换成对应的模拟电压。转换后的模拟电压可由外部引脚输出,也可以通过芯片内部连接输入到比较器模块、放大器模块、和模数转换模块。    DAC的参 ...…

查看全部问答>

通过使用MSP430G2452微控制器的LaunchPad Value Line开发包实现基于心电图的心率监测

这是一个基于Launchpad的心率监测评估工程,资料非常详细,包括原理图,光绘文件,BOM表,源码,说明文档(中文)。 好好享受吧! …

查看全部问答>

电源变换

信号输入端加10V交流信号,偏置为5V直流,经电容电阻后怎么变为了正负5V的交流信号,求高手解释…

查看全部问答>