摘 要: 利用CC2430無線收發(fā)模塊實現(xiàn)數(shù)據(jù)的采集和無線傳輸,現(xiàn)場采集器采集數(shù)據(jù)并通過逐級跳轉(zhuǎn)的方式把數(shù)據(jù)傳送到協(xié)調(diào)器,協(xié)調(diào)器通過RS232串行口與ARM處理器通信并實現(xiàn)在ARM上的實時數(shù)據(jù)采集和顯示,ARM處理器最終通過網(wǎng)線連接井下路由器與井上PC機進(jìn)行通信,接入局域網(wǎng)中的客戶端可以隨時以網(wǎng)頁形式訪問ARM上的數(shù)據(jù)以及實時的視頻監(jiān)控。以網(wǎng)頁的形式訪問ARM上由ZigBee傳來的數(shù)據(jù)是該項目中的一大創(chuàng)新點,此外,協(xié)調(diào)井下ARM與井上PC間通信的路由器本身就具有易于擴充節(jié)點和擴大網(wǎng)絡(luò)規(guī)模的優(yōu)勢。
關(guān)鍵詞: ZigBee;無線傳感網(wǎng);CC2430;ARM處理器;Web
隨著國家對煤礦安全生產(chǎn)工作的日益重視,而且近幾年來,ZigBee技術(shù)在中國迅速發(fā)展,基于ZigBee的無線傳感網(wǎng)成為業(yè)界的研究熱點,人們通過研究發(fā)現(xiàn)基于ZigBee的無線傳感網(wǎng)具有數(shù)據(jù)傳輸安全可靠、組網(wǎng)簡易靈活、設(shè)備成本低、使用壽命長等優(yōu)勢[1]。ZigBee技術(shù)是一個具有統(tǒng)一技術(shù)標(biāo)準(zhǔn)的短距離無線通信技術(shù),其物理層和媒體訪問控制層協(xié)議基于IEEE802.15.4協(xié)議標(biāo)準(zhǔn),網(wǎng)絡(luò)層和應(yīng)用層由ZigBee聯(lián)盟制定。為了充分利用ZigBee無線傳感器網(wǎng)絡(luò),有必要將已經(jīng)成熟的基于TCP/IP技術(shù)的以太網(wǎng)與ZigBee無線傳感網(wǎng)絡(luò)相結(jié)合,從而實現(xiàn)以太網(wǎng)通過網(wǎng)關(guān)來訪問ZigBee無線傳感器網(wǎng)絡(luò)。
傳統(tǒng)的網(wǎng)關(guān)大多是用單片機來實現(xiàn),本設(shè)計把嵌入式系統(tǒng)的ARM處理器和Linux操作系統(tǒng)加進(jìn)網(wǎng)關(guān)系統(tǒng),能夠更高效、更穩(wěn)定地傳遞來自無線傳感網(wǎng)絡(luò)的數(shù)據(jù)和來自以太網(wǎng)的用戶控制命令,同時還能實現(xiàn)ZigBee無線傳感器網(wǎng)絡(luò)新節(jié)點的動態(tài)鏈接[1]。
1 系統(tǒng)概述
無線傳感網(wǎng)對網(wǎng)關(guān)的要求較高,用傳統(tǒng)的單片機技術(shù)實現(xiàn)比較復(fù)雜,采用具有較強信息處理能力和網(wǎng)絡(luò)功能的ARM9系列芯片S3C2440作為處理器,在Linux2.6.32操作系統(tǒng)下設(shè)計ZigBee與TCP/IP間通信的網(wǎng)關(guān)。Linux嵌入式系統(tǒng)與ZigBee無線傳感網(wǎng)絡(luò)相結(jié)合,可以實現(xiàn)各節(jié)點有序、高效的工作[1]。
前端采集器ZigBee負(fù)責(zé)采集信息,采集器將溫度、電壓(瓦斯氣體濃度可通過傳感器轉(zhuǎn)換成電壓參量)等數(shù)據(jù)采集后通過無線轉(zhuǎn)發(fā)給協(xié)調(diào)器,協(xié)調(diào)器接收信息并通過串口將信息傳給ARM,ARM作為網(wǎng)關(guān)一端連接ZigBee組成的無線傳感網(wǎng),另一端連接以太網(wǎng),在ARM上又建有基于BOA的Web服務(wù)器,井上接入局域網(wǎng)的客戶端可以通過網(wǎng)頁訪問ARM上的數(shù)據(jù)以及對井下實時的視頻監(jiān)控。ARM可以在井下實時顯示溫度、電壓等信息以及控制全網(wǎng)報警,實現(xiàn)礦井下的實時監(jiān)控。系統(tǒng)的整體構(gòu)建如圖1所示。
2 硬件設(shè)計
2.1 采集器模塊
采集器模塊采用CC2430芯片,CC2430芯片除了具有符合IEEE 802.15.4規(guī)范的2.4 GHz無線射頻前端,它還在片內(nèi)集成了微處理器,這種在單芯片上集成RF射頻、處理器和內(nèi)存的ZigBee解決方案的優(yōu)點是集成度高、功耗低, 它只需要很少的外部元器件就可以實現(xiàn)無線傳輸[2]。負(fù)責(zé)數(shù)據(jù)的采集和預(yù)處理的ZigBee模塊稱之為采集器,如圖2所示。
2.3 處理器模塊
網(wǎng)關(guān)采用嵌入式系統(tǒng)技術(shù),基于Linux操作系統(tǒng)本身的易于移植、開源、優(yōu)異的網(wǎng)絡(luò)支持等優(yōu)點,采用ARM9處理器加上Linux操作系統(tǒng)來設(shè)計ZigBee與TCP/IP間通信的網(wǎng)關(guān)。嵌入式系統(tǒng)與ZigBee無線傳感器網(wǎng)絡(luò)相結(jié)合,可以更好地控制網(wǎng)絡(luò)的信息傳遞。
ARM通過串口接收協(xié)調(diào)器傳來的信息,并將信息及時保存下來。為了實現(xiàn)對多個ARM的訪問,將ARM通過網(wǎng)線連接至路由器,路由器連接到局域網(wǎng)中,這樣可以更好地擴充網(wǎng)關(guān)節(jié)點的數(shù)量,有效地擴大了網(wǎng)絡(luò)覆蓋面,避免了網(wǎng)絡(luò)盲區(qū), 降低了安全隱患,具有有線測量和人工測量無法比擬的優(yōu)越性[3]。結(jié)構(gòu)如圖4所示。
2.4 服務(wù)器模塊及嵌入式開發(fā)
分析嵌入式TCP/IP協(xié)議的選取原則,采用ARM芯片和網(wǎng)絡(luò)接口控制芯片設(shè)計以太網(wǎng)接口,通過ARM芯片對網(wǎng)絡(luò)接口控制芯片DM9000的控制過程和TCP/IP協(xié)議棧處理數(shù)據(jù)包的流程,完成嵌入式TCP/IP系統(tǒng)的開發(fā)。該系統(tǒng)可以將ARM獲得的數(shù)據(jù)按網(wǎng)絡(luò)協(xié)議處理,實現(xiàn)數(shù)據(jù)的以太網(wǎng)傳輸。此時ARM又充當(dāng)服務(wù)器的角色,將信息及時地保存在文件中,然后通過網(wǎng)頁讀取文件,井上接入局域網(wǎng)的客戶端可以通過網(wǎng)頁訪問ARM上的數(shù)據(jù)以及對井下實時的視頻監(jiān)控。
3 軟件設(shè)計
3.1 ZigBee模塊程序流程圖
先利用IAR Embedded Workbench軟件完成C語言程序的編寫和編譯,然后把程序SimpleCollector燒寫到采集器節(jié)點上,程序主要負(fù)責(zé)信息的采集,把程序SimplSensor燒寫到協(xié)調(diào)器節(jié)點上,程序主要負(fù)責(zé)接收協(xié)調(diào)器的數(shù)據(jù)以及把數(shù)據(jù)發(fā)送給ARM,最終實現(xiàn)網(wǎng)絡(luò)的建立和信號在網(wǎng)內(nèi)的無線傳輸。
采集器的主要作用是對溫度、電壓等數(shù)據(jù)進(jìn)行采集, 并對數(shù)據(jù)進(jìn)行簡單的處理,再通過無線信道發(fā)送給協(xié)調(diào)器。首先對采集器進(jìn)行初始化,包括處理器、協(xié)議棧、中斷、串口等,其流程圖如圖5所示。
協(xié)調(diào)器的主要作用是組建一個網(wǎng)絡(luò)、接受采集器入網(wǎng)、接收采集器發(fā)送來的數(shù)據(jù)、處理數(shù)據(jù)并通過串口發(fā)送數(shù)據(jù)至ARM。首先對協(xié)調(diào)器進(jìn)行初始化,包括處理器、協(xié)議棧、中斷、串口等。協(xié)調(diào)器初始化后新建一個網(wǎng)絡(luò)并進(jìn)入網(wǎng)絡(luò)監(jiān)聽和等待狀態(tài),當(dāng)收到子節(jié)點(采集器)的入網(wǎng)請求后,協(xié)調(diào)器隨機給子節(jié)點(采集器)分配一個網(wǎng)絡(luò)地址,之后向子節(jié)點(采集器)發(fā)送入網(wǎng)確認(rèn)信息,建立連接,等待接收終端節(jié)點發(fā)送的采集數(shù)據(jù)。數(shù)據(jù)接收成功后發(fā)送數(shù)據(jù)到ARM9。因為協(xié)調(diào)器始終監(jiān)測網(wǎng)絡(luò)信號,所以協(xié)調(diào)器一直處于正常工作模式。其流程如圖6所示[3]。
3.2 ARM處理器程序流程圖
ARM處理器的工作主要分為兩部分:
(1)將ZigBee傳送過來的溫度、電壓及ZigBee的地址等數(shù)據(jù)按一定格式存儲在普通文件中。程序采用C語言,主要涉及到ZigBee與ARM之間的串口協(xié)議通信,以及ARM處理器將內(nèi)存中的數(shù)據(jù)寫到文件中去。
(2)編寫網(wǎng)頁能夠讀取文件數(shù)據(jù)并顯示,在ARM上建立BOA服務(wù)器以支持網(wǎng)頁能被連接在局域網(wǎng)中的客戶端訪問。從網(wǎng)上下載BOA的源碼之后在Linux系統(tǒng)下進(jìn)行編譯,生成可執(zhí)行文件BOA,將其拷貝到ARM開發(fā)板上;網(wǎng)頁主要以html語言完成,能對文件進(jìn)行讀取。先利用嵌入在HTML中的JavaScript讀取fil.txt,其中fil.txt文件以行的形式存放數(shù)據(jù),每行依次存放的是設(shè)備名、溫度、溫度值或者設(shè)備名、電壓、電壓值。為了保證數(shù)據(jù)的實時更新,在網(wǎng)頁的頭部設(shè)置每兩秒定時刷新一次。為了實現(xiàn)井上接入局域網(wǎng)的客戶端同時通過網(wǎng)頁訪問ARM上的數(shù)據(jù)以及對井下實時的視頻監(jiān)控,用戶可以選擇觀測ZigBee的數(shù)據(jù)或者視頻監(jiān)控,有助于提高用戶體驗。
本文設(shè)計的網(wǎng)關(guān)已在“礦井監(jiān)測與應(yīng)急導(dǎo)引系統(tǒng)網(wǎng)關(guān)的設(shè)計”項目中得以使用,取得了較好的效果。經(jīng)測試,該網(wǎng)關(guān)具有覆蓋范圍廣、靈敏度高、穩(wěn)定性好、抗干擾能力強、數(shù)據(jù)傳輸準(zhǔn)確等特點,并且具有很好的實用性。此外本系統(tǒng)還具有較強的通用性,不僅可以運用于礦井下監(jiān)測瓦斯?jié)舛龋€可以用于對溫度、濕度等信號的監(jiān)測,只需把本系統(tǒng)中的瓦斯傳感器換成其他的信號傳感器就可以使用[4]。
參考文獻(xiàn)
[1] 凌興鋒,何小敏.基于ZigBee的無線網(wǎng)關(guān)解決方案研究[J].微處理機,2010,31(4):36-38,42.
[2] ZigBee Alliance.ZigBee Speeifieation[EB/OL].(2006-8-25)[2010-5-4].http://www.C51rf.com/download/read.aspx?id=4.
[3] 王延年,穆文靜.基于ZigBee的無線信號采集傳輸系統(tǒng)的研究[J].西安工程大學(xué)學(xué)報,2010,24(4):510-515.
[4] 喬大雷,夏士雄,楊松,等.基于ARM9的嵌入式ZigBee網(wǎng)關(guān)設(shè)計與實現(xiàn)[J].微計算機信息,2007,23(12-2):156-158.