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

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

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

串口通信是什么,常見的問題以及解決方法

kae1_cdebyte ? 來源:億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 作者:億佰特物聯(lián)網(wǎng)應(yīng)用 ? 2022-11-18 10:19 ? 次閱讀

什么是串口通信?

串口,一般指異步串行接口(Serial Port),主要用于串行式逐位數(shù)據(jù)傳輸。串口對于處于嵌入式行業(yè)的我們來說,是必不可缺的一部分,在剛開始學習單片機時,我們最先學習的通信接口就是USART(Universal Synchronous/Asynchronous Receiver/Transmitter)——通用同/異步串行接收/發(fā)送器。其中最常見的串口通信的時序如下圖:

29140ce0-6676-11ed-8abf-dac502259ad0.png

有起始位、數(shù)據(jù)位、校驗位、停止位、波特率等幾個通信參數(shù)

232 / 485/ 422通信

串口通信主要可分為232、485、422三種通信方式。

232通信

232通信主要是由RX、TX、GND三根線組成。RX接TX,TX接RX,GND接GND。發(fā)送和接收由不同的線路處理,所以能夠同時進行發(fā)送和接收數(shù)據(jù),因此232是全雙工通信。

485通信

為了解決232通信距離受限問題,于是有了485通信。 485通信只需要+、-兩根線(也叫A、B兩根線),A、B兩根線的差分電平信號就是作為數(shù)據(jù)信號傳輸。發(fā)送和接收都用這兩根線,每次只能發(fā)送數(shù)據(jù)或者接收數(shù)據(jù),因此485是半雙工通信。

422通信

422通信兼具232與485的特點,既能實現(xiàn)全雙工通信,又能增大傳輸距離。422也常被標注為485-4,而485被標注為485-2。因為485-2是2根線,485-4是4根線,下圖是422的示意圖。

2923c46e-6676-11ed-8abf-dac502259ad0.png

422將232的RX分成RX+和RX-,把TX分成TX+和TX-,實現(xiàn)同時發(fā)送和接收。 最常用的還是232和485通信。

2936bee8-6676-11ed-8abf-dac502259ad0.png

串口通信常見問題及解決

串口作為工程師日常開發(fā)時的非常重要的一個角色,也時常會碰到很多問題,深受各種折磨,接下來就來說說平時串口通信中常見的問題以及解決方法。 通常我們調(diào)試串口通信碰到問題時,需要用到一個USB轉(zhuǎn)TTL、杜邦線(導線)等工具,首先我們應(yīng)當保證自己的工具是正常的,可以通過以下方法自測:

1、將USB轉(zhuǎn)TTL中的TX、RX使用杜邦線或是跳線帽短接。 打開串口調(diào)試工具,例如XCOM、SSCOM等,將波特率、停止位、校驗位等參數(shù)調(diào)至即將需要通信的模塊的參數(shù),再去隨意發(fā)送一些數(shù)據(jù),通常筆者是更傾向于使用16進制發(fā)送和接收,以此來保證數(shù)據(jù)中間或者結(jié)尾出現(xiàn)一些不可使用ASCII值直觀看到的數(shù)據(jù),例如數(shù)據(jù)的結(jié)尾多了0x00,0x0a等。若確保自己的工具以及導線沒有問題后,即可繼續(xù)排查通信問題。

2、發(fā)現(xiàn)使用USB轉(zhuǎn)TTL與模塊之間明明已經(jīng)反接了TX、RX,發(fā)指令給模塊之后卻沒有任何反應(yīng)。解決方法:當碰到如上問題時,應(yīng)當首先自檢工具,再檢查是否雙方共地,GND提供了一個基準0電平,如果沒有共地的話,那極有可能會出問題,其次是檢查雙方的串口參數(shù)是否一致,串口通信是一個易于開發(fā)并且速度可調(diào)的一個的通信協(xié)議,其中我們大部分都會使用UART——通用異步傳輸接收/發(fā)送器,串口異步通信也可稱為起止式異步通信,是直接以字符為單位進行傳輸?shù)?,字符之間沒有固定的時間要求,每個字符中的每一位以固定的時間傳送。這就意味著,如果你使用一個較為高的波特率的速度去與一個較為低的波特率的速度去通信的話,那極大可能會導致低波特率設(shè)備無法讀取到通信時的空閑信號的跳變信息。 在這里筆者用一個比較極端例子進行說明: 當雙方串口的參數(shù)的數(shù)據(jù)位都為8bit,停止位為1bit,校驗位為0bit時,但是A設(shè)備的波特率為9600,B設(shè)備為921600,就會出現(xiàn)以下情況: 當B設(shè)備向A設(shè)備發(fā)送一個字節(jié)的數(shù)據(jù)時,B設(shè)備從發(fā)送到結(jié)束所需用的時間為1/921600*(8+1+1)=10.8us,而相同的A設(shè)備發(fā)送/接收一個字節(jié)的時間為(8+1+1)/9600=1.04ms,試問,像這種相差數(shù)倍的時間,當高波特率發(fā)送給低波特率設(shè)備時,很有可能低波特率設(shè)備壓根就不會認為發(fā)送過來的數(shù)據(jù)流是一串數(shù)據(jù),因為壓根沒法解析到。

294cad98-6676-11ed-8abf-dac502259ad0.gif

*收發(fā)波特率一致

295b6e8c-6676-11ed-8abf-dac502259ad0.gif

*收發(fā)波特率不一致 因此串口通信一定要保證雙方波特率、停止位等參數(shù)一致。反之,低波率向高波特率發(fā)送數(shù)據(jù)就會被認為是錯誤的數(shù)據(jù),也就是所謂的亂碼。 3、發(fā)現(xiàn)雙方已經(jīng)使用了相同的參數(shù)進行通信,但是通信依舊有問題,例如收到亂碼等。解決方法:首先應(yīng)該降低波特率,先確保模塊與USB轉(zhuǎn)TLL均無問題,也要確保模塊沒有處于透傳等特殊情況下,也可以使用邏輯分析儀等工具進行排查,現(xiàn)在的很多邏輯分析儀是自帶數(shù)據(jù)分析的,可以由此來確保模塊正常。其實大部分碰到這種問題的時候,更建議優(yōu)先查看USB轉(zhuǎn)TLL是否支持當前的工作模式。

其他問題:

電腦使用USB轉(zhuǎn)串口可以和設(shè)備通信,為何換成屏就無法與設(shè)備通信? 電腦使用USB轉(zhuǎn)串口連接設(shè)備,可能使用的是標準串口功能(除RX,TX,GDN外,還使用了其它引腳);檢查接線方法是否正確;電腦與控制器PLC通信時,掃描波特率參數(shù),是自適應(yīng),屏通信可能參數(shù)沒有設(shè)備好。另外,還需注意,有時可能會使用一些串口助手發(fā)送測試數(shù)據(jù)與控制器通信,有些串口助手的奇偶校驗會不起作用。 一個設(shè)備是232,另一個設(shè)備是422,沒有轉(zhuǎn)換設(shè)備,怎么辦? 232和422都是全雙工通信,422以一種差分信號傳輸。可以將422的Rx+與232的TX對接,422的RX-與232的GND對接;將422的TX+與232的RX對接,422的TX-與232的GDN對接。422設(shè)備發(fā)送數(shù)據(jù)時可以發(fā)送到232的RX上;232的TX發(fā)送數(shù)據(jù)后,由于TX和GND也形成了差分信號給到422,422就可以接收到數(shù)據(jù)。 能否實現(xiàn)兩個主站通過485訪問ModBus設(shè)備? 485通信基本上是一主多從,現(xiàn)階段還不能實現(xiàn)兩個主站訪問一個ModBus設(shè)備。 換屏后無法再跟設(shè)備通信,怎么解決? 首先需要確認接線是否正確,RX和TX是否兼容;其次檢查是否有接地線;除了RX,TX,GND,是否還有其它引腳需要短接;查看通信協(xié)議、波特率是否相同。

審核編輯:

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

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628309
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18816

    瀏覽量

    298459
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1601

    瀏覽量

    55233

原文標題:總結(jié)來了!串口通信常見問題及解決方法

文章出處:【微信號:cdebyte,微信公眾號:億佰特物聯(lián)網(wǎng)應(yīng)用專家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    CAN盒指示燈不亮的解決方法

    CAN盒指示燈不亮可能有多種原因,以下是一些常見解決方法。
    的頭像 發(fā)表于 09-20 14:53 ?57次閱讀

    服務(wù)器錯誤是怎么回事?常見錯誤原因及解決方法匯總

    服務(wù)器錯誤是怎么回事?最常見的原因分有六個,分別是:硬件問題、軟件問題、網(wǎng)絡(luò)問題、資源耗盡、數(shù)據(jù)庫、文件權(quán)限問題??梢愿鶕?jù)以下具體錯誤原因進行辨別,并選擇適合的解決方法。關(guān)于常見服務(wù)器原因及
    的頭像 發(fā)表于 08-12 10:11 ?446次閱讀

    接地網(wǎng)阻值偏大的原因及解決方法

    ,并采取其他措施來減小并聯(lián)回路的影響。   總結(jié):   以上是造成接地網(wǎng)阻值偏大的一些常見原因以及相應(yīng)的解決方法。在實際使用中,我們需要根據(jù)具體情況來選擇合適的措施來解決這一問題。希望本文對您有所幫助。
    發(fā)表于 06-17 09:19

    鴻蒙OpenHarmony:【常見編譯問題和解決方法

    常見編譯問題和解決方法
    的頭像 發(fā)表于 05-11 16:09 ?1449次閱讀

    常見串口通信的幾個問題請教?

    有關(guān)常見串口通信的幾個問題請教論壇里的專家? 1、常見串口通信CAN,DP,PN,ETHER I
    發(fā)表于 04-04 16:30

    常見的DC電源模塊故障及解決方法

    BOSHIDA 常見的DC電源模塊故障及解決方法 DC電源模塊廣泛應(yīng)用于各種電子設(shè)備中,為其提供穩(wěn)定的直流電源。然而,由于長期使用或其他原因,DC電源模塊有時會出現(xiàn)故障。本文將介紹一些常見的DC
    的頭像 發(fā)表于 04-01 14:02 ?894次閱讀
    <b class='flag-5'>常見</b>的DC電源模塊故障及<b class='flag-5'>解決方法</b>

    串口通信常見的錯誤和故障排除方法

    在進行串口通信時,確實可能會遇到一些常見的錯誤和問題。
    的頭像 發(fā)表于 03-02 14:19 ?3362次閱讀

    小區(qū)門禁系統(tǒng)常見故障及解決方法

    小區(qū)門禁系統(tǒng)是保障小區(qū)安全的重要設(shè)備,但常常會遇到各種故障。本文將從硬件故障、軟件故障及其他常見故障三個方面介紹小區(qū)門禁系統(tǒng)的常見故障及解決方法。 硬件故障是小區(qū)門禁系統(tǒng)常見的問題之一
    的頭像 發(fā)表于 02-02 11:00 ?1836次閱讀

    編碼器7種常見故障及解決方法是什么?

    編碼器7種常見故障及解決方法是什么? 編碼器是一種用于將物理量轉(zhuǎn)換為數(shù)字信號的設(shè)備,常用于工業(yè)自動化、機械控制等領(lǐng)域。然而,在使用編碼器的過程中,可能會遇到各種故障。本篇文章將介紹編碼器的7種
    的頭像 發(fā)表于 01-26 14:56 ?1w次閱讀

    網(wǎng)卡硬件故障及解決方法

    網(wǎng)卡硬件故障及解決方法 網(wǎng)卡是計算機與網(wǎng)絡(luò)之間進行通信的重要組件之一。然而,由于各種原因,網(wǎng)卡硬件故障可能會導致計算機無法連接到網(wǎng)絡(luò)或者網(wǎng)絡(luò)連接緩慢不穩(wěn)定。本文將介紹常見的網(wǎng)卡硬件故障及解決方
    的頭像 發(fā)表于 12-27 15:17 ?1827次閱讀

    以太網(wǎng)阻塞的常見原因與解決方法

    以太網(wǎng)阻塞的常見原因與解決方法 以太網(wǎng)阻塞是指在以太網(wǎng)中數(shù)據(jù)流量增加超過網(wǎng)絡(luò)設(shè)備處理能力的情況下,導致網(wǎng)絡(luò)性能下降、延遲增加、丟包率上升等問題。下面將詳細討論以太網(wǎng)阻塞的常見原因及解決方法
    的頭像 發(fā)表于 12-27 13:58 ?940次閱讀

    熱電阻測量技巧:如何準確判斷其好壞?常見錯誤和解決方法有哪些

    的好壞是非常關(guān)鍵的。本文將詳細介紹熱電阻測量技巧,包括如何準確判斷其好壞以及常見錯誤和解決方法。 一、準確判斷熱電阻的好壞 熱電阻的好壞主要通過以下幾個方面來進行判斷: 1. 線性度測試:線性度是指熱電阻輸出與溫度之
    的頭像 發(fā)表于 12-15 10:31 ?1403次閱讀

    常見的電壓問題及其解決方法

    常見的電壓問題及其解決方法? 電壓問題是常見的電氣故障之一,它可能會導致設(shè)備故障、損壞甚至危險。在日常生活和工作中,我們經(jīng)常會遇到一些電壓問題,例如電器無法正常工作、電器過熱、電器短路等。本文將詳細
    的頭像 發(fā)表于 12-11 17:16 ?2164次閱讀

    電感嘯叫的常見原因以及解決方法

    電子發(fā)燒友網(wǎng)站提供《電感嘯叫的常見原因以及解決方法.docx》資料免費下載
    發(fā)表于 10-15 11:03 ?2次下載

    舵機常見的故障原因分析以及解決方法

    舵機的分析方法和注意事項,以及對舵機常見故障的解決方法進行一個列舉。
    的頭像 發(fā)表于 09-22 10:14 ?3505次閱讀
    舵機<b class='flag-5'>常見</b>的故障原因分析<b class='flag-5'>以及</b><b class='flag-5'>解決方法</b>