陳麗,夏興隆,王莉莉,卜樹坡
(1.蘇州工業職業技術學院 電子與通信工程系,江蘇 蘇州 215000;2.蘇州易泰勒電子科技有限公司,江蘇 蘇州 215123; 3.東南大學 電子科學與工程學院,南京 210096)
新基建背景下,工業互聯網、大數據中心等基礎設施的大力建設,進一步加速了各行各業的數字化進程。借助云平臺在數據存儲、數據推送、命令下發等方面的優勢,使信息遠程監測、設備遠程控制等在工業、農業等諸多領域得以實現[1-5]。
終端設備按照一定的應用層協議與云平臺實現信息交互,比較常用的協議包括HTTP、CoAP、MQTT等,每種協議具有不同的特點,應用領域不同[6-8]。HTTP協議是目前互聯網應用最多的應用層協議,采用TCP作為傳輸層協議,協議簡單、靈活;但是,這類協議較占資源,僅報文頭就至少需要占用幾十字節的資源。在M2M應用場景中,節點數量多、設備資源有限等特點決定了HTTP協議并不能很好地滿足應用需求[9]。CoAP和MQTT是針對終端設備資源受限這一特點專門設計的應用層協議,兩者協議包均較小,很大程度地節約了資源,在M2M場景中應用均較為廣泛[9-12]。CoAP協議基于RESTFul架構[10-11],其傳輸層采用較TCP更輕便、占用資源更少的UDP協議,消息格式為更緊湊的二進制格式,因此,CoAP協議的協議包遠小于HTTP;但是這類協議容易受到DDos攻擊,安全性和可靠性存在問題[13]。MQTT協議基于TCP傳輸層協議,采用發布/訂閱的模式進行信息傳輸,該協議提供三類QoS來保證消息傳輸質量和傳輸效率[14],但是,較低的QoS存在丟包率高的問題,較高的QoS需要消耗更多資源;這類協議通過訂閱的方式實現消息傳輸,不支持點對點通信;同時,不支持負載均衡,存在由于惡意攻擊、高并發引起的安全隱患。
為了滿足點對點設備間的通信,同時兼顧丟包率和安全因素,基于TCP傳輸層協議設計了增強設備協議,采用發送RAS加密消息的方式,增強安全性。與HTTP協議相比,增強設備協議減少了大量HTTP協議的復雜報文,更適合資源受限的M2M使用場景。
本文以水環境監測為具體應用場景,采集溫度、溶氧量兩類信息,并基于增強設備協議實現終端設備采集信息上傳至云平臺、云平臺命令下發至終端設備、不同終端設備間數據推送三大類功能,采用BP神經網絡對溶氧量及控制信號進行預測,最終實現復雜場景下的智能遠程監測和控制。
本系統主要由以下幾部分構成:傳感器和信號傳輸電路組成的信號采集部分、GSM模塊組成的無線傳輸部分、STM32L系列的低功耗MCU控制部分、供電模塊。系統框圖如圖1所示。

圖1 系統結構框圖
信號傳輸電路主要將傳感器信號準確地傳送至MCU,考慮到水環境監測通常在水下進行,電磁波在水中快速衰減且干擾較大,通常采用有線的方式將傳感器采集到的數據傳送至MCU。常見的有線傳輸方式中,RS-485總線應用較多,與傳統RS-232相比,該方式允許在兩根傳輸線上連接多個設備,在需要采集多個信息、抗干擾能力要求高的應用場景中,具有較大的優勢。針對RS-485接口的傳感器,需要采用相應的信號轉換芯片,文中的信號傳輸電路由RS-485芯片SIT3088E、光隔離模塊組成,如圖2所示。其中,RS-485芯片用于信號轉換,經過光隔離模塊將信號送至MCU。當不需要進行信號采集時,MCU控制電源開關電路(圖3)關斷電路來降低功耗。

圖2 信號傳輸電路

圖3 電源開關電路
終端采集的信號傳輸至云平臺,通常采用無線信號傳輸電路來實現。考慮到戶外環境下運營商網絡覆蓋率高、物聯網單個節點數據量小等特點,本文選取了支持GSM/GPRS網絡的M6312芯片,該芯片工作溫度范圍可達-40 ℃~85 ℃,滿足苛刻應用環境要求。無線傳輸電路設計如圖4所示。

圖4 無線信號傳輸電路
增強設備協議是基于OneNET平臺定義的一類針對物聯網應用特點的應用層協議,該協議規定了終端設備與云平臺建立連接、上傳數據、透傳數據等消息的組包規則,以最簡單的形式定義了數據交互的實現方式。
所有消息包含以下三部分:消息頭、可選項、消息體。消息頭由消息類型、保留位和剩余消息長度組成,其中消息類型占第一個字節的高四位;保留位占第一個字節的低四位,一般保留位全為零;剩余消息長度可以占用1-4字節,具體數值為可選項占用字節數與消息體占用字節數之和,根據計算結果決定剩余消息長度,具體對應關系如表1所示。

終端設備與云平臺建立連接,必須發送滿足協議要求的連接請求。
連接請求的消息類型為1,考慮到消息類型在消息頭第1字節的高位,消息頭第1字節為0x10。
連接請求的可選項包括協議名稱、協議版本、連接標志、保持連接時間。協議名稱由5個字節組成,低三位為協議名稱“EDP”,高兩位表示協議名稱的長度3。協議版本占用1個字節,值為1。連接標志占用1個字節,通過最高位區分設備登錄的認證方式,當最高位為1時,采用產品ID和auth_info進行認證;當最高位為0時,采用設備ID和APIkey進行認證;保持連接時間占2個字節,以秒為單位。
消息體內容與連接標志對應。當連接標志最高位為0時,消息體包含設備ID和APIkey兩項參數,每項參數由長度和參數值組成,組包時長度在前,具體參數值在后;當連接標志最高位為1時,消息體包含設備ID、產品ID和auth_info,其中設備ID直接設為兩字節0,后兩項參數同樣包含參數長度和參數值。
最后,根據可選項和消息體計算剩余消息長度,并合成消息頭。發送連接請求后,會收到平臺4個字節的連接響應,消息類型為2;第4個字節表示連接返回碼,0表示連接成功。
設備增強協議中,上傳數據消息類型為8。可選項包括標志、目標地址和消息編號。標志占用1個字節,最高位表示是否有目標地址,不存在目標地址時,值為0;次高位表示消息編號,用于區分不同消息。目標地址根據標志最高位值進行設置,該項不必需。消息編號占用2個字節。
消息體為具體上傳的數據。第一個字節表示數據類型,后兩個字節表示消息長度,后續為具體消息內容。最后,根據可選項和消息體計算剩余消息長度。
從云平臺向終端設備發送命令以實現遠程控制是云平臺重要應用之一。在這類應用中,設備增強協議規定了云平臺發送至設備端的消息模式,設備端接收到消息并按協議規則進行解析。下發命令的消息類型為10,剩余消息長度由后續內容確定,占用1~4個字節。剩余消息由命令ID和命令消息體組成。對于每一條下發命令,系統均會分配一個命令ID,當需要響應時,需要在響應信息中,添加該ID進行針對性回復;命令ID又包含2個字節的命令ID長度和具體ID值,命令消息體則包含4個字節的命令消息體長度和不超過64K的命令消息體組成。
點對點數據透傳將數據的解析下放至設備端,由終端設備自行定義數據的解析規則,可以通過點對點的定向數據交互實現更個性化、安全的應用設計。與上述功能不同,點對點數據透傳包含發送端和接收端兩部分。點對點數據透傳的消息類型為3。剩余消息長度由可選項和消息體的長度決定。可選項由目標地址長度和目標地址組成,其中地址長度占用2個字節,目標地址為設備ID。消息體為用戶自定義的不超過276字節的數據。
增強設備協議每項具體功能的實現均包括按照協議規則進行數據組包或解包、設備端與云平臺實現無線數據傳輸兩部分。以下通過數據協議組包、解包和無線數據收發,介紹增強設備協議的實現方式。
無線數據傳輸是雙向的,一般包括數據發送和數據接收。本文中,M6312是無線數據傳輸的具體實現模塊,通過串口與MCU實現數據通信,接收到MCU的數據后,通過AT指令發送上傳數據:
//發送上傳數據AT指令
sprintf(cmdBuf, "AT+IPSEND=%d ", len);
當成功收到云平臺反饋后,通過如下代碼將信息上傳至云平臺:
//收到‘>’時可以上傳數據
if(!M6312_SendCmd(cmdBuf, ">"))
{
//發送設備連接請求數據
Usart_SendString(USART2, data, len);
}
其中,data和len是按照協議封裝后的協議包。
接收平臺發送的信息,則直接讀取M6312緩存內的內容,并進行分析。
增強設備協議可實現的功能中,發送連接請求、信息上傳、點對點數據透傳發送端的實現流程類似,如圖5所示。

圖5 信息發送流程圖
系統為數據分配內存,按照增強設備協議的連接請求、信息上傳規則或點對點數據透傳規則進行協議組包,再通過M6312芯片將協議包上傳至云平臺,然后等待平臺響應。為了進一步簡化協議,平臺響應采用代碼來表示不同連接結果和信息上傳結果,點對點數據透傳則不設響應碼。終端設備接收到平臺響應代碼后,根據協議規定進行解析,并對應地打印連接結果。
設備增強協議中,接收信息類型包含云平臺下發的命令、終端設備透傳的信息等,解析流程類似,如圖6所示。

圖6 信息接收流程圖
M6312接收到信息后,通過判斷是否有關鍵字來明確是否收到平臺信息。各類信息的區分主要在于消息頭中的消息類型。接收到消息后,通過判斷消息類型進一步明確按照何種協議規則對接收到的信息進行解包。對于下發命令來說,解包過程主要提取命令ID和命令消息體;透傳信息則主要提取消息體。
本文旨在設計基于增強設備協議的遠程智能監測系統,協議包的大小是重要評估指標[9-12]。當發送相同信息的情況下,不同協議生成的協議包大小不同;協議復雜程度決定了通信芯片、MCU的選型;協議包越大,所需設備資源、網絡資源越多,同時,也會產生較多的資費。
以下,針對HTTP、EDP、MQTT三種協議,通過抓包工具分析上傳信息、命令下發對應的協議包大小。為了避免設備名稱、鑒權信息長度等對協議包大小的影響,本實驗涉及的設備名稱保持一致。
圖7給出了上傳不同長度的信息時,不同協議所生成的協議包大小。

圖7 不同協議發送信息的協議包大小Fig.7 Packet size of messages sent by different protocols
從圖7中可以看出,HTTP協議的協議包遠大于EDP協議和MQTT協議,后兩種協議更適合物聯網場景的應用。
三種協議中,HTTP協議采用請求/響應工作模式,服務器無法主動向客戶端發送消息,無法實現云平臺命令主動下發。以下比較增強設備協議和MQTT協議,對云平臺命令下發的數據包大小進行分析,結果如圖8所示。

圖8 不同協議接收云平臺命令的協議包大小
從圖8中可以看出,EDP協議的協議包小于MQTT的協議包大小。從資源占用角度來看,EDP和MQTT均較適合M2M的應用場景。但是,該平臺下發指令時,EDP可以在設定的時間范圍內,接收離線消息,而MQTT協議無法接收離線消息。由于網絡信號等原因,丟包率高于EDP協議。
整個系統設計完成后,可以通過網頁進行遠程監控,實現信息上傳和云平臺命令下發;點對點數據透傳過程中,云平臺僅作為中轉站,信息監控直接在設備端進行。
當系統工作時,可以遠程登錄云平臺實現信息查看和命令下發,圖9給出溶氧傳感器每隔兩小時上傳一個數據點的監測結果。

圖9 溶氧量遠程監測結果(mg/L)
溶氧量受光照強度、喂食等因素影響顯著,要滿足最優的水環境指標,需要對溶氧量進行準確地調節[15]。考慮到溶氧量的時變性、非線性、大時滯等特點[16],基于Tensorflow搭建BP神經網絡對溶氧量進行預測,BP神經網絡結構如圖10所示,主要包括三層:輸入層、中間層和輸出層,每一層都包含若干個神經元,圖中圓形表示一個神經元;每個神經元包含若干個輸入信號和一個輸出信號,每個輸入對應一個權重,輸入和權重相乘,然后相加,結果經過sigmoid函數后輸出。本文將監測到的上一時刻的溶氧量和溫度作為輸入,當前時刻的溶氧量和溶解氧控制信號作為輸出,進行訓練。

圖10 BP神經網絡結構圖
考慮到MCU的運算能力較弱,訓練過程在計算機上進行,再通過Cube.AI將訓練好的模型轉換成庫文件,直接在STM32 MCU上運行,根據監測到的參數信息,預測溶氧量和溶解氧的控制信號。
圖11給出云平臺下發命令至智能終端的頁面,下發格式包含字符串和16進制。QoS級別有需要響應和不需要響應兩類。在設定的失效時間范圍內,設備上線即可收到云平臺下發的命令。

圖11 云平臺命令下發
遠程監控可以訪問固定網址實現,監控界面如圖12所示。該界面可以查看溫度和溶氧兩個傳感器采集的信息。溫度為一段時間范圍內的值,溶氧量為實時監測結果;還可以通過按鍵直接控制系統執行器的外部供電,實現遠程控制。

圖12 遠程監控界面
文章采用低功耗MCU、RS-485接口傳感器、信號傳輸電路、GSM無線傳輸電路設計了智能終端硬件系統。該系統通過增強設備協議與云平臺實現信息交互,并通過網頁實現遠程監測和控制。設備端采用BP神經網絡對溶氧量及控制信號進行預測,實現智能控制。
通過對不同協議的協議包大小進行對比,結果表明增強設備協議的協議包較小,對資源要求低;且支持離線消息;在支持信息上傳、云平臺命令下發的同時,還支持點對點信息透傳,適合資源受限的M2M應用場景。后期將對終端硬件平臺與云平臺信息交互過程中,涉及的信息安全進行深入研究,使系統更完善,更好地滿足實際應用需求。