串口通信是指外設和計算機、或外設和外設之間通過數(shù)據(jù)信號線、地線等按位進行傳輸數(shù)據(jù)的一種通信方式。該通信方式的通信格式包括起始位、數(shù)據(jù)位、校驗位、停止位,串口通信的特點為成本低但傳輸速度慢。串口通信的距離可以從幾米到幾千米。總結了一份排查指南,希望可以給大家提供一些排查問題的方向和辦法。上面簡單介紹了一下串口通信,接下來讓我們進入正題了。我們排查串口通信問題的方向基本為以下幾部分
1.檢查中間件
串口通信必然存在發(fā)送端和接收端,且兩者通過中間件(例如導線),遇到問題,首先應該保證導線連接正常。如果這一部分沒有確定,直接排查其他方向,很可能在做無用功。
2.排查硬件層
通過邏輯分析儀、示波器等儀器來判斷發(fā)送端、接收端在發(fā)送、接收、空閑時的引腳波形是否正常。串口空閑時為高電平,有數(shù)據(jù)時才會有電平變化。同時需要確定電壓是否正常。波形測量的位置先從最終點開始測量,然后依次排查中間部分的探測點,來判斷問題位置。
如果發(fā)現(xiàn)波形變形、失真、電壓不正常等情況,請讓聚英電子硬件工程師協(xié)助進行排查。在其起始點可以看到波形,但是終點看不到,需要使用萬用表來確定是否引腳存在虛焊。
3.檢查串口驅動層
如果排查了硬件無問題以后,但是發(fā)送端串口沒有波形,這時候就需要檢查串口驅動是否配置成功了??梢韵葘l(fā)送端的Tx、Rx引腳短接,進行回環(huán)測試。最好先用一個簡單例程進行測試,盡量排除多個變量的影響。排查時需要特別注意的是,不能只看代碼邏輯,要注重實際調(diào)試,善于利用軟件調(diào)試窗口來觀察相關寄存器的值。
4.應用協(xié)議層
通過以上方向的排查,可以證明自發(fā)自收沒有問題。接下來就驗證雙方是否可以正常通信。應用協(xié)議層可能存在的問題有:
?、侔l(fā)送端與接收端數(shù)據(jù)協(xié)議有問題,例如CRC、幀頭幀尾校驗、解析數(shù)據(jù)包等方面。
②發(fā)送端與接收端串口配置的參數(shù):波特率、校驗位不一致,導致無法通信。