谷动谷力

 找回密码
 立即注册
查看: 1656|回复: 0
打印 上一主题 下一主题
收起左侧

NXP Zigbee 3.0 软件开发流程 - 利用 Network Recovery 功能复制 Coor...

[复制链接]
跳转到指定楼层
楼主
发表于 2022-11-25 23:41:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
NXP Zigbee 3.0 软件开发流程 - 利用 Network Recovery 功能复制 Coordinator 调试笔记



调试目标
  • 将网关 A 的网络配置同步到网关 B,不修改 OTP Flash MAC 地址的情况下,让网关 B 正常工作,网关 A 和 B 的子设备可以互通

(ps. 本文中的网关皆指代 ZigBee 网络中的 Coordinator 角色)

测试环境
  • 软件工程(原厂提供):JN-AN-1216-Zigbee-3-0-IoT-ControlBridge_NETWORK_RECOVERY ;
  • 上位机:软件工程中的 ZGUI ;
  • 硬件:

    • 2 个协调器( 以下简称 CN( Coordinator New ),CO( Coordinator Old ));
    • 2 个子设备( Router or End Device ,以下简称 EPA,EPB );



测试流程
  • CO 建立网络,EPA 加入 CO ,能够接受发送 ;
  • ZGUI 连接 CO ,点击 Get PDM 控件,开始将 CO 的 PDM 信息拉取到 ZGUI 中保存,等待完成 ;
  • ZGUI 连接 CN ,点击 Restore PDM 控件,开始将 CO 的 PDM 信息恢复到 CN 中,等待完成 ;
  • 将 CO 下电,ZGUI 连接 CN,点击 Permit join 控件,操作 EPB 寻找网络 ;
    通过抓包,我们发现,CN 能够和 EPB 关联成功,但是无法分发密钥,原因是 Recovery 完成后,没有注册分发密钥的 Callback 函数。
    要解决该问题,需要修改 Coordinator 的代码,在 Recovery 完成软复位后,协议栈初始化完成后,调用下面的函数,注册 Trust Center 分发密钥的 Callback 函数。
    ZPS_vTCSetCallback(APP_bSendHATransportKey);
  • 完成第 4 步后,CN 能够正常分发密钥了,但是 EPB 入网后,会马上 leave ;
    通过抓包,我们发现,Transport Key 报文中 Key Descriptor Payload 中的 Source Address 是 CO 的 MAC 地址,这个地址就是 Trust Center Address ;
    而在 ZigBee 协议中,分发密钥的必须是 Trust Center,然而这个 Transport Key 报文的源地址是 CN,造成了 TC Address 和密钥分发方不一致,子设备就会认为该次入网不安全,立即发起离网 :
    要解决该问题,需要修改 Coordinator 的代码,在 Recovery 完成软复位后,协议栈初始化完成后,调用下面的函数,将 Trust Center 的地址改为本地。
    ZPS_eAplAibSetApsTrustCenterAddress ( ZPS_u64NwkNibGetExtAddr ( ZPS_pvAplZdoGetNwkHandle ( ) ) );
  • 完成第 5 步后,EPB 已经能正常入网,也能正常控制,但是我们发现,每次 Link Status 更新时,通过 CO 入网的设备都会广播 Network Status,报文中显示:Address Conflict( 地址冲突 ),这是由于 EPA 中保存的 TC Address 还是 CO 导致的。
    解决改问题,目前有两个方法:

    • 修改 OTP Flash ,将 CN 的 MAC 地址修改为和 CO 一样
    • EPA 重新入网






+10

本帖被以下淘专辑推荐:

  • · zigbee|主题: 38, 订阅: 0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-12-27 03:55 , Processed in 0.096036 second(s), 44 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表