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