劉錫成 , 何 超 , 趙龍慶
(西南林業(yè)大學機械與交通學院,云南 昆明 650000)
將任何對象連接到互聯(lián)網(wǎng)的概念是一種新的范式,被稱為物聯(lián)網(wǎng)[1]。這些被稱為“事物”的連接物體,連接到互聯(lián)網(wǎng)上,以增強其功能,將普通物體變成智能物體。生活中的很多內(nèi)容都可以和物聯(lián)網(wǎng)融為一體,物聯(lián)網(wǎng)極大地改善了人們的生活,讓生活變得更加美好,可以引入的場景,如智能家居、自動駕駛汽車、智能城市和智能農(nóng)業(yè)[2]。物聯(lián)網(wǎng)可以應(yīng)用于所有區(qū)域,因為任何物體無論類型或目的都可以連接起來,其中包括虛擬物體、無生命物體,甚至生物體[3]。隨著農(nóng)業(yè)物聯(lián)網(wǎng)及其相關(guān)技術(shù)的飛速發(fā)展,數(shù)字化與信息化已經(jīng)成為現(xiàn)代農(nóng)業(yè)的重要研究內(nèi)容之一,人們越來越重視信息。信息技術(shù)是農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)的核心,高度集成的農(nóng)業(yè)與信息流是現(xiàn)代農(nóng)業(yè)必然要求[4-5]。當前,在農(nóng)業(yè)物聯(lián)網(wǎng)中無線數(shù)據(jù)傳輸設(shè)備會發(fā)揮越來越重要的作用,越來越多的農(nóng)業(yè)物聯(lián)網(wǎng)的發(fā)展模式是現(xiàn)場總線、無線通信、嵌入式、物聯(lián)網(wǎng)等高新技術(shù)及其與農(nóng)業(yè)相關(guān)設(shè)備的有效結(jié)合和應(yīng)用[6-7]。針對農(nóng)機排放監(jiān)測需求,課題組提出了一種利用4G DTU無線通信模塊ATK-M751實現(xiàn)農(nóng)機與遠程監(jiān)測平臺無線通信的解決方案。
農(nóng)機排放監(jiān)測系統(tǒng)由遠程監(jiān)測平臺、農(nóng)機和STM32單片機構(gòu)成。CAN模塊作為數(shù)據(jù)采集,ATK-M751模塊作為無線通信。整個系統(tǒng)中采用波特率115 200 b/s在遠程監(jiān)測平臺和農(nóng)機之間進行無線通信,在通信過程中會遇到同頻干擾的問題,為了避免數(shù)據(jù)出現(xiàn)錯誤,系統(tǒng)使用了分時TDMA(Time Division Multiple Access) 技術(shù)。系統(tǒng)在遠程監(jiān)測平臺端依次采集農(nóng)機排放的數(shù)據(jù)以及收發(fā)通信請求等相關(guān)信息,農(nóng)機端采用的是中斷方式對遠程監(jiān)測平臺發(fā)送的地址信息進行回應(yīng),如果信息與本機地址相符則執(zhí)行相應(yīng)的命令。數(shù)據(jù)傳輸均通過無線通信模塊ATK-M751完成。系統(tǒng)組成如圖1所示。
圖1 農(nóng)機排放監(jiān)測系統(tǒng)組成
ATK-M751,由正點原子(ALIENTEK)團隊研發(fā),是一款高性能全網(wǎng)通 4G DTU 產(chǎn)品,能同時支持移動、聯(lián)通和電信4G手機卡。有著高速率、少延遲的優(yōu)勢,能迅速解決應(yīng)用場合下的無線數(shù)據(jù)傳輸方案。支持RS232和RS485兩種不同的串行接口,同時還支持HTTP/TCP/UDP/MQTT/DNS/RNDIS/NTP 多種協(xié)議,可以連接原子云、OneNET、百度云和阿里云多種云服務(wù)器,并且支持自定義心跳包和注冊包數(shù)據(jù),自動定時采集任務(wù)、基站定位等。它可以被廣泛應(yīng)用于無線數(shù)據(jù)傳輸、環(huán)保行業(yè)、電力行業(yè)、工業(yè)控制、農(nóng)業(yè)應(yīng)用、集抄系統(tǒng)和智能家居等多個領(lǐng)域[8-10]。ATK-M751無線通信模塊無線參數(shù)如圖2所示。
圖2 ATK-M751無線參數(shù)
在農(nóng)機排放監(jiān)測系統(tǒng)中,為獲取農(nóng)機排放相關(guān)信息,用到現(xiàn)場總線CAN技術(shù),STM32單片機嵌入式技術(shù),由STM32單片機CAN接口連接農(nóng)機OBD接口中的CAN讀取數(shù)據(jù),存入單片機緩存,再由配置的無線通信模塊發(fā)送至遠程監(jiān)測平臺。
通信協(xié)議就是通信各方為了實現(xiàn)信息交流而建立的規(guī)則[7]。本系統(tǒng)使用了HTTP通信協(xié)議。因此不可避免地會遇到信源與信宿建立通信關(guān)系地址匹配的問題。而因為無線收發(fā)模塊自身的特點,在通信過程中可能會受到外界的干擾引起發(fā)射端與接收端之間數(shù)據(jù)傳輸結(jié)果出現(xiàn)錯誤。由此就必須用通信協(xié)議來保證接收端能正確接收發(fā)送端發(fā)來的數(shù)據(jù),以及確定其所接收數(shù)據(jù)是否為實際數(shù)據(jù)[7]。
HTTP協(xié)議,中文全稱為超文本傳輸協(xié)議(Fieldingetal.,1999),它是互聯(lián)網(wǎng)上最受歡迎的協(xié)議之一,被廣泛用于傳輸網(wǎng)站內(nèi)容[6]。其協(xié)議請求格式和協(xié)議響應(yīng)格式如圖3、圖4所示。
圖3 HTTP協(xié)議請求格式
圖4 HTTP協(xié)議響應(yīng)格式
系統(tǒng)采用AT指令對ATK-M751無線通信模塊進行HTTP模式配置。首先發(fā)送 AT 指令“+++”進入配置模式,輸入“AT+WORK="HTTP" ”選擇DTU的工作模式為HTTP模式,配置HTTP模式請求方式為 GET “AT+HTTPMD="GET" ”,配置HTTP模式請求超時時間為10 s “AT+HTTPTM="10" ”,然后配置遠程監(jiān)測平臺服務(wù)器URL“AT+HTTPURL="遠程服務(wù)器url地址" ”,配置HTTP模式下的請求頭信息“AT+HTTPHD=" Connection:close" ”,最后發(fā)送AT指令“ATO”重啟DTU,至此ATK-M751無線通信模塊HTTP模式配置完成。
只設(shè)計通信協(xié)議是不夠的,系統(tǒng)在農(nóng)機無線通信模塊編程設(shè)計方面還需要考慮數(shù)據(jù)的糾錯。檢錯的方法有很多,可以是校驗和的方式,也可以是其他更好的CRC校驗方式。農(nóng)機排放數(shù)據(jù)發(fā)送端流程圖如圖5所示。
圖5 農(nóng)機排放數(shù)據(jù)發(fā)送端流程圖
如圖5的流程所示,在系統(tǒng)上電運行后,1)需要對設(shè)備進行初始化,需要初始化設(shè)備的相關(guān)配置。2)采集模塊與車輛總線建立連接,建立連接之前需要判斷系統(tǒng)的工作模式。當系統(tǒng)處在數(shù)據(jù)采集的模式,采集模塊將會發(fā)送OBD協(xié)議詢問信息到農(nóng)機車輛總線,如果農(nóng)機車輛總線有相應(yīng)的數(shù)據(jù)回應(yīng),則采集模塊與車輛總線的連接建立成功。3)農(nóng)機排放數(shù)據(jù)的采集和存儲,在連接建立成功之后判斷OBD協(xié)議是否為 SAEJ1939,如果協(xié)議為SAEJ1939則采集模塊根據(jù)既定協(xié)議采集農(nóng)機排放數(shù)據(jù),采集方式為循環(huán)采集,采集完成后先將數(shù)據(jù)存入單片機數(shù)據(jù)緩沖區(qū)。4)農(nóng)機排放數(shù)據(jù)發(fā)送,通過ATK-M751無線通信模塊將采集的農(nóng)機排放數(shù)據(jù)發(fā)送到遠程監(jiān)測平臺,在發(fā)送之前,需要ATK-M751與遠程監(jiān)測平臺服務(wù)器先建立連接,連接建立成功后開始發(fā)送數(shù)據(jù)。至此,農(nóng)機排放數(shù)據(jù)的采集和發(fā)送工作結(jié)束[8]。
在整個應(yīng)用程序設(shè)計過程中,OBD 數(shù)據(jù)采集模塊有休眠和喚醒兩種工作狀態(tài)的切換,在以下兩種情況下將會進入休眠。如果農(nóng)機車輛總線沒有回應(yīng)OBD 建立連接的詢問信息,那么模塊便進入到休眠狀態(tài);如果在農(nóng)機排放數(shù)據(jù)采集的過程中采集到的不是連續(xù)穩(wěn)定的數(shù)據(jù),那么模塊也會進入到休眠狀態(tài)。關(guān)于怎樣才能喚醒休眠的數(shù)據(jù)采集模塊,如果總線數(shù)據(jù)活躍則被喚醒,因為農(nóng)機車輛總線的狀態(tài)會被采集模塊定時監(jiān)測,車輛總線狀態(tài)發(fā)生改變,采集模塊工作狀態(tài)也會相應(yīng)發(fā)生改變。當農(nóng)機排放數(shù)據(jù)接收完畢,將進入發(fā)送狀態(tài),在進入發(fā)送狀態(tài)前需要對數(shù)據(jù)進行打包,打包的數(shù)據(jù)需要添加校驗位,最后將整理好的數(shù)據(jù)發(fā)送出去[8]。
仿真結(jié)果表明,該無線通信模塊實現(xiàn)了遠程監(jiān)測平臺和農(nóng)機之間的無線實時通信,在農(nóng)機排放監(jiān)測管理中,STM32單片機通過CAN接口將讀取的農(nóng)機排放信息,通過ATK-M751無線通信模塊實時傳遞到遠程監(jiān)測平臺顯示并保存在數(shù)據(jù)庫中,實現(xiàn)了實時農(nóng)機排放監(jiān)測管理。該裝置可應(yīng)用于諸多領(lǐng)域,且具有一定的可移植性。