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