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

详解XBee ZigBee模块的休眠参数和相关意义

无线 Robin TU 3年前 (2021-04-29) 1820次浏览 1个评论

XBee Zigbee模块是应用最为广泛的符合ZigBee联盟协议规范的无线模块。ZigBee系列模块从第一代的XBee S2B,演进到S2C,以及目前最新的XBee3,只要是ZigBee协议的模块,都可以相互兼容通信。ZigBee设备可分为协调器,路由器和终端节点三种角色,其中只有终端节点可以休眠,在睡眠期间可以实现极低功耗,在醒来后又可获取休眠时期收到的数据。休眠参数不仅对终端节点有意义,在作为父节点的协调器或路由器,也同样有着重要的功能。

在XBee的免费调试工具XCTU上,在配置界面的Sleep Modes区块,列出了所有的休眠参数:SP,SN,SM,ST,SO,WH,PO,ET,不同版本可用参数略有差异,下面详述:

SP:休眠周期
休眠节点的SP代表休眠时间,也就是每隔SP*10ms的时间,休眠模块会醒来查询自己的数据。而在协调器或路由器上,它代表的是父节点收到数据后能为其子节点缓存多久。

SN:周期倍数
这个参数用于设置polling timeout,算法是:3 * SN * (SP * 10ms)。休眠节点醒来时会向父节点查询自己的数据,这个过程叫polling。如果在polling timeout规定的时间内,父节点没有收到子节点查询请求,则父节点会把子节点从它的子节点列表中移除。XBee的协调器或路由器都能作为父节点为子节点缓存数据,每个模块最多可以挂20个子节点。当子节点从网络中移除,需要有个机制在父节点中也把该节点从列表中除名,也就是父节点不再为该子节点缓存数据,从而让出空间给其它节点,这个机制就叫polling timeout。值得注意的是,XBee3支持最新的ZigBee 3.0协议,支持休眠子节点设备入网时向父节点报告自己的polling timeout时间,也就是不同的设备可以有不同的超时时间,而不需要在父节点处统一设置。

ET:子节点超时时间
参见SN参数,这个ET是ZigBee 3.0后引入XBee3的,主要是用在休眠节点。对于混合组网的情况,当XBee3作为协调器或路由器,而网内有S2C的休眠节点时,应该把父节点的ET也配置得和休眠周期差不多,略大些即可。

ST:醒来时间
该参数仅在周期休眠中使用(SM=4,5),其代表没数据活动多久后进入休眠。当XBee在收发数据时,模块不能立即进入休眠状态,它必须等待收发结束后一段空闲时间都再无数据,以保证收发数据能顺利完成。这个时间正是ST定义的。休眠节点醒来时polling父节点后,发现没有数据一般可以立即休眠,而无需等待ST时间,但有时模块不仅是接收,也需要外发信息,因此我们也可配置模块醒后保持ST时间,以有足够的时间通过串口来发送数据或命令,这是在后面的SO中配置。

SO:休眠选项
这是两个字节的参数,注意bit0不用,目前仅bit1,bit2有定义。
bit1: 在SN 个休眠周期后,强制醒来ST时间
bit2: 启用扩展休眠周期,即休眠SN*SP时间, 由于父节点在收到数据后只为子节点缓存SP定义的时间,而SP最大只能设置28秒,所以启用扩展休眠周期是有可能丢数据的。如果不希望这种情况发生太多,也是有一些技巧的,详见其它网友文章。

WH:唤醒主机时间
设备从睡眠中醒来,到发送数据到串口的允许时间。有些设备是通过XBee模块的信号唤醒或给处理器上电的,而主机醒来是需要时间,通过这个参数来确保从父节点收到的数据通过串口吐出给MCU时,MCU能准备好接收。

PO:查询时间
这个参数定义模块醒着时,多久向父节点查询一次数据。默认是100ms。

通过理解模块的休眠参数,我们可很好的利用它的性能,灵活安排程序任务,最大少减少不必要的丢包。


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详解XBee ZigBee模块的休眠参数和相关意义
喜欢 (3)
发表我的评论
取消评论

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽