無線傳感器網(wǎng)絡(WirelessSensorNetworks,WSN)是一種分布式傳感網(wǎng)絡,它的末梢是可以感知和檢查外部世界的傳感器。WSN中的傳感器通過無線方式通信,因此網(wǎng)絡設置靈活,設備位置可以隨時更改,還可以跟互聯(lián)網(wǎng)進行有線或無線方式的連接。通過無線通信方式形成的一個多跳自組織網(wǎng)絡。
目前能夠用于短距離無線傳感網(wǎng)絡的通信技術主要有5種:Wi-Fi技術、超寬帶通信(UltraWideband,UWB)技術、近場通信(NearFieldCommunication,NFC)技術、藍牙以及ZigBee技術。其中,ZigBee是基于IEEE802.15.4的一種新興短距離無線通信技術,其特點是低功耗、低速率、低復雜度、低成本等。這些特點決定了ZigBee技術非常適合應用于無線傳感網(wǎng)絡中,因此ZigBee技術被認為是最有可能應用于工業(yè)監(jiān)控、傳感器網(wǎng)絡、家庭監(jiān)控、安全監(jiān)控等領域的無線技術。在ZigBee協(xié)議的制定中,IEEE802.15.4無線標準定義了物理層(PhysicalLayer,PHY)和介質(zhì)訪問控制層(MediumAccessControlSub-Layer,MAC),而ZigBee協(xié)議棧的網(wǎng)絡層和應用層是由ZigBee聯(lián)盟制定的。
支持ZigBee協(xié)議的無線通信芯片主要有TI公司推出的CC2420、CC2430、CC2530以及Freescale半導體公司推出的MC13191、MC13192及MC13193等芯片。CC2430是世界上首個單芯片ZigBee解決方案,除了保持CC2420所包括的優(yōu)良射頻性能之外,其內(nèi)部還集成了一個增強型8051內(nèi)核,這使得CC2430成為市面上最具有競爭力的ZigBee無線收發(fā)芯片。
文中設計了基于ZigBee協(xié)議棧的無線傳感網(wǎng)絡,該系統(tǒng)包括一個協(xié)調(diào)器和四個終端傳感節(jié)點。以采集溫度信息為例,實現(xiàn)了無線通信功能。協(xié)調(diào)器節(jié)點通過RS232串口,將收到的數(shù)據(jù)發(fā)送給PC機進行處理及顯示。
1無線傳感網(wǎng)絡的結(jié)構(gòu)
1.1網(wǎng)絡體系結(jié)構(gòu)
無線傳感網(wǎng)路中的基本單元是傳感器節(jié)點,根據(jù)其在網(wǎng)絡中的所承擔的任務不同,傳感器節(jié)點可以分為3類:協(xié)調(diào)器、路由器和傳感器節(jié)點。在網(wǎng)絡中,協(xié)調(diào)器負責建立網(wǎng)絡,允許路由器和傳感器節(jié)點與其綁定,并接收路由器和傳感器節(jié)點發(fā)送來的數(shù)據(jù)信息,以及傳送給PC機進行處理、存儲等;傳感器節(jié)點負責感知被測對象的物理信息,并將其無線發(fā)射給協(xié)調(diào)器;但如果傳感器節(jié)點距離協(xié)調(diào)器太遠,則需要路由器在中間進行中繼。傳感網(wǎng)絡的拓撲結(jié)構(gòu)一般有3種:星型網(wǎng)絡、樹型網(wǎng)絡和網(wǎng)狀網(wǎng)絡。
星型拓撲結(jié)構(gòu)具有組網(wǎng)簡單、低成本和低功耗等優(yōu)點,但網(wǎng)絡覆蓋范圍有限;樹型網(wǎng)絡可以擴大網(wǎng)絡覆蓋范圍,傳感器節(jié)點傳感器所采集的數(shù)據(jù)可以通過路由器中繼的方式到達協(xié)調(diào)器;網(wǎng)狀網(wǎng)絡具有高可靠性和覆蓋范圍大等優(yōu)點,但功耗大、管理復雜。在實際應用,要根據(jù)實際需求來選擇網(wǎng)絡拓撲結(jié)構(gòu)。
1.2傳感器節(jié)點的結(jié)構(gòu)
無線傳感網(wǎng)絡中的節(jié)點按照其所具備的功能來分,可分為全功能設備(FullFunclionDevice,F(xiàn)FD)和精簡功能設備(ReducedFunctionDevice,RFD)。網(wǎng)絡協(xié)調(diào)器和路由器必須由FFD來承擔,傳感器節(jié)點一般由RFD來實現(xiàn)。但不管是FFD還是RFD,其硬件的基本結(jié)構(gòu)基本上相同,一般包括傳感器模塊、微處理器模塊、無線通信模塊和能量供應模塊4個基本部分,如圖1所示。傳感器模塊用于感知被測對象的物理信息,并將其轉(zhuǎn)換為電信號;微處理器模塊負責處理及存儲數(shù)據(jù);無線通信模塊負責發(fā)射與接收無線電信息;能量供應模塊為整個系統(tǒng)提供能量。此外,傳感器節(jié)點還可能包括一些輔助單位,如定位模塊、自供電模塊等。與傳感器節(jié)點和路由器相比,協(xié)調(diào)器一般需要和PC機相連,所以其帶有RS232接口或USB接口等。
圖1傳感器節(jié)點的結(jié)構(gòu)
2系統(tǒng)軟件設計
TI公司推出的ZigBee協(xié)議棧是基于優(yōu)先級的輪轉(zhuǎn)查詢式操作系統(tǒng),它是由稱為層的模塊組成,每一層為其上一層提供特定的服務。ZigBee協(xié)議棧為各個層均分配的不同的任務編號,每一個任務中又包含若干個事件。對于開發(fā)者來說,一般只需關注應用層函數(shù)的設計即可。當然,若果硬件電路不同,則其硬件抽象層函數(shù)也是不同的。文中所采用的硬件電路為無線龍公司生產(chǎn)的CC2430無線通信模塊,共包括4個傳感器節(jié)點和一個協(xié)調(diào)器。每個傳感器節(jié)點為一個CC2430基本模塊和一個電池板;協(xié)調(diào)器模塊為一個CC2430基本模塊和一個擴展板,擴展板上帶有RS232串口,可用于和PC機進行通信。
2.1協(xié)調(diào)器啟動及建立網(wǎng)絡
無線傳感網(wǎng)絡的建立是由網(wǎng)絡協(xié)調(diào)器來完成的。協(xié)調(diào)器節(jié)點啟動之后,首先完成系統(tǒng)的初始化,然后進入操作系統(tǒng)。在系統(tǒng)的初始化中,包括初始化系統(tǒng)時鐘、檢測芯片電壓、中斷系統(tǒng)、flash存儲器等,其中比較重要的是初始化端口描述符。兩個物理無線收發(fā)模塊的通信是通過兩個設備中編號相同的端點來實現(xiàn)的,這要求協(xié)調(diào)器所初始化的端點屬性要與在傳感器節(jié)點中所初始化的端點屬性相匹配。
進入操作系統(tǒng)以后,首先進入的是應用層任務函數(shù),因為在應用中設置了進入事件。通過按鍵S1來設置其為協(xié)調(diào)器,并開始建立網(wǎng)絡。將設備設置為協(xié)調(diào)器之后,通過zb_StartRequest()函數(shù)調(diào)用ZDO層初始化設備函數(shù)ZDOInitDevice()。在該函數(shù)中,通過ZDO層中的網(wǎng)絡初始化函數(shù)ZDApp_NetworhInit()設置網(wǎng)絡初始化事件,送給啟動設備函數(shù)ZDO_StartDevice()處理。在該函數(shù)中,調(diào)用了網(wǎng)絡層的網(wǎng)絡形成請求函數(shù)NLME_NetworkFormationRequest()來形成網(wǎng)絡。由于ZigBee協(xié)議棧是半開源的,因此看不到該函數(shù)的內(nèi)部程序。當ZDO層收到網(wǎng)絡形成確認信息之后,則設置網(wǎng)絡啟動事件,將設備的狀態(tài)改為啟動狀態(tài)。協(xié)調(diào)器建立網(wǎng)絡的過程如圖2所示。
圖2協(xié)調(diào)器啟動及建立網(wǎng)絡
2.2傳感器節(jié)點啟動及加入網(wǎng)絡
對于傳感器節(jié)點來說,啟動后首先要完成的也是設備的初始化。在本實驗中,傳感器節(jié)點向協(xié)調(diào)器發(fā)送本身的溫度信息,所以在傳感器節(jié)點中所初始化的端口的屬性應為輸出,而協(xié)調(diào)器中所定義的端口的屬性應為輸入。當初始化之后,進入操作系統(tǒng)執(zhí)行應用層任務中的進入事件。這里直接將設備設置為傳感器節(jié)點。
傳感器節(jié)點啟動后,開始初始化網(wǎng)絡。在ZDO層調(diào)用網(wǎng)絡層的網(wǎng)絡發(fā)現(xiàn)函數(shù)NLME_NetworkDiscoveryRequest(),嘗試發(fā)現(xiàn)是否已經(jīng)存在的網(wǎng)絡可以加入。當發(fā)現(xiàn)協(xié)調(diào)器所建立的網(wǎng)絡時,傳感器節(jié)點的ZDO層會收到網(wǎng)絡發(fā)現(xiàn)確認信息。這時,傳感器節(jié)點通過調(diào)用網(wǎng)絡層的網(wǎng)絡加入請求函數(shù)NLME_JionRequest(),向協(xié)調(diào)器發(fā)送加入網(wǎng)絡請求。如果協(xié)調(diào)器允許其他節(jié)點加入網(wǎng)絡,則該傳感器節(jié)點會接收到協(xié)調(diào)器發(fā)送來的加入確認信息。這里的網(wǎng)絡發(fā)現(xiàn)函數(shù)NLME_NetworkDiscoveryRequest()和網(wǎng)絡加入請求函數(shù)NLME_JionRequest(),與協(xié)調(diào)器中所調(diào)用的網(wǎng)絡形成函數(shù)NLMENetworkFormationReouest()一樣,均為ZigBee協(xié)議棧所封裝起來的函數(shù),只能由開發(fā)人員編程時調(diào)用,不能看到其內(nèi)部程序。傳感器節(jié)點加入網(wǎng)絡的流程如圖3所示。
圖3傳感器節(jié)點啟動及加入網(wǎng)絡
2.3傳感器節(jié)點與協(xié)調(diào)器的綁定
為了讓傳感器節(jié)點與協(xié)調(diào)器能相互傳送數(shù)據(jù),兩者之間必須建立綁定關系。綁定是兩個(或多個)應用設備之間信息傳輸?shù)目刂茩C制,在ZigBee2006及以后的協(xié)議棧中,所有的設備都必須執(zhí)行綁定機制。
協(xié)調(diào)器通過執(zhí)行zb_AllowBind()函數(shù),開啟允許綁定功能。在該函數(shù)中,可以設置允許綁定的時間,即在某一段時間內(nèi),協(xié)調(diào)器接收其他設備發(fā)來的綁定請求,超過這段時間,則關閉該功能。傳感器節(jié)點通過執(zhí)行綁定設備函數(shù)zb_BindDevice(),向協(xié)調(diào)器發(fā)送綁定請求。協(xié)調(diào)器接收到傳感器節(jié)點發(fā)送來的綁定請求,并進行解析,綁定請求信息中包含了傳感器節(jié)點中的端點信息,然后協(xié)調(diào)器在自身所注冊過的端點中尋找與之相匹配的端點。找到之后,則處理綁定請求信息,并向傳感器節(jié)點發(fā)送綁定響應信息。傳感器節(jié)點接收到綁定響應信息之后,通過調(diào)用應用支持子層的綁定請求函數(shù)APSME_BindRequest()來建立綁定表,并將向自己的應用層發(fā)送綁定確認信息。傳感器節(jié)點與協(xié)調(diào)器建立綁定的流程如圖4所示。
圖4傳感器節(jié)點與協(xié)調(diào)器綁定
2.4傳感器節(jié)點向協(xié)調(diào)器傳送數(shù)據(jù)
當傳感器節(jié)點向自己的應用層發(fā)送綁定確認信息之后,就調(diào)用發(fā)送報告函數(shù)myApp_StartReporting()向協(xié)調(diào)器發(fā)送數(shù)據(jù)信息。CC2430內(nèi)部有一溫度傳感器,可測量的溫度范圍是-20~80℃,雖然所采集的結(jié)果與實際溫度不太相符合(比實際值偏高),但對于構(gòu)建無線傳感器網(wǎng)絡,并無太大影響。所以在本實驗中,傳感器節(jié)點所發(fā)送的就是其自身內(nèi)部的溫度信息。由傳感器所得來的溫度信息為模擬信號,需要經(jīng)過A/D轉(zhuǎn)換為數(shù)字信號。CC2430內(nèi)部集成了多路A/D轉(zhuǎn)換,這里不再詳述。
當協(xié)調(diào)器接收到溫度信息之后,對其進行解析,得到溫度信息。通過調(diào)用串口通信程序,將數(shù)據(jù)發(fā)送給PC機進行顯示。串口通信程序的設計,這里也不再詳述。
3實驗
當建立綁定關系之后,傳感器節(jié)點就可以向協(xié)調(diào)器發(fā)送數(shù)據(jù)。將協(xié)調(diào)器程序下載到帶有擴展板的CC2430模塊中,然后將傳感器節(jié)點程序分別下載到4個帶有電池板的CC2430模塊中。協(xié)調(diào)器由3節(jié)5號電池供電,并通過RS232串口與PC機相連。在PC機上打開串口調(diào)試工具,并設置好端口號、傳輸速率及校驗位等。端口號的設置可通過PC機查看,而傳輸速率及校驗位等與串口通信程序的設計有關,這里選擇波特率為384000,暫時沒有設置校驗位。每個傳感器節(jié)點均有2節(jié)7號電池供電。
首先打開帶有擴展板的CC2430電源,按S1鍵將其設置成為協(xié)調(diào)器。然后再次按下S1鍵,即協(xié)調(diào)器開啟允許綁定功能。此時依次打開4個傳感器節(jié)點,它們會相繼加入網(wǎng)絡。在實驗中,通過LED的亮滅來觀察網(wǎng)絡啟動及節(jié)點加入的過程。
網(wǎng)絡加入完畢之后,在PC機的串口調(diào)試界面中,能看到協(xié)調(diào)器所接收到得溫度信息,并且協(xié)調(diào)器為4個傳感器節(jié)點分別分配了16位的網(wǎng)絡地址,如圖5所示。
圖5實驗數(shù)據(jù)
4結(jié)論
該實驗實現(xiàn)了基于ZigBee協(xié)議棧的無線傳感器網(wǎng)絡的開發(fā)。如果用LabVIEW軟件處理PC上的串行數(shù)據(jù),可以實現(xiàn)數(shù)據(jù)的實時監(jiān)控和報警,以及數(shù)據(jù)的存儲和回調(diào)功能。
-
傳感器
+關注
關注
2551文章
51200瀏覽量
754515 -
無線通信
+關注
關注
58文章
4584瀏覽量
143630 -
無線傳感器網(wǎng)絡
+關注
關注
6文章
239瀏覽量
24268
發(fā)布評論請先 登錄
相關推薦
評論