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.

[参考译文] LP-CC2652RB:网络关联失败

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1048958/lp-cc2652rb-network-association-fails

器件型号:LP-CC2652RB
主题中讨论的其他器件: CC2531CC2652RBZ-STACKSIMPLELINK-CC13X2-26X2-SDKCC2541UNIFLASHCC2530CC2591CC2520MSP430F5437A

我有 一个简单的测试设置、其中包括运行 ZR_genericapp 的 LP-CC2652RB 和由 Z-Tool 控制的 CC2531Dongle。 两台设备都是路由器、使用相同的 PANID 和信道掩码、安全性被禁用、没有可用的协调器。  

  1. Z-Tool: ZB_START_NETWORK CC2531生成 LinkStatus 消息
  2. CCS:启动 ZR_genericapp
  3. Z-Tool:ZB_permit_Join_Request
  4. CC2652RB:按按钮1加入网络  
  5. 稍等片刻
  6. CC2652RB: 按 button2强制显示链接状态消息=>(未成功)

这是程序的典型监听。

  • 发送多个关联请求/关联响应的原因可能是什么? 这是否意味着发起设备会进行一些重试?
  • 我没有解释“ Accociation Request/Accociation responses”之间的 DataRequest

121 1970-01-01:23:29、610176 0x55b3广播 ZigBee 89链路状态
122 1970-01-01:23:44、636949 0x55b3广播 ZigBee 89链路状态
123 1970-01-01:23:59、667065 0x55b3广播 ZigBee 89链路状态
124 1970-01-01:24:02、709998 IEEE 802.15.4 168保留
125 1970-01-01:24:069758广播 IEEE 802.15.4 70信标请求
126 1970-01-01:24:09、073059 0x55b3 ZigBee 88 Beacon、src:0x55b3、EPID:8F:00:02:CA:25:00
127 1970-01-01 01:24:09、333913 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 81关联请求、FFD
128 1970-01-01:24:09、334969 IEEE 802.15.4 65采集
129 1970-01-01 01:24:09、582975 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 78数据请求
130 1970-01-01:24:09、583935 IEEE 802.15.4 65采集
131 1970-01-01 01:24:09、585199 00:12:4b:00:19:36:8b:28 00:12:4b:00:14:F4:C5:4D IEEE 802.15.4 87关联响应、PAN:0x4711 Addr:0xddf6
132 1970-01-01:24:09、586447 IEEE 802.15.4 65采集
133 1970-01-01:24:12、603202 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 81关联请求、FFD
134 1970-01-01:24:12、604258 IEEE 802.15.4 65采集
135 1970-01-01:24:12、851312 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 78数据请求
136 1970-01-01:24:12、852272 IEEE 802.15.4 65 Ack
137 1970-01-01:24:12、853801 00:12:4b:00:19:36:8b:28 00:12:4b:00:14:F4:C5:4D IEEE 802.15.4 87关联响应、PAN:0x4711 Addr:0xddf6
138 1970-01-01:24:12、855048 IEEE 802.15.4 65采集
139 1970-01-01:24:14、694308 0x55b3广播 ZigBee 92链路状态
140 1970-01-01:24:15、870273 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 81关联请求、FFD
141 1970-01-01:24:15、871329 IEEE 802.15.4 65采集
142 1970-01-01 01:24:16、119346 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 78数据请求
143 1970-01-01:24:16、120306 IEEE 802.15.4 65 Ack
144 1970-01-01:24:16、121513 00:12:4b:00:19:36:8b:28 00:12:4b:00:14:F4:C5:4D IEEE 802.15.4 87关联响应、PAN:0x4711 Addr:0xddf6
145 1970-01-01:24:16、122761 IEEE 802.15.4 65采集
146 1970-01-01:24:19、139849 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 81关联请求、FFD
147 1970-01-01:24:19、140904 IEEE 802.15.4 65采集
148 1970-01-01 01:24:19、387955 00:12:4b:00:14:F4:C5:4D 0x55b3 IEEE 802.15.4 78数据请求
149 1970-01-01:24:19、388914 IEEE 802.15.4 65采集
150 1970-01-01:24:19、391349 00:12:4b:00:19:36:8b:28 00:12:4b:00:14:F4:C5:4D IEEE 802.15.4 87关联响应、PAN:0x4711 Addr:0xddf6
151 1970-01-01:24:19、392596 IEEE 802.15.4 65采集
152 1970-01-01:24:29、722092 0x55b3广播 ZigBee 92链路状态
153 1970-01-01:24:44、751516 0x55b3广播 ZigBee 92链路状态

感谢您的支持!

Wolfgang

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

    您好、Wolfgang、

    您是否正在尝试创建分布式网络?  如果是这样、请确保 CC2531 ZNP 的 BDB_ROUTER_FOR_Distributed NWK_ENABLED 已定义为1、并且您使用 SYS_OSAL_NV_WRITE MT 命令将 ZCD_NV_LOGIC_TYPE (ID 0x0087)写入0x01 (ZG_DEVICETYPE_router )。  但是,ZB_*是 SAPI 命令,仅在 Z-Stack HA 1.2.2a 或更早版本中受支持。  这意味着您需要在   CC2652RB ZR 中将 requestNewTrustCenterLinkKey 设置为 false。  您可能需要检查 ZNP 处理、以确保允许 Zigbee 堆栈器件加入版本高于其本身的版本。  但是 、在 Zigbee 3.0规范中、分布式网络是可选的、在 Zigbee HA 1.2实施中可能不受支持。  此外、数据请求是节点充当休眠 ZED 而不是 ZR 的明确标志。  关联响应是否标记为成功 ?  如果可以、请提供完整的监听器日志文件。

    编辑:红色

    此致、
    Ryan

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

    您好、Ryan、

    感谢您的回复。  

    @BDB_ROUTER_FOR_Distributed NWK_ENABLED  

    BDB_ROUTER_FOR_Distributed NWK_ENABLED 标志定义 为1。  

    @ZCD_NV_logical_type

    我对 ZCD_NV_logical_type 感到困惑。 目前、我使用 0x01作为希望 CC2531充当路由器的工具。 0x02是否将 Type 设置为 Enddevice? 终端设备会阻止创建网络、不是吗?

    @申请人 TrustCenterLinkKey

    我将 标志更改为 false。 但这并没有改变行为

    @DataRequest

    根据我的理解(请参阅随附的监听)、DataRequest 将从 CC2652器件发送 到 CC2531。 我为 CC2652使用了 ZR_xxx 项目。 您认为哪种设备是休眠设备?

    @ 关联响应

    是的、响应标记为成功(关联状态0x0)

    提前感谢、

    Wolfgang

    e2e.ti.com/.../assoc_5F00_failed.zip

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

    您对 ZCD_NV_logical_type 正确、 对于 ZG_DEVICETYPE_router、它应为0x01、对于我之前的答复(现已修订)中的错误、我深表歉意。   数据请求来自加入网络的器件、因此根据您之前的说明、CC2652RB 将发送这些数据请求。   您引用的是 CC2531 ZNP 的哪个来源、以及 LP-CC2652RB ZR_genericapp 使用的 SIMPLELINK-CC13X2-26X2-SDK 的哪个版本?  使用 SIMPLELINK-CC13X2-26X2-SDK  v5.20的两个 ZR_genericapp 示例构建和加入网络时、我没有遇到任何问题。

    此致、
    Ryan

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

    ZCD_NV_logical_type: 感谢您的澄清

    CC2541 ZNP 的来源是2018年6月15日 Z-Stack 3.0.2中包含的源代码。 对于 CC2652RB 、我将使用 SimpleLink CC13x2_26x2 SDK 5.20.00.52。  

    此致、

    Wolfgang

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

    由于 CC2531 ZNP 指示与其开放网络成功关联、因此我不怀疑此器件存在任何问题。  来自 CC2652RB 的数据请求仍然是最令人担忧的、因为这在我自己的测试中不存在、并且指示 ZED 节点配置。  在尝试再次加入器件之前、请通过按 LaunchPad 上的 BTN-2执行出厂复位。  如果这不起作用、 请通过 CCS 调试配置、Uniflash 或闪存编程器删除所有器件存储器、然后再对固件映像进行重新编程。  最后一种方法 是删除并重新导入 ZR_genericapp 项目本身、然后重新尝试构建和下载项目。

    此致、
    Ryan

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

    同时、我了解了各种选项 以获得 干净 的器件。 我已经尝试了所有建议的选项并尝试 了 zc_sw_lp_CC2652rb_tirtos_ccs 示例。  不幸的是、行为没有改变。  我还尝试 找出 数据请求的来源。 根据我的理解、此请求是一条 MAC 消息、不是吗?

    我是对的、

    • 没有 MAC 代码可 用于在此处设置断点?  
    • AF_DataRequest 定义了不可用代码的"边界"

    提前感谢、

    Wolfgang

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

    数据请求是 MAC 消息、由于此逻辑位于预构建的堆栈库中、因此版本 SDK 中没有可用的代码、AF_DataRequest 是 Z-Stack 应用的良好入口点。

    此致、
    Ryan

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

    同时 ,我提出了一个新的看法。 我更改了设置以排除器件和堆栈差异。 我使用了两个 CC2652RB Launchpad 以及 Simplelink 的(各种)样片部分。

    我能够重建 前面描述的行为:  

    • 构建协调器和路由器项目(例如 zc_SW 和 zr_SW)
    • 编程并运行协调器
    • 编程并运行路由器
    • 协调器:启动网络
    • 路由器 A:加入网络

    =>一切都按预期工作

    • 将协调器重新编程到路由器 B
    • 按下路由器 A 上的按钮1以允许加入
    • 按 路由器 B 上的按钮1加入网络

    =>现在设置的行为与我之前的帖子中描述的一样。 嗅探是绝对可比的。  也会发送无法解释的数据请求。 路由器 B 未连接到网络。

    感谢您的帮助、

    Wolfgang

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

    如果此节点仍与不再有协调器的网络关联,则路由器 B 将无法加入路由器 A。  如果您希望任一路由器组成分布式网络、则以 ZR genericapp 为例、 zcl_genericapp.c 中的 zclGenericApp_processKey 必须为  (ZG_build_Joining_type && ZG_DEVICE_Joining_type)设置 BDB_TUSING _MODE_NWK_formation。

    static void zclGenericApp_processKey(Button_Handle _btn)
    {
        zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
        //Button 1
        if(_btn == gLeftButtonHandle)
        {
            if(ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE)
            {
    
                zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
                Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
            }
            else if (ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE)
            {
                zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;  //THIS LINE HAS BEEN CHANGED
                Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
            }
        }
        ...
    }

    此致、
    Ryan

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

    我对您的理解是否正确? 我上一篇文章中描述的方案应该适用于 genericapp、因为可以形成分布式网络。 我认为"如果"部分会对此负责、不会   

    我构建了 zc_genericapp 和 zr_generic app、并重复了前面介绍的步骤。 但行为不会改变(请参阅监听)。

    此致、

    Wolfgang

    e2e.ti.com/.../zr_5F00_zr_5F00_sniff.zip

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

    监听器日志显示加入路由器0xD3A8的加入者设备、该路由器是缺少协调器的集中式网络的一部分。  因此关联响应成功、但更新设备和[通道]传输密钥命令永远不会发生、因为协调器不再存在。  因此、需要将0xD3A8路由器恢复出厂设置并配置为形成分布式网络(无协调器信任中心)、以便另一台路由器加入该网络。

    此致、
    Ryan

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

    感谢您的回复。 我 为 路由器添加了 BDB_TUNCING_MODE_NWK_ENTIVING 标志、运行 ZR_generic 应用的 CC2652设置似乎可以正常工作。

    因此、我继续使用 连接到 Z-Tool 和一个 CC2652的原始设置 CC2530。 通过比较监听、可以看出 CC2530 假定是 集中式的一部分。 安全网络。 因此、我的想法是完全禁用安全性。 但根据 Z-Stack 用户指南、这似乎是不可能的、是吗?  如果是、这是否意味着 Z-Stack 3.0.x 器件无法 与运行 ZStack-EXP5438-2.5.1的旧器件通信。 至少我没有找到 Z-Stack 3.x 对于使用  MSP430F5437A、 CC2520、CC2591的器件)。  

    感谢您的支持、

    Wolfgang  

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

    如果启用了 TC 链路密钥(即 requestNewTrustCenterLinkKey = false)、则 ZigBee 3.0向后兼容 Z-Stack HA 1.2、但 Zigbee 3.0之前不支持分布式网络。  删除 ZStack_security 会中断 Z-Stack 操作。  不过 、其他 E2E 线程 表示可能存在兼容性。

    此致、
    Ryan