朱福民,沈宇華,江磊
(上海海事大學 物流工程學院,上海201306)
摘要:以工程機械為對象,研究并設計了一個基于ZigBee無線采集網絡和GPRS遠程通信的實時遠程監測系統的無線網關,該網關由ZigBee協調器模塊以及GPRS模塊組成,以STM32為網關的核心控制器,并對ZigBee協調器和GPRS模塊分別進行選型、硬件及軟件設計。實現整個實時監測系統需要的相關技術有:ZigBee無線網絡、GPRS、TCP/IP通信技術、Zstack協議棧。
關鍵詞:工程機械;ZigBee網關; 遠程監測;GPRS;Zstack
0引言
工程機械是國民經濟建設的重要裝備,在工業建設中占有舉足輕重的地位。我國的工程機械行業在全球同行中占有重要位置,產品已經出口到歐美等工程機械強國。因此我國對工程機械產品的高效工作、安全作業的要求越來越苛刻,越來越規范化。近年來隨著無線通信網絡和嵌入式系統等技術的飛速發展,陸續出現了許多新的短距離無線通信技術,其中以低成本、低功耗、低復雜度為特色的ZigBee技術脫穎而出[1]。
本文研究了一種應用在工程機械遠程監護系統中的ZigBee無線網關的設計方法[2]。通過將ZigBee無線網關放置在被監測者的傳感器節點,實時采集被檢測者的運行參數[3]。這些數據包將由ZigBee網關通過GPRS發送到遠程服務器,并在客戶端界面進行實時呈現[4]。
圖1為基于ZigBee技術的無線網關系統體系結構。
1ZigBee網關模塊硬件設計
ZigBee網關的作用就是將ZigBee無線網絡中的數據傳輸到Internet網絡的一個通道,沒有這個通道,終端設備采集的數據無法送出,其中起到決定性作用的是GPRS無線通信模塊,所有的數據只有通過GPRS模塊以后,它們才可以訪問遠端服務器。本文將要實現的ZigBee結合GPRS的網關,其核心模塊是由ZigBee的協調器中心節點和GPRS無線模塊組成的,其中協調器節點采用美國德州儀器公司(TI)推出的CC2530芯片設計[5]。相比較其他的ZigBee解決方案,CC2530被當做一款主推的新型系統級芯片而得到了廣泛的應用,是一款真正意義上的ZigBee體系架構解決方案。如圖2所示,協調器節點主要負責將底層網絡終端節點采集來的數據封裝打包從UART串口傳輸到GPRS模塊,串口是建立CC2530和GPRS聯系的橋梁;GPRS模塊則負責與遠程服務器通信交互,從串口收到協調器采集來的數據之后再傳輸給遠程服務器,將遠程服務器發送至網關的指令送至STM32核心芯片進行處理。
本文選用的中央處理器是意法半導體 (STMicroelectronics) 的STM32F103VCT6,這款芯片是基于STM32設計的一款加強型芯片,它擁有ARM CortexM3內核,同時具備卓越的工作性能,低廉的成本和低的功耗。這款增強型芯片的時鐘頻率可達72 MHz,是其他型號系列無法超越的,它是16位產品的最佳選擇。圖2是ZigBee網關核心模塊,可以發現幾個模塊主要是通過串口通信。
GPRS模塊是網關的另一個重要部分,由CC2530做協調器來開啟網絡,維護網絡,采集終端節點的數據,但只有通過GPRS才能將該局域網內的數據和互聯網交互[6]。本文采用的GPRS模塊是GU900_GSM_GPRS無線模塊,該產品支持業內領先的OPENAT工作方式,用戶可以根據自己的需求來自定義應用程序,再將程序二次移植到GU900模塊上去。GU900內置了豐富的API函數可供用戶參考使用,方便靈活,值得開發利用。
2ZigBee網關模塊軟件設計
2.1網關系統流程設計
ZigBee的網關設計分成兩個部分:協調器部分和GPRS模塊部分,協調器負責建立無線采集網絡,GPRS模塊負責網關和外界網絡的通信,協調器和GPRS之間用串口通信[7]。整個網關的工作流程如圖3所示。
2.2ZigBee協議的設計
本文所用到的ZigBee協議體系框架總體上分成以下幾個層次:從最底層的物理層(PHY),往上是媒體介質訪問層(MAC),其等效于數據鏈路層、網絡層(NWK)和應用層。其中,物理層定義了物理無線信道,有3個頻段可供ZigBee使用,分別是2.4 GHz和868/915 MHz。媒體介質訪問層則負責一切物理層的無線信道訪問,產生網絡信號和同步信號。使用的Zstack協議(TI公司所推出的ZigBee協議棧)是基于物理層和媒體介質訪問層之上的,它主要實現了對網絡層和應用層的支持。除了ZigBee體系結構中提到的4個層次,在Zstack協議中還添加了操作系統抽象層(Operating System Abstraction Layer,OSAL),它的地位就像是一個操作系統。Zstack協議棧的系統運行時遵循一個輪詢的過程,以物理層為優先級,接著依次是介質層、網絡層、硬件層和應用層。每一層都有一個或幾個ID號,Zstack輪詢代碼如下。
do{
If(tasksEvents[idx])
{
Break;
}
}while(++idx<tasksCnt);
If(idx<tasksCnt)
{
Unit16 events;
halIntState_t intState;
HAL_ENTER_CRITICAL_S ECTION(int State);
events = tasksEvents[idx];
tasksEvents[idx]=0;
HAL_EXIT _C RITICAL_SE CTION(int State);
events =( tasksArr[idx])(idx,events);
HAL_ENTER_CRITICAL_SECTION(int State);
tasksEvents[id x]=events;
HAL_EXIT_C RITICAL_SE CTION(int State);
}
2.3GPRS通信程序設計
ZigBee網關的GPRS模塊部分用到了動態域名解析技術,為了實現動態域名解析,使用花生殼DNS服務來綁定域名和動態IP地址[8]。本系統使用的是GU900的GPRS模塊,上電GPRS模塊后,首先必須配置GPRS的AT命令,其中包括對GU900模塊的短信功能還是上網模式的選擇,對TCP/IP連接還是UDP連接的配置,遠程服務器IP地址或者是域名的配置以及透傳模式的切換等;在正確建立了TCP連接之后,等待遠程Socket發來采集數據請求;收到請求之后STM32和CC2530就開始采集數據,采集完畢將數據從GPRS送出。
下面是GU900設置AT指令進入無線透傳的部分代碼,需要對一些參數進行初始化:
AT+CSTT="CMNET" //設置APN
AT+CIPCFG=1,50,0//對GU900進行初始化配置
AT+CIPPACK=0,"00"//設置網絡心跳包的格式
AT+CIPMUX=0//設置GU900是在單鏈接模式下工作
AT+CIPMODE=1//進入透傳模式
CIPSCONT=0,"TCP","www.smugenius.com",8080,2//設置成TCP模式,并且以域名的形式進行訪問,端口號設置為8080
2.4系統測試
本測試過程中,選取了起重機剛提起物塊的這段時間。通過溫度傳感器和壓力傳感器將數據傳送給協調器,再由GPRS輸出,由系統的3個節點在互聯網平臺的監測界面可知,主泵壓力大約為12 MPa,卷揚機起升壓力為10 MPa左右,另外,此時油溫為50℃左右。
3結論
當前基于ZigBee技術的無線傳感器網絡受到越來越多的關注,應用也愈加廣泛。本文針對工程機械監測系統中無線網絡的要求,綜合考慮實際應用中的成本和要求,研究并實現了基于ZigBee網絡與GPRS模塊進行信息交換的網關系統。
本文的創新點:(1)運用ZigBee無線采集網絡對工程機械作業時的各項參數進行采集,相比較常規的有線監測方法,ZigBee的測點選擇更加靈活,約束更少;(2)ZigBee網絡結合GPRS模塊組成ZigBee網關,通過網關來與遠程服務器通信,傳送采集數據,方便工作人員隨時隨地掌握設備工作情況。
參考文獻
[1] 朱福民,劉炎民,朱英翔.基于ZigBee無線傳感網絡的人體動作信息采集平臺設計[J].微型機與應用,2014,33(8):1921.
[2] 謝小芳,黃俊,譚成宇.基于RFID的電力溫度監控系統的軟件與設計[J].電子技術應用,2013,39(1):2326.
[3] 李紅, 楊兆建, 李娟莉. 基于 GPRS 的礦井提升機制動系統故障遠程監測診斷系統研究[J]. 機械管理開發, 2012(1): 2427.
[4] 章偉聰, 俞新武, 李忠成. 基于 CC2530 及ZigBee協議棧設計無線網絡傳感器節點[J].計算機系統應用,2011,20(7):181187.
[5] 張久朋, 王喆, 史洪瑋. 基于 TDSCDMA 的ZigBee接入網關的設計[J]. 江漢大學學報 (自然科學版), 2011, 39(1): 5759.
[6] 金福寶. 基于GPRS的橋梁遠程監測系統的研究[D]. 哈爾濱:東北林業大學, 2007.
[7] 張久朋, 王喆, 史洪瑋. 基于 TDSCDMA 的ZigBee接入網關的設計[J]. 江漢大學學報 (自然科學版), 2011, 39(1): 5759.
[8] 王風. 基于 CC2530 的ZigBee無線傳感器網絡的設計與實現[D]. 西安:西安電子科技大學, 2012.