国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種串口波特率匹配方法研究與實現(xiàn)

2023-03-22 09:28陳文印吳同德陳亞平吳科甲
物聯(lián)網(wǎng)技術(shù) 2023年3期
關(guān)鍵詞:機側(cè)機設(shè)備波特率

湯 婕,陳文印,吳同德,陳亞平,胡 超,吳科甲

(福建信息職業(yè)技術(shù)學(xué)院,福建 福州 350000)

0 引 言

串口通信是芯片或者設(shè)備的重要通信方式之一,具有結(jié)構(gòu)簡單并且能夠?qū)崿F(xiàn)遠距離通信等優(yōu)點,應(yīng)用廣泛。常見的芯片都集成有串口外設(shè),通信雙方的通信參數(shù)需完全匹配,才能正常交互數(shù)據(jù)。其中波特率、停止位、校驗位以及數(shù)據(jù)位是串口的幾個參數(shù)指標(biāo)[1-3]。

國際上規(guī)定了一個標(biāo)準(zhǔn)波特率系列,常用的波特率有1 200、1 800、2 400、4 800、9 600、19 200 和 115 200 等。在工程實踐中,有些工控PLC、智能接口等會規(guī)律地向外發(fā)送一些固定的字符或數(shù)據(jù),然后等待外部設(shè)備向它們輸入期待中的握手信號,大部分485控制采集設(shè)備只會被動應(yīng)答。

無論采用哪種方式,由于設(shè)備的波特率是可配置的,在未告知設(shè)備實際工作的波特率情況下,如何快速獲取并修改設(shè)備波特率等通信參數(shù),成為項目實施的一個重要問題。

針對上述問題,本文創(chuàng)新地提出一種只需普通調(diào)試工具也能在短時間內(nèi)進行參數(shù)匹配的方法,該方法代碼門檻低、容易實現(xiàn),對嵌入式芯片無特殊要求,本文還給出了主機側(cè)和從機側(cè)的實現(xiàn)工作流程。

1 研究現(xiàn)狀

目前有不少研究人員對波特率等通信參數(shù)的自動識別進行研究,可以歸為以下幾種方法[4-10]:

(1)標(biāo)準(zhǔn)波特率窮舉法。該方法要求從機側(cè)的波特率必須在有限的幾個固定數(shù)值之間變化,如300~115 200之間的標(biāo)準(zhǔn)值,且從機側(cè)的工作振蕩頻率穩(wěn)定。主機啟動通信程序后,逐個嘗試以不同的波特率接收從機發(fā)出的特定字符,直到能正確接收為止。該方法操作簡單,但連接時間長,局限于只能在固定數(shù)值間變化。

(2)碼元寬度實時檢測法。該方法要求從機按照約定發(fā)送某一數(shù)據(jù),主機通過嵌入式芯片定時器測量RXD引腳上輸入數(shù)據(jù)的碼元寬度,而后計算出待測系統(tǒng)通信的波特率。該方法目前應(yīng)用比較廣泛,但對主機側(cè)性能要求較高,需要能夠測試出碼元寬度。例如,某GSM模塊在設(shè)計時為了適應(yīng)各種通信波特率,要求其通信的系統(tǒng)首先發(fā)送AT指令,它就是依靠AT指令的碼元寬度計算出對方波特率的。

(3)固定波特率法。該方法在主機側(cè)默認一個波特率,收到不同波特率發(fā)出的特定指令并解析出來,以十六進制進行比較,分析出從機側(cè)發(fā)送的波特率,隨后即可進行通信。該方法理論上沒有可靠的保證,在實際應(yīng)用中匹配不成功的概率較高。

2 方法原理

2.1 總體流程

從機設(shè)備在上電后,以特定波特率保持一小段時間,此時從機若接收到主機以相同波特率發(fā)送的特定指令,從機設(shè)備就維持該波特率。主機設(shè)備此時可以發(fā)送修改或者讀取串口通信參數(shù)的配置指令。修改后重啟從機設(shè)備,從機設(shè)備按照設(shè)置后的參數(shù)運行,從而達到串口通信匹配的過程,如圖1所示。

圖1 波特率匹配流程

具體流程可分為如下三個階段:

第一階段為握手階段,主機側(cè)設(shè)置為默認參數(shù)運行,例如“9600,8,N,1”,并按照一定周期發(fā)送保持波特率指令“#keepbaud”,此時命令發(fā)送周期應(yīng)小于1 s,確保從機側(cè)能收到指令。重啟從機設(shè)備,從機設(shè)備在重啟后2 s內(nèi)按照默認參數(shù)運行,能接收到主機側(cè)發(fā)送的指令;收到指令后,從機應(yīng)及時返回應(yīng)答指令“#ok”。主機收到應(yīng)答指令,就可以判斷與從機握手成功。

第二階段為調(diào)試階段,從機收到主機發(fā)送的保持波特率指令后繼續(xù)保持默認參數(shù)運行,并且處理主機后續(xù)發(fā)送的其他指令。在這個階段,主機可以發(fā)送指令讀取或者修改串口運行配置參數(shù),例如“#115200,8,N,1”,從機收到指令后返回應(yīng)答指令。

第三階段為重啟運行階段。主機側(cè)此時不能發(fā)送保持波特率指令,若主機側(cè)發(fā)送了其他指令,例如ModBus指令,從機側(cè)應(yīng)忽略這些指令。重啟2 s后,設(shè)備將以修改之后的波特率運行,處于正常的工作狀態(tài)。如果設(shè)備被設(shè)計為ModBus設(shè)備,可以使用該協(xié)議對設(shè)備進行調(diào)試。

2.2 主機側(cè)工作流程

主機側(cè)一般為個人電腦或者專用的配置設(shè)備,不論設(shè)備能否運行一些高級的語言,只需要有定時器和串口外設(shè),就能實現(xiàn)主機側(cè)相關(guān)功能。參考工作流程如圖2所示。

圖2 工作流程

首先,主機側(cè)應(yīng)不斷發(fā)送保持波特率指令“#keepbaud”,時間間隔可以取0.5 s左右,時間間隔要保證從機側(cè)在等待的過程中至少收到一條指令。發(fā)送的總時間長度可以取5 s,給操作人員足夠的操作時間。5 s后,發(fā)送握手指令“#echo”,查詢從機側(cè)是否處于配置模式,若未處于配置工作模式,則回到第一步。最后,發(fā)送串口參數(shù)配置指令,例如“#115200,8,N,1”,收到從機的應(yīng)答則整個配置流程結(jié)束。

2.3 從機側(cè)工作流程

從機側(cè)一般為單片機等嵌入式系統(tǒng)。從最簡單的51系列到復(fù)雜的ARM系列,嵌入式系統(tǒng)功能差別巨大,性能參差不齊。但是不論功能如何,一般都有定時器外設(shè)和串口外設(shè),只要有這兩種外設(shè),就可以實現(xiàn)從機側(cè)工作流程。具體工作流程如圖3所示。

圖3 從機側(cè)工作流程

嵌入式系統(tǒng)上電后,首先打開串口功能,跟主機側(cè)一樣,以默認參數(shù)運行,保持接收狀態(tài)延時2 s。若此時主機側(cè)發(fā)送保持波特率指令“#keepbaud”,2 s后從機收到保持波特率指令,則進入到配置模式,反之則進入正常工作模式。進入配置工作模式時,串口仍然保持默認參數(shù)運行,保證收到后續(xù)的指令。進入正常工作模式,串口則根據(jù)配置參數(shù)運行,匹配現(xiàn)場實際工作環(huán)境。進入配置工作模式后,串口保持接收狀態(tài)。接收到數(shù)據(jù)后,首先判斷是否為“#echo”回顯指令,若為回顯指令,返回應(yīng)答包?;仫@指令主要用于測試判斷從機側(cè)是否處于配置工作模式。若不是回顯指令,從機應(yīng)繼續(xù)判斷指令是否為配置指令;若為配置指令,將收到的配置參數(shù)寫入FLASH或者E2PROM中并應(yīng)答。掉電重啟后進入正常工作模式時,從存儲外設(shè)中讀取出相關(guān)配置參數(shù)。

3 測試與驗證

3.1 Arduino參考代碼

采用本方法測試驗證時,使用樂鑫的ESP32開發(fā)板,并通過開源電子平臺Arduino軟件搭建ESP32開發(fā)環(huán)境。根據(jù)上述流程,采用C++語言對其進行測試驗證,Arduino部分參考代碼如下:

3.2 測試與驗證

如圖4所示,采用樂鑫的ESP32開發(fā)板、溫濕度傳感器以及自主設(shè)計的拓展開發(fā)板來搭建硬件測試環(huán)境。將ESP32開發(fā)板插到拓展板上,然后通過杜邦線將拓展板和溫濕度傳感器連接,最后用USB數(shù)據(jù)線將ESP32連接到電腦。這樣就可以實現(xiàn)對設(shè)備的串口波特率的修改和匹配。

圖4 實物接線示意圖

采用串口調(diào)試助手進行聯(lián)調(diào),從主機端向從機發(fā)送指令,從機設(shè)備接收到指令后進行應(yīng)答。接收到應(yīng)答信號后主機端向從機發(fā)送修改指令,從機設(shè)備接收到指令后保存并應(yīng)答。實現(xiàn)效果如圖5所示。

圖5 波特率匹配示意圖

4 結(jié) 語

本文利用485通信協(xié)議的特點,提出了一種容易實現(xiàn)、對設(shè)備芯片無特殊要求、可以廣泛使用的匹配方法,可利用普通的串口調(diào)試助手在較短的時間內(nèi)完成參數(shù)匹配過程。文中對主從機側(cè)軟件的流程進行了詳細說明,并給出了ESP32的參考代碼。該方法經(jīng)過多種軟硬件聯(lián)合調(diào)試和驗證,方法簡單可靠,取得了很好的效果。該方法不僅能夠大大減少調(diào)試過程中的工作量,還能在短時間內(nèi)快速識別設(shè)備的波特率。

猜你喜歡
機側(cè)機設(shè)備波特率
基于滑模觀測器的直驅(qū)PMSG機側(cè)控制算法研究與應(yīng)用
4.3米頂裝焦?fàn)t機側(cè)煙氣治理設(shè)計與實踐
PMSM四象限驅(qū)動系統(tǒng)的自適應(yīng)滑模和反步控制
基于FPGA的異步串行通信波特率容錯設(shè)計
淺談煤炭生產(chǎn)企業(yè)綜機設(shè)備管理問題與優(yōu)化策略
陶瓷工程中冷等靜壓機設(shè)備的監(jiān)造工作
論港機設(shè)備狀態(tài)檢測預(yù)知維修與管理
鋼管倒棱機設(shè)備及專業(yè)技術(shù)水平簡介
C*Core芯片SCI串口波特率容限優(yōu)化
計算機多設(shè)備接口波特率不匹配的研究