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.

[参考译文] CC2530:终端设备重新配对

Guru**** 1129500 points
Other Parts Discussed in Thread: CC2530, CC2531, Z-STACK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1207829/cc2530-end-device-re-pairing

器件型号:CC2530
主题中讨论的其他器件: CC2531Z-stack

目前我正在开发一款包含运行 ZNP 固件的 CC2530模块的产品。 此器件配置为协调器、并与之连接了几个路由器和终端设备。 网络相当稳定、大部分时间运行正常。

当主设备(包含 CC2530协调器)由于某种原因(更新、掉电、甚至其它原因)重新启动时、我的问题就开始了。 有时,当协调器重新启动时,终端设备跳转到路由器并具有新的短地址。 这导致协调器无法找到器件、而且我们目前拥有的唯一解决方案是重新配对终端器件。

使用 CC2531模块嗅探网络时、发现 以下行为:

  • CC2530关闭;
  • 终端设备会发送大量未应答的数据请求;
  • 终端设备发送重新加入请求、ACK 由路由器提供;
  • CC2530重新开启;
  • CC2530协调器无法访问终端设备。

现在我的问题是、能否对协调器进行配置、从而确保不会丢失任何终端设备? 或者完整的网络 ping 功能是否可以帮助解决该问题? 我不确定如何处理、但我确信配对器件不是最佳方法。

在网上搜索此 问题时,我找不到在同一情况下的人,所以我很好奇这个论坛是否可以帮助我。

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

    尊敬的 Yves:

    您似乎从已弃用的 Zigbee 规范开始工作、因为 Z-Stack Home 1.2.2a 和 Z-Stack 3.0具有 改进的子管理功能。  在同一 Zigbee 网络中定位新的父设备时、子设备更改短地址也不是标准设置。  假设路由器和终端设备的固件无法升级以改进 Zigbee 规范行为、作为协调器的 ZNP 将需要执行 网络发现(可通过管理 LQI 和网络地址请求实现)来发现先前的子设备(特别是查找 IEEE 扩展地址、 每个器件都是恒定的)。

    此致、
    Ryan

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

    您好、Ryan、

    感谢您的快速回复。 我去检查了 CC2530模块上当前所刷写的版本、它应该是从 zigbee2mqtt 项目(https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.0.x/bin)中获取的 Z-Stack 3.0.x 版本。

    正如您提到的、我曾尝试发送网络地址请求(zdoNwkAddrREQ)、但当器件的短地址发生更改时、此操作失败。 另外、当发送该请求时、我看不到监听器的输出、这使我认为 zdoNwkAddrREQ 只从协调器的地址表中请求地址、而不是从网络中请求地址。 情况是否如此?

    您好!

    Yves

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

    实际上、zdoNwkAddrReq 将通过无线方式发送网络地址请求。 如何发送网络地址请求?

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

    哦、这很奇怪。 我的嗅探器没完全抓住它。 但是、我通过串行接口将请求发送到了 CC2530。 请求包括器件 IEEE 地址字段(设置为端点的 IEEE 地址)、请求类型字段(设置为0)和起始索引字段(设置为0)。

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

    也许您的 ZDO_NWK_ADDR_REQ 中 IEEE 地址的字节顺序相反。

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

    "嗯,我也是。" 但是、当器件仍然具有相同的地址时、回复正常、因此我猜它不会反向。 我当前正在使用附带的监听器进行另一个会话、当器件具有相同的地址时、可以看到所有"网络地址请求"数据包。 一次重新启动并在之后更改地址,便无法再看到数据包。 我想知道我的路由器是否会扰乱网络。

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

    通常,网络地址不应更改。 如果发生变化、我想它会发送器件声明数据包、其中包括器件网络和 IEEE 地址。 当您的设备更改网络地址时、您是否看到设备通知数据包?

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

    是的、我可以看到数据包。 问题是 此时协调器处于脱机状态并错过了数据包。 在线阅读时、我看到唯一的选择是手动重新配对终端设备、但我认为这不是 Zigbee 标准期望的方式。

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

    当您发送"网络地址请求" 但没有看到它被发送时、是否在监听器日志中看到路由请求已发送?

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

    有时、当确实应提供网络地址请求时、我会看到路由请求。

    另外一点要注意的是、我现在有一个与所述情况相同的网络、但在向路由器发送"zdoNwkAddrREQ"时、我可以在路由器下方的"关联器件"中看到终端器件。 这似乎很好、但当尝试直接到达此关联地址时、仍然无法访问器件。 这很奇怪。

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

    如果缺少到设备的路由路径,可能需要等待一段时间才能返回路由路径。