摘要:ZigBee技術為低功耗、低成本、低復雜度、適中數(shù)據傳榆率和且具有自組織功能的無線監(jiān)控網絡的組建提供了堅實的技術基礎。為了增強無線網絡在無人值守、遠程監(jiān)控等應用中的穩(wěn)定性及智能化,本文在分析ZigBee協(xié)議體系結構以及Z_Stack協(xié)議棧基礎上,研究了如何基于CC2530組建具有自組網、自愈特性的ZigBee無線網絡,通過對無人值守的通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)的遠程實時監(jiān)控的試驗,實現(xiàn)了網絡的自組網與自愈功能,增強了網絡的穩(wěn)定性及智能化。
關鍵詞:ZigBee;自組網;Z_Stack;CC2530
無線傳感器網絡(WSN,Wireless Sensor Network)是由分布在有效區(qū)域內具有通訊功能的大量傳感器節(jié)點組成,通過無線方式自組織形成網絡系統(tǒng),節(jié)點采集信息并通過無線網絡逐級傳送到監(jiān)控中。ZigBee是一種介于IEEE 802.11無線局域網與藍牙技術之間的無線通信網絡協(xié)議,是基于IEEE 802.15.4無線標準研制開發(fā)的有關組網、應用和安全方面的通信技術。ZigBee為用戶提供了一個低成本、低功耗、低
復雜度、適中的數(shù)據傳輸速率、高容量以及短距離通信等特性的技術平臺。依據該平臺,客戶通過創(chuàng)造性的研發(fā)工作,根據具體任務要求設計硬件系統(tǒng)和配備相應的軟件,就可以出色地完成很多任務。
本文采用集成了ZigBee技術和增強型8051內核的SOC芯片CC2530,配合相應的軟硬件,構建了一個無線測控網絡。
該無線測控網絡克服了目前一般無線網絡的穩(wěn)定性差易崩潰的缺點,支持星型、樹型以及網狀網的拓撲結構,除具有自組織功能外,還研發(fā)成功了自愈功能,對網絡的穩(wěn)定性、健壯性以及提高工作效率都有重大的意義。
下面首先簡述ZigBee協(xié)議和Z_Stack協(xié)議棧,重點論述自組網的設計實現(xiàn)、網絡自愈功能的研發(fā)與實現(xiàn)和該網絡的一個實際應用例子:對無人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)的遠程實時監(jiān)控。
1 ZigBee協(xié)議體系結構
ZigBee協(xié)議體系由稱為層的各模塊組成。每一層為其上層提供特定的服務:
即由數(shù)據服務實體提供數(shù)據傳輸服務;管理實體提供所有的其他服務。每個服務實體通過相應的服務接入點(SAP)為其上層提供一個接口,每個服務接入點通過服務原語來完成所對應的功能。ZigBee協(xié)議體系如圖1所示。
主要由應用層(APL)、網絡層(NWK)、媒介訪問控制層(MAC)和物理層(PHY)組成,其中媒介訪問控制層和物理層是由IEEE 802.15.4標準定義的,ZigBee聯(lián)盟則定義了網絡層和應用層架構。物理層定義了物理無線信道和MAC子層之間的接口,提供物理層數(shù)據服務和物理層管理服務。媒介訪問控制層負責所有的物理無線信道的訪問,并產生網絡信號、同步信號;支持PAN連接和分離,提供2個對等(peer to peer)MAC之間可靠的鏈路。網絡層主要實現(xiàn)節(jié)點加入或離開網絡、接收或拋棄其他節(jié)點、路由查找及傳送數(shù)據等功能。應用層框架包括應用支持子層(APS)、ZigBee設備對象(ZDO)和制造商所定義的應用對象。
基于ZigBee協(xié)議應用開發(fā)中,用戶只需實現(xiàn)應用層框架即可,應更多的關注應用層框架(創(chuàng)造性發(fā)揮也在這一層)。APS主要用于維持綁定表、在綁定設備之間傳送消息。ZDO主要定義設備在網絡中的角色(ZigBee協(xié)調器還是路由或者終端),發(fā)起和響應綁定請求,在網絡設備之間建立安全機制等。
IEEE 802.15.4標準中定義了兩種設備類型,全功能設備(FYD)與精簡功能設備(RFD)。ZigBee協(xié)議也定義了這兩類設備,ZigBee協(xié)調器相當于IEEE 802.15.4標準中的PAN協(xié)調器,ZigBee路由器擁有IEEE 802.15.4標準中協(xié)調器的功能,ZigBee終端是網絡中最便宜的設備,擁有最少的功能。全功能設備(FFD)在ZigBee網絡中能完成拓撲結構中任何功能,而精簡功能設備(RFD)在ZigBee網絡中只能作為終端,且只能與全功能設備(FTD)通信。全功能設備(FFD)與精簡功能設備(RFD)硬件配置是可以完全相同,但在軟件的配置上不同。
網絡拓撲結構由ZigBee協(xié)議的網絡層決定,且必須是IEEE 802.15.4標準中定義的兩種類型之一:星型網絡和對等型網絡。在星型網絡拓撲結構中,協(xié)調器建網與路由數(shù)據的功能,終端節(jié)點通過協(xié)調器進行通信。在對等網絡中,所有的節(jié)點在網絡范圍內都可以進行通信,所有的節(jié)點都參與數(shù)據傳遞。因此網絡能夠自組織以及通過多跳方式來進行通信(這也為實現(xiàn)自愈功能提供了必要的基礎)。
2 ZSTACK協(xié)議棧
CC2530是TI公司推出的一款兼容IEEE 802.15.4的SOC,集成了增強型8051內核,結合上TI的Z_Stack協(xié)議棧軟件,可組建網絡,同時加快開發(fā)周期,減小開發(fā)成本。
Z_Stack協(xié)議棧采用操作系統(tǒng)的思想來構建,采用基于優(yōu)先級的事件輪循機制,當各層初始化完成后進入低功耗模式,事件發(fā)生時,喚醒系統(tǒng)進入中斷處理事件函數(shù),結束后繼續(xù)進入低功耗模式。操作系統(tǒng)抽象層(OSAL)實現(xiàn)了一個易用的操作系統(tǒng)平臺,通過時間片輪轉函數(shù)實現(xiàn)任務調度,提供多任務處理機制。系統(tǒng)中tasksEvents數(shù)組中存放著每個任務標志位,輪循判斷各任務標志位來執(zhí)行對應的任務。Z_Stack協(xié)議棧工作流程如圖2所示。
Z_Stack協(xié)議棧提供多種任務事件觸發(fā)機制,可以直接通過API函數(shù)osal_set_event()設置要觸發(fā)的任務標志位;也可以通過設置一個軟件定時器osal_start_timeEx()函數(shù)等待溢出來觸發(fā);最后,也可以通過調用系統(tǒng)消息傳遞機制來觸發(fā)任務事件。在進行應用開發(fā)時,需要在tasksEvents數(shù)組中添加相應的任務,確定任務的ID號。同時在初始化系統(tǒng)任務函數(shù)osalInitTasks()中添加任務的初始化函數(shù),在事件處理函數(shù)數(shù)組tasksArr[]中添加任務處理函數(shù)。每個任務的ID號是唯一的,系統(tǒng)按每次檢測到的任務ID號執(zhí)行相對應的事件處理函數(shù)。
3 具有自愈功能的自組網設計與應用
通過對ZigBee協(xié)議體系的研究,利用Z_Stack協(xié)議棧在CC2530平臺上,實現(xiàn)ZigBee自愈功能的自組網,傳感器節(jié)點對無人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)進行信號調理和采集后經路由器節(jié)點、協(xié)調器,再通過GPRS通信方式傳遞到監(jiān)控中心,實現(xiàn)對無人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)的實時監(jiān)控結構如圖3所示。
3.1 自組網的設計
ZigBee無線網絡中,只有一個節(jié)點作為協(xié)調器,其他節(jié)點都是路由器或終端。網絡中每個節(jié)點都有兩個地址:64位IEEE擴展地址和16位網絡地址。64位IEEE擴展地址類似于MAC地址,它唯一的標識著每一個設備。16位的網絡地址在節(jié)點加入網絡時由其父節(jié)點(協(xié)調器或路由器)動態(tài)分配,該地址僅在路由或者數(shù)據傳輸時使用。
ZigBee無線網絡有兩種地址模式,靜態(tài)地址分配和樹狀地址分配。協(xié)調器確定整個網絡節(jié)點數(shù)目,每個節(jié)點都擁有一個網絡深度,用以指示在其父子鏈路上數(shù)據傳輸?shù)絽f(xié)調器所需的最小跳數(shù)。協(xié)調器的深度為0,而它的孩子節(jié)點深度為1??芍?,多跳網絡中深度大于1,網絡深度是由協(xié)調器來決定的。ZigBee網絡中,假設一個父節(jié)點有最大孩子節(jié)點數(shù)為Cm,網絡最大深度為Lm,一個父節(jié)點的最大路由數(shù)為Rm,可以計算網絡中每個節(jié)點的功能函數(shù)Cskip(d):
式中d是節(jié)點到協(xié)調器的深度。如果Cskip(d)的值為0,則表明此節(jié)點為葉子節(jié)點,而Cskip(d)的值大于0,則表明該節(jié)點可作為一個父節(jié)點,這個父節(jié)點可以接收子節(jié)點并根據它們是否具有路由能力來分配地址。具體過程是:首先一個子節(jié)點的地址被分配,子節(jié)點地址比父節(jié)點的地址多1,然后其余節(jié)點根據下式求出:
An=Aparent+Cskip(d)*Rm+n (2)
式中1≤n≤(Cm-Rm),Aparent代表父節(jié)點的地址。
ZigBee協(xié)調器在上電后,首先要建立一個無線網絡。在Z_Stack協(xié)議棧中,通過函數(shù)ZDApp_NetworkInit()進行網絡初始化,系統(tǒng)檢測到ZDP任務的ZDO_NETWORK_INIT事件,調用處理函數(shù)ZDO_StartDevice()啟動網絡的組建。通過變量logicalType判斷設備類型,如為協(xié)調器,則調用ZStatus_t NLME_NetworkFormationRequest()來完成網絡的組建,同時該函數(shù)產生一個回調函數(shù)ZDO_Network Formation ConfirmCB(),通過該函數(shù),根據系統(tǒng)消息判斷網絡組建是否成功。
當網絡建立完成并允許新設備加入時,子設備(即子節(jié)點)才可以請求加入網絡。在Z_Stack協(xié)議棧中,子節(jié)點上電后調用ZDApp_Networkl nit()進行網絡初始化,之后調用NLME_NetworkDiscovery Request()來尋找射頻范圍內存在的ZigBee網絡,該函數(shù)會產生回調函數(shù)ZDO_Netwo rk Discovery ConfirmCB(),系統(tǒng)就是通過該函數(shù)來得到發(fā)現(xiàn)的網絡信息。在發(fā)現(xiàn)有已經建好的ZigBee網絡后,調用NLME_JoinRequest()加入網絡,同時產生回調函數(shù)ZDO_JoinConfirmCB(),通過該函數(shù)判斷加入網絡是否成功。路由器在網絡中負責信息的轉發(fā),發(fā)現(xiàn)鄰居等,同時路由器必須在另一個路由的射頻范圍內,并且持續(xù)監(jiān)聽網絡內傳遞的新信息。終端節(jié)點負責各種數(shù)據的采集與上傳以及接收下傳命令并執(zhí)行,同時監(jiān)聽網絡。
3.2 自愈功能的實現(xiàn)
如果在網絡的正常運行情況下,有路由器因故障離網,導致原有的路由線路破壞。ZigBee提供了實現(xiàn)網絡自愈功能的基礎,在用戶研發(fā)的軟硬件配合下,可以實現(xiàn)強大的網絡自愈功能,使得整個網絡不因個別節(jié)點的變動而能持續(xù)工作。終端節(jié)點在這種情況下,又會再次啟動發(fā)現(xiàn)網絡加入網絡的過程。但,前提是在終端節(jié)點的射頻范圍內存在著可用的路由器。在Z_Stack協(xié)議棧中,通過調用zb_ReadConfiguration()可以訪問非易失性存儲器NV中的信息,其中包括節(jié)點的設備類型logicalType,節(jié)點的IEEE地址,節(jié)點的啟動模式startOptions等重要信息,同時也可以通過調用zh_WriteComqguration()來寫入這些設備信息,能夠在協(xié)議棧中靈活的配置網絡節(jié)點,實現(xiàn)整個網絡的自啟動、自組網以及自愈等功能,提高了網絡的穩(wěn)定性、健壯性也同時提高了網絡的工作效率。
3.3 所研發(fā)網絡的一個應用例子
在像無人值守通信基站(或局站)等重要場合,需對基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)實時監(jiān)控。采用本網絡對基站的各種參數(shù)進行采集,軟件設計主要在Z_Stack協(xié)議棧的應用層上實現(xiàn)。各種參數(shù)信號經過外部調理電路處理后連接到CC2530的模擬IO口,CC2530的ADC轉換模塊采集各個參數(shù)并在內部進行定標和各種運算處理。處理后的數(shù)據部分供給采集子節(jié)點本地使用;部分需上傳的數(shù)據經過CC2530的系統(tǒng)觸發(fā)數(shù)據傳送事件,調用afStatus_tAF_DataRequest()將數(shù)據無線發(fā)送給協(xié)調器。
協(xié)調器接收到各種測量參數(shù)對應的無線數(shù)據后直接發(fā)送至登記注冊過的端點。應用程序將通過AF_INCOMING_MSG_CMD OSAL消息事件處理接收到的數(shù)據包(包內主要有:數(shù)據組號group ID、發(fā)送節(jié)點的網絡地址、端點號、數(shù)據類型以及各種測量參數(shù)對應的數(shù)據)。協(xié)調器通過對數(shù)據包的分析,準確的提取出所需要的節(jié)點號以及各種測量參數(shù)數(shù)據,最后通過GPRS通信方式將采集的數(shù)據上傳到監(jiān)控中心,實現(xiàn)對無人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)的實時監(jiān)控。
4 結束語
文中分析了ZigBee協(xié)議體系結構各層主要功能,以及ZigBee網絡中兩種網絡拓撲結構;研究分析了TI的Z_Stack協(xié)議棧的開發(fā)與工作流程,以及自組網、自愈組網的協(xié)議開發(fā)過程。基于CC2530無線單片機硬件平臺設計了一個具有自組網、自愈功能的ZigBee無線傳感器網絡,很好地實現(xiàn)了網絡的自組網和自愈功能,同時完成了對無人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)的實時監(jiān)控。該系統(tǒng)應用廣泛,還可以用在其他工業(yè)遠程測控、路燈遙測遙控以及環(huán)境監(jiān)測等無人值守領域,有非常好的應用前景和顯著的社會經濟效益。