基于ZigBee的無線監(jiān)控系統(tǒng)傳感器節(jié)點設(shè)計
近年來,隨著計算機(jī)科學(xué)技術(shù)的發(fā)展和軍隊裝備信息化的推進(jìn),指控系統(tǒng)不斷向大規(guī)模、復(fù)雜化、集成化的方向發(fā)展,同時由于戰(zhàn)場條件的日趨復(fù)雜,其發(fā)生故障的可能性也隨之增加。面對有大量過程變量的復(fù)雜系統(tǒng),操作和作戰(zhàn)人員很難及時有效地監(jiān)控過程數(shù)據(jù),分析當(dāng)前狀態(tài)和診斷過程異常,并采取適當(dāng)?shù)膽?yīng)對措施。因此,如何提高指控系統(tǒng)的可維護(hù)性和安全性逐漸受到了廣泛的關(guān)注。隨著射頻技術(shù)和傳感器產(chǎn)品的進(jìn)一步發(fā)展, 利用無線傳感器網(wǎng)絡(luò)建立的各種監(jiān)控系統(tǒng)可以很好地解決由環(huán)境中不確定因素變化所引起的問題, 從而減少生產(chǎn)產(chǎn)品的成本, 提高工作效率。
ZigBee技術(shù)是近年發(fā)展起來的一種無線通信技術(shù),它具有低功耗、低成本、組網(wǎng)靈活和抗干擾能力強(qiáng)等優(yōu)點[1]。因此,將基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)應(yīng)用于指控系統(tǒng)的監(jiān)控方面,能夠降低監(jiān)控系統(tǒng)成本,并且無需布線,根據(jù)無線技術(shù)的特點將傳感器節(jié)點布置于指控設(shè)備的待測空間內(nèi),還可以采集監(jiān)控到傳統(tǒng)方法無法監(jiān)測到的信號。基于ZigBee的傳感器網(wǎng)絡(luò)技術(shù)如果配合有線網(wǎng)絡(luò)(如以太網(wǎng))或無線通信技術(shù),可以實現(xiàn)對整個指控系統(tǒng)中各個設(shè)備的實時監(jiān)控,配合無線蜂窩網(wǎng)絡(luò)技術(shù)還可以實現(xiàn)手持式通信終端對指控設(shè)備的實時監(jiān)測。因此對無線傳感器網(wǎng)絡(luò)的研究具有重要的應(yīng)用價值。
1 ZigBee技術(shù)概述
由于ZigBee無線通信協(xié)議不僅具有低成本、低功耗、低速率、低復(fù)雜度的特點,而且具有可靠性高,組網(wǎng)簡單、靈活的優(yōu)勢,所以結(jié)合實際需要,并與同類無線技術(shù)進(jìn)行比較后,最終選用了ZigBee這項技術(shù)。
ZigBee技術(shù)是一種具有統(tǒng)一技術(shù)標(biāo)準(zhǔn)的短距離無線通信技術(shù),其兼容的產(chǎn)品工作在IEEE 802.15.4的PHY上頻段是免費開放的,分別為2.4 GHz(全球)、915 MHz(美國)和868 MHz(歐洲)。采用ZigBee技術(shù)的產(chǎn)品可以在2.4 GHz頻段上提供250 Kb/s(16個信道)、在915 MHz頻段上提供40 Kb/s(10個信道)和在868 MHz頻段上提供20 Kb/s(1個信道)的傳輸速率[1]。
ZigBee協(xié)議棧的體系結(jié)構(gòu)如圖1所示。它雖然是基于標(biāo)準(zhǔn)的7層開放式系統(tǒng)互聯(lián)(OSI)模型,但僅對涉及ZigBee的層予以定義。IEEE 802.15.4-2003標(biāo)準(zhǔn)定義了最下面的2層:物理層(PHY)和介質(zhì)接入控制子層(MAC)。ZigBee聯(lián)盟提供了網(wǎng)絡(luò)層和應(yīng)用層(APL)框架的設(shè)計。其中,應(yīng)用層的框架包括了應(yīng)用支持子層(APS)、ZigBee設(shè)備對象(ZDO)及由制造商制定的應(yīng)用對象[2]。
ZigBee設(shè)備為低功耗設(shè)備,其發(fā)射功率為0~3.6 dBm,具有能量檢測和鏈路質(zhì)量指示能力,根據(jù)這些檢測結(jié)果,設(shè)備可自動調(diào)整其發(fā)射功率,在保證通信鏈路質(zhì)量的條件下,最小地消耗設(shè)備能量[3]。
2 網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)某型指控系統(tǒng)裝備地域分布和工作時序所具有的特點,狀態(tài)監(jiān)控系統(tǒng)通常分為系統(tǒng)層和節(jié)點層2個應(yīng)用層次。節(jié)點層主要針對車載式指揮控制系統(tǒng)單車分系統(tǒng)或集中在小地域環(huán)境中的系統(tǒng)進(jìn)行設(shè)計,更大范圍內(nèi)的系統(tǒng)層測試采用上述分系統(tǒng)的無線互連方式作為解決方案,本文主要論述的是節(jié)點層的設(shè)計方案。
在分布測試中,無線監(jiān)控網(wǎng)絡(luò)是由在待測目標(biāo)附近按一定方式布置的多個數(shù)據(jù)采集節(jié)點和1個控制基站組成。每個節(jié)點都連接1個或多個功能模塊,從而具有1種或多種感知能力。本文設(shè)計的傳感器網(wǎng)絡(luò)采用分簇結(jié)構(gòu),該網(wǎng)絡(luò)由若干個傳感器單元和1個基站構(gòu)成。基站作為網(wǎng)絡(luò)中的協(xié)調(diào)器,負(fù)責(zé)建網(wǎng)以及設(shè)備注冊和訪問控制等基本的網(wǎng)絡(luò)管理功能,同時搜集傳感器網(wǎng)絡(luò)發(fā)送的所有數(shù)據(jù),建立本地數(shù)據(jù)庫,完成數(shù)據(jù)融合和數(shù)據(jù)包向控制中心的轉(zhuǎn)發(fā)。傳感器節(jié)點則根據(jù)在網(wǎng)絡(luò)中扮演的角色分為終端設(shè)備節(jié)點和路由器節(jié)點。這兩者的區(qū)別是:終端節(jié)點只負(fù)責(zé)采集信號,發(fā)送至路由器或協(xié)調(diào)器;路由器則不僅要采集設(shè)備信號,而且要收集它的終端子節(jié)點采集到的信號,并將收集的各路信號轉(zhuǎn)發(fā)給基站。圖2給出了監(jiān)控網(wǎng)絡(luò)節(jié)點層的結(jié)構(gòu)圖。
實際應(yīng)用時,在不改變和破壞原設(shè)備連接關(guān)系的基礎(chǔ)上將傳感器節(jié)點置于指控設(shè)備的通信鏈路上,使監(jiān)控模塊的兩端分別連接至待監(jiān)控的設(shè)備A、B,如圖3所示。
數(shù)據(jù)采集方式根據(jù)指控裝備中數(shù)據(jù)流的大小可分為3種。第1種是基站以廣播形式向各數(shù)據(jù)采集節(jié)點發(fā)送控制指令,要求節(jié)點將測試數(shù)據(jù)以無線的方式回傳至基站。采集節(jié)點接收到命令后,由控制模塊對命令進(jìn)行解析,若節(jié)點地址與本節(jié)點編號一致,則通過SPI總線讀取由功能模塊采集到的符合基站要求的數(shù)據(jù),并通過射頻模塊發(fā)送給基站。第2種是定時采集的方式。每隔一段時間,各數(shù)據(jù)采集模塊按照基站的要求,向基站發(fā)送1次實時采集到的數(shù)據(jù)。這2種方式適用于信息流較大的情況。當(dāng)信息流較小時,可采用中斷查詢的方式。指控裝備中每次傳送的數(shù)據(jù)都會觸發(fā)數(shù)據(jù)采集節(jié)點的中斷,并發(fā)送至基站。
3 傳感器節(jié)點的設(shè)計及其在平臺上的實現(xiàn)
3.1 硬件設(shè)計
3.1.1 傳感器節(jié)點總體設(shè)計
傳感器節(jié)點的控制和無線通信部分使用Jennic公司的集成化解決方案JN5139芯片。JN5139是IEEE 802.15.4和ZigBee低成本低功耗微控制器,集成了32位RISC處理器、完全兼容的2.4 GHz IEEE 802.15.4收發(fā)器、192 KB ROM、96 KB RAM以及豐富的模擬和數(shù)字外設(shè)。它在單芯片內(nèi)集成了用于無線傳感器網(wǎng)絡(luò)的收發(fā)器和微控制器,具有成本敏感的ROM/RAM架構(gòu),能夠滿足批量應(yīng)用的需要[4]。
各傳感器單元之間及其與基站之間通過無線通信的方式傳輸,傳感器節(jié)點采用2.4 GHz的免費頻段。無線傳感器網(wǎng)絡(luò)由許多功能相同或不同的無線傳感器節(jié)點組成。傳感器節(jié)點由功能模塊(傳感器、A/D轉(zhuǎn)換器)、控制模塊(微處理器、存儲器)、通信模塊(無線收發(fā)器)和供電模塊(電池、DC/DC能量轉(zhuǎn)換器)組成。功能模塊負(fù)責(zé)監(jiān)測區(qū)域內(nèi)信息的采集和數(shù)據(jù)轉(zhuǎn)換;控制模塊負(fù)責(zé)控制整個傳感器節(jié)點的操作,存儲和處理本身采集的數(shù)據(jù)以及其他節(jié)點發(fā)來的數(shù)據(jù);通信模塊負(fù)責(zé)與協(xié)調(diào)器或路由器進(jìn)行通信,交換控制信息和發(fā)送采集數(shù)據(jù);供電模塊為傳感器節(jié)點提供運行所需的能量。由于數(shù)據(jù)采集節(jié)點的布置方式、定位方法、通信手段往往是相同的,僅僅是節(jié)點由于連接了不同類型的傳感器或數(shù)據(jù)采集設(shè)備而導(dǎo)致節(jié)點感知能力的差異。因此,將測試單元設(shè)計成功能模塊,并與控制和通信模塊相連接就可以根據(jù)測試任務(wù)的需要對其方便地添加和刪除。傳感器節(jié)點總體設(shè)計圖如圖4所示。
3.1.2 SPI總線設(shè)計
節(jié)點中控制模塊和各功能模塊的控制器件都集成了SPI接口,他們的數(shù)據(jù)交互是通過SPI總線完成的。當(dāng)基站發(fā)出命令時,節(jié)點中的控制模塊進(jìn)行判斷并轉(zhuǎn)發(fā)給功能模塊,功能模塊上報給基站的數(shù)據(jù)也需要通過控制模塊進(jìn)行仲裁并打包發(fā)送。
SPI可以作為主器件或從器件,并支持在同一總線上連接多個從器件和主器件。SPI接口包含1個從選擇信號(SS),用于選擇SPI為從器件;當(dāng)SPI作為主器件時,可以用額外的通用I/O端口作為從選擇輸出。
只有SPI主器件能啟動數(shù)據(jù)傳輸。當(dāng)處于主方式時,向SPI數(shù)據(jù)寄存器寫入1個字節(jié)將啟動1次數(shù)據(jù)傳輸。SPI主器件立即在SPIMOSI線上串行移出數(shù)據(jù),同時在SPISCK上提供串行時鐘。在全雙工操作中,SPI主器件在SPIMOSI線上向從器件發(fā)送數(shù)據(jù),被尋址的從器件可以同時在SPIMOSI線上向主器件發(fā)送其移位寄存器中的內(nèi)容。所接收到的來自從器件的數(shù)據(jù)替換主器件數(shù)據(jù)寄存器中的數(shù)據(jù)。2個方向上的數(shù)據(jù)傳輸由主器件產(chǎn)生的串行時鐘同步。當(dāng)SPI被使能而未被配置為主器件時,它將作為從器件工作。另1個SPI主器件通過將其SS信號驅(qū)動為低電平啟動1次數(shù)據(jù)傳輸。主器件用其串行時鐘將移位寄存器中的數(shù)據(jù)移出到SPIMOSI引腳。從器件可以通過寫SPI數(shù)據(jù)寄存器為下一次數(shù)據(jù)傳輸裝載它的移位寄存器。從器件必須在主器件開始下一次數(shù)據(jù)傳輸之前至少1個SPI串行時鐘寫數(shù)據(jù)寄存器;否則,已經(jīng)位于從器件移位寄存器中數(shù)據(jù)字節(jié)將被發(fā)送。傳感器節(jié)點中JN5139與外圍功能模塊基于SPI總線的連接關(guān)系如圖5所示。
3.2 軟件設(shè)計
傳感器節(jié)點程序主要實現(xiàn)接收并轉(zhuǎn)發(fā)基站的命令、與功能模塊進(jìn)行交互、上報功能模塊采集到的數(shù)據(jù)等功能。在網(wǎng)絡(luò)中,每個傳感器節(jié)點都分配有地址,基站以廣播的形式發(fā)送指令后,各個節(jié)點上的主控制器都對其進(jìn)行解析,若地址與本節(jié)點相同,則進(jìn)一步分析出功能模塊的編號并通過SPI總線進(jìn)行轉(zhuǎn)發(fā),功能模塊在收到命令后,由協(xié)處理器進(jìn)行再次解析,將指定數(shù)據(jù)上報。
3.2.1 建立ZigBee網(wǎng)絡(luò)
建立1個網(wǎng)絡(luò)首先需要對每1個設(shè)備IEEE 802.15.4協(xié)議棧的PHY和MAC層進(jìn)行初始化,然后創(chuàng)建本網(wǎng)絡(luò)的PAN Co-ordinator,每1個網(wǎng)絡(luò)有且只能有1個PAN Co-ordinator,建立網(wǎng)絡(luò)的第1個步驟就是選擇并且初始化這個Co-ordinator。PAN Co-ordinator一旦初始化完成就必須為它的網(wǎng)絡(luò)選定1個PAN ID作為網(wǎng)絡(luò)的標(biāo)識,PAN ID可以被人為地預(yù)定義,也可以通過偵聽其他網(wǎng)絡(luò)的ID然后選擇1個不會沖突的ID的方式來獲取。每1個PAN Co-ordinator設(shè)備都已經(jīng)具有了1個唯一的、固定的64 bit IEEE MAC地址,通常稱為擴(kuò)展地址。但是作為組網(wǎng)的標(biāo)識它還必須分配給自己1個16 bit的網(wǎng)絡(luò)地址,通常稱之為短地址。使用短地址進(jìn)行通訊可以使網(wǎng)絡(luò)通訊更輕量級且更高。這一短地址是預(yù)先定義好的,PAN Co-ordinator的短地址通常被定義為0x0000。
PAN Co-ordinator必須選擇1個網(wǎng)絡(luò)所建立的射頻頻率通道。它可以通過進(jìn)行1次能量掃描檢測來找到1個相對安靜的通道。通過通道能量掃描檢測,API將返回每一個通道的能量水平,能量水平高就標(biāo)志著這個通道的無線信號比較活躍。接下來PAN Co-ordinator就可以根據(jù)這些信息選擇1個可以利用的通道來建立自己的無線網(wǎng)絡(luò)。
完成上述工作后,PAN Co-ordinator就將開放對于加入網(wǎng)絡(luò)的請求應(yīng)答。一旦網(wǎng)絡(luò)中出現(xiàn)了可以利用的Co-ordinator,其他的網(wǎng)絡(luò)設(shè)備就可以加入網(wǎng)絡(luò)了。1個準(zhǔn)備加入網(wǎng)絡(luò)的設(shè)備在完成初始化之后,需要通過頻道掃描找到PAN Co-ordinator,并在特定的頻率通道中發(fā)送信標(biāo)請求。當(dāng)PAN Co-ordinator檢測到信標(biāo)請求后,Co-ordinator將回應(yīng)相應(yīng)的信標(biāo)來向設(shè)備標(biāo)識自己,既而判斷是否有足夠的資源接受新的設(shè)備,并且決定是否接受和拒絕設(shè)備加入網(wǎng)絡(luò)。如果PAN Co-ordinator接收了設(shè)備,它將發(fā)送1個16 bit的短地址給設(shè)備,作為設(shè)備在網(wǎng)絡(luò)中的標(biāo)識[5-6]。ZigBee網(wǎng)絡(luò)的建立過程如圖6所示。
3.2.2 ZigBee網(wǎng)絡(luò)內(nèi)設(shè)備之間的傳輸數(shù)據(jù)
當(dāng)網(wǎng)絡(luò)中出現(xiàn)了PAN Co-ordinator和至少1個端節(jié)點設(shè)備后,網(wǎng)絡(luò)就可以進(jìn)行數(shù)據(jù)傳輸了。Co-ordinator向端節(jié)點設(shè)備傳輸數(shù)據(jù)時,有直接傳輸和間接傳輸2種方法可以實現(xiàn)數(shù)據(jù)傳輸:
(1)直接傳輸:PAN Co-ordinator可以將數(shù)據(jù)直接發(fā)送給端節(jié)點設(shè)備,當(dāng)端節(jié)點設(shè)備接收到數(shù)據(jù)后就可以發(fā)送確認(rèn)消息給Co-ordinator。這種數(shù)據(jù)傳輸方式要求端節(jié)點設(shè)備隨時都處于數(shù)據(jù)接收的狀態(tài),也就是要求其隨時都要處于喚醒的狀態(tài)。
(2)間接傳輸:這種傳輸方式就是Co-ordinator可以將數(shù)據(jù)保存起來等待端節(jié)點設(shè)備請求讀取數(shù)據(jù)。采用這種方式時,端節(jié)點設(shè)備為了獲得數(shù)據(jù)必須先要發(fā)送數(shù)據(jù)請求。發(fā)送數(shù)據(jù)請求后,Co-ordinator就會判斷是否有需要發(fā)送給這個設(shè)備的數(shù)據(jù),如果有就發(fā)送相應(yīng)的數(shù)據(jù)給端節(jié)點設(shè)備。接到數(shù)據(jù)的設(shè)備將發(fā)送確認(rèn)信息。這一方式適用于端節(jié)點設(shè)備需要較低功耗的情況,其大部分的工作狀態(tài)都處于休眠狀態(tài)以節(jié)省能量。上述數(shù)據(jù)傳輸方式如圖7所示。
端節(jié)點設(shè)備向Co-ordinator傳輸數(shù)據(jù)時,通常采用直接發(fā)送的方式,Co-ordinator接到數(shù)據(jù)后可以發(fā)送確認(rèn)信息[5-6]。
3.2.3 SPI總線數(shù)據(jù)傳輸[7-10]
JN5139支持從16 MHz到250 kHz的數(shù)據(jù)傳輸速率,SPICLK時鐘的相位和極性都是可配置的。時鐘極性控制SCLK在空閑時置高還是置低(也就決定了傳輸中第1個時鐘邊沿的極性),時鐘的相位決定了JN5139在時鐘周期SPICLK的哪個邊沿采樣SPIMOSI線上的數(shù)據(jù)。
基于SPI總線的數(shù)據(jù)傳輸由vAHI_SpiConfigure()函數(shù)進(jìn)行配置,從設(shè)備的選擇由vAHI_SpiSelect()函數(shù)完成。當(dāng)處于主方式時,向SPI數(shù)據(jù)寄存器寫入1個字節(jié)將啟動1次數(shù)據(jù)傳輸。調(diào)用vAHI_SpiStartTransferxx(xx代表8、16或32 bit)開始1次傳輸過程,數(shù)據(jù)被放入數(shù)據(jù)寄存器并立即在SPIMOSI上串行移出,同時產(chǎn)生時鐘信號SPICLK。在全雙工操作中,SPI主器件在MOSI線上向從器件發(fā)送數(shù)據(jù),被尋址的從器件可以同時在MISO線上向主器件發(fā)送其移位寄存器中的內(nèi)容,所接收到的來自從器件的數(shù)據(jù)替換主器件數(shù)據(jù)寄存器中的數(shù)據(jù)。在這一傳輸過程中,用u32AHI_SpiReadTransferxx(xx代表8、16或32 bit)進(jìn)行數(shù)據(jù)的讀取。由于從處理器作為從機(jī)不會產(chǎn)生移位時鐘脈沖,主機(jī)接收從機(jī)發(fā)送的數(shù)據(jù)時,協(xié)處理器的數(shù)據(jù)傳輸必須依靠主控制器的配合。從處理器有數(shù)據(jù)需要傳輸時,會產(chǎn)生1個低電平的呼叫信號,準(zhǔn)備啟動1次通信過程。主控制器響應(yīng)后,會拉低SS引腳,并在SPIMOSI引腳上輸出1個字節(jié)無效數(shù)據(jù),從而在SPICLK線上產(chǎn)生時鐘脈沖,將1個字節(jié)數(shù)據(jù)通過SPIMISO引腳送入主控制器[4,7]。數(shù)據(jù)傳輸流程如圖8所示。
無線傳感器網(wǎng)絡(luò)是一項新興的信息技術(shù),傳感器節(jié)點和網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計對無線傳感器網(wǎng)絡(luò)有著至關(guān)重要的作用。本文提出的基于ZigBee無線傳感器網(wǎng)絡(luò)的指控裝備狀態(tài)監(jiān)控系統(tǒng),用較為先進(jìn)的ZigBee無線通信技術(shù)代替了傳統(tǒng)的有線通信。它采用ZigBee分簇式拓?fù)浣Y(jié)構(gòu)實現(xiàn)對指控系統(tǒng)中各指控裝備狀態(tài)信息的實時采集、處理和分析,大大提高了系統(tǒng)的可擴(kuò)展性和移動性,達(dá)到了低功耗、自組網(wǎng),監(jiān)控靈活方便的技術(shù)要求,具有較為重要的應(yīng)用價值。
評論