基于ZigBee的自愈自組網(wǎng)的設計與應用
3.1 自組網(wǎng)的設計
ZigBee無(wú)線(xiàn)網(wǎng)絡(luò )中,只有一個(gè)節點(diǎn)作為協(xié)調器,其他節點(diǎn)都是路由器或終端。網(wǎng)絡(luò )中每個(gè)節點(diǎn)都有兩個(gè)地址:64位IEEE擴展地址和16位網(wǎng)絡(luò )地址。64位IEEE擴展地址類(lèi)似于MAC地址,它唯一的標識著(zhù)每一個(gè)設備。16位的網(wǎng)絡(luò )地址在節點(diǎn)加入網(wǎng)絡(luò )時(shí)由其父節點(diǎn)(協(xié)調器或路由器)動(dòng)態(tài)分配,該地址僅在路由或者數據傳輸時(shí)使用。
ZigBee無(wú)線(xiàn)網(wǎng)絡(luò )有兩種地址模式,靜態(tài)地址分配和樹(shù)狀地址分配。協(xié)調器確定整個(gè)網(wǎng)絡(luò )節點(diǎn)數目,每個(gè)節點(diǎn)都擁有一個(gè)網(wǎng)絡(luò )深度,用以指示在其父子鏈路上數據傳輸到協(xié)調器所需的最小跳數。協(xié)調器的深度為0,而它的孩子節點(diǎn)深度為1??芍?,多跳網(wǎng)絡(luò )中深度大于1,網(wǎng)絡(luò )深度是由協(xié)調器來(lái)決定的。ZigBee網(wǎng)絡(luò )中,假設一個(gè)父節點(diǎn)有最大孩子節點(diǎn)數為Cm,網(wǎng)絡(luò )最大深度為L(cháng)m,一個(gè)父節點(diǎn)的最大路由數為Rm,可以計算網(wǎng)絡(luò )中每個(gè)節點(diǎn)的功能函數Cskip(d):

式中d是節點(diǎn)到協(xié)調器的深度。如果Cskip(d)的值為0,則表明此節點(diǎn)為葉子節點(diǎn),而Cskip(d)的值大于0,則表明該節點(diǎn)可作為一個(gè)父節點(diǎn),這個(gè)父節點(diǎn)可以接收子節點(diǎn)并根據它們是否具有路由能力來(lái)分配地址。具體過(guò)程是:首先一個(gè)子節點(diǎn)的地址被分配,子節點(diǎn)地址比父節點(diǎn)的地址多1,然后其余節點(diǎn)根據下式求出:
An=Aparent+Cskip(d)*Rm+n (2)
式中1≤n≤(Cm-Rm),Aparent代表父節點(diǎn)的地址。
ZigBee協(xié)調器在上電后,首先要建立一個(gè)無(wú)線(xiàn)網(wǎng)絡(luò )。在Z_Stack協(xié)議棧中,通過(guò)函數ZDApp_NetworkInit()進(jìn)行網(wǎng)絡(luò )初始化,系統檢測到ZDP任務(wù)的ZDO_NETWORK_INIT事件,調用處理函數ZDO_StartDevice()啟動(dòng)網(wǎng)絡(luò )的組建。通過(guò)變量logicalType判斷設備類(lèi)型,如為協(xié)調器,則調用ZStatus_t NLME_NetworkFormationRequest()來(lái)完成網(wǎng)絡(luò )的組建,同時(shí)該函數產(chǎn)生一個(gè)回調函數ZDO_Network Formation ConfirmCB(),通過(guò)該函數,根據系統消息判斷網(wǎng)絡(luò )組建是否成功。
當網(wǎng)絡(luò )建立完成并允許新設備加入時(shí),子設備(即子節點(diǎn))才可以請求加入網(wǎng)絡(luò )。在Z_Stack協(xié)議棧中,子節點(diǎn)上電后調用ZDApp_Networkl nit()進(jìn)行網(wǎng)絡(luò )初始化,之后調用NLME_NetworkDiscovery Request()來(lái)尋找射頻范圍內存在的ZigBee網(wǎng)絡(luò ),該函數會(huì )產(chǎn)生回調函數ZDO_Netwo rk Discovery ConfirmCB(),系統就是通過(guò)該函數來(lái)得到發(fā)現的網(wǎng)絡(luò )信息。在發(fā)現有已經(jīng)建好的ZigBee網(wǎng)絡(luò )后,調用NLME_JoinRequest()加入網(wǎng)絡(luò ),同時(shí)產(chǎn)生回調函數ZDO_JoinConfirmCB(),通過(guò)該函數判斷加入網(wǎng)絡(luò )是否成功。路由器在網(wǎng)絡(luò )中負責信息的轉發(fā),發(fā)現鄰居等,同時(shí)路由器必須在另一個(gè)路由的射頻范圍內,并且持續監聽(tīng)網(wǎng)絡(luò )內傳遞的新信息。終端節點(diǎn)負責各種數據的采集與上傳以及接收下傳命令并執行,同時(shí)監聽(tīng)網(wǎng)絡(luò )。
3.2 自愈功能的實(shí)現
如果在網(wǎng)絡(luò )的正常運行情況下,有路由器因故障離網(wǎng),導致原有的路由線(xiàn)路破壞。ZigBee提供了實(shí)現網(wǎng)絡(luò )自愈功能的基礎,在用戶(hù)研發(fā)的軟硬件配合下,可以實(shí)現強大的網(wǎng)絡(luò )自愈功能,使得整個(gè)網(wǎng)絡(luò )不因個(gè)別節點(diǎn)的變動(dòng)而能持續工作。終端節點(diǎn)在這種情況下,又會(huì )再次啟動(dòng)發(fā)現網(wǎng)絡(luò )加入網(wǎng)絡(luò )的過(guò)程。但,前提是在終端節點(diǎn)的射頻范圍內存在著(zhù)可用的路由器。在Z_Stack協(xié)議棧中,通過(guò)調用zb_ReadConfiguration()可以訪(fǎng)問(wèn)非易失性存儲器NV中的信息,其中包括節點(diǎn)的設備類(lèi)型logicalType,節點(diǎn)的IEEE地址,節點(diǎn)的啟動(dòng)模式startOptions等重要信息,同時(shí)也可以通過(guò)調用zh_WriteComqguration()來(lái)寫(xiě)入這些設備信息,能夠在協(xié)議棧中靈活的配置網(wǎng)絡(luò )節點(diǎn),實(shí)現整個(gè)網(wǎng)絡(luò )的自啟動(dòng)、自組網(wǎng)以及自愈等功能,提高了網(wǎng)絡(luò )的穩定性、健壯性也同時(shí)提高了網(wǎng)絡(luò )的工作效率。
3.3 所研發(fā)網(wǎng)絡(luò )的一個(gè)應用例子
在像無(wú)人值守通信基站(或局站)等重要場(chǎng)合,需對基站的交流電壓、電流和溫濕度環(huán)境等參數實(shí)時(shí)監控。采用本網(wǎng)絡(luò )對基站的各種參數進(jìn)行采集,軟件設計主要在Z_Stack協(xié)議棧的應用層上實(shí)現。各種參數信號經(jīng)過(guò)外部調理電路處理后連接到CC2530的模擬IO口,CC2530的ADC轉換模塊采集各個(gè)參數并在內部進(jìn)行定標和各種運算處理。處理后的數據部分供給采集子節點(diǎn)本地使用;部分需上傳的數據經(jīng)過(guò)CC2530的系統觸發(fā)數據傳送事件,調用afStatus_tAF_DataRequest()將數據無(wú)線(xiàn)發(fā)送給協(xié)調器。
協(xié)調器接收到各種測量參數對應的無(wú)線(xiàn)數據后直接發(fā)送至登記注冊過(guò)的端點(diǎn)。應用程序將通過(guò)AF_INCOMING_MSG_CMD OSAL消息事件處理接收到的數據包(包內主要有:數據組號group ID、發(fā)送節點(diǎn)的網(wǎng)絡(luò )地址、端點(diǎn)號、數據類(lèi)型以及各種測量參數對應的數據)。協(xié)調器通過(guò)對數據包的分析,準確的提取出所需要的節點(diǎn)號以及各種測量參數數據,最后通過(guò)GPRS通信方式將采集的數據上傳到監控中心,實(shí)現對無(wú)人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數的實(shí)時(shí)監控。
4 結束語(yǔ)
文中分析了ZigBee協(xié)議體系結構各層主要功能,以及ZigBee網(wǎng)絡(luò )中兩種網(wǎng)絡(luò )拓撲結構;研究分析了TI的Z_Stack協(xié)議棧的開(kāi)發(fā)與工作流程,以及自組網(wǎng)、自愈組網(wǎng)的協(xié)議開(kāi)發(fā)過(guò)程?;贑C2530無(wú)線(xiàn)單片機硬件平臺設計了一個(gè)具有自組網(wǎng)、自愈功能的ZigBee無(wú)線(xiàn)傳感器網(wǎng)絡(luò ),很好地實(shí)現了網(wǎng)絡(luò )的自組網(wǎng)和自愈功能,同時(shí)完成了對無(wú)人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數的實(shí)時(shí)監控。該系統應用廣泛,還可以用在其他工業(yè)遠程測控、路燈遙測遙控以及環(huán)境監測等無(wú)人值守領(lǐng)域,有非常好的應用前景和顯著(zhù)的社會(huì )經(jīng)濟效益。本文引用地址:http://dyxdggzs.com/article/153494.htm
評論