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