如何組建一個(gè)完整的Zigbee網(wǎng)狀網(wǎng)絡(luò)
組建一個(gè)完整的Zigbee網(wǎng)狀網(wǎng)絡(luò)包括兩個(gè)步驟:網(wǎng)絡(luò)初始化和節(jié)點(diǎn)加入網(wǎng)絡(luò)。其中,節(jié)點(diǎn)加入網(wǎng)絡(luò)又可以通過(guò)與協(xié)調(diào)器連接入網(wǎng)和通過(guò)已有父節(jié)點(diǎn)入網(wǎng)這兩種方式進(jìn)行。本文將介紹Zigbee如何組網(wǎng)。1. 網(wǎng)絡(luò)初始
組建一個(gè)完整的Zigbee網(wǎng)狀網(wǎng)絡(luò)包括兩個(gè)步驟:網(wǎng)絡(luò)初始化和節(jié)點(diǎn)加入網(wǎng)絡(luò)。其中,節(jié)點(diǎn)加入網(wǎng)絡(luò)又可以通過(guò)與協(xié)調(diào)器連接入網(wǎng)和通過(guò)已有父節(jié)點(diǎn)入網(wǎng)這兩種方式進(jìn)行。本文將介紹Zigbee如何組網(wǎng)。
1. 網(wǎng)絡(luò)初始化預(yù)備
Zigbee網(wǎng)絡(luò)的建立是由網(wǎng)絡(luò)協(xié)調(diào)器發(fā)起的。要組建一個(gè)網(wǎng)絡(luò),節(jié)點(diǎn)必須滿足以下兩點(diǎn)要求:
(1)節(jié)點(diǎn)是FFD節(jié)點(diǎn),具備Zigbee協(xié)調(diào)器的能力;
(2)節(jié)點(diǎn)還沒(méi)有與其他網(wǎng)絡(luò)連接,當(dāng)節(jié)點(diǎn)已經(jīng)與其他網(wǎng)絡(luò)連接時(shí),此節(jié)點(diǎn)只能作為該網(wǎng)絡(luò)的子節(jié)點(diǎn),因?yàn)橐粋€(gè)Zigbee網(wǎng)絡(luò)中只能有一個(gè)網(wǎng)絡(luò)協(xié)調(diào)器。
2. 網(wǎng)絡(luò)初始化流程
(1)確定網(wǎng)絡(luò)協(xié)調(diào)器:
首先判斷節(jié)點(diǎn)是否是FFD節(jié)點(diǎn),接著判斷此FFD節(jié)點(diǎn)是否在其他網(wǎng)絡(luò)里或者網(wǎng)絡(luò)里是否已經(jīng)存在協(xié)調(diào)器。通過(guò)主動(dòng)掃描,發(fā)送一個(gè)信標(biāo)請(qǐng)求命令(Beaconrequest command),然后設(shè)置一個(gè)掃描期限(T_scan_duration)。如果在掃描期限內(nèi)都沒(méi)有檢測(cè)到信標(biāo),那么就認(rèn)為FFD在其pos內(nèi)沒(méi)有協(xié)調(diào)器,那么此時(shí)就可以建立自己的Zigbee網(wǎng)絡(luò),并且作為這個(gè)網(wǎng)絡(luò)的協(xié)調(diào)器不斷地產(chǎn)生信標(biāo)并廣播出去。
(2)進(jìn)行信道掃描過(guò)程:
包括能量掃描和主動(dòng)掃描兩個(gè)過(guò)程。首先對(duì)指定的信道或者默認(rèn)的信道進(jìn)行能量檢測(cè),以避免可能的干擾。然后進(jìn)行主動(dòng)掃描,搜索節(jié)點(diǎn)通信半徑內(nèi)的網(wǎng)絡(luò)信息。節(jié)點(diǎn)通過(guò)主動(dòng)信道掃描方式獲得這些信標(biāo)幀,并根據(jù)這些信息選擇一個(gè)相對(duì)安靜的信道來(lái)建立網(wǎng)絡(luò)。
3. 設(shè)置網(wǎng)絡(luò)ID
找到合適的信道后,協(xié)調(diào)器將為網(wǎng)絡(luò)選定一個(gè)網(wǎng)絡(luò)標(biāo)識(shí)符(PAN ID),這個(gè)ID在所使用的信道中必須是唯一的,也不能與其他Zigbee網(wǎng)絡(luò)沖突。在Zigbee網(wǎng)絡(luò)中有兩種地址模式:擴(kuò)展地址(64位)和短地址(16位)。擴(kuò)展地址用于唯一設(shè)備標(biāo)識(shí),短地址用于本地網(wǎng)絡(luò)中設(shè)備標(biāo)識(shí)。協(xié)調(diào)器通常將短地址設(shè)定為0x0000,并為每個(gè)加入網(wǎng)絡(luò)的節(jié)點(diǎn)分配一個(gè)唯一的短地址。
完成以上步驟后,就成功初始化了Zigbee網(wǎng)狀網(wǎng)絡(luò),并等待其他節(jié)點(diǎn)的加入。
4. 節(jié)點(diǎn)通過(guò)協(xié)調(diào)器加入網(wǎng)絡(luò)
當(dāng)節(jié)點(diǎn)需要加入網(wǎng)絡(luò)時(shí),首先要和協(xié)調(diào)器建立連接。
(1)查找網(wǎng)絡(luò)協(xié)調(diào)器:
節(jié)點(diǎn)主動(dòng)掃描周圍網(wǎng)絡(luò)的協(xié)調(diào)器,在掃描期限內(nèi)如果檢測(cè)到信標(biāo),則向協(xié)調(diào)器發(fā)出連接請(qǐng)求。
(2)發(fā)送關(guān)聯(lián)請(qǐng)求命令:
節(jié)點(diǎn)將關(guān)聯(lián)請(qǐng)求命令發(fā)送給協(xié)調(diào)器,并等待連接響應(yīng)。協(xié)調(diào)器根據(jù)自身資源情況決定是否允許節(jié)點(diǎn)加入網(wǎng)絡(luò),并分配一個(gè)短地址給節(jié)點(diǎn)。
(3)等待協(xié)調(diào)器處理:
節(jié)點(diǎn)等待一段時(shí)間,接收協(xié)調(diào)器的連接響應(yīng)。如果響應(yīng)成功,節(jié)點(diǎn)保存協(xié)調(diào)器的短地址和擴(kuò)展地址,并通告關(guān)聯(lián)加入成功的信息。
5. 節(jié)點(diǎn)通過(guò)已有節(jié)點(diǎn)加入網(wǎng)絡(luò)
當(dāng)靠近協(xié)調(diào)器的FFD節(jié)點(diǎn)和協(xié)調(diào)器關(guān)聯(lián)成功后,其他節(jié)點(diǎn)可以通過(guò)這些已有節(jié)點(diǎn)作為父