• <colgroup id="UCGVF"><tbody id="UCGVF"></tbody></colgroup>

    <span id="UCGVF"><i id="UCGVF"><dl id="UCGVF"></dl><col id="UCGVF"><label id="UCGVF"><kbd id="UCGVF"><var id="UCGVF"><rt id="UCGVF"><style id="UCGVF"></style><keygen id="UCGVF"></keygen></rt></var></kbd></label></col><legend id="UCGVF"><fieldset id="UCGVF"><progress id="UCGVF"><fieldset id="UCGVF"></fieldset><figcaption id="UCGVF"><section id="UCGVF"><dt id="UCGVF"><samp id="UCGVF"></samp></dt></section><ins id="UCGVF"><dd id="UCGVF"><kbd id="UCGVF"></kbd></dd><mark id="UCGVF"></mark><form id="UCGVF"></form><small id="UCGVF"><style id="UCGVF"><embed id="UCGVF"><ul id="UCGVF"></ul></embed></style></small><noscript id="UCGVF"></noscript></ins><thead id="UCGVF"><del id="UCGVF"></del></thead><aside id="UCGVF"><tbody id="UCGVF"><output id="UCGVF"></output></tbody></aside></figcaption></progress></fieldset></legend></i></span><small id="UCGVF"></small><source id="UCGVF"></source><progress id="UCGVF"><textarea id="UCGVF"><acronym id="UCGVF"></acronym></textarea><thead id="UCGVF"></thead></progress><p id="UCGVF"><nav id="UCGVF"></nav><source id="UCGVF"><tbody id="UCGVF"></tbody><li id="UCGVF"></li><aside id="UCGVF"></aside><small id="UCGVF"><input id="UCGVF"></input><col id="UCGVF"></col></small></source><canvas id="UCGVF"></canvas><option id="UCGVF"></option></p><col id="UCGVF"></col>

        <select id="UCGVF"></select>

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

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

          本文引用地址: /app/test/201812/860217.htm

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

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

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

           

          1.png

           

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

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

          二、自检波特率方法

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

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

           

          2.png

           

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

          总结

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

          换一批

          延伸阅读

          [测试测量] 如何排查因波特率漂移导致的通讯异常问题

          如何排查因波特率漂移导致的通讯异常问题

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

          关键字:示波器 波特率 通讯异常

          我 要 评 论

          网友评论

          芯闻号

          • 英特尔 Brian Krzanich 视频带来物联网见解
          • 将 IoT 传感器技术融入企业
          • 借助英特尔® IoT 网关提高智能建筑效率
          • IoT 实际应用 — 在一家英特尔工厂中的真实 IoT 部署
          • 借助先进的数据分析提升制造水平

          技术子站

          更多

          项目外包

          更多

          推荐博客