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.

[参考译文] CC2651P3:ZC 在运行一段时间后停止响应重新加入请求

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1241923/cc2651p3-zc-stops-responding-to-rejoin-request-after-running-for-a-while

器件型号:CC2651P3
主题中讨论的其他器件: CC2538Z-stack

我们将执行以下操作:

CC2651P3上的 ZigBee 协调器、堆栈 simplelink_cc13xx_cc26xx_sdk_6_41_00_17
CC2538上的 ZigBee Sleepy 终端器件、STACK Z-STACK-3.0.1

ZED 直接连接到 ZC 并正常运行。 一段时间后、ZED 重新启动。 引导时、它会发送重新加入请求、然后发送4个数据请求。 它需要重新加入响应、否则无法继续。

如果 ZC 已经运行了一段时间、它最终将停止响应重新加入请求。 它确实会确认数据请求、这样就表明它仍将 ZED 识别为其子级。 一旦 ZC 处于此状态、恢复的唯一方法是重新启动 ZC。 重新启动后,ZC 将恢复响应重新加入请求。

我附加了显示此行为的监听器迹线。 在跟踪开始时,ZED 尚未加入网络。

数据包#4:ZED 启动联接进程,该进程成功

数据包#1138: ZED 重新启动并发送重新加入请求。 ZC 以 REGIN 响应进行响应、并且操作正常恢复。

数据包#1507:ZED 重新启动并发送重新加入请求。 ZC 不响应任何4数据请求。

数据包#1532:ZED 第二次尝试重新加入请求。 ZC 不响应任何4数据请求。

数据包#1537:ZED 重新启动并发送重新加入请求。 ZC 不响应任何4数据请求。

数据包#1552:ZED 第二次尝试重新加入请求。 ZC 不响应任何4数据请求。

数据包#1568:ZED 重新启动并发送重新加入请求。 ZC 不响应任何4数据请求。

数据包#1582:ZED 第二次尝试重新加入请求。 ZC 不响应任何4数据请求。

数据包#1595: ZC 重新启动并发送父 Anne.

数据包#1604:ZED 重新启动并发送重新加入请求。 ZC 以 REGIN 响应进行响应、并且操作正常恢复。

请告知。

谢谢。
安迪

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

    可在以下位置找到监听器跟踪: https://www.dropbox.com/s/xcfu3vms5prqvph/Rejoin%20no-response.cubx?dl=1

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

    Andy、您好!

    感谢您提前提供监听器日志和详细说明。  请确认您使用的是 v6.41 SDK 中的默认 ZC 工程、以及复制此行为所需的步骤。  例如、ZED 开关是否会导致 ZC 指示灯在 定期 重新启动(例如、每分钟一次)后最终发生故障?  当 ZED 处于非活动状态时,是否有消息在 ZC 中排队?  您是否曾尝试调试 ZC 来确定此故障期间的应用程序状态(通过调用堆栈)?

    此致、
    瑞安

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

    请确认您正在使用 v6.41 SDK 中的默认 ZC 项目,以及复制此行为所需的步骤。

    该项目基于 zc_SampleApp_LP_CC2651P3_tirtos7、并针对我们的硬件进行了定制。

    复制步骤(这些步骤都显示在监听器日志中):

    1、使用 bdb_Startcommiting(bdb_debuging_mode_nwk_steering )打开网络;
    2.在 ZED 上启动联接。
    3.确保 ZC 应用程序与 ZED (双向 AF 流量)正常通信。
    4.等待一段时间。
    5.由 ZED 发送时,验证 AF 数据是否传递给 ZC 应用程序。
    6.重新启动 ZED,检查 ZC 是否响应重新加入请求。
    7.如果 ZC 响应重新加入请求、请重复步骤4-6。

    例如,ZED 交换机是否会导致 ZC 指示灯在 定期 重新启动(例如,每分钟一次)后最终发生故障?  

    一旦我发现了这个问题,我就能够在2次尝试中重现它。 我没有设置 ZED 每分钟重新启动一次的测试。 我加入了 ZED,然后去做一些别的事情(可能一个小时左右)。 然后我回来重新启动 ZED。 在几次重启尝试中,我能够重现。

    >当 ZED 处于非活动状态时,是否有消息在 ZC 中排队?

    否、在此期间我不会向 ZED 发送任何 AF 数据、因此不应排队。

    > 您是否尝试过调试 ZC 来确定此故障期间的应用程序状态(通过调用堆栈)?

    我还没有做到这一点。 但是,在重新启动 ZED 之前,我验证当 ZED 发送 AF 数据时,这些数据包将传递给应用程序。 因此,应用程序的功能正常,至少在 Zed->ZC 方向。 我尚未验证 ZC->ZED 方向,因此问题可能是 ZC->ZED 方向完全中断(不仅仅是重新加入响应)。

    谢谢。
    安迪

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

    您是否有一个已更改的栈定义列表?  由于 ZC 可能不会提供任何响应、因此我担心自定义示例应用程序的存储器泄漏。  是否能够启用 ZED 的默认 ZCL 响应、或使用数据包340从 ZC 发送温度测量值、并进一步探究是否 返回存储器错误(ZMemError、ZBufferFull 等)? 您可以启用 HEAPMGR_Metrics、并按照 堆分配和管理 指南进行进一步的调试。  我不确定这是否可以通过默认示例应用程序进行复制。

    此致、
    瑞安

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

    您好、Ryan、

    我能够跟踪到这个问题。 这是 ZED 侧的 NWK 帧计数器问题。  Z-STACK-3.0.1的代码可在启动时将1250添加到帧计数器的值。 但似乎那里有某种错误,有时它不做添加。 我需要跟踪它。

    此致、
    安迪

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

    Andy、您好!  

    感谢您的回复!  已知存在一个 Z-Stack 3.0.X 问题、其中涉及器件复位后帧计数器递增。  "Z-Stack 3.0.2已知问题与修复 E2E "页面的24号中提供了权变措施

    此致、
    瑞安