咨询一点问题:
我使用1.2.2a的协议栈,组建了一个ZigBee网络,一个协调器,若干个终端节点,若干个路由节点
我把终端节点A断电,然后重新上电,抓包发现,这个节点会发送一条orphan notification广播包,然后有一个节点返回的Coordinator realignment数据包
问题1:这个数据包是谁发送的?父节点还是协调器?如果我把这个节点原来的父节点断电,那么再次上电,这个终端节点会重新找一个父节点吗?
问题2:如果终端节点断电之后,我把整个网络都关闭,协调器和路由全部断电,终端节点再次上电,这个时候终端节点发送的orphan notification,没有收到Coordinator realignment,那么这个节点会处于一种什么状态?还会继续发送orphan notification吗?如果继续发送,会不会影响到低功耗?
YiKai Chen:
1. orphan notification是终端节点发送的
2. 节点原来的父节点断电,终端节点会重新找一个父节点
3. 会继续发送beacon request 、orphan notification只会发送一次、Z-Stack Home 1.2.2a有backoff 机制可以控制發送多久beacon request 後休息多久再起來发送beacon request
user5355203:
回复 YiKai Chen:
那么Coordinator realignment这个数据包是谁发送的呢?是终端节点的父节点吗?如果原来的父节点不在了,那么是不是说,谁返回了Coordinator realignment这条数据包,谁就是这个终端的新的父节点呢?
YiKai Chen:
回复 user5355203:
Coordinator realignment可以說是终端节点的父节点發的,但是還是要看最後终端节点有沒有真的對這個父节点作polling
user5355203:
回复 YiKai Chen:
意思是说,发送了Coordinator realignment之后,还需要终端向这个节点发送Data request,是这样吗?
YiKai Chen:
回复 user5355203:
這部份協議棧會處理,你可以具體描述你想知道的問題點是什麼嗎?這樣我比較好精準回答,如果你是要了解整個入網程序,我建議你去讀一下Zigbee spec
user5355203:
回复 YiKai Chen:
感谢回复!还有一个问题想要请教一下,低功耗的终端设备,如果是完全深度睡眠,需要靠外部中断来唤醒,那么是不是说,他的父节点发送的所有广播包这个节点都收不到,这个终端节点也不会发送Data request。
如果是定时唤醒的低功耗终端节点,每隔5秒唤醒一次,他的父节点发送的数据包,这个终端节点还能收到吗?
Viki Shi:
回复 user5355203:
休眠状态下无法接收广播包,要发送的信息会先缓存在协调器上,等终端唤醒以后进行传递
user5355203:
回复 Viki Shi:
协调器保存这个广播包多久呢?如果这个节点很久才唤醒一次,这条去广播包应该会被丢掉吧
TI中文支持网