0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

波特率漂移導致通信異常的故障排查過程

AGk5_ZLG_zhiyua ? 來源:佚名 ? 作者:佚名 ? 2019-01-08 13:51 ? 次閱讀

示波器的協(xié)議解碼功能大家都不生疏,你是否有過波形看起來正常,協(xié)議參數(shù)、解碼設置都正確,卻無法正常解碼的經(jīng)歷呢?本文以UART協(xié)議為例,分享由于波特率漂移導致通信異常的故障排查過程。

什么是波特率漂移呢?可以理解為被測部件晶振有偏差,導致實際波特率和正常的波特率不一致。為什么波特率漂移會導致通信異常呢?本文從波形出發(fā),帶你自檢解碼結(jié)果。

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

引出這樣一個真實的例子,PC端發(fā)送串口數(shù)據(jù)為“0xEE 0x61 0x32 0xFF 0xFC 0xFF 0xFF”,示波器解碼結(jié)果為“0xEE 0x98 0xF6 0xFC 0xFF”初步判定通信故障。但協(xié)議參數(shù)設置和解碼設置都正確,為什么會出現(xiàn)收發(fā)不一致的現(xiàn)象呢?

下文將解碼時協(xié)議參數(shù)設置中的波特率都設置為9600 bps,實際為9600 bps,10126 bps的波形圖解碼結(jié)果對比(如圖1所示)分析為例,分享波特率漂移后導致波形有偏差,從而出現(xiàn)通信異常的原因排查過程。

圖1 同一解碼波特率下的不同波形解碼結(jié)果圖

首先講講UART的解碼原理。當示波器解碼UART信號時,將空閑電平之后的下降沿作為開始位,然后從波形中等間隔采樣,以等間隔時間段內(nèi)的采樣點中的多數(shù)狀態(tài)作為該位的解碼數(shù)值。不同波特率的波形,最小數(shù)據(jù)位寬不一致,時間T=1/采樣率,實際采樣率大的波形對應的時間就小,所以從圖1中可看出波特率為10126bps的波形像往左偏移了。

當解碼時設置的波特率同為9600時,采樣點的位置是根據(jù)9600的波特率來確定的,當實際采樣率和9600bps有偏差時,誤差會逐漸累積,從而導致解碼有偏差。設置的數(shù)據(jù)位寬越大,越容易疊加誤差。

二、自檢波特率方法

從波形出發(fā),根據(jù)波形最小位寬估算波特率,此法適用于波特率偏差較大或不確定波特率該設置多少時。這是工程師們較習慣的自檢方法。估算波特率需要看波形中的最小位寬,從來圖2看,時基檔位為100us,最小位寬剛好占一格,則最小位寬為100us左右,換算之后等于10000bps。

想要得到更精確的波特率數(shù)值,可以使用示波器的測量功能。打開示波器面板中的【measure】,選擇波特率測量項,觀察波特率測量結(jié)果對比,如下圖2紅框內(nèi)的測量結(jié)果。

開頭中引出的例子,正是因為波特率產(chǎn)生了漂移,實際為10000 bps,而解碼時按照正常部件的9600bps來設置,這么一算,波特率誤差大于4%,因此會導致解碼結(jié)果不正確。換個晶振再解碼,通訊果然正常了。

圖2 從波形最小位寬估算波特率圖

總結(jié)

在解碼中波特率雖然只是一個參數(shù),但因其漂移產(chǎn)生的影響不容忽視,它可能就是導致通信故障的因素。解碼前注意檢驗波特率,這么一個小細節(jié)也許可以省去日后排查故障的時間。從波形出發(fā),重新審視示波器價值,它用來觀察波形和分析數(shù)據(jù)就是為了檢測被測部件是否正常的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 示波器
    +關注

    關注

    113

    文章

    6104

    瀏覽量

    183395
  • 波特率
    +關注

    關注

    2

    文章

    290

    瀏覽量

    33926

原文標題:波形正常但是解碼失???可能是波特率漂移了

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    串口通信中的波特率你真的了解嗎?差距竟如此重要!

    波特率在串口通信中的作用在串口通信中,波特率起著至關重要的作用。因為在傳輸數(shù)據(jù)時,發(fā)送方和接收方需要以相同的波特率進行
    的頭像 發(fā)表于 08-27 11:46 ?551次閱讀
    串口<b class='flag-5'>通信</b>中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

    ESP8266為什么無法達到更高的波特率?

    我正在使用具有波特率微調(diào)功能的主機 MCU,用于與 ESP8266 ESP-12 模塊進行通信。但是,我無法達到更高的波特率,即 350 877 波特率(誤差為 1,6%)。任何更高的
    發(fā)表于 07-16 08:32

    如何使用示波器測量串口波特率

    通信和電子測量領域,串口波特率是一個至關重要的參數(shù),它決定了數(shù)據(jù)在串行通信線上的傳輸速率。使用示波器來測量串口波特率是一種常見且有效的方法,尤其是在沒有專業(yè)串口調(diào)試工具或需要更精確測
    的頭像 發(fā)表于 05-27 16:25 ?2959次閱讀

    波特率有什么危害尼?又該如何避免?

    深入探討了波特率過高可能帶來的危害,并提供了一些實用建議來保護設備不受影響。在通信領域,波特率是決定數(shù)據(jù)傳輸速度的重要參數(shù)。然而,波特率設置不當可能會對設備造成嚴重的影響。本文旨在揭示
    的頭像 發(fā)表于 04-03 16:45 ?939次閱讀

    為啥要轉(zhuǎn)換波特率 波特率和傳輸速率的關系

    對于串行多主 CAN 總線,如果波特率被稱為“500000波特”,則 CAN 上的該端口每秒最多可傳輸500000位。
    的頭像 發(fā)表于 03-06 17:38 ?3533次閱讀
    為啥要轉(zhuǎn)換<b class='flag-5'>波特率</b> <b class='flag-5'>波特率</b>和傳輸速率的關系

    TC397 QSPI波特率異常問題怎么解決?

    時,收發(fā)數(shù)據(jù)異常;3. 在2的條件下,只要設置的波特率低于23M, 收發(fā)數(shù)據(jù)正常,與datasheet中描述的max 波特率50M矛盾;
    發(fā)表于 02-02 14:25

    波特率發(fā)生器使用哪個定時器 波特率發(fā)生器的時鐘來源是什么

    波特率發(fā)生器是一種用于控制串行數(shù)據(jù)通信速率的設備,它可以生成特定波特率的時鐘信號。在嵌入式系統(tǒng)、通信設備和計算機硬件中,波特率發(fā)生器的使用十
    的頭像 發(fā)表于 01-24 09:56 ?1423次閱讀

    什么是串口波特率?串口通信為什么要設置波特率

    什么是串口波特率?串口通信為什么要設置波特率波特率與比特的關系 如何選擇串口波特率?? 串口
    的頭像 發(fā)表于 01-22 16:10 ?1548次閱讀

    以太網(wǎng)CAN轉(zhuǎn)換器波特率的設置步驟是怎樣的?

    確定CAN總線的波特率:首先,需要確定所連接的CAN總線的波特率。CAN總線的波特率通常以位/秒(bps)為單位,用于確定數(shù)據(jù)傳輸速度。
    的頭像 發(fā)表于 01-17 09:24 ?765次閱讀

    單片機的各個通信協(xié)議的波特率

    下面是一些常見的波特率數(shù)值,這些波特率通常被用于串口通信,SPI、I2C、CAN等接口的實際波特率可能有所不同:USART:110bps300bps600bps1200bps2400b
    的頭像 發(fā)表于 12-09 08:00 ?2236次閱讀
    單片機的各個<b class='flag-5'>通信</b>協(xié)議的<b class='flag-5'>波特率</b>

    請問波特率只能用于串口通信嗎?

    波特率只能用于串口通信嗎?
    發(fā)表于 11-08 08:20

    什么是串口波特率?串口通信為什么要設置波特率?

    在電子設備的世界中,數(shù)據(jù)是通過各種方式進行傳輸?shù)摹F渲?,串?b class='flag-5'>通信是一種常見的數(shù)據(jù)傳輸方式,它以其簡單、可靠和廣泛的特性,成為了電子設備間通信的重要手段。而在串口通信中,有一個非常重要的參數(shù)——
    的頭像 發(fā)表于 11-03 08:21 ?3785次閱讀
    什么是串口<b class='flag-5'>波特率</b>?串口<b class='flag-5'>通信</b>為什么要設置<b class='flag-5'>波特率</b>?

    SJA1000波特率計算

    電子發(fā)燒友網(wǎng)站提供《SJA1000波特率計算.zip》資料免費下載
    發(fā)表于 10-13 11:43 ?6次下載
    SJA1000<b class='flag-5'>波特率</b>計算

    串口通信過程中波特率可以根據(jù)數(shù)據(jù)來調(diào)整嗎?

    串口通信過程中波特率可以根據(jù)數(shù)據(jù)來調(diào)整嗎
    發(fā)表于 10-13 07:55

    CAN通信波特率不對會怎樣?

    ,該波特率是處理器要進行通信所需的數(shù)據(jù)傳輸速率。波特率不正確將導致通信失敗,并可能導致危險的結(jié)果
    的頭像 發(fā)表于 10-11 17:19 ?2087次閱讀