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

XBee模块的固件版本和NJ参数功能介绍和对比测试

无线 peyoot 4年前 (2021-04-01) 1356次浏览 0个评论

XBee的ZigBee固件版本介绍

Digi的XBee ZigBee模块因为是在固件中实施ZigBee协议,用户只需通过配置AT参数来实现对ZigBee协议和网络的一些调整,而不需要用户程序去实现ZigBee的功能,因此非常稳定可靠。

XBee模块通常会定期更新模块的固件版本,这些固件变化通常是增加一些新的功能或是修复一些已知的bug。如果没有需要用到升级后的固件,现有的模块并不需要升级到最新的固件版本。但XBee模块在生产时总是会以最新发布的固件来进行生产,一般情况下固件会在充分测试后发布,由于每个用户的应用配置不尽相同,很难保证某些特定配置下不会有一些bug出现。在Release Note中用户可以找到对应版本增加的功能以及修复的bug。对于用户来说,某一个固件有bug并不意味着它不能使用,而是要看该bug是否会在用户特定的应用程序中发生,如果发生则要在程序中尽量规避它。

XBee中有一个AT参数NJ,它在不同角色下有不同的意义:

  • 协调器和路由器

在路由器或协调器上,NJ是开放加入时间窗口的参数,当NJ=FF时,总是开放网络,当NJ<FF时,只开放网络到NJ规定的时间(秒)。

验证这个功能,可先让一对协调器和路由器组网,记录CH,OP,OI。把协调器的NJ=1,也就是让它一秒后关闭网络,相当于即时关闭了。然后对协调器退网,协调器会重建一个网络,由于NJ=1,所以它很快就关闭了网络。把路由器退网,此时路由器就加入不了协调器新建的网络。将协调器的NJ设置为0xFF,则退网的路由器可以加入,由此得到:NJ<FF对协调器仅作用于是否开放网络。用同样的方法测得路由器上的NJ和协调器的功能是一样的,也就是NJ对协调器和路由器仅是是否开放网络的功能。

  • 休眠节点

在休眠终端上,因为休眠终端并不像路由器或协调器可以开放自身网络让别人加入,所以网络开放关闭与否对休眠节点本身没有作用。因此这个参数另有用途,当NJ<FF时,它可以开启rejoin模式,polling不到父节点,就会迅速地找一个相同信道的新父节点挂靠,而无需退网重入网的动作,因为重新Association可达好几秒钟的时间才能完成,从这个意义上说,rejoin可以节省一些功耗。但NJ<FF时,模块如果寻找不到同一个网的可用父节点时不会自动离网,需要程序主动发NR退网才能实现自动部署,因此也并非所有父节点会需要开启rejoin模式。

NJ在不同固件版本中的对比测试

由于不同的固件版本下表现可能略有差异,为此专门进行一次测试以记录结果,以下测试仅针对休眠终端设备:

一、XBee S2C

XBee S2C是上一代XBee ZigBee产品,目前已经逐步被XBee3替代。在产品的升级更新中,记录上一代产品性能对使用下一代产品平滑替换有指导意义。

测试模块:插针的鞭状天线和SMA天线混合,休眠节点的鞭状天线,其它型号是否有相同问题,待验证。

参数配置:ZS=2,AP=1,AO=1,BD=7,开启加密EO=1,KY=11,NK=0

NJ在终端节点上,Digi的XBee休眠节点利用NJ参数来实现rejoin功能,具体地说,就是快速切换父节点的功能。
仅将SM配置为周期休期,待测设备即为休眠终端。为了方便AT指令操作,可以把SO=2,让它醒来时保持ST时间。经过测试,发现该版本的rejoin功能不能用。

注意,在这个固件版本下,如果找不到父节点,就会触发退网,这样,rejoin机制变得不可用。如果父节点只是临时断电,后来再上电,休眠节点也不能再加入,除非再发ATNR,可见这是个bug。
对于不使用rejoin功能的模块是否有影响,还有待评估。

固件版本4060:

当NJ<FF时,rejoin快速切换父节点的机制可用,切换父节点时不会离网,只有一个Assocated的rejoin通知,短地址不变。除非发ATNR,否则不会离开原来信道另加其它。

NJ=FF时,如果父节点不在,会另寻网络加入。

这个版本对休眠终端的rejoin机制支持得很好,当休眠节点切换父节点时,它只有一个状态包表明它更换父节点,但没有离网状态包来表示父节点polling不成功后的离网动作(在更早的固件有这个)。如果程序有监测离网动作包的话,倒时要评估是否要回退到更早版本。

固件版本4059

NJ<FF时,rejoin快速切换父节点的机制可用,不过模块会有两个状态包,一个是离网包,另一个是入网包,只是XCTU上显示这两包的间隔很短约300ms,模块不会离开原来网络退网,只会在父节点间切换并且短地址不变,除非发ATNR,否则不会离开原来信道另加其它。

NJ=FF时,如果父节点不在,会另寻网络加入。

二、XBee3

固件版本:100B

用XBee3 ZigBee模块重做一遍上面的测试,和S2C的4060固件基本上是相同的。

 

注意,在用API模式发0x08帧的AT指令并没有保存到flash,一定要执行ATWR写入后,才不会断电丢失。

 


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:XBee模块的固件版本和NJ参数功能介绍和对比测试
喜欢 (2)
发表我的评论
取消评论

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

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

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