新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于ZigBee的自愈自組網(wǎng)的設(shè)計(jì)與應(yīng)用

基于ZigBee的自愈自組網(wǎng)的設(shè)計(jì)與應(yīng)用

作者: 時(shí)間:2013-05-16 來(lái)源:網(wǎng)絡(luò) 收藏

3.1 的設(shè)計(jì)
無(wú)線網(wǎng)絡(luò)中,只有一個(gè)節(jié)點(diǎn)作為協(xié)調(diào)器,其他節(jié)點(diǎn)都是路由器或終端。網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都有兩個(gè)地址:64位IEEE擴(kuò)展地址和16位網(wǎng)絡(luò)地址。64位IEEE擴(kuò)展地址類似于MAC地址,它唯一的標(biāo)識(shí)著每一個(gè)設(shè)備。16位的網(wǎng)絡(luò)地址在節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí)由其父節(jié)點(diǎn)(協(xié)調(diào)器或路由器)動(dòng)態(tài)分配,該地址僅在路由或者數(shù)據(jù)傳輸時(shí)使用。
無(wú)線網(wǎng)絡(luò)有兩種地址模式,靜態(tài)地址分配和樹(shù)狀地址分配。協(xié)調(diào)器確定整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目,每個(gè)節(jié)點(diǎn)都擁有一個(gè)網(wǎng)絡(luò)深度,用以指示在其父子鏈路上數(shù)據(jù)傳輸?shù)絽f(xié)調(diào)器所需的最小跳數(shù)。協(xié)調(diào)器的深度為0,而它的孩子節(jié)點(diǎn)深度為1。可知,多跳網(wǎng)絡(luò)中深度大于1,網(wǎng)絡(luò)深度是由協(xié)調(diào)器來(lái)決定的。網(wǎng)絡(luò)中,假設(shè)一個(gè)父節(jié)點(diǎn)有最大孩子節(jié)點(diǎn)數(shù)為Cm,網(wǎng)絡(luò)最大深度為L(zhǎng)m,一個(gè)父節(jié)點(diǎn)的最大路由數(shù)為Rm,可以計(jì)算網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的功能函數(shù)Cskip(d):
d.JPG
式中d是節(jié)點(diǎn)到協(xié)調(diào)器的深度。如果Cskip(d)的值為0,則表明此節(jié)點(diǎn)為葉子節(jié)點(diǎn),而Cskip(d)的值大于0,則表明該節(jié)點(diǎn)可作為一個(gè)父節(jié)點(diǎn),這個(gè)父節(jié)點(diǎn)可以接收子節(jié)點(diǎn)并根據(jù)它們是否具有路由能力來(lái)分配地址。具體過(guò)程是:首先一個(gè)子節(jié)點(diǎn)的地址被分配,子節(jié)點(diǎn)地址比父節(jié)點(diǎn)的地址多1,然后其余節(jié)點(diǎn)根據(jù)下式求出:
An=Aparent+Cskip(d)*Rm+n (2)
式中1≤n≤(Cm-Rm),Aparent代表父節(jié)點(diǎn)的地址。
ZigBee協(xié)調(diào)器在上電后,首先要建立一個(gè)無(wú)線網(wǎng)絡(luò)。在協(xié)議棧中,通過(guò)函數(shù)ZDApp_NetworkInit()進(jìn)行網(wǎng)絡(luò)初始化,系統(tǒng)檢測(cè)到ZDP任務(wù)的ZDO_NETWORK_INIT事件,調(diào)用處理函數(shù)ZDO_StartDevice()啟動(dòng)網(wǎng)絡(luò)的組建。通過(guò)變量logicalType判斷設(shè)備類型,如為協(xié)調(diào)器,則調(diào)用ZStatus_t NLME_NetworkFormationRequest()來(lái)完成網(wǎng)絡(luò)的組建,同時(shí)該函數(shù)產(chǎn)生一個(gè)回調(diào)函數(shù)ZDO_Network Formation ConfirmCB(),通過(guò)該函數(shù),根據(jù)系統(tǒng)消息判斷網(wǎng)絡(luò)組建是否成功。
當(dāng)網(wǎng)絡(luò)建立完成并允許新設(shè)備加入時(shí),子設(shè)備(即子節(jié)點(diǎn))才可以請(qǐng)求加入網(wǎng)絡(luò)。在協(xié)議棧中,子節(jié)點(diǎn)上電后調(diào)用ZDApp_Networkl nit()進(jìn)行網(wǎng)絡(luò)初始化,之后調(diào)用NLME_NetworkDiscovery Request()來(lái)尋找射頻范圍內(nèi)存在的ZigBee網(wǎng)絡(luò),該函數(shù)會(huì)產(chǎn)生回調(diào)函數(shù)ZDO_Netwo rk Discovery ConfirmCB(),系統(tǒng)就是通過(guò)該函數(shù)來(lái)得到發(fā)現(xiàn)的網(wǎng)絡(luò)信息。在發(fā)現(xiàn)有已經(jīng)建好的ZigBee網(wǎng)絡(luò)后,調(diào)用NLME_JoinRequest()加入網(wǎng)絡(luò),同時(shí)產(chǎn)生回調(diào)函數(shù)ZDO_JoinConfirmCB(),通過(guò)該函數(shù)判斷加入網(wǎng)絡(luò)是否成功。路由器在網(wǎng)絡(luò)中負(fù)責(zé)信息的轉(zhuǎn)發(fā),發(fā)現(xiàn)鄰居等,同時(shí)路由器必須在另一個(gè)路由的射頻范圍內(nèi),并且持續(xù)監(jiān)聽(tīng)網(wǎng)絡(luò)內(nèi)傳遞的新信息。終端節(jié)點(diǎn)負(fù)責(zé)各種數(shù)據(jù)的采集與上傳以及接收下傳命令并執(zhí)行,同時(shí)監(jiān)聽(tīng)網(wǎng)絡(luò)。
3.2 自愈功能的實(shí)現(xiàn)
如果在網(wǎng)絡(luò)的正常運(yùn)行情況下,有路由器因故障離網(wǎng),導(dǎo)致原有的路由線路破壞。ZigBee提供了實(shí)現(xiàn)網(wǎng)絡(luò)自愈功能的基礎(chǔ),在用戶研發(fā)的軟硬件配合下,可以實(shí)現(xiàn)強(qiáng)大的網(wǎng)絡(luò)自愈功能,使得整個(gè)網(wǎng)絡(luò)不因個(gè)別節(jié)點(diǎn)的變動(dòng)而能持續(xù)工作。終端節(jié)點(diǎn)在這種情況下,又會(huì)再次啟動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)加入網(wǎng)絡(luò)的過(guò)程。但,前提是在終端節(jié)點(diǎn)的射頻范圍內(nèi)存在著可用的路由器。在協(xié)議棧中,通過(guò)調(diào)用zb_ReadConfiguration()可以訪問(wèn)非易失性存儲(chǔ)器NV中的信息,其中包括節(jié)點(diǎn)的設(shè)備類型logicalType,節(jié)點(diǎn)的IEEE地址,節(jié)點(diǎn)的啟動(dòng)模式startOptions等重要信息,同時(shí)也可以通過(guò)調(diào)用zh_WriteComqguration()來(lái)寫(xiě)入這些設(shè)備信息,能夠在協(xié)議棧中靈活的配置網(wǎng)絡(luò)節(jié)點(diǎn),實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的自啟動(dòng)、以及自愈等功能,提高了網(wǎng)絡(luò)的穩(wěn)定性、健壯性也同時(shí)提高了網(wǎng)絡(luò)的工作效率。
3.3 所研發(fā)網(wǎng)絡(luò)的一個(gè)應(yīng)用例子
在像無(wú)人值守通信基站(或局站)等重要場(chǎng)合,需對(duì)基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)實(shí)時(shí)監(jiān)控。采用本網(wǎng)絡(luò)對(duì)基站的各種參數(shù)進(jìn)行采集,軟件設(shè)計(jì)主要在Z_Stack協(xié)議棧的應(yīng)用層上實(shí)現(xiàn)。各種參數(shù)信號(hào)經(jīng)過(guò)外部調(diào)理電路處理后連接到的模擬IO口,的ADC轉(zhuǎn)換模塊采集各個(gè)參數(shù)并在內(nèi)部進(jìn)行定標(biāo)和各種運(yùn)算處理。處理后的數(shù)據(jù)部分供給采集子節(jié)點(diǎn)本地使用;部分需上傳的數(shù)據(jù)經(jīng)過(guò)的系統(tǒng)觸發(fā)數(shù)據(jù)傳送事件,調(diào)用afStatus_tAF_DataRequest()將數(shù)據(jù)無(wú)線發(fā)送給協(xié)調(diào)器。
協(xié)調(diào)器接收到各種測(cè)量參數(shù)對(duì)應(yīng)的無(wú)線數(shù)據(jù)后直接發(fā)送至登記注冊(cè)過(guò)的端點(diǎn)。應(yīng)用程序?qū)⑼ㄟ^(guò)AF_INCOMING_MSG_CMD OSAL消息事件處理接收到的數(shù)據(jù)包(包內(nèi)主要有:數(shù)據(jù)組號(hào)group ID、發(fā)送節(jié)點(diǎn)的網(wǎng)絡(luò)地址、端點(diǎn)號(hào)、數(shù)據(jù)類型以及各種測(cè)量參數(shù)對(duì)應(yīng)的數(shù)據(jù))。協(xié)調(diào)器通過(guò)對(duì)數(shù)據(jù)包的分析,準(zhǔn)確的提取出所需要的節(jié)點(diǎn)號(hào)以及各種測(cè)量參數(shù)數(shù)據(jù),最后通過(guò)GPRS通信方式將采集的數(shù)據(jù)上傳到監(jiān)控中心,實(shí)現(xiàn)對(duì)無(wú)人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)的實(shí)時(shí)監(jiān)控。

4 結(jié)束語(yǔ)
文中分析了ZigBee協(xié)議體系結(jié)構(gòu)各層主要功能,以及ZigBee網(wǎng)絡(luò)中兩種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);研究分析了TI的Z_Stack協(xié)議棧的開(kāi)發(fā)與工作流程,以及、自愈組網(wǎng)的協(xié)議開(kāi)發(fā)過(guò)程。基于CC2530無(wú)線單片機(jī)硬件平臺(tái)設(shè)計(jì)了一個(gè)具有自組網(wǎng)、自愈功能的ZigBee無(wú)線傳感器網(wǎng)絡(luò),很好地實(shí)現(xiàn)了網(wǎng)絡(luò)的自組網(wǎng)和自愈功能,同時(shí)完成了對(duì)無(wú)人值守通信基站的交流電壓、電流和溫濕度環(huán)境等參數(shù)的實(shí)時(shí)監(jiān)控。該系統(tǒng)應(yīng)用廣泛,還可以用在其他工業(yè)遠(yuǎn)程測(cè)控、路燈遙測(cè)遙控以及環(huán)境監(jiān)測(cè)等無(wú)人值守領(lǐng)域,有非常好的應(yīng)用前景和顯著的社會(huì)經(jīng)濟(jì)效益。

本文引用地址:http://butianyuan.cn/article/153494.htm

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: ZigBee 自組網(wǎng) Z_Stack CC2530

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉