1、串行數據的格式異步
異步串行數據的通常格式是:起始位+數據位+中止位,其中起始位1 位,數據位能夠是五、六、七、8位,中止位能夠是一、1.五、2位。spa
起始位是一個值爲0的位,因此對於正邏輯的TTL電平,起始位是一位時間的低電平;中止位是值爲1的位,因此對於正邏輯的TTL電平,中止位是高電平。線路路空閒或者數據傳輸結束,對於正邏輯的TTL電平,線路老是1。對於負邏輯(如RS-232電平)則相反。blog
例如,對於16進制數據55aah,當採用8位數據位、1位中止位傳輸時,它在信號線上的波形如圖1(TTL電平)和圖2(RS-232電平)所示。 (先傳第一個字節55,再傳第二個字節aa,每一個字節都是從低位向高位逐位傳輸)。同步
圖1 TTl串行數據幀格式it
圖2 RS232電平串行數據幀格式方法
2、根據波形圖計算波特率im
如圖3是圖1在示波器中的顯示示意,其中灰色線是示波器的時間分度線,此時假設是200us/格。總結
圖3 波特率計算示意圖數據
能夠看了,第一個字節的10位(1位起始位,8位數據位和1位中止位)共佔約1.05ms,這樣可計算出其波特率約爲:10bit / 1.05ms X 1000 ≈ 9600 bit/smargin
若是上圖中的時間軸是100us/格,一樣能夠計算出波特率應是19200bit/s。
當通信不正常,又能觀察到波形時,就可根據上述方法,從波形圖計算一下波特率是否正確。
RS-485是一種半雙工的串行通信方式(RS-422爲全雙工),485電平芯片因此要正確接收和發送數據,必需保證控制信號和數據的同步,不然要麼發送數據丟失,要麼接收數據可能丟失。
圖4 RS485正確的發送數據時序
在圖4中,發送控制信號的寬度基本與數據信號的寬度一致,因此能保證發送數據的正確和發送後及時轉爲接收。圖5 和圖6 分別是控制信號過短和控制信號太長的狀況。
圖5 RS-485控制信號過短的時序
圖6 RS-485控制信號過短的時序
在圖5中,因爲控制信號關閉過早,則第二個字節的後兩位將發送錯誤;在圖6中,因爲控制信號關閉過遲,使485芯片在發送數據後,不能及時轉到接收狀態,此時總線如有數據過來,則本單元將不能正確接收。
總結:只要掌握上述波形分析方法,任何異步串行數據的接收和發送問題,基本均可以獲得解決。