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

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

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

總結(jié)來(lái)了!串口通信常見(jiàn)問(wèn)題及解決方法

億佰特物聯(lián)網(wǎng)應(yīng)用專(zhuān)家 ? 2022-11-21 10:25 ? 次閱讀

什么是串口通信

串口,一般指異步串行接口(Serial Port),主要用于串行式逐位數(shù)據(jù)傳輸。串口對(duì)于處于嵌入式行業(yè)的我們來(lái)說(shuō),是必不可缺的一部分,在剛開(kāi)始學(xué)習(xí)單片機(jī)時(shí),我們最先學(xué)習(xí)的通信接口就是USART(Universal Synchronous/Asynchronous Receiver/Transmitter)——通用同/異步串行接收/發(fā)送器。其中最常見(jiàn)的串口通信的時(shí)序如下圖:00945c68-672d-11ed-b116-dac502259ad0.png有起始位、數(shù)據(jù)位、校驗(yàn)位、停止位、波特率等幾個(gè)通信參數(shù)。

232 / 485/ 422通信

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

232通信

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

485通信

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

422通信

422通信兼具232與485的特點(diǎn),既能實(shí)現(xiàn)全雙工通信,又能增大傳輸距離。422也常被標(biāo)注為485-4,而485被標(biāo)注為485-2。因?yàn)?85-2是2根線,485-4是4根線,下圖是422的示意圖。00a56846-672d-11ed-b116-dac502259ad0.png422將232的RX分成RX+和RX-,把TX分成TX+和TX-,實(shí)現(xiàn)同時(shí)發(fā)送和接收。
最常用的還是232和485通信。00b79994-672d-11ed-b116-dac502259ad0.png

串口通信常見(jiàn)問(wèn)題及解決

串口作為工程師日常開(kāi)發(fā)時(shí)的非常重要的一個(gè)角色,也時(shí)常會(huì)碰到很多問(wèn)題,深受各種折磨,接下來(lái)筆者就來(lái)說(shuō)說(shuō)平時(shí)串口通信中常見(jiàn)的問(wèn)題以及解決方法。通常我們調(diào)試串口通信碰到問(wèn)題時(shí),需要用到一個(gè)USB轉(zhuǎn)TTL、杜邦線(導(dǎo)線)等工具,首先我們應(yīng)當(dāng)保證自己的工具是正常的,可以通過(guò)以下方法自測(cè):
1、將USB轉(zhuǎn)TTL中的TX、RX使用杜邦線或是跳線帽短接。打開(kāi)串口調(diào)試工具,例如XCOM、SSCOM等,將波特率、停止位、校驗(yàn)位等參數(shù)調(diào)至即將需要通信的模塊的參數(shù),再去隨意發(fā)送一些數(shù)據(jù),通常筆者是更傾向于使用16進(jìn)制發(fā)送和接收,以此來(lái)保證數(shù)據(jù)中間或者結(jié)尾出現(xiàn)一些不可使用ASCII值直觀看到的數(shù)據(jù),例如數(shù)據(jù)的結(jié)尾多了0x00,0x0a等。若確保自己的工具以及導(dǎo)線沒(méi)有問(wèn)題后,即可繼續(xù)排查通信問(wèn)題。

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

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

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

其他問(wèn)題:

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

以上就是筆者總結(jié)的串口通信常見(jiàn)問(wèn)題及解決方法,文中如有出錯(cuò)之處,望指正,希望大家共同進(jìn)步!

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

    關(guān)注

    18

    文章

    6042

    瀏覽量

    136138
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    gitee 常見(jiàn)問(wèn)題解決方法

    Gitee作為國(guó)內(nèi)的代碼托管平臺(tái),在使用過(guò)程中可能會(huì)遇到一些問(wèn)題。以下是一些常見(jiàn)問(wèn)題及其解決方法: 一、倉(cāng)庫(kù)創(chuàng)建與代碼推送問(wèn)題 倉(cāng)庫(kù)已存在遠(yuǎn)程配置 問(wèn)題 :在嘗試為已有項(xiàng)目添加遠(yuǎn)程倉(cāng)庫(kù)配置時(shí),可能會(huì)
    的頭像 發(fā)表于 01-06 10:06 ?87次閱讀

    mac的常見(jiàn)問(wèn)題解決方法

    Mac常見(jiàn)問(wèn)題解決方法 1. 系統(tǒng)啟動(dòng)緩慢 問(wèn)題描述: 啟動(dòng)Mac時(shí),系統(tǒng)啟動(dòng)緩慢,甚至出現(xiàn)卡頓現(xiàn)象。 解決方法: 檢查啟動(dòng)項(xiàng)目: 打開(kāi)系統(tǒng)偏好設(shè)置中的“用戶與群組”,點(diǎn)擊“登錄項(xiàng)”,移除不必要
    的頭像 發(fā)表于 12-19 15:02 ?233次閱讀

    Ubuntu系統(tǒng)常見(jiàn)問(wèn)題解決方法

    Ubuntu是一個(gè)基于Linux的開(kāi)源操作系統(tǒng),以其穩(wěn)定性和易用性而受到許多用戶的喜愛(ài)。然而,在使用過(guò)程中,用戶可能會(huì)遇到各種問(wèn)題。以下是一些Ubuntu系統(tǒng)中常見(jiàn)的問(wèn)題及其解決方法。 1. 無(wú)法
    的頭像 發(fā)表于 12-12 14:32 ?413次閱讀

    RS232通信錯(cuò)誤及解決方法 如何使用RS232進(jìn)行設(shè)備組網(wǎng)

    RS232通信錯(cuò)誤及解決方法 RS232通信錯(cuò)誤可能由多種原因引起,以下是一些常見(jiàn)的錯(cuò)誤及相應(yīng)的解決方法
    的頭像 發(fā)表于 12-10 15:53 ?915次閱讀

    multisi的常見(jiàn)問(wèn)題解決方法

    遇到各種問(wèn)題。 1. 啟動(dòng)順序問(wèn)題 問(wèn)題描述: 用戶在安裝多系統(tǒng)后,發(fā)現(xiàn)默認(rèn)啟動(dòng)順序不符合預(yù)期,導(dǎo)致無(wú)法正常進(jìn)入某個(gè)操作系統(tǒng)。 解決方法: 修改啟動(dòng)順序: 進(jìn)入BIOS設(shè)置,找到啟動(dòng)順序(Boot Order)選項(xiàng),調(diào)整各個(gè)操作系統(tǒng)的啟動(dòng)順序。
    的頭像 發(fā)表于 12-09 11:07 ?200次閱讀

    串口通信常見(jiàn)問(wèn)題及解決方案

    串口通信常見(jiàn)問(wèn)題及解決方案 1. 串口通信原理簡(jiǎn)述 串口通信
    的頭像 發(fā)表于 11-22 09:06 ?1634次閱讀

    RS232串口通信中常見(jiàn)問(wèn)題及解決辦法

    RS232串口通信中常見(jiàn)問(wèn)題及解決辦法主要包括以下幾個(gè)方面: 一、物理連接問(wèn)題 問(wèn)題 :串口線未插穩(wěn)或接口松動(dòng)。 解決辦法 :重新插拔串口線,確保連接牢固。同時(shí)檢查插頭和針腳是否損壞,
    的頭像 發(fā)表于 11-21 09:32 ?1555次閱讀

    Mobaxterm 常見(jiàn)問(wèn)題解決方法

    強(qiáng)大,但用戶在使用過(guò)程中可能會(huì)遇到一些問(wèn)題。以下是一些常見(jiàn)問(wèn)題及其解決方法: 1. 連接問(wèn)題 問(wèn)題: 無(wú)法連接到遠(yuǎn)程服務(wù)器。 解決方法: 確認(rèn)服務(wù)器地址和端口號(hào)是否正確。 檢查網(wǎng)絡(luò)連接是否正常。 確認(rèn)服務(wù)器是否允許SSH/Tel
    的頭像 發(fā)表于 11-10 15:35 ?3323次閱讀

    HSHA驅(qū)動(dòng)器報(bào)警的常見(jiàn)問(wèn)題解決方法

    HSHA驅(qū)動(dòng)器報(bào)警的常見(jiàn)問(wèn)題解決方法可以歸納如下: 常見(jiàn)問(wèn)題 電機(jī)過(guò)載 : 原因 :電機(jī)長(zhǎng)時(shí)間超負(fù)荷運(yùn)行或短時(shí)間負(fù)載過(guò)重。 表現(xiàn) :驅(qū)動(dòng)器可能顯示Err 03等錯(cuò)誤代碼。 伺服驅(qū)動(dòng)過(guò)載 : 原因
    的頭像 發(fā)表于 09-19 09:20 ?957次閱讀

    RS485常見(jiàn)問(wèn)題解決方法

    RS485總線是工業(yè)上最常用的通信方式之一,在實(shí)際布線或使用過(guò)程中通常會(huì)出現(xiàn)一系列問(wèn)題,今天總結(jié)一些平時(shí)RS485通訊可能會(huì)出現(xiàn)的通訊問(wèn)題及其解決方法以供大家參考。什么是RS485?RS485是一種
    的頭像 發(fā)表于 06-14 08:20 ?1874次閱讀
    RS485<b class='flag-5'>常見(jiàn)問(wèn)題</b>及<b class='flag-5'>解決方法</b>

    鴻蒙OpenHarmony:【常見(jiàn)編譯問(wèn)題和解決方法

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

    Ubuntu系統(tǒng)常見(jiàn)問(wèn)題及解答

    今天小編為大家總結(jié)了Ubuntu系統(tǒng)常見(jiàn)問(wèn)題解決方法,便于收藏和查閱,大家快快碼住哦~
    的頭像 發(fā)表于 04-19 12:29 ?1269次閱讀
    Ubuntu系統(tǒng)<b class='flag-5'>常見(jiàn)問(wèn)題</b>及解答

    家用路由器常見(jiàn)問(wèn)題解決方法

    家用路由器已成為我們家庭中不可或缺的一部分。然而,由于各種原因,家用路由器可能會(huì)遇到各種各樣的問(wèn)題。本文將介紹一些常見(jiàn)的家用路由器問(wèn)題及相應(yīng)的解決方法,以幫助讀者更好地維護(hù)和管理自己的網(wǎng)絡(luò)環(huán)境。
    的頭像 發(fā)表于 04-18 17:42 ?1271次閱讀

    如何解決同步時(shí)鐘系統(tǒng)中的常見(jiàn)問(wèn)題和故障?

    同步時(shí)鐘系統(tǒng) 在電力、通信、交通等領(lǐng)域中應(yīng)用廣泛,為保證其正常運(yùn)行,需要進(jìn)行系統(tǒng)的維護(hù)和保養(yǎng)。下面是述泰時(shí)鐘總結(jié)的時(shí)鐘同步系統(tǒng)維護(hù)常見(jiàn)問(wèn)題解決方法的介紹。
    的頭像 發(fā)表于 03-19 10:42 ?1668次閱讀
    如何解決同步時(shí)鐘系統(tǒng)中的<b class='flag-5'>常見(jiàn)問(wèn)題</b>和故障?

    串口通信常見(jiàn)的錯(cuò)誤和故障排除方法

    在進(jìn)行串口通信時(shí),確實(shí)可能會(huì)遇到一些常見(jiàn)的錯(cuò)誤和問(wèn)題。
    的頭像 發(fā)表于 03-02 14:19 ?4069次閱讀