This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2538-CC2592EMK:2592:路由器与协调器之间的重新连接问题

Guru**** 2538955 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/573669/cc2538-cc2592emk-routers-re-connection-issue-with-the-coordinator

部件号:CC2538-CC2592EMK</s>2592

您好,

我们正在与 CC2538合作,通过使用ZStack mesh 1.0 .0创建mesh网络。

在我们的项目中,我们使用ZNP堆栈作为协调器充当网关,并使用近100台路由器形成网状网络。 因此,对于大型网络,我们已按照以下文档更改了网络参数的值  

我们最初测试了50台路由器,所有路由器都已连接并正常工作。 但是,当我们断开所有路由器并仅连接一台靠近协调器的路由器时,它就无法连接到协调器。 当我们检查数据包嗅探器时,我们注意到,在路由器信标请求的响应数据包中,与assoc标志对应的位值为0。

请查找附带的嗅探器日志文件。 我提到了从4.0468万开始的数据包。

之前这一点就像

这是否与ZC的关联表相关? 是否有机会完整填写此表,即使路由器是逐个连接以形成网状网络? 我认为此表的大小与网络参数 Nwk_MAX_DEVICE_LIST的值有关。 现在,在我们的代码中,该值为10。 我认为如果将此参数更改为较大值,问题就会得到解决。 但是,为什么每台路由器都试图直接连接到协调员,即使它们被放置在远离协调员的位置? 请回复。

e2e.ti.com/.../Packet_5F00_sniffer_5F00_log_5F00_10_5F00_02_5F00_17.psd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Viswajith,

    在数据包1.3787万中,您可以看到协调员设备已启用允许加入,并且路由器/ED容量为真, 这意味着此时协调器在其assoc表中仍有主机设备的条目,在尝试加入的下一个设备(数据包1.3811万)中,协调器将其所有标志设置为false (路由器和ED容量)。
    之后,所有节点都通过网络中的其它路由器加入网络,成为这些现有路由器的子节点,而不是协调员的子节点。
    在该版本的堆栈中,路由器设备不会从协调器中的assoc表过期, 这意味着协调员不会释放这些条目,也不会接受更多设备,因为它是子设备,除非它已被清除(如果您已启用NV,则清除NV;如果未启用NV,则关闭电源后重启)。

    如果您在数据包4.0463万周围尝试加入的设备与已加入网络的设备相同,我建议启用NV,这样那些不需要再次执行关联的设备就可以加入这些路由器。

    希望这能有所帮助!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    感谢您的回复。 是否有机会通过任何API手动清除assoc表? 因为我们不能经常重新启动协调器以清除表。 我们还需要启用NV还原以保留网络。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试在AssocList.h中使用API AssocRemove
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用MT API通过串行接口读取/写入assoc表NV条目,但我认为您需要重新启动协调器,以便相应地更新所有表。 此方法还要求ZC启用NV,因为您从这一点读取/写入条目。