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

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

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

【請(qǐng)查收】串口通信問題排查指南

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2022-07-02 15:01 ? 次閱讀

在我們從事嵌入式相關(guān)的項(xiàng)目開發(fā)時(shí),經(jīng)常會(huì)遇到各種各樣的串口通信問題。

筆者根據(jù)自己平時(shí)的調(diào)試開發(fā)經(jīng)驗(yàn),總結(jié)了一份排查指南,希望可以給大家提供一些排查問題的方向和辦法。

串口通信

串口通信是指外設(shè)和計(jì)算機(jī)、或外設(shè)和外設(shè)之間通過數(shù)據(jù)信號(hào)線、地線等按位進(jìn)行傳輸數(shù)據(jù)的一種通信方式。該通信方式的通信格式包括起始位、數(shù)據(jù)位、校驗(yàn)位、停止位,如下圖所示。串口通信的特點(diǎn)為成本低但傳輸速度慢。串口通信的距離可以從幾米到幾千米。

7cfd4b54-f8a4-11ec-a2f4-dac502259ad0.png

排查指南

上面簡(jiǎn)單介紹了一下串口通信,接下來讓我們進(jìn)入正題。我們排查串口通信問題的方向基本為以下幾部分,如圖所示,依次為中間層、硬件層、串口驅(qū)動(dòng)層以及應(yīng)用協(xié)議層。

7d139b66-f8a4-11ec-a2f4-dac502259ad0.png

1.檢查中間件

串口通信必然存在發(fā)送端和接收端,且兩者通過中間件(例如導(dǎo)線),遇到問題,首先應(yīng)該保證導(dǎo)線連接正常。如果這一部分沒有確定,直接排查其他方向,很可能在做無用功。

2.檢查硬件層

通過邏輯分析儀、示波器等儀器來判斷發(fā)送端、接收端在發(fā)送、接收、空閑時(shí)的引腳波形是否正常。串口空閑時(shí)為高電平,有數(shù)據(jù)時(shí)才會(huì)有電平變化。同時(shí)需要確定電壓是否正常。波形測(cè)量的位置先從最終點(diǎn)開始測(cè)量,然后依次排查中間部分的探測(cè)點(diǎn),來判斷問題位置。

如果發(fā)現(xiàn)波形變形、失真、電壓不正常等情況,請(qǐng)讓硬件工程師協(xié)助進(jìn)行排查。在其起始點(diǎn)可以看到波形,但是終點(diǎn)看不到,需要使用萬用表來確定是否引腳存在虛焊。

3.檢查串口驅(qū)動(dòng)

如果排查了硬件無問題以后,但是發(fā)送端串口沒有波形,這時(shí)候就需要檢查串口驅(qū)動(dòng)是否配置成功了。

可以先將發(fā)送端的Tx、Rx引腳短接,進(jìn)行回環(huán)測(cè)試。最好先用一個(gè)簡(jiǎn)單例程進(jìn)行測(cè)試,盡量排除多個(gè)變量的影響。排查時(shí)需要特別注意的是,不能只看代碼邏輯,要注重實(shí)際調(diào)試,善于利用軟件調(diào)試窗口來觀察相關(guān)寄存器的值。

4.協(xié)議問題

通過以上方向的排查,可以證明自發(fā)自收沒有問題。接下來就驗(yàn)證雙方是否可以正常通信。應(yīng)用協(xié)議層可能存在的問題有:

發(fā)送端與接收端數(shù)據(jù)協(xié)議有問題,例如CRC、幀頭幀尾校驗(yàn)、解析數(shù)據(jù)包等方面。

發(fā)送端與接收端串口配置的參數(shù):波特率、校驗(yàn)位不一致,導(dǎo)致無法通信。

另外大家也需要注意下面這幾點(diǎn):

由于信號(hào)容易被干擾,建議使用帶屏蔽線,并且接線一定要嚴(yán)格,需要接地的最好接地。有些485通信,還需要考慮接上終端電阻來匹配。如果是RS232通信,盡量不要讓線太長(zhǎng)。

因?yàn)楹芏嘣O(shè)備通過外部晶振或者內(nèi)部時(shí)鐘計(jì)算的波特率都是存在誤差的。這樣的話如果一旦報(bào)文過長(zhǎng),會(huì)導(dǎo)致誤差累積,進(jìn)而出現(xiàn)串口識(shí)別亂碼或者收不到的情況。

在一些可能會(huì)存在干擾的地方,可以考慮使用奇校驗(yàn)或者偶校驗(yàn),這樣可以將錯(cuò)誤的報(bào)文過濾掉或者盡量使用一些數(shù)據(jù)校驗(yàn)協(xié)議,防止數(shù)據(jù)出錯(cuò)。

以上就是筆者總結(jié)的串口通信方面的排查指南,文中如有出錯(cuò)之處,望指正,希望大家共同進(jìn)步!

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

    關(guān)注

    34

    文章

    1627

    瀏覽量

    55630
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串口通信原理解析 串口與并口的區(qū)別

    在計(jì)算機(jī)硬件和通信領(lǐng)域,串口(Serial Port)和并口(Parallel Port)是兩種常見的數(shù)據(jù)傳輸接口。它們?cè)跀?shù)據(jù)傳輸方式、速度、應(yīng)用場(chǎng)景等方面有著明顯的區(qū)別。 串口通信
    的頭像 發(fā)表于 12-27 09:50 ?472次閱讀

    【迅為電子】叮!您的RK3568開發(fā)板系統(tǒng)鏡像備份方法請(qǐng)查收

    【迅為電子】叮!您的RK3568開發(fā)板系統(tǒng)鏡像備份方法請(qǐng)查收
    的頭像 發(fā)表于 11-27 14:02 ?395次閱讀
    【迅為電子】叮!您的RK3568開發(fā)板系統(tǒng)鏡像備份方法<b class='flag-5'>請(qǐng)</b><b class='flag-5'>查收</b>

    串口通信的開發(fā)環(huán)境配置

    串口通信的開發(fā)環(huán)境配置涉及多個(gè)方面,包括選擇編程語言、安裝必要的庫或驅(qū)動(dòng)程序、配置串口參數(shù)等。以下是一個(gè)基于Python的串口通信開發(fā)環(huán)境配
    的頭像 發(fā)表于 11-22 09:21 ?323次閱讀

    使用Python進(jìn)行串口通信的案例

    當(dāng)然!以下是一個(gè)使用Python進(jìn)行串口通信的簡(jiǎn)單示例。這個(gè)示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫,這是一個(gè)非常流行的用于串口
    的頭像 發(fā)表于 11-22 09:11 ?356次閱讀

    串口通信與并口通信的區(qū)別

    在計(jì)算機(jī)和電子設(shè)備的數(shù)據(jù)傳輸領(lǐng)域,串口通信(Serial Communication)和并口通信(Parallel Communication)是兩種基本的通信方式。它們各自有著獨(dú)特的
    的頭像 發(fā)表于 11-22 09:04 ?908次閱讀

    串口通信協(xié)議解析 串口通信應(yīng)用實(shí)例

    串口通信協(xié)議解析 串口通信協(xié)議是指規(guī)定了數(shù)據(jù)包的內(nèi)容,內(nèi)容包含了起始位、主體數(shù)據(jù)、校驗(yàn)位及停止位,雙方需要約定一致的數(shù)據(jù)包格式才能正常收發(fā)數(shù)據(jù)的有關(guān)規(guī)范。以下是
    的頭像 發(fā)表于 11-21 17:03 ?646次閱讀

    機(jī)智云歷史數(shù)據(jù)導(dǎo)出與排查指南

    機(jī)智云歷史數(shù)據(jù)導(dǎo)出與排查指南在使用機(jī)智云平臺(tái)進(jìn)行設(shè)備管理和數(shù)據(jù)監(jiān)控時(shí),歷史數(shù)據(jù)的導(dǎo)出和排查是常見的需求。機(jī)智云提供了開放的API接口,方便用戶通過編程方式導(dǎo)出設(shè)備歷史數(shù)據(jù),以便進(jìn)行分析或排查
    的頭像 發(fā)表于 11-21 01:01 ?191次閱讀
    機(jī)智云歷史數(shù)據(jù)導(dǎo)出與<b class='flag-5'>排查</b><b class='flag-5'>指南</b>

    為什么通信要使用虛擬串口串口助手?

    串口助手和虛擬串口是什么?串口助手和虛擬串口串口通信中很常見。
    的頭像 發(fā)表于 11-15 01:04 ?1490次閱讀
    為什么<b class='flag-5'>通信</b>要使用虛擬<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    請(qǐng)查收!一張來自南京會(huì)“發(fā)光”的城市名片 智慧路燈 物聯(lián)網(wǎng)太陽能路燈

    請(qǐng)查收!一張來自南京會(huì)“發(fā)光”的城市名片 智慧路燈 物聯(lián)網(wǎng)太陽能路燈
    的頭像 發(fā)表于 10-28 14:48 ?323次閱讀
    <b class='flag-5'>請(qǐng)</b><b class='flag-5'>查收</b>!一張來自南京會(huì)“發(fā)光”的城市名片 智慧路燈 物聯(lián)網(wǎng)太陽能路燈

    請(qǐng)查收這份音叉液位開關(guān)的安裝指南!

    液位計(jì)
    jzyb
    發(fā)布于 :2024年08月06日 10:25:35

    倒計(jì)時(shí)4天 | 飛凌嵌入式技術(shù)創(chuàng)新日(北京站)參會(huì)指南請(qǐng)查收

    距離飛凌嵌入式技術(shù)創(chuàng)新日(北京站)的舉辦還有4天,小編特地為各位朋友準(zhǔn)備了這份參會(huì)指南,請(qǐng)注意查收!
    的頭像 發(fā)表于 06-21 14:45 ?500次閱讀
    倒計(jì)時(shí)4天 | 飛凌嵌入式技術(shù)創(chuàng)新日(北京站)參會(huì)<b class='flag-5'>指南</b><b class='flag-5'>請(qǐng)</b><b class='flag-5'>查收</b>

    什么是串口通信?它有哪些特點(diǎn)和應(yīng)用?

    在現(xiàn)代電子通信和計(jì)算機(jī)領(lǐng)域中,串口通信(Serial Communications)扮演著至關(guān)重要的角色。它是一種按位(bit)發(fā)送和接收字節(jié)的通信方式,能夠?qū)崿F(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸和高效
    的頭像 發(fā)表于 05-23 16:23 ?2695次閱讀

    串口通信的常見錯(cuò)誤及故障排除方法介紹

    串口通信作為設(shè)備間數(shù)據(jù)傳輸?shù)某S梅绞?,在?shí)際應(yīng)用中可能會(huì)遇見多種故障和問題,導(dǎo)致電子工程師無法進(jìn)行后續(xù)設(shè)計(jì),那么如何針對(duì)這些錯(cuò)誤進(jìn)行故障排查?
    的頭像 發(fā)表于 03-25 09:05 ?1.2w次閱讀

    無線通信中如何排查電磁波干擾?

    無線通信中如何排查電磁波干擾?
    發(fā)表于 03-07 07:18

    如何排查FPGA與USB之間的芯片通信問題?

    ”,而在SBBulkSourceSink固件中沒有顯示這個(gè)錯(cuò)誤,可不可以證明我的FPGA和USB之間通信成功?另外,我該如何排查FPGA與USB之間的芯片通信問題?
    發(fā)表于 02-27 06:46