ZigBee中的many-to-one和link status(3)
接前一篇文章:ZigBee中的many-to-one和link status(2)
本文内容参考:
https://blog.csdn.net/u011559046/article/details/77941930?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229fa7baa07432e082b61fddb1ca3e17e1%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=9fa7baa07432e082b61fddb1ca3e17e1&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-77941930-null-null.142^v102^control&utm_term=ZigBee%20Link%20Status&spm=1018.2226.3001.4187
https://blog.csdn.net/chenshaobin6740680/article/details/104213412?ops_request_misc=&request_id=&biz_id=102&utm_term=ZigBee%20Link%20Status&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-104213412.142^v102^control&spm=1018.2226.3001.4187
https://blog.csdn.net/u013797574/article/details/70231518?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229fa7baa07432e082b61fddb1ca3e17e1%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=9fa7baa07432e082b61fddb1ca3e17e1&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-70231518-null-null.142^v102^control&utm_term=ZigBee%20Link%20Status&spm=1018.2226.3001.4187
特此致谢!
二、具体概念讲解
讲完了Many-to-One(和Source route),接下来该讲Link Status了。
3. Link Status
Link Status是由路由或协调器设备发出,用于交换路由设备之间的incoming link cost。命令特点:传输是一跳范围内的广播,不存在转发和重传。
在ZigBee网络中,不管是哪种设备,只要上电后就会按照15秒每包的间隔时间发送Link Status数据包。此数据包中包含了该设备与同一网络中的其它设备的连接状态。
从上图实例可以看出,此设备可以检测到4个设备与自己相连,一个设备为协调器,其它为路由节点设备。同时还可以从图中看出每个与此设备连接的状态值。必须记住的是Incoming Cost和Outgoing Cost都是用0到7的数字来表示连接状态。0表示已经断开,1表示链路最好的,而7是最差的。
再举一例。抓包如下图所示:
Ember协议栈中,邻居表最多为16个,因此,在图中红色框体内,可以看到Entry Count: 0x10。同时,看到了邻居的短地址,以及最重要的数据:Outgoing Cost和Incoming Cost(上边已见到过)。
- Outgoing Cost:发给对应邻居信息的链路质量;
- Incoming Cost:接受对应邻居信息的链路质量。
这两个数据都是根据LQI来计算的,也就是说间接的反映了链路接收质量。1代表最好,7代表最差,0代表没有记录。
上图中,Link Stauts命令是协调器网络短地址0x0000发出的、一跳范围内的广播。对于协调器的邻居0,地址为0x064C。Incoming Cost:Good表示0x064C曾经发给0x0000命令的链路还挺不错,而Outgoing Cost:Unknown,则表示0x064c节点当前并没有存储0x0000对其发送信息的链路质量。