• 欢迎访问伊栖物联网社区,聚焦物联网技术和解决方案QQ群:735553309
  • ,从传感器到片上嵌入式系统,无线接入,边缘计算,在这里您可以讨论一切
  • 参加最新的物联网研讨会报名
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏伊栖Eccee

用XCTU实测XBee3 ZigBee中ET参数的实际意义

无线 Robin TU 2年前 (2022-01-06) 896次浏览 0个评论

XBee3的ZigBee模块新增了一个ET参数,这个参数和Polling Timeout的作用一样,用于向父节点注册自己需要占据子节点列表的时间。有人会觉得奇怪,为什么要有这个参数呢,子节点能多挂载些时间在父节点上不是更好么?实际上这个参数很重要,它并不是说过多久父节点会把子节点从列表中移除,而是父节点多久没有来自节节点的信息时会把子节点移除。也就是如果您的子节点一直在,且时不时醒来,醒来时会有个polling动作告诉父节点我在呢,这样子节点就可以一直挂载在父节点下。因为每个父节点需要为其下的子节点缓存数据,它不可能挂载无限多的节点(XBee固件中默认是20个]),因此把不用的节点移除也是很重要的事。如果一个节点被移除或是坏了,它不能正常醒来,父节点过一段时间就可以把它移除,以便新的子节点可以加入。反之,如果一个子节点不能正常移除,设备更换后,旧的设备一直留在子节点列表当中,久而久之,必然会用光所有的子节点名额,现场就不能再添加或更换设备了。

在XCTU中,我们可以利用DTR按钮来作为引脚休眠唤醒的控制脚。这样我们就能测试在ET时间过后,XBee醒来时的情况,以此来更好地判断休眠行为。使用两个XBee3模块组成一个协调器和一个End Device的网络。休眠节点的SM=1,也就是引脚触发休眠。模块中的AP=1,AO=1,用分离视图的方法在串口终端中观察相关的包。控制引脚在超过ET定义的时间(默认为两分钟),才让模块醒了过来,这时休眠终端和协调器分

会收到这些包:
父节点: ZDO cluster 0013入网通知包:7E 00 1E 91 00 13 A2 00 41 B0 BF 94 E3 A9 00 00 00 13 00 00 02 84 A9 E3 94 BF B0 41 00 A2 13 00 80 4B DIN cluster 0095包:7E 00 26 91 00 13 A2 00 41 B0 BF 94 E3 A9 E8 E8 00 95 C1 05 02 E3 A9 00 13 A2 00 41 B0 BF 94 20 00 00 00 02 03 C1 05 10 1E 1E 
休眠终端:
模块入网状态包:7E 00 02 8A 02 73
来自协调器的 ZDO cluster 8001包,报告IEEE地址:7E 00 1E 91 00 13 A2 00 41 88 89 38 00 00 00 00 80 01 00 00 01 85 00 38 89 88 41 00 A2 13 00 00 00 E9 

可见当ET时间之后,休眠节点才醒来时,会有个重新入网的动作,当然这个动作很快。

我们再测试一下,如果没有按ET时间内醒来,是否会丢包。经过测试发现,默认的休眠参数为SP=320ms,模块大约在7~10秒内报告找不到模块。 因此需要首先把SP休眠时间调整得比ET略大些。结果是,约1分35秒就有反馈包了。其实这说明,发送时开始计算,超过3*SP+ODAV调节值的时间就是timeout的时间,反馈包就要返回找不到节点了,这也就是spec上说的,启用extended timeout是有可能丢包的,为了减少丢包,应该尽量把SP设置成最大的28秒。 根据这个测试结果,建议ST取值在休眠周期接近的范围,比如3*SP*SN。不不加密的小网络,这种ET超时让网的动作并不会改变子节点的16位地址,下面继续测试在加密网络中的情况。 经测试发现,XBee3一般也不会因为ET参数离网重入改变短地址。因此这个参数影响并不大。
ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用XCTU实测XBee3 ZigBee中ET参数的实际意义
喜欢 (1)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址