ZigBee協(xié)議網(wǎng)絡(luò)層的設(shè)計(jì)與實(shí)現(xiàn)
節(jié)點(diǎn)可以通過發(fā)送LEAVE_REQUEST請(qǐng)求原語(yǔ)離開網(wǎng)絡(luò),也可以通過發(fā)送LEAVE_REQUEST請(qǐng)求原語(yǔ)讓別的節(jié)點(diǎn)離開網(wǎng)絡(luò)。當(dāng)節(jié)點(diǎn)收到LEAVE_REQUEST請(qǐng)求(來(lái)自本節(jié)點(diǎn)的應(yīng)用層或者來(lái)自其他節(jié)點(diǎn))時(shí),執(zhí)行離開網(wǎng)絡(luò)操作:首先,節(jié)點(diǎn)發(fā)送離開指示報(bào)文LEAVE_INDICATION給所有的鄰居節(jié)點(diǎn);然后,鄰居節(jié)點(diǎn)收到LEAVE_INDICATION后,將該節(jié)點(diǎn)從鄰居表和路由表等信息中移除;最后,清空本節(jié)點(diǎn)網(wǎng)絡(luò)層信息,離開網(wǎng)絡(luò)。本文引用地址:http://butianyuan.cn/article/188841.htm
圖3 收到路由請(qǐng)求命令報(bào)文后的處理流程
3.3 路由
路由,作為網(wǎng)絡(luò)層的核心功能之一, 它的設(shè)計(jì)與開發(fā)直接影響著網(wǎng)絡(luò)的性能,這也是整個(gè)協(xié)議開發(fā)的重點(diǎn)和難點(diǎn)。下面我們將對(duì)路由協(xié)議的設(shè)計(jì),路由發(fā)現(xiàn)以及維護(hù)分別進(jìn)行介紹。
當(dāng)且僅當(dāng)一個(gè)節(jié)點(diǎn)要單播發(fā)送數(shù)據(jù)報(bào)文但是當(dāng)前路由表中沒有到目的節(jié)點(diǎn)的有效路由時(shí),節(jié)點(diǎn)向外廣播發(fā)送路由請(qǐng)求報(bào)文RREQ(Route Request)進(jìn)行路由發(fā)現(xiàn)。節(jié)點(diǎn)收到路由請(qǐng)求報(bào)文后的詳細(xì)處理流程如圖3所示。
當(dāng)節(jié)點(diǎn)收到路由回復(fù)報(bào)文時(shí),首先查找路由表和路由發(fā)現(xiàn)表看是否有對(duì)應(yīng)的項(xiàng),如果有則更新路由表和路由發(fā)現(xiàn)表。如果該節(jié)點(diǎn)地址不等于路由回復(fù)報(bào)文命令負(fù)載中的發(fā)起節(jié)點(diǎn)地址,則需要繼續(xù)轉(zhuǎn)發(fā)該路由回復(fù)。節(jié)點(diǎn)收到路由回復(fù)報(bào)文后的詳細(xì)處理流程如圖4所示。
圖4 收到路由回復(fù)命令報(bào)文后的處理流程
4 結(jié)論
根據(jù)ZigBee協(xié)議國(guó)際規(guī)范,設(shè)計(jì)和開發(fā)了具有我國(guó)自主知識(shí)產(chǎn)權(quán)的ZigBee協(xié)議棧。本文,我們針對(duì)Atmega128閃存空間有限的特點(diǎn)設(shè)計(jì)了合適的協(xié)議棧軟件架構(gòu);并且重點(diǎn)對(duì)協(xié)議棧網(wǎng)絡(luò)層進(jìn)行了詳細(xì)的介紹,主要包括服務(wù)實(shí)體的定義和劃分、網(wǎng)絡(luò)層的功能描述和實(shí)現(xiàn)(如數(shù)據(jù)收發(fā)、設(shè)備管理以及路由發(fā)現(xiàn)與維護(hù))。
本文作者創(chuàng)新點(diǎn):為了在有限存儲(chǔ)空間上實(shí)現(xiàn)ZigBee規(guī)范定義的諸多功能,設(shè)計(jì)實(shí)現(xiàn)了共享緩沖區(qū)進(jìn)行數(shù)據(jù)收發(fā);針對(duì)無(wú)線網(wǎng)絡(luò)的鏈路特點(diǎn),設(shè)計(jì)實(shí)現(xiàn)了適用于工業(yè)環(huán)境的無(wú)線Mesh網(wǎng)絡(luò)路由協(xié)議,在進(jìn)行路徑選擇的時(shí)候充分考慮鏈路質(zhì)量因素,提高了選路的可靠性。
評(píng)論