盧愛紅,卓 云,楊佳奇
(蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院信息技術(shù)系,蘇州 215009)
隨著物聯(lián)網(wǎng)技術(shù)的深入發(fā)展,各行各業(yè)對各種傳感網(wǎng)的應(yīng)用需求應(yīng)運(yùn)而生。針對傳輸距離遠(yuǎn),數(shù)據(jù)流量低,信號可靠性要求高的現(xiàn)代工業(yè)生產(chǎn)數(shù)據(jù)傳輸需求,一般采用RS485 總線構(gòu)建有線網(wǎng)絡(luò);針對傳輸距離近、數(shù)據(jù)流量低、功耗低的數(shù)據(jù)傳輸應(yīng)用需求,一般采用ZigBee構(gòu)建無線傳感器網(wǎng)絡(luò);針對傳輸距離相對較遠(yuǎn),數(shù)據(jù)量不大,功耗低的無線傳輸要求,一般采用Lora 或者NB-IoT 搭建傳感器網(wǎng)絡(luò),等等。根據(jù)不同的應(yīng)用場景,選擇不同的通信協(xié)議來構(gòu)建傳感網(wǎng),異構(gòu)的通信協(xié)議之間無法通信。而以計算機(jī)為主要設(shè)備的傳統(tǒng)通信網(wǎng)絡(luò),傳輸協(xié)議以TCP/IP 為主,使得物聯(lián)網(wǎng)傳感網(wǎng)與傳統(tǒng)通信網(wǎng)絡(luò)之間也不能互聯(lián)互通。如何打通不同協(xié)議之間的數(shù)據(jù)連通,實現(xiàn)不同的應(yīng)用網(wǎng)絡(luò)之間的通信,是智能網(wǎng)關(guān)技術(shù)的出現(xiàn)和發(fā)展的客觀需求。面對復(fù)雜的傳感網(wǎng)搭建需求,物聯(lián)網(wǎng)智能網(wǎng)關(guān)能夠有效接入多種傳感網(wǎng)的信號,在數(shù)據(jù)接入端需要提供多種網(wǎng)絡(luò)的接入功能。同時為了實現(xiàn)傳感器網(wǎng)絡(luò)和通用的Internet 網(wǎng)絡(luò)之間的通信,智能網(wǎng)關(guān)需要接入到Internet 網(wǎng)絡(luò),一般可以采用的硬件連接方式是Wi-Fi、4G 模塊、有線以太網(wǎng)等。物聯(lián)網(wǎng)智能網(wǎng)關(guān)除了實現(xiàn)不同通信協(xié)議內(nèi)容的翻譯轉(zhuǎn)換的基本功能之外,還需要進(jìn)行設(shè)備管理,完成數(shù)據(jù)存儲、協(xié)議分析、閾值判斷、簡單決策、數(shù)據(jù)上傳等功能。系統(tǒng)集成ARM 控制器和RS485 總線、ZigBee 網(wǎng)絡(luò)、Wi-Fi 模塊,能夠搭建功能完整的物聯(lián)網(wǎng)智能網(wǎng)關(guān)系統(tǒng)。
物聯(lián)網(wǎng)智能網(wǎng)關(guān)系統(tǒng)以ARM 為主控制器,通過串口接入ZigBee 無線傳感網(wǎng)、RS485 傳輸總線、Wi-Fi 模組等部分。ARM 主控制器選用Cortex-M3 芯片,從RS485 總線和ZigBee 協(xié)調(diào)器接收傳感器網(wǎng)絡(luò)的數(shù)據(jù),采集的數(shù)據(jù)在LCD 顯示屏上實時顯示和更新,并通過Wi-Fi模組發(fā)送到云服務(wù)器,云服務(wù)器調(diào)用人工智能算法對傳感器數(shù)據(jù)進(jìn)行分析,并做出決策,再經(jīng)由網(wǎng)關(guān)發(fā)送到傳感器網(wǎng)絡(luò)上的執(zhí)行器。網(wǎng)關(guān)的主控制器芯片是STM32 芯片,通過實時操作系統(tǒng),實現(xiàn)多任務(wù)的通信和管理,完成物聯(lián)網(wǎng)網(wǎng)關(guān)需要的采集、存儲、分析、顯示、上報、分析指令以及下達(dá)指令等功能[1]。
系統(tǒng)設(shè)計框圖如圖1所示。
圖1 系統(tǒng)框圖
系統(tǒng)硬件設(shè)計的主要工作是ARM 控制器開發(fā)板和傳感器網(wǎng)絡(luò)節(jié)點電路的設(shè)計。ARM 以STM32F103 芯片為主控制芯片,需要完成芯片的最小系統(tǒng)設(shè)計。芯片的通信接口設(shè)計比較復(fù)雜,UART0 用于程序的下載和調(diào)試,UART3 連接RS485 和串口的轉(zhuǎn)換收發(fā)芯片MAX3485,UART5 與ZigBee 網(wǎng)絡(luò)的協(xié)調(diào)器開發(fā)板的串口相連。LCD 液晶顯示屏采用FSMC 接口與ARM 芯片相連,LCD顯示屏是7寸的液晶模塊,分辨率為480×800,LCD 顯示屏的接口信號包括:FSMC 的數(shù)據(jù)輸入輸出、片選、讀寫、復(fù)位等信號。STM32 連接到Internet 網(wǎng)絡(luò)的方式可以選用4G 或Wi-Fi 等,本設(shè)計選用應(yīng)用最廣泛的一種高性能Wi-Fi 串口模塊ESP8266。ESP8266 的RXD(數(shù)據(jù)的接收端)連接STM32 的串口模塊的TXD(數(shù)據(jù)的發(fā)送端),TXD 連接STM32 的串口模塊的RXD。ESP8266 的應(yīng)用模式分為:單AP模式、單STA 模式和混合模式。AP 模式可以將ESP8266 作為熱點,可以讓其他的設(shè)備連接上它,STA 模式可以連接當(dāng)前環(huán)境下的Wi-Fi 熱點。在傳統(tǒng)的RS485 總線中,使用的通信協(xié)議較多,有Modbus 協(xié)議、CAN 總線協(xié)議等,其中Modbus 協(xié)議是被廣泛應(yīng)用于工業(yè)生產(chǎn)環(huán)境的一種協(xié)議。ZigBee 無線網(wǎng)絡(luò)中的節(jié)點需要根據(jù)實際的應(yīng)用環(huán)境的需求來部署,結(jié)合ZigBee 網(wǎng)絡(luò)的傳輸距離、數(shù)據(jù)流量、環(huán)境的數(shù)據(jù)采集密集程度等,來選擇放置的ZigBee 傳感器的個數(shù),ZigBee 網(wǎng)絡(luò)靈活的自組網(wǎng)特性,使其能夠適應(yīng)復(fù)雜的環(huán)境需求。STM32 開發(fā)板上集成了Zig-Bee 的協(xié)調(diào)器,方便ZigBee 網(wǎng)絡(luò)的接入。ZigBee網(wǎng)絡(luò)以協(xié)調(diào)器為核心,通過ZigBee 協(xié)議收集路由器和終端節(jié)點上各種傳感器數(shù)據(jù),匯聚到協(xié)調(diào)器,由串口上傳到ARM 主控制器,同時協(xié)調(diào)器能夠?qū)⒃贫讼逻_(dá)的命令轉(zhuǎn)發(fā)給ZigBee 網(wǎng)絡(luò)中的相應(yīng)節(jié)點,各個節(jié)點的硬件電路基本一致,傳感器以模塊的形式和節(jié)點底板電路相連。RS485 總線和ZigBee 傳感網(wǎng)絡(luò)各個節(jié)點的傳感器模塊的設(shè)計,由應(yīng)用需求決定。物聯(lián)網(wǎng)系統(tǒng)接入多種傳感器網(wǎng)絡(luò)的監(jiān)測值數(shù)據(jù),通過Wi-Fi模組發(fā)送到以太網(wǎng)上的云平臺服務(wù)器,再根據(jù)決策調(diào)用物聯(lián)網(wǎng)聯(lián)動控制器。物聯(lián)網(wǎng)的聯(lián)動控制系統(tǒng)主要是控制傳感網(wǎng)現(xiàn)場環(huán)境中的一些環(huán)境優(yōu)化的控制設(shè)備。物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)能夠?qū)崿F(xiàn)多種傳感器網(wǎng)絡(luò)數(shù)據(jù)的解析,并轉(zhuǎn)化成標(biāo)準(zhǔn)的數(shù)據(jù)格式傳送到Internet 網(wǎng)絡(luò),為異構(gòu)網(wǎng)的互連互通提供了簡易的解決方案,主控制器的簡單決策功能,提高了工農(nóng)業(yè)生產(chǎn)的智能化、數(shù)字化水平。
物聯(lián)網(wǎng)應(yīng)用的傳感器節(jié)點種類繁多,基于RS485 總線的傳感器節(jié)點數(shù)據(jù),一般采用Modbus總線協(xié)議。Modbus總線上設(shè)置主從設(shè)備,主設(shè)備只有一個,用于初始化傳輸和查詢,從設(shè)備可以有多個,需要根據(jù)主設(shè)備的查詢,作出相應(yīng)反應(yīng)。ModBus 總線的數(shù)據(jù)傳輸模式分為ASCII 和RTU 兩種,用戶可以選擇想要的模式。波特率一致的情況下,RTU(遠(yuǎn)程終端單元)模式(見表1)傳送的數(shù)據(jù)量比ASCII模式多。
表1 RTU模式
ZigBee 無線網(wǎng)絡(luò)的傳感器設(shè)備采用TI 公司的ZigBee 協(xié)議棧開發(fā),協(xié)議?;趯崟r操作系統(tǒng)OSAL設(shè)計,實現(xiàn)事件觸發(fā)和響應(yīng)的機(jī)制。底層ZigBee 網(wǎng)絡(luò)實現(xiàn)連通之后,應(yīng)用層的信息需要遵循用戶自定義的應(yīng)用層協(xié)議。傳感器網(wǎng)絡(luò)的應(yīng)用層協(xié)議管理了三種命令格式:周期消息用于維持主控制器與各種傳感器設(shè)備之間的心跳,傳感器設(shè)備周期性地向主控器發(fā)送周期消息,主控制器不需要回復(fù),只需要確認(rèn)連接正常。測量數(shù)據(jù)類信息,是由傳感器設(shè)備向主控制發(fā)送的,通過命令字標(biāo)志測量數(shù)據(jù)類信息??刂祁愋畔⑹怯芍骺刂破飨蛳鄳?yīng)的傳感器發(fā)送的,通過回復(fù)機(jī)制提高控制類信息的可靠性,超時沒有回復(fù),協(xié)調(diào)器需要重發(fā)控制類消息。這三種命令消息通過命令字來區(qū)分不同的類型。
ESP8266 模塊是目前常用的Wi-Fi 模塊,可連接當(dāng)前網(wǎng)絡(luò)環(huán)境中的熱點,傳輸數(shù)據(jù)。Wi-Fi模塊采用AT 指令建立連接的過程,再通過MQTT協(xié)議連接到阿里云物聯(lián)網(wǎng)服務(wù)器實現(xiàn)設(shè)備數(shù)據(jù)遠(yuǎn)程上傳、下發(fā),實現(xiàn)數(shù)據(jù)交互。MQTT是IBM 開發(fā)的客戶-服務(wù)器協(xié)議,本設(shè)計的物聯(lián)網(wǎng)網(wǎng)關(guān)可以作為MQTT 的一個客戶,通過TCP 連接到服務(wù)器。MQTT是通過發(fā)布訂閱主題的方式實現(xiàn)通信的,客戶可以訂閱服務(wù)器上的多個主題作為主題地址,當(dāng)有客戶向主題地址發(fā)布消息后,每個訂閱這個主題地址的客戶,都可以收到發(fā)布到這個主題地址上的所有消息。
ARM 開發(fā)板作為物聯(lián)網(wǎng)系統(tǒng)的網(wǎng)關(guān)[2],主要任務(wù)是收集各種網(wǎng)絡(luò)的傳感器數(shù)據(jù),再轉(zhuǎn)發(fā)到云平臺,各個傳感器節(jié)點采用主動周期性發(fā)送消息的方式發(fā)送到ARM 開發(fā)板,ARM 開發(fā)板收集到各個傳感器的周期性消息之后,可以確定各個傳感器的活動狀態(tài),周期性消息標(biāo)志著各個傳感器的心跳,如果正常發(fā)送周期性消息,則表明傳感器正常運(yùn)轉(zhuǎn),ARM 開發(fā)板顯示屏上的相應(yīng)按鈕是彩色的,如果傳感器不能正常發(fā)送周期性消息,表明傳感器心跳停止,彩色按鈕轉(zhuǎn)換為灰色的。網(wǎng)關(guān)顯示器同時會顯示傳感器網(wǎng)絡(luò)中各個執(zhí)行器的運(yùn)行狀態(tài),執(zhí)行器的狀態(tài)由云服務(wù)器根據(jù)采集的現(xiàn)場傳感器數(shù)據(jù)分析之后做出的決策判讀而設(shè)置的。
ARM 開發(fā)板采用實時多任務(wù)操作系統(tǒng)uCOS-III,支持中斷服務(wù),支持并發(fā)處理,容易加入新的功能,容易實現(xiàn)復(fù)雜的應(yīng)用,實現(xiàn)操作系統(tǒng)的實時性和確定性,可以保證物聯(lián)網(wǎng)設(shè)備和系統(tǒng)的效率。開發(fā)板的軟件程序設(shè)計以CubeMX+HAL的模式進(jìn)行,加入移植的uCOS-III操作系統(tǒng)的底層框架源碼,應(yīng)用層源碼根據(jù)實際需求編寫。操作系統(tǒng)在完成初始化之后,啟用多任務(wù)工作模式,各個任務(wù)完成的功能為:RS485總線收發(fā)傳感器數(shù)據(jù)、ZigBee協(xié)調(diào)器收發(fā)傳感器數(shù)據(jù)、Wi-Fi 模塊與云平臺服務(wù)器之間數(shù)據(jù)的收發(fā)任務(wù)、傳感器數(shù)據(jù)的存儲和實時更新的管理任務(wù)[3]。
本系統(tǒng)的實驗設(shè)備是STM32開發(fā)板、RS485總線和ZigBee 網(wǎng)絡(luò)上的各種傳感器設(shè)備,以及云平臺服務(wù)器。在串口3上連接RS485總線上的傳感器設(shè)備,串口5 上連接ZigBee 網(wǎng)絡(luò)的協(xié)調(diào)器,USB 接口連接USB 轉(zhuǎn)串口模塊,再連接ESP8266Wi-Fi模組,同時準(zhǔn)備好云平臺服務(wù)器。RS485總線上的各種傳感器設(shè)備,ZigBee網(wǎng)絡(luò)的各種傳感器節(jié)點,都燒錄通用的傳感器代碼,各種傳感器類型通過燒寫不同的傳感器地址來區(qū)分[4]。ARM 智能網(wǎng)關(guān)作為各種傳感網(wǎng)和通用網(wǎng)絡(luò)的核心,燒錄基于操作系統(tǒng)和GUI 開發(fā)程序的可執(zhí)行文件。
系統(tǒng)開始工作時,首先對ARM 智能網(wǎng)關(guān)上電,網(wǎng)關(guān)LCD 顯示屏的人機(jī)界面顯示啟動正常,與云平臺服務(wù)器連接正常。再開啟ZigBee 協(xié)調(diào)器,完成與智能網(wǎng)關(guān)的對接,并構(gòu)建ZigBee 傳感器網(wǎng)絡(luò)。依次啟動RS485 總線上的各個傳感器和ZigBee 網(wǎng)絡(luò)上的各種傳感器節(jié)點,RS485總線設(shè)備會自動和RS485 主設(shè)備組件總線網(wǎng)絡(luò),ZigBee 傳感器節(jié)點通過協(xié)議棧加入?yún)f(xié)調(diào)器創(chuàng)建的ZigBee 網(wǎng)絡(luò),網(wǎng)絡(luò)號相同的節(jié)點就會構(gòu)建出ZigBee 的無線Mesh 自組織網(wǎng)絡(luò)。智能網(wǎng)關(guān)接收RS485 總線傳感器節(jié)點和ZigBee 網(wǎng)絡(luò)傳感器節(jié)點發(fā)送過來的周期消息,解析出當(dāng)前傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)圖,人機(jī)界面在拓?fù)浣Y(jié)構(gòu)上實時顯示各個節(jié)點的傳感器數(shù)據(jù)。ARM 主控制器通過uCOS-III 操作系統(tǒng)設(shè)定周期定時采集傳感器數(shù)據(jù)的功能,將周期性的實時傳感器數(shù)據(jù)存儲更新到本地的數(shù)據(jù)庫,同時將數(shù)據(jù)發(fā)送到云端服務(wù)器。智能網(wǎng)關(guān)的應(yīng)用程序?qū)χ芷谛圆杉膫鞲袛?shù)據(jù)進(jìn)行分析和管理,有異常的實時數(shù)據(jù)出現(xiàn)時,啟動網(wǎng)關(guān)簡單決策機(jī)制,根據(jù)問題的情況決定是在本地直接啟動執(zhí)行器控制程序,還是需要上傳到云服務(wù)器之后,再做決策[5]。
為了適應(yīng)現(xiàn)代工業(yè)生產(chǎn)的智能化、數(shù)字化管理的要求,本系統(tǒng)提供了一種物聯(lián)網(wǎng)智能網(wǎng)關(guān)的設(shè)計方案,選用RS485總線網(wǎng)絡(luò)、ZigBee傳感器網(wǎng)絡(luò)、ARM智能網(wǎng)關(guān)和云平臺服務(wù)器組合設(shè)計了一個完整的系統(tǒng)。智能網(wǎng)關(guān)技術(shù)重點解決了不同協(xié)議的網(wǎng)絡(luò)之間的數(shù)據(jù)連通問題,實現(xiàn)不同的應(yīng)用網(wǎng)絡(luò)之間的通信,同時還承擔(dān)了復(fù)雜應(yīng)用環(huán)境下的傳感器網(wǎng)絡(luò)的設(shè)備管理的工作[6]。ARM主控制器能夠適應(yīng)復(fù)雜的嵌入式應(yīng)用環(huán)境,可以搭建功能完善的物聯(lián)網(wǎng)智能網(wǎng)關(guān)系統(tǒng)。系統(tǒng)調(diào)試的結(jié)果顯示,功能穩(wěn)定。本系統(tǒng)為工農(nóng)業(yè)生產(chǎn)數(shù)字化改造的解決方案提供了參考。