主题中讨论的其他部件:CC2530、 Z-stack、 SIMPLELINK-CC13XX-CC26XX-SDK
大家好、我在 Zigbee 网状网络上看到了一些奇怪的行为。 我有一个网状网络、其中包含多个不同的物联网产品系列。 该协调器基于 CC2530、网状网络上有基于 CC2530和 CC2652的路由器。
我有几个 CC2652器件在25%左右的附近看到大量数据包丢失。 我一直在使用 Wireshark 监听网络、我发现问题单元似乎都是通过其他中间设备路由到协调器、这当然对于网状网络来说非常合适。 在监听器中、我可以看到有问题的设备发出数据包、在正常情况下、我可以看到中间设备重复数据包、将其发送给协调器。 当我们看到数据包丢失时、我仍然可以看到初始数据包消失、但中间设备永远不会重复该数据包、协调器也不会看到它。
下面的屏幕截图是正常序列的 Wireshark 捕获。 捕获中的第一个数据包、编号为2097、来自地址为00:12:4b:00:25:CB:6F:cc 的器件。 已为此设备分配了一个 bba4的短 MAC。 初始数据包获得802.15.4 Ack 响应。 接下来、在数据包编号2099中、地址为00:12:4b:00:25:CB:6F:A5的中间路由设备重复该数据包、并将其发送给协调器。
下一个屏幕截图是我们看到数据包丢失的情况。 器件25:CB:6F:cc 正在发送其数据包并获取 Ack'ed 但中间路由设备从不转发它,协调器从不报告看到它。 监听器看到的下一个数据包是一段时间后的数据包、它是来自完全不相关的器件的链路状态数据包。
我不认为这是无线电上数据包丢失的情况。 遇到数据包丢失的设备物理上非常靠近其他看到0%数据包丢失的设备。
当有问题的器件被放置在未通过中间器件路由的网状网络上时、相同的器件会看到非常非常低的数据包丢失级别。
我有一个当前的工作假设、几乎没有任何确凿证据来支持它。 仅基于802.15.4 Ack 数据包的 RSSI 值、我怀疑当我们看到数据包丢失时、协调器会将 Ack 发送到初始数据包、而不是中间路由器件。 我还不清楚 Zigbee 堆栈的深度、无法确定这是否可行。 我要承认,我以非常站不住脚的证据得出这一结论。 Wireshark 中是否有任何方法可以查看哪个器件正在发送802.15.4 Ack?
如果您对可能发生的事情有任何想法、我们将不胜感激。 请告诉我是否有任何其他信息会有所帮助。
此致、
中国赠款
WattIQ 公司