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

XBee Source Routing功能介绍

无线 peyoot 3年前 (2021-02-13) 1260次浏览 0个评论
XBee Zigbee是一种优秀的全功能Zigbee无线模块,理论上它能支持达6万多个设备接入同一个zigbee网络。对于Zigbee模块来说,通常任意两点间之所以能实现实时通讯,主要得益于一种 AODV的寻址方式,虽然这种方式在首次通讯时比较费时,但XBee模块的固件会自动保存前往目标地址的下一跳路由。这种路由表不可能无线增大,因此在一个非加密的ZigBee网络,XBee通常能支持组成80个节点的网络中任意两点的实时通讯。

如果网络大于80个节点怎么办呢?别担心,因为大部分的网络是中心网关和节点之间的通讯,对于大多数终端设备来说,它们只需要和一个目标地址通讯,那就是网关,因此无需特别的设置,成百上千的设备仍能和网关实时通讯。但在一个超过80个节点的网络,网关要和所有设备进行实时通讯就会遇到困难。这是因为对网关来说,它的目标地址超过了模块中的路由表数量,当目标地址不在路由表上时,通讯时就需要执行AODV来寻址,这大约需要好几秒的时间,对于不赶时间的通讯这也算不上事,可是,如果想在大型的Zigbee网络,让网关也能实时和下面所有节点进行通讯,该怎么处理呢?

这其实就要用到XBee的Source Routing通信方式。
Source routing是指使用指定的路径进行数据传输的一种方式,在XBee中实现Source routing发送数据需满足:
  • 发送方的AR不等于0xFF;
  • 发送数据时,有0x21路径指示就位。
事实上XBee中有一个AR参数,它定义了主动更新路由信息的广播包的发送时间间隔。当XBee模块(通常是网关)的AR<FF时,就会在每隔AR定义的时间发一次收集路由的广播包,这种广播包会把经过的路由(包括始发和途经跳点)记录下来,每个收到该包的路由器节点就会把路径存下来,在下次发送数据之前先把该路由信息(0xA1路由指示帧)发给始发点(通常是网关)。所以采用Source Routing的网关,需要有张记录路由信息的表,并且应用程序需要及时处理和更新这张表。以便在发送数据时使用。
XBee中有一个参数DO,它可以配置模块工作中HighRAM还是LowRAM模式。这里的HighRAM其实就是用模块的RAM来存储路由表,模块通讯时,只要有个目标地址就能通讯,固件底层在通信过程中自动提供路由,无需应用程序干预。而工作在LowRAM时,相当于外部CPU来存储路由表。在HighRAM模式下,只有收到AR广播后,发送数据前才会将0xA1路由指示帧发给对方,而在LowRAM模式下,每次发送数据前会先发送A1路由指示帧给对方。对于使用Source Routing的模块,发送数据前需要根据之前收到过的0xA1路径指示,先装载一下目标地址和完整路由(0x21帧),以便数据能精准送到目标。


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:XBee Source Routing功能介绍
喜欢 (0)
发表我的评论
取消评论

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

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

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