盧愛紅,卓 云,楊佳奇
(蘇州經貿職業技術學院信息技術系,蘇州 215009)
隨著物聯網技術的深入發展,各行各業對各種傳感網的應用需求應運而生。針對傳輸距離遠,數據流量低,信號可靠性要求高的現代工業生產數據傳輸需求,一般采用RS485 總線構建有線網絡;針對傳輸距離近、數據流量低、功耗低的數據傳輸應用需求,一般采用ZigBee構建無線傳感器網絡;針對傳輸距離相對較遠,數據量不大,功耗低的無線傳輸要求,一般采用Lora 或者NB-IoT 搭建傳感器網絡,等等。根據不同的應用場景,選擇不同的通信協議來構建傳感網,異構的通信協議之間無法通信。而以計算機為主要設備的傳統通信網絡,傳輸協議以TCP/IP 為主,使得物聯網傳感網與傳統通信網絡之間也不能互聯互通。如何打通不同協議之間的數據連通,實現不同的應用網絡之間的通信,是智能網關技術的出現和發展的客觀需求。面對復雜的傳感網搭建需求,物聯網智能網關能夠有效接入多種傳感網的信號,在數據接入端需要提供多種網絡的接入功能。同時為了實現傳感器網絡和通用的Internet 網絡之間的通信,智能網關需要接入到Internet 網絡,一般可以采用的硬件連接方式是Wi-Fi、4G 模塊、有線以太網等。物聯網智能網關除了實現不同通信協議內容的翻譯轉換的基本功能之外,還需要進行設備管理,完成數據存儲、協議分析、閾值判斷、簡單決策、數據上傳等功能。系統集成ARM 控制器和RS485 總線、ZigBee 網絡、Wi-Fi 模塊,能夠搭建功能完整的物聯網智能網關系統。
物聯網智能網關系統以ARM 為主控制器,通過串口接入ZigBee 無線傳感網、RS485 傳輸總線、Wi-Fi 模組等部分。ARM 主控制器選用Cortex-M3 芯片,從RS485 總線和ZigBee 協調器接收傳感器網絡的數據,采集的數據在LCD 顯示屏上實時顯示和更新,并通過Wi-Fi模組發送到云服務器,云服務器調用人工智能算法對傳感器數據進行分析,并做出決策,再經由網關發送到傳感器網絡上的執行器。網關的主控制器芯片是STM32 芯片,通過實時操作系統,實現多任務的通信和管理,完成物聯網網關需要的采集、存儲、分析、顯示、上報、分析指令以及下達指令等功能[1]。
系統設計框圖如圖1所示。

圖1 系統框圖
系統硬件設計的主要工作是ARM 控制器開發板和傳感器網絡節點電路的設計。ARM 以STM32F103 芯片為主控制芯片,需要完成芯片的最小系統設計。芯片的通信接口設計比較復雜,UART0 用于程序的下載和調試,UART3 連接RS485 和串口的轉換收發芯片MAX3485,UART5 與ZigBee 網絡的協調器開發板的串口相連。LCD 液晶顯示屏采用FSMC 接口與ARM 芯片相連,LCD顯示屏是7寸的液晶模塊,分辨率為480×800,LCD 顯示屏的接口信號包括:FSMC 的數據輸入輸出、片選、讀寫、復位等信號。STM32 連接到Internet 網絡的方式可以選用4G 或Wi-Fi 等,本設計選用應用最廣泛的一種高性能Wi-Fi 串口模塊ESP8266。ESP8266 的RXD(數據的接收端)連接STM32 的串口模塊的TXD(數據的發送端),TXD 連接STM32 的串口模塊的RXD。ESP8266 的應用模式分為:單AP模式、單STA 模式和混合模式。AP 模式可以將ESP8266 作為熱點,可以讓其他的設備連接上它,STA 模式可以連接當前環境下的Wi-Fi 熱點。在傳統的RS485 總線中,使用的通信協議較多,有Modbus 協議、CAN 總線協議等,其中Modbus 協議是被廣泛應用于工業生產環境的一種協議。ZigBee 無線網絡中的節點需要根據實際的應用環境的需求來部署,結合ZigBee 網絡的傳輸距離、數據流量、環境的數據采集密集程度等,來選擇放置的ZigBee 傳感器的個數,ZigBee 網絡靈活的自組網特性,使其能夠適應復雜的環境需求。STM32 開發板上集成了Zig-Bee 的協調器,方便ZigBee 網絡的接入。ZigBee網絡以協調器為核心,通過ZigBee 協議收集路由器和終端節點上各種傳感器數據,匯聚到協調器,由串口上傳到ARM 主控制器,同時協調器能夠將云端下達的命令轉發給ZigBee 網絡中的相應節點,各個節點的硬件電路基本一致,傳感器以模塊的形式和節點底板電路相連。RS485 總線和ZigBee 傳感網絡各個節點的傳感器模塊的設計,由應用需求決定。物聯網系統接入多種傳感器網絡的監測值數據,通過Wi-Fi模組發送到以太網上的云平臺服務器,再根據決策調用物聯網聯動控制器。物聯網的聯動控制系統主要是控制傳感網現場環境中的一些環境優化的控制設備。物聯網網關系統能夠實現多種傳感器網絡數據的解析,并轉化成標準的數據格式傳送到Internet 網絡,為異構網的互連互通提供了簡易的解決方案,主控制器的簡單決策功能,提高了工農業生產的智能化、數字化水平。
物聯網應用的傳感器節點種類繁多,基于RS485 總線的傳感器節點數據,一般采用Modbus總線協議。Modbus總線上設置主從設備,主設備只有一個,用于初始化傳輸和查詢,從設備可以有多個,需要根據主設備的查詢,作出相應反應。ModBus 總線的數據傳輸模式分為ASCII 和RTU 兩種,用戶可以選擇想要的模式。波特率一致的情況下,RTU(遠程終端單元)模式(見表1)傳送的數據量比ASCII模式多。

表1 RTU模式
ZigBee 無線網絡的傳感器設備采用TI 公司的ZigBee 協議棧開發,協議?;趯崟r操作系統OSAL設計,實現事件觸發和響應的機制。底層ZigBee 網絡實現連通之后,應用層的信息需要遵循用戶自定義的應用層協議。傳感器網絡的應用層協議管理了三種命令格式:周期消息用于維持主控制器與各種傳感器設備之間的心跳,傳感器設備周期性地向主控器發送周期消息,主控制器不需要回復,只需要確認連接正常。測量數據類信息,是由傳感器設備向主控制發送的,通過命令字標志測量數據類信息??刂祁愋畔⑹怯芍骺刂破飨蛳鄳膫鞲衅靼l送的,通過回復機制提高控制類信息的可靠性,超時沒有回復,協調器需要重發控制類消息。這三種命令消息通過命令字來區分不同的類型。
ESP8266 模塊是目前常用的Wi-Fi 模塊,可連接當前網絡環境中的熱點,傳輸數據。Wi-Fi模塊采用AT 指令建立連接的過程,再通過MQTT協議連接到阿里云物聯網服務器實現設備數據遠程上傳、下發,實現數據交互。MQTT是IBM 開發的客戶-服務器協議,本設計的物聯網網關可以作為MQTT 的一個客戶,通過TCP 連接到服務器。MQTT是通過發布訂閱主題的方式實現通信的,客戶可以訂閱服務器上的多個主題作為主題地址,當有客戶向主題地址發布消息后,每個訂閱這個主題地址的客戶,都可以收到發布到這個主題地址上的所有消息。
ARM 開發板作為物聯網系統的網關[2],主要任務是收集各種網絡的傳感器數據,再轉發到云平臺,各個傳感器節點采用主動周期性發送消息的方式發送到ARM 開發板,ARM 開發板收集到各個傳感器的周期性消息之后,可以確定各個傳感器的活動狀態,周期性消息標志著各個傳感器的心跳,如果正常發送周期性消息,則表明傳感器正常運轉,ARM 開發板顯示屏上的相應按鈕是彩色的,如果傳感器不能正常發送周期性消息,表明傳感器心跳停止,彩色按鈕轉換為灰色的。網關顯示器同時會顯示傳感器網絡中各個執行器的運行狀態,執行器的狀態由云服務器根據采集的現場傳感器數據分析之后做出的決策判讀而設置的。
ARM 開發板采用實時多任務操作系統uCOS-III,支持中斷服務,支持并發處理,容易加入新的功能,容易實現復雜的應用,實現操作系統的實時性和確定性,可以保證物聯網設備和系統的效率。開發板的軟件程序設計以CubeMX+HAL的模式進行,加入移植的uCOS-III操作系統的底層框架源碼,應用層源碼根據實際需求編寫。操作系統在完成初始化之后,啟用多任務工作模式,各個任務完成的功能為:RS485總線收發傳感器數據、ZigBee協調器收發傳感器數據、Wi-Fi 模塊與云平臺服務器之間數據的收發任務、傳感器數據的存儲和實時更新的管理任務[3]。
本系統的實驗設備是STM32開發板、RS485總線和ZigBee 網絡上的各種傳感器設備,以及云平臺服務器。在串口3上連接RS485總線上的傳感器設備,串口5 上連接ZigBee 網絡的協調器,USB 接口連接USB 轉串口模塊,再連接ESP8266Wi-Fi模組,同時準備好云平臺服務器。RS485總線上的各種傳感器設備,ZigBee網絡的各種傳感器節點,都燒錄通用的傳感器代碼,各種傳感器類型通過燒寫不同的傳感器地址來區分[4]。ARM 智能網關作為各種傳感網和通用網絡的核心,燒錄基于操作系統和GUI 開發程序的可執行文件。
系統開始工作時,首先對ARM 智能網關上電,網關LCD 顯示屏的人機界面顯示啟動正常,與云平臺服務器連接正常。再開啟ZigBee 協調器,完成與智能網關的對接,并構建ZigBee 傳感器網絡。依次啟動RS485 總線上的各個傳感器和ZigBee 網絡上的各種傳感器節點,RS485總線設備會自動和RS485 主設備組件總線網絡,ZigBee 傳感器節點通過協議棧加入協調器創建的ZigBee 網絡,網絡號相同的節點就會構建出ZigBee 的無線Mesh 自組織網絡。智能網關接收RS485 總線傳感器節點和ZigBee 網絡傳感器節點發送過來的周期消息,解析出當前傳感器網絡的拓撲結構圖,人機界面在拓撲結構上實時顯示各個節點的傳感器數據。ARM 主控制器通過uCOS-III 操作系統設定周期定時采集傳感器數據的功能,將周期性的實時傳感器數據存儲更新到本地的數據庫,同時將數據發送到云端服務器。智能網關的應用程序對周期性采集的傳感數據進行分析和管理,有異常的實時數據出現時,啟動網關簡單決策機制,根據問題的情況決定是在本地直接啟動執行器控制程序,還是需要上傳到云服務器之后,再做決策[5]。
為了適應現代工業生產的智能化、數字化管理的要求,本系統提供了一種物聯網智能網關的設計方案,選用RS485總線網絡、ZigBee傳感器網絡、ARM智能網關和云平臺服務器組合設計了一個完整的系統。智能網關技術重點解決了不同協議的網絡之間的數據連通問題,實現不同的應用網絡之間的通信,同時還承擔了復雜應用環境下的傳感器網絡的設備管理的工作[6]。ARM主控制器能夠適應復雜的嵌入式應用環境,可以搭建功能完善的物聯網智能網關系統。系統調試的結果顯示,功能穩定。本系統為工農業生產數字化改造的解決方案提供了參考。