mesh 协调器 路由器_关于Mesh网络中,协调器和路由器之间的几个问题?
1,由于我所搭建的整個(gè)網(wǎng)絡(luò)是Mesh網(wǎng)絡(luò),不牽涉到低功耗的情況,所以網(wǎng)絡(luò)中只有兩種類型的設(shè)備:協(xié)調(diào)器和路由器即:1個(gè)協(xié)調(diào)器+N個(gè)路由器
2,為了防止協(xié)調(diào)器在掉電的情況下路由器去維持整個(gè)網(wǎng)絡(luò),這樣協(xié)調(diào)器就不能再加入到原來(lái)的網(wǎng)絡(luò)中,所以協(xié)調(diào)器和N個(gè)路由器都開(kāi)啟了:NV_INIT, NV_RESTORE
3,我在協(xié)調(diào)器中建立了一個(gè)關(guān)聯(lián)表用于維護(hù)所有路由節(jié)點(diǎn)的網(wǎng)絡(luò)短地址,這樣協(xié)調(diào)器和路由器通信的時(shí)候都采用單播的方式通信。
下面是產(chǎn)生的幾個(gè)問(wèn)題描述:
(1)我在協(xié)調(diào)器和N個(gè)路由器都開(kāi)啟NV_INIT NV_RESTORE的情況下,再打開(kāi)AES加密功能。設(shè)置-DSECURE=1 ,?zgPreConfigKeys = TRUE,協(xié)調(diào)器和路由器設(shè)置相同的defaultKey(在nwk_global.c中修改)。
1.1 ? 但是出現(xiàn)加密后路由器和協(xié)調(diào)器通信出現(xiàn)斷斷續(xù)續(xù)的情況,有的時(shí)候數(shù)據(jù)能夠收到,有的時(shí)候收不到?
[VV] 這個(gè)跟是否加密沒(méi)有關(guān)系,既然你能收到數(shù)據(jù),而且數(shù)據(jù)加解密都正常,那說(shuō)明這個(gè)加密本身是沒(méi)有問(wèn)題的。
1.2 ? ?重啟路由器,路由器在上電加入網(wǎng)絡(luò)出現(xiàn)收不到協(xié)調(diào)器發(fā)送過(guò)來(lái)的數(shù)據(jù)的情況。
[VV] 是協(xié)調(diào)器沒(méi)有發(fā)出來(lái)呢,還是發(fā)出來(lái)了沒(méi)有收到?用空中抓包看下
1.3 ? 如果把所有節(jié)點(diǎn)的NV_INIT NV_RESTORE選項(xiàng)去掉,加密通信是沒(méi)有問(wèn)題的,請(qǐng)問(wèn):這兩個(gè)選項(xiàng)和加密設(shè)置不能共同設(shè)置嗎?相互之間會(huì)影響?
[VV] 可以共同設(shè)置,不會(huì)有影響的。
(2) 所有的路由器都開(kāi)啟了NV_RESTORE選項(xiàng),如果路由器A通過(guò)路由器B加入到協(xié)調(diào)器的網(wǎng)絡(luò)中,即路由器B是路由器A的parent父節(jié)點(diǎn)。
2.1 ? ?如果此時(shí)路由器B掉線,那么路由器A在開(kāi)啟NV_RESTORE的情況下回去選擇新的路由器C作為父節(jié)點(diǎn)嗎?如果會(huì)那么路由器C會(huì)給A分配新的網(wǎng)絡(luò)地址 ? ? ? ? ? ? ? ? ? ? 嗎?
[VV] 對(duì)于路由器只有在第一次入網(wǎng)的時(shí)候會(huì)選擇一個(gè)父設(shè)備入網(wǎng),主要目的是為了能獲得父設(shè)備分配的網(wǎng)絡(luò)地址,然后入網(wǎng)。一旦入網(wǎng)以后路由器的通信并不是一定依賴于父設(shè)備的,它自己可以維護(hù)鄰居表和路由表和其他的節(jié)點(diǎn)進(jìn)行通信,即便父設(shè)備不存在了,它不會(huì)重新選擇父設(shè)備,而是繼續(xù)維持正常工作。
2.2 ? 如果路由器A更換了新的父親節(jié)點(diǎn),當(dāng)原來(lái)的路由器B上電后,路由器B認(rèn)為A節(jié)點(diǎn)還是自己的孩子節(jié)點(diǎn),單播發(fā)送數(shù)據(jù)給路由A節(jié)點(diǎn)能收到嗎?
[VV] 不會(huì)更換。通信不會(huì)有影響。
2.3 ? 協(xié)調(diào)器也并不知道路由器A節(jié)點(diǎn)更換了新的父親節(jié)的,保留的還是原來(lái)的路由路徑,那么通過(guò)協(xié)調(diào)器單播數(shù)據(jù)給路由器A節(jié)點(diǎn)的時(shí)候能收到嗎?
[VV] 不會(huì)更換,可以收到。
2.4 ?我看網(wǎng)上說(shuō)可以通過(guò)路由器A節(jié)點(diǎn)調(diào)用ZDApp_AnnounceNewAddress()函數(shù)向網(wǎng)絡(luò)中的所有設(shè)備進(jìn)行新的地址更新通知,網(wǎng)絡(luò)中協(xié)調(diào)器和所有的路由器在收到A節(jié)點(diǎn)的Device?announce這個(gè)消息后判斷A節(jié)點(diǎn)已經(jīng)更換了父節(jié)點(diǎn),會(huì)刪除associated device list里面A節(jié)點(diǎn)的地址。協(xié)調(diào)器收到A節(jié)點(diǎn)的Device?announce判斷A節(jié)點(diǎn)更換了父親節(jié)的,會(huì)更新老的路由路徑為新的路由路徑。
[VV] 在開(kāi)啟了NV的條件下,路由器不會(huì)重新入網(wǎng)了。
請(qǐng)問(wèn)具體的代碼是如何實(shí)現(xiàn)的呢?可以詳細(xì)給下代碼嗎?路由A的代碼和其他路由的代碼,還有協(xié)調(diào)器的相應(yīng)處理代碼。
[VV] 你需要實(shí)現(xiàn)什么?
謝謝!
建議:
1) 一定要說(shuō)下你用的協(xié)議棧版本。
2)學(xué)會(huì)用Sniffer 抓包分析ZigBee的通信問(wèn)題,很重要。
總結(jié)
以上是生活随笔為你收集整理的mesh 协调器 路由器_关于Mesh网络中,协调器和路由器之间的几个问题?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android contacts 编辑,
- 下一篇: c语言根据图片轮廓图,c语言通过open