欧美色图 亚洲|野外口爆视频国产|久久精品视频观看|97精品人人抽插

基于ZigBee協(xié)議棧的無線傳感器網絡的設計

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

責任編輯:張奧迪