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