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.

[参考译文] CC2531:网络备份 Java

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1310993/cc2531-network-backup-java

器件型号:CC2531
主题中讨论的其他器件: Z-stackCC2652P、CC1350

大家好、我正在尝试构建一些 Java 代码来备份软件狗 CC2531、尤其是网络状态。 如果密钥丢失或损坏、我希望恢复它、而无需再次执行每个设备的配对步骤。

我发现了库"com.zsmartsystems.zigbe"、我想尝试 GitHub 上库文档中所述的控制台、因为它可能包含我想要的脚本、但我无法运行它。 当我启动控制台时、它会中断、因为软件库会向软件狗发送一些未知数据包。

在这里我的日志

正在初始化 ZigBee 控制台...
17:07:09.423 DEBUG 默认值:将配置文件设置为 ZigBeeTransactionProfile [maxOutstandingTransaction=1、InterTransactionDelay = 50、maxRetries=2]
17:07:09.423 调试 广播:将配置文件设置为 ZigBeeTransactionProfile [maxOutstandingTransaction=2、InterTransactionDelay = 4000、maxRetries=0 ]
17:07:09.423 调试 多播:将配置文件设置为 ZigBeeTransactionProfile [maxOutstandingTransaction=3、InterTransactionDelay = 1200、maxRetries = 0]
17:07:09.566 调试 ZigBeeNetworkManager 初始化:networkState=未初始化
17:07:09.566 调试 网络状态已更新为初始化
Zigbee 网络状态更新为初始化
17:07:09.569 调试 CC2531传输初始化
17:07:09.569 调试: 使用 FlowControl_OUT_NONE 以115200波特打开端口 COM60。
17:07:10.078 DEBUG -> SYS_RESET (数据包:subsystem=null、length=1、apiId=41 00、data=FE 01 41 00 01 41、checkS=41、error=false)
17:07:10.084 调试 丢弃流:预期开始字节、但接收到00
17:07:11.654 debug <- SYS_RESET_RESPONSE (FE 06 41 80 00 02 01 02 07 01 C0)
17:07:11.654 调试 接收到异步 Cmd:数据包:subsystem=null、length=6、apiId=41 80、data=FE 06 41 80 00 02 01 02 07 01 C0、校验和=C0、error=false
17:07:11.655 debug -> SYS_version (数据包:subsystem=null、length=0、apiId=21 02、data=FE 00 21 02 23、checkS=23、error=false)
17:07:11.661 debug <- SYS_VERSION_RESPONSE (FE 0A 61 02 02 01 02 07 01 14 64 34 01 00 2B)
17:07:11.661 调试 CC2531版本是软件=2.7产品=1硬件=1传输=2
17:07:11.662 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 01 20、checkSection=20、error=false)
17:07:11.667 DEBUG <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:12.666 调试 ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:12.666 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试1]
17:07:13.682 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 01 20、checkSection=20、error=false)
17:07:13.686 DEBUG <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:14.698 DEBUG ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:14.698 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试2]
17:07:15.717 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 01 20、checkS=20、error=false)
17:07:15.722 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:16.726 debug zb_get_device_info 已执行并在等待响应时超时。
17:07:16.726 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试3]
17:07:16.726 警告  getDeviceInfo 由于空值而失败1
networkManager.initialize 返回成功
17:07:16.728 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 06 27、checkS=27、error=false)
17:07:16.733 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:17.729 调试 ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:17.729 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试1]
17:07:18.741 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 06 27、checkS=27、error=false)
17:07:18.746 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:19.751 DEBUG ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:19.751 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试2]
17:07:20.765 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 06 27、checkS=27、error=false)
17:07:20.770 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:21.765 调试 ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:21.765 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试3]
17:07:21.765 警告  getDeviceInfo 由于空值而失败
PAN ID         = 65535
17:07:21.765 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 07 26、checkS=26、error=false)
17:07:21.770 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:22.775 DEBUG ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:22.775 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试1]
17:07:23.777 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 07 26、checkS=26、error=false)
17:07:23.781 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:24.791 调试 ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:24.791 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试2]
17:07:25.804 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 07 26、checkS=26、error=false)
17:07:25.809 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:26.812 调试 ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:26.812 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试3]
17:07:26.812 警告  由于空值而使 getDeviceInfo 失败7
扩展 PAN ID = 000000000000
17:07:26.815 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 05 24、checkS=24、error=false)
17:07:26.821 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:27.824 调试 ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:27.824 调试 发送 ZB_GET_DEVICE_INFO [尝试1]
17:07:28.841 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 05 24、checkS=24、error=false)
17:07:28.845 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:29.857 debug zb_get_device_info 在等待响应时执行并超时。
17:07:29.857 调试 发送 ZB_GET_DEVICE_INFO 失败[尝试2]
17:07:30.868 debug -> ZB_GET_DEVICE_INFO (数据包:subsystem=null、length=1、apiId=26 06、data=FE 01 26 06 05 24、checkS=24、error=false)
17:07:30.873 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 06 42)
17:07:31.872 调试 ZB_GET_DEVICE_INFO 已执行并在等待响应时超时。
17:07:31.872 调试 发送 ZB_GET_DEVICE_INFO [尝试3]失败
17:07:31.872 警告  由于空值而5的 getDeviceInfo 失败
通道        =未知
17:07:31.874 调试 默认配置文件 ID 设置为0104 [ZigBee_home_automation]
17:07:31.877  CC2531软件狗中的调试不受支持的配置选项"trust_center_join_mode"
17:07:31.877 debug -> SYS_SET_TX_POWER (数据包:subsystem=null、length=1、apiId=21 14、data=FE 01 21 14 03 37、checkSection=37、error=false)
17:07:31.882 调试 <- ZToolPacket (FE 01 61 14 00 74)
17:07:31.883 调试 CC2531软件狗中的不受支持配置选项"trust_center_link_key"
17:07:31.885 调试 添加支持的客户端群集0500
17:07:31.887 调试 群集匹配器、从端点1开始、配置文件 ID 为0104 (ZigBee_home_automation)
17:07:31.888 调试 群集添加客户端群集0500
17:07:31.889 调试 添加支持的服务器群集0019
17:07:31.889 调试 群集添加服务器群集0019
17:07:31.891 调试 添加支持的服务器群集0000
17:07:31.892 调试 群集添加服务器群集0000
17:07:31.946 调试 添加支持的客户端群集0000
17:07:31.947 调试 群集组件添加客户端群集0000
17:07:31.947 调试 添加支持的客户端群集0001
17:07:31.947 调试 群集添加客户端群集0001
17:07:31.947 debug 添加支持的客户端群集0003
17:07:31.947 调试 群集添加客户端群集0003
17:07:31.947 debug 添加支持的客户端群集0004
17:07:31.947 调试 群集组件添加客户端群集0004
17:07:31.947 debug 添加支持的客户端群集0005
17:07:31.947 调试 群集添加客户端群集0005
17:07:31.948 调试 添加支持的客户端群集0006
17:07:31.948 调试 群集添加客户端群集0006
17:07:31.948 调试 添加支持的客户端群集0008
17:07:31.948 调试 群集添加客户端群集0008
17:07:31.948 调试 添加支持的客户端群集000f
17:07:31.948 调试 群集添加客户端群集000f
17:07:31.948 调试 添加支持的客户端群集0019
17:07:31.948 调试 群集添加客户端群集0019
17:07:31.948 调试 添加支持的客户端群集0020
17:07:31.949 调试 群集添加客户端群集0020
17:07:31.949 调试 添加支持的客户端群集0102
17:07:31.949 调试 群集添加客户端群集0102
17:07:31.949 调试 添加支持的客户端群集0201
17:07:31.949 调试 群集添加客户端群集0201
17:07:31.949 调试 添加支持的客户端群集0300
17:07:31.949 调试 群集添加客户端群集0300
17:07:31.949 调试 添加支持的客户端群集0301
17:07:31.949 调试 群集添加客户端群集0301
17:07:31.949 调试 添加支持的客户端群集03E8
17:07:31.950 调试 群集添加客户端群集03E8
17:07:31.950 调试 添加支持的客户端群集0402
17:07:31.950 调试 群集添加客户端群集0402
17:07:31.950 调试 添加支持的客户端群集0403
17:07:31.950 调试 群集添加客户端群集0403
17:07:31.950 调试 添加支持的客户端群集0500
17:07:31.950 调试 群集添加客户端群集0500
17:07:31.951 debug 添加支持的客户端群集0702
17:07:31.951 调试 群集添加客户端群集0702
17:07:31.951 debug 添加支持的客户端群集0B04
17:07:31.951 调试 群集添加客户端群集0B04
17:07:31.951 debug 添加支持的客户端群集0B05
17:07:31.951 调试 群集添加客户端群集0B05
17:07:31.952 调试 添加支持的服务器群集0000
17:07:31.952 调试 群集添加服务器群集0000
17:07:31.952 调试 添加支持的服务器群集0001
17:07:31.952 调试 群集添加服务器群集0001
17:07:31.953 调试 添加支持的服务器群集0003
17:07:31.953 调试 群集添加服务器群集0003
17:07:31.953 调试 添加支持的服务器群集0004
17:07:31.953 调试 群集添加服务器群集0004
17:07:31.953 调试 添加支持的服务器群集0005
17:07:31.953 调试 群集添加服务器群集0005
17:07:31.953 调试 添加支持的服务器群集0006
17:07:31.954 调试 群集添加服务器群集0006
17:07:31.954 调试 添加支持的服务器群集0008
17:07:31.954 调试 群集添加服务器群集0008
17:07:31.954 调试 添加支持的服务器群集000f
17:07:31.954 调试 群集添加服务器群集000f
17:07:31.954 调试 添加支持的服务器群集0019
17:07:31.954 调试 群集添加服务器群集0019
17:07:31.954 调试 添加支持的服务器群集0020
17:07:31.955 调试 群集添加服务器群集0020
17:07:31.955 调试 添加支持的服务器群集0102
17:07:31.955 调试 群集添加服务器群集0102
17:07:31.955 调试 添加支持的服务器群集0300
17:07:31.955 调试 群集添加服务器群集0300
17:07:31.955 调试 添加支持的服务器群集0301
17:07:31.955 调试 群集添加服务器群集0301
17:07:31.955 调试 添加支持的服务器群集03E8
17:07:31.956 调试 群集添加服务器群集03E8
17:07:31.956 调试 添加支持的服务器群集0402
17:07:31.956 调试 群集添加服务器群集0402
17:07:31.956 调试 添加支持的服务器群集0403
17:07:31.956 调试 群集添加服务器群集0403
17:07:31.956 调试 添加支持的服务器群集0500
17:07:31.956 调试 群集添加服务器群集0500
17:07:31.956 调试 添加支持的服务器群集0702
17:07:31.956 调试 群集添加服务器群集0702
17:07:31.957 调试 添加支持的服务器群集0B04
17:07:31.957 调试 群集添加服务器群集0B04
17:07:31.957 调试 添加支持的服务器群集0B05
17:07:31.957 调试 群集添加服务器群集0B05
17:07:31.957 调试 ZigBeeNetworkManager 启动:reinitialize=false、networkState=初始化
17:07:31.957 调试 CC2531传输启动
17:07:31.958 调试 创建网络作为协调器
17:07:31.958 debug -> ZDO_MSG_CB_register (数据包:subsystem=null、length=2、apiId=25 3E、data=FE 02 25 3E FF 19、校验和=19、error=false)
17:07:31.962 调试 <- ZDO_MSG_CB_REGISTER_SRSP (FE 01 65 3E 00 5A)
17:07:31.963 DEBUG -> ZB_WRITE_CONFIGURATION (数据包:subsystem=null、length=3、apiId=26 05、data=FE 03 26 05 8F 01 01 AF、checkSection=AF、error=false)
17:07:31.967 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 05 41)
17:07:32.973 DEBUG ZB_WRITE_CONFIGURATION 在等待响应时执行并超时。
17:07:32.973 调试 发送 ZB_WRITE_CONFIGURATION 失败[尝试1]
17:07:33.985 debug -> ZB_WRITE_CONFIGURATION (数据包:subsystem=null、length=3、apiId=26 05、data=FE 03 26 05 8F 01 01 AF、checkSection=AF、error=false)
17:07:33.990 DEBUG <- SYS_RPC_ERROR (FE 03 60 00 01 26 05 41)
17:07:34.991 DEBUG ZB_WRITE_CONFIGURATION 已执行并在等待响应时超时。
17:07:34.991  发送 ZB_WRITE_CONFIGURATION 失败[尝试2]
17:07:36.018 debug -> ZB_WRITE_CONFIGURATION (数据包:subsystem=null、length=3、apiId=26 05、data=FE 03 26 05 8F 01 01 AF、checkSection=AF、error=false)
17:07:36.022 debug <- SYS_RPC_ERROR (FE 03 60 00 01 26 05 41)
17:07:37.019 调试 ZB_WRITE_CONFIGURATION 已执行并在等待响应时超时。
17:07:37.019  发送 ZB_WRITE_CONFIGURATION 的调试失败[尝试3]
17:07:37.019 错误 无法启动 ZigBee 网络。
17:07:37.020 信息  串行端口"COM60"已关闭。

可以有人帮助我吗?

谢谢

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

    您在 CC2531上运行哪个 Z-Stack 版本? 如果不使用 Z-Stack 3.0.2、我建议您再次使用它进行测试。

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

    您好、Morgan:

    鉴于 SYS_VERSION 之后的每个命令都 失败、CC2531器件似乎处于故障状态。  考虑清除所有器件存储器、并确保使用有效的 ZNP 映像。   请联系 com.zsmartsystems.zigbee Github 社区 、因为这是一个非 TI 开发或维护的第三方解决方案。  您可以使用 CC253X Z-Stack 软件包安装中提供的 Z-Tool 来进一步评估 ZNP。

    此致、
    瑞安

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

    我不确定所运行的 Z-stack 版本、我在 "com.zsmartsystems.zigbe"中尝试了该软件狗、首先根据结构使用默认固件、然后使用 tosmoto CC1352P2_CC2652P_launchpad_Coordinator_20230507.hex 固件、因为我还使用 zigbee2mqtt (其他目的)进行了一些测试。 现在、正如您所说、我已经下载了3.0.2、但我无法使用此固件刷写加密狗。

    我通过两种方式进行了尝试、首先使用 Python 脚本、  

    c:>python cc2538-bsl.py -ewv -p COM22 --bootloader-sonoff-USB ./CC2531ZNP-with-sbl.hex
    你好
    sonoff
    正在打开端口 COM22、baud 500000
    从./CC2531ZNP-with-SBL.hex 读取数据
    您的固件看起来像一个 Intel Hex 文件、
    正在连接到目标...
    CC1350 PG2.0 (7x7mm):352KB 闪存、20KB SRAM、0x00057FD8上的 CCFG.bl_config
    主要 IEEE 地址:00:12:4B:00:2A:1A:FE:8F
       执行批量擦除
    擦除所有主存储体闪存扇区
       擦除完成
    写入从地址0x00000000开始的262129字节
    错误:无效数据大小:262129。 大小必须是4的倍数。

    但此错误是由存储器空间造成的。 我用 SmartRF 闪存编程器2进行了尝试。

    此处、程序并未显示 CC2531、我仅使用了 CC2652P 尝试、而是按照指南中的说明手动将密钥置于引导模式。 密钥的闪存运行正常、但"com.zsmartsystems.zigbe"提供了以下信息:

    正在初始化 ZigBee 控制台...
    10:46:57.036 DEBUG 默认值:将配置文件设置为 ZigBeeTransactionProfile [maxOutstandingTransaction=1、InterTransactionDelay = 50、maxRetries=2]
    10:46:57.037 调试 广播:将配置文件设置为 ZigBeeTransactionProfile [maxOutstandingTransaction=2、InterTransactionDelay = 4000、maxRetries = 0]
    10:46:57.037 调试 多播:将配置文件设置为 ZigBeeTransactionProfile [maxOutstandingTransaction=3、InterTransactionDelay = 1200、maxRetries = 0]
    10:46:57.181 调试 ZigBeeNetworkManager 初始化:networkState=未初始化
    10:46:57.181 调试 网络状态更新为初始化
    Zigbee 网络状态更新为初始化
    10:46:57.184 调试 CC2531传输初始化
    10:46:57.185  使用 FlowControl_OUT_NONE 以115200波特打开端口 COM22的调试。
    10:46:57.585 debug -> SYS_reset (数据包:subsystem=null、length=1、apiId=41 00、data=FE 01 41 00 01 41、checkS=41、error=false)
    10:47:02.600 警告  软件狗重置失败。 假设引导加载程序正在运行并发送魔术字节0xef。
    10:47:07.605 警告  尝试从引导加载程序退出失败。
    10:47:07.606 INFO  串行端口"COM22"已关闭。

    是否有正确刷写 CC2531的标准方法?

    谢谢

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

    感谢 Ryan 的建议、但我不认为问题是错误状态、只是因为密钥在其他环境中正常工作。   当然、我将联系 com.zsmartsystems.zigbee Github 社区。

    再次感谢您

    摩根

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

    您好、Morgan:

    CC2538/CC13XX/CC26XX 引导加载程序解决方案 不能 用于 CC2531、需要选择正确的器件才能了解存储器布局。  同样、CC2531映像也无法编程到 CC2652P 器件中并按预期运行。 Sonoff 软件狗 使用 CC2652P 以防您不知情。  由于闪存编程器2能够识别 CC2652P、因此我建议您确认正在尝试编程的目标器件。

    此致、
    瑞安

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

    谢谢 Rian

    实际上我刚刚发现我正在使用的软件狗是 CC2652P,而不是 CC2531 (我公司几乎没有错误)。

    另外、我在"com.zsmartsystems.zigbe" gitHub 上未找到有关此密钥的任何文档。 可能他们不支持它。

    我的问题是... 是否有已知的备份加密狗及其状态的方法? 是否可以列出要给密钥的 Z-stack 命令?

    摩根

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

    使用 SimpleLink 无线 MCU 系列 https://www.ti.com/lit/swra671克隆 Z-Stack 网络属性 

    此致、
    瑞安