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:Z-Stack 3.0.2 BDB 复位问题。

Guru**** 2539500 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/754099/cc2538-z-stack-3-0-2-bdb-reset-issue

器件型号:CC2538
Thread 中讨论的其他器件:Z-stack

大家好、

客户使用 bdb_resetLocalAction()来重置协调器。 ZED 将尝试通过 bdb_ZedAttempktRecoverNWK()重新加入其预览网络,但 ZED 仍可以向新的协调器发送数据请求(不允许加入),新的协调器将向终端设备发送 Leave 命令。 客户稍后将提供更多详细信息。

请提供任何资料。

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

    您好、Alvin、

    由于协调器始终具有0x0000的 NWK 地址(即使在复位之后)、所描述的 ZED 行为似乎是可能的。
    虽然 ZED 向 ZC 发送数据请求、但 ZC 已复位、因此没有该 ZED 的记录。 在这种情况下、我希望 ZC 会像您所描述的那样发送一个休假请求。

    让我们等待更多详细信息。
    监听器记录该过程将会大有帮助。


    此致、
    Toby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 ZC 出厂复位、则在 ZC 形成新网络后 PANID 应不同。 我想 ZED 不应该使用不同的 PANID 向 ZC 发送数据请求、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    这正是问题的关键。

    但是、我不确定他们是否使用预定义的 PANID 来设置网络。 日志将为我们提供更多有关可能发生的情况的线索。


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

    您好,Toby,YK

    感谢您的回复。 如果 使用预定义的 PANID 设置其网络,则新的协调器和 zed 将具有相同的 PANID,因此 所描述的 ZED 行为似乎是可能的。

     如果客户提供监听器日志、我将更新此帖子。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    @Toby Pan、根据中国 E2E 上此问题的原始海报、他声称在 ZC 恢复出厂设置之前和之后 PANID 是不同的。 无论如何、让我们检查他的监听器日志、看看他是否发布了它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Toby,

    ‘s 客户监听器日志。

    e2e.ti.com/.../6607._4F53038C685662600D59FA518253BE8B6E7F936205532D00_2018.12.11.rar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    第一个 NWK 密钥:59:F8:b9:22:b1:b9:F7:D2:87:FD:A3:21:78:A2:42
    第二个 NWK 密钥(协调员重置为出厂设置后):31:9b:54:EB:7c:6F:22:AC:D8:FD:99:01:6a:80:2e:40
    TC link 密钥默认为:0x5a、0x69、0x67、0x42、0x65、 0x65、0x41、0x6c、0x6c、0x69、 0x61、0x6e、0x63、0x65、0x30、 0x39
    感谢你的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Toby!

    让我简单地解释一下数据包捕获数据。

    捕捉工具:SmartRF 数据包监听器2.

    分析工具:Wireshark

    通道:26.

    描述:

    1.第18行的协调器将连接180秒,此处未捕获。

    2.从第19行到第81行,第一个设备(0x2ac8)成功进入网络。

    3.从第181行开始,协调器通过"bdb_resetLocalAction()函数恢复“出厂设置”。 此时,通常仍会请求第一个终端设备通过"bdb_ZedAttempRectOverNWK()函数恢复原始网络。

    4.从247至314行,第二个终端设备已通电并成功加入网络。

    5.在第344行,协调器开始请求第一个终端设备离开网络。

    感谢您的帮助!

    e2e.ti.com/.../Coordinator-reset-to-factory-bug_2D00_2018.12.11.rar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在数据包190到247之间、您的 ZC 是否已经形成新网络? 我的意思是、是否会生成新的 PANID 并在数据包190之后形成网络?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、您是对的。生成新的 PANID、并在数据包190之后形成网络。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jesse、

    通过参阅 Z-Stack 概述的"父级丢失"部分、应用程序负责恢复网络。 但是、在您的情况下、第一个 ZED 加入的网络不再存在。
    复位 ZC 和第一个 ZED 此时使用不同的 NWK 密钥、因此它们无法解密彼此发送的重新加入和离开请求的有效负载。

    我会尝试将第一个 ZED 重置为 FN。


    此致、
    Toby
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ,但为什么 ZED 轮询到已经形成新网络的 ZC,而 ZC Mac 在 Jesse 的监听器日志中是否会进行攻击?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Toby、您好、 感谢   您的回复。

    《《Z-Stack 3.0开发人员指南》》文档中的"15.3父  节点丢失"介绍了终端设备丢失其父节点的情况。  

    15.3父级丢失
       如果终端设备与其父设备失去联系或在网络上处于重置状态、则 BDB 模块将通知应用程序 BDB_TUSING _PARENT_Lost 的状态、在此状态下、终端设备无法执行任何其他调试方法。 设备必须通过查找另一个父设备来恢复其网络、或重置为出厂新设备、然后重新进行调试。  要恢复网络、器      件必须调用 bdb_ZedAttempRectOverNWK、这将导致器件在作为网络一部分的同一信道中执行单次活动扫描、以搜索任何合适的父级(相同的扩展 PANID 和子级器件容量)。  这意味着器件将仅发送单个信标请求、如果 未找到合适的父设备、则会向应用程序发送另一个通知 BDB_T调试_parent_lost。 应用程序负责尝试恢复网络、但建议在一段时间内尝试较短的时间间隔、然后进入较大的时间间隔、以降低功耗。 如果在器件失去父级时正在进行查找和绑定、则器件将保持运行、并在器件恢复运行后的剩余时间内恢复运行。

    这意味着终端设备可以重新加入相同的信道、相同的扩展 PANID、但不同的 PANID 网络?

    这是我出现这种情况的原因吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MAC 数据请求未加密、因此 ZC 仍然可以 ACK。

    ZED 使用主动扫描、并看到与 FN ZC 相同的扩展 PANID。 通常 ZED 会成功重新加入、但由于 ZC 现在使用不同的 NWK 密钥、因此无法正确解密重新加入/离开命令。

    我认为该部分假设这两个器件可以在 NWK 层成功通信。
    是的、你是对的。 例如、PANID 可能会因 PANID 冲突而发生变化(请参阅 Z-Stack 概述的"PAN ID 冲突"部分)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Toby、您好、 感谢   您的回复。

    我了解问题的原因。但是如何将协调器恢复为出厂设置、而协调器不受原始网络的影响?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否会澄清"不受原始网络影响"的含义?

    假设 ZC 形成的第一个网络是 NET1、在复位到 FN 后、ZC 形成网络 NET2。
    ZED1连接到 NET1。 当 ZC 形成 NET2时、您对 ZED1期望什么行为?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Toby、您好、 感谢   您的回复。

    为什么 ZC 总是向离开网络的 ZED1发送离开请求命令?

    这是否不会导致网络拥塞?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于协调器会形成新的网络、无法识别设备、因此它会向设备发送休假请求以要求其离开。 我认为如果有很多此类终端设备、可能会导致网络拥塞。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我认为是这样。 因此、我认为这可能是不合理的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题是,ZED1不认为自己已经离开网络,因为它无法解密 FN ZC 发出的离开请求(因为它们使用不同的 NWK 密钥)。

    如果您希望确保 ZED1已离开网络、那么 ZC 可能应该在重置为 FN 之前发送一个离开请求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、yikai。

    Toby 建议协调器在将协调器重置为新出厂设置之前向网络中的所有终端设备发送 leave 命令?

    你怎么看?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,这是一种选择。 另一种方法是对器件本身进行出厂复位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、非常感谢您的帮助!