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

XBee ZigBee休眠模块如何调试

无线 Robin TU 4周前 (04-22) 75次浏览 2个评论

XBee ZigBee模块休眠时,向串口发送的数据会被丢弃,因此本地MCU如果需要发送数据,应确保XBee模块处于醒着的状态,具体可以通过引脚判断(比如CTS)。而当其它模块向XBee模块发送数据时,数据是先发给休眠模块的父节点的,当模块醒来时会向父节点polling数据,因此这种方式则无需等待模块醒来再发。

XBee模块的休眠参数和父节点不一致时,或是信号不好在多次polling数据时不到时,在NJ=0xFF的情况会,会触发XBee模块离网,寻找新的网络。当NJ<0xFF时,休眠模块会开启rejoin模式,在父节点不在时尝试迅速更换父节点,而非离开原来网络。当模块离网重入时,会有入网状态帧,因此可以通过这个帧来判断休眠模块退网的频次。

Digi提供一系列的XBee工具库供用户使用。通常建议在开发实际产品之前,先用XCTU和开发板演练一下相关的特性。即使是在产品中出现问题 ,需要查找原因,很多场景也是能够用开发板和XCTU来模拟。XCTU上有个隐藏的引脚控制按钮可以用来控制唤醒引脚,因此即使是休眠模式SM配置为周期休眠加引脚唤醒,也是能够很方便用XCTU模拟的。此外,XCTU上的终端模式,可以记录串口的发送和接收到的数据或是API模式下的相关帧以及对应的解析,在调试过程中非常有用。

一、接入调试模块,配置好调试模式

不论是桌面演练还是现场调试,您需要有一个休眠模块接入待调试的网络,为了更好的获取网络信息和模块状态,请将模块的AO和AP都配置为1,休眠参数(SP/ST/SN)P则需要尽量和网络内的协调器/路由器一致,如果不能做到一致,也需大致接近(即协调器路由器的休眠周期可等于或略大于休眠节点的休眠周期)。

我们以默认的休眠参数为例来演示,取两个模块写入出厂默认参数,然后一个配置为协调器(CE=1),NJ=0xFF,另一个配置CE=0,NJ=0xFF,SM=5(周期休眠加引脚唤醒)。用终端模式下分离视图的方法在一台观察两个模块的串口输出。

休眠模块入网后,即以协调器为父节点。当我们把协调器断电(可用按住协调器的reset不放的方法),大约等ST+3*SP,也就是6秒左右,休眠终端已经三次没polling到父节点,就会触发离网,在恢复协调器上电后,该休眠节点会重新加入,如下图所示:

在协调器侧,模块重新入网时,会收到一个cluster=0013的入网通告帧。一般来说,这个入网通知有几种方式获取:一个是JN参数,也就是Join Notification,当这个参数开启时,不论AO配置如何,入网时有一个入网通知产生。如果JN不配置,也可以用AO=1来获取ZigBee网络的ZCL入网公告,同样可以获取入网信息。我们这里并没有设置JN参数,因此它是标准的ZCL入网指示帧。

当网络内有休眠节点时,我们需要监测其入网退网的情况,因为频繁入网退网会导致功耗增加,通信不可达的时间会变多,在电池供电场景尤其需要重视,减少不必要的退网重入可以有效保障电池达到目标使用寿命。

在NJ=0XFF时,休眠节点在多次找不到父节点后会触发退网,有时我们并不需要休眠节点有这个功能。这时可以设置休眠节点的NJ<0xFF,休眠节点的NJ参数代表着不离开网络,开启rejoin模式,即使父节点不存在,也不会离网,而只是切换新的父节点。Rejoin模式下,只有休眠节点发NR命令,才会重新找网络。

二、使用XCTU查看或设置引脚状态

XCTU上有三个状态指示灯(CTS,CD,DSR)和三个XBEE引脚按钮(DTR,RTS,BRK),分另对应模块串口上的状态或控制引脚。如上面图片所示。

CTS对应模块的CTS引脚,是模块准备好通信的标志,对于休眠模块来说,醒来时该引脚为低电平,表时模块已经准备好接收来自串口的数据或命令,当CTS为高电平时,表明模块不可用。ON/SLEEP引脚刚好和CTS反相,也是可以作为模块状态判断的引脚,一般电路上只需要用一个即可。

DTR按钮则是休眠唤醒引脚,对应模块上的DTR|/SLEEP_REQ引脚,可以控制它让处于休眠状态的模块醒过来,因为使用XCTU来调试SM=5的休眠模块时,有时模块处于休眠状态无法接收串口命令,这时我们可以用这个按钮让模块临时醒来接收相关的指令,很方便调试。注意,这些按钮通常只在一个休眠周期内有效,所以使用后要及时恢复原状态。


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:XBee ZigBee休眠模块如何调试
喜欢 (0)
发表我的评论
取消评论

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 其实还有个BRK按钮,就是DIN引脚
    cindy2021-04-29 12:15 回复
    • 正解!这就是文档中的break信号,也可以在XCTU上控制。
      tu, robin2021-04-30 12:51 回复