查看: 972|回复: 0

基于RW612的Matter ZigBee Bridge和OTBR实现

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3915

    主题

    7533

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39849
    最后登录
    2025-8-14
    发表于 2025-2-8 11:19:27 | 显示全部楼层 |阅读模式
    背景
    旨在推动智能家居设备间更便捷更安全互连互控的Matter标准使得基于IPv6协议的各类产品,如WiFi、OpenThread等得以很好的融合。但如何兼容海量存量智能家居市场,尤其是如何将那些不支持IPv6协议的诸如ZigBee,Z-Wave等非Matter设备接入统一的Matter环境就成为十分紧迫且重要的议题。


    就技术角度而言,只有借助桥接Bridge机制才能实现Matter和Non-Matter协议之间的转换,从而将ZigBee,Z-Wave等非Matter设备接入Matter网络,实现互连互控。出于成本考虑,桥接Bridge功能可以整合到Matter设备中,比如在MatterOverWiFi上实现Bridge Cluster的功能,通过对加入ZigBee Coordinator的ZB节点动态分配端点(EndPoint)的方式将其映射为Matter设备,从而使得Matter Controller(如树莓派RaspberryPi或手机App)可以对其像标准的Matter设备一样进行操控。


    Matter ZigBee Bridge技术路线


    Matter Bridge需要配合Non-Matter设备的网关,比如ZigBee Coordinator才能将ZigBee设备映射为Matter设备。就NXP的三模无线协议(Wifi/BLE/802.15.4)MCU RW612而言,考虑到RW612需要支持Matter OTBR,并且出于实际应用中的性能考虑,不希望其片上802.15.4共享OpenThread和ZigBee协议,因此需要外接一颗K32W061完成ZigBee Coordinator的功能。


    Matter ZigBee Bridge方案实现
    12.png
    图1 RW612的EVK板外接K32061 ZigBee Coordinator
    NXP的RW612采用ARM Cortext-M33核,主频260MHz,片上RAM高达1.2MB,用户可根据需要灵活选用不同容量的外部Flash。如图1 所示:RW612作为MatterOverWiFi设备加入Matter网络,片上的802.15.4模块实现Matter OTBR功能, MatterOverThread节点,如Lighting和Switch等都可以通过该RW612的OTBR接入Matter网络;同时通过RW612的UART外接K32061 ZigBee Coordinator,当ZigBee设备加入该Coordinator时,后者将入网信息一并传递给RW612的Bridge模块,后者就可以通过Matter标准中的Bridge Cluster为接入这个Zigbee Coordinator的所有ZigBee设备动态分配端点(EndPoint)从而将其映射为标准的Matter设备,这样作为Non-Matter的ZigBee设备就可以被Matter Controller控制(如Light的ZR)或上报属性(如ZED的Sensor)。


    本文重点介绍图2中红色虚框的部分,即Matter ZigBee Bridge功能模块,OTBR的具体实现可参考https://openthread.io/guides/border-router?hl=zh-cn
    13.png
    图2 NXP Matter ZigBee Bridge + OTBR 实现


    Matter ZB Bridge软件架构分为两个部分(如图3所示):Matter Bridge模块和对Bridged Matter Devices的控制(即图中Bridged Interface),前者是如何为加入到ZB Coordinator的ZB节点动态分配EP,以便于Matter Controller的控制或收集上报事件,后者是从设备控制的角度,通过Matter的CLI用户接口命令,控制ZB Coordinator建立ZigBee网络(Form ZB Network),允许ZB节点加入网络(Permit Join),Factory Reset该ZB网络,将入网ZB节点退网(Leave/Remove ZB node),枚举入网的ZB节点等功能。
    14.png
    图3 Matter Zigbee Bridge软件架构


    Matter Zigbee Bridge的具体工作流程如图4所示:


    15.png
    图4 RW612 Bridge通过Coordinator控制ZR/ZED的入网流程


    ZB设备在加入ZB Coordinator时广播的Device Announce消息被ZB Coordinator收到后转发给RW612,后者通过UART让ZB Coordinator向该ZB设备发Simple Descriptor Req uest命令,该ZB设备随之回复Simple Descriptor Response,ZB Coordinator同样将收到的这个Response消息转发给RW612,由RW612解析其负载中的Input Cluster List(如图5所示)
    16.png
    图5 Simple Descriptor Response内容


    图5中该入网ZB节点包含On/Off,Level Control和Color Control三个Cluster,说明这是个Color Light设备,如没有Color Control Cluster,则该ZB就为Dimmable Light,若没有Level Control Cluster,则该ZB就是OnOff Light。


    图4最后一步所示,用户可根据需要将入网的ZB设备上相关的Clusters与ZB Coordinator进行绑定(Binding),这样当该Cluster下某些属性Attributes的状态发生变化,如开On变成关Off时,就会发消息给与之绑定的ZB Coordinator,由后者将该属性状态变化消息上报给RW612。


    Matter ZigBee Bridge使用说明
    1. 生成RW612的烧录Image
    1.1 从 https://github.‍com‍/NXP/matter/tree/v1.3.0.0-tag-nxp下载Matter代码:
    a) git clone -b v1.3.0.0-tag-nxp https://‍github‍.com/NXP/matter.git
    b) cd matter && git submodule update –init --progress


    1.2 从 https://github.‍com‍/nxp-appcodehub‍/dm-matter-zigbee-bridge-rw612 下载MatterZigbee Bridge代码
    a) git clone: https://github.com/nxp-‍appcodehub‍/dm-matter-zigbee-bridge-rw612
    b) 将对应目录下的文件覆盖前面1.1步骤中对应目录下


    1.3 在/matter目录下执行:
    a)
    1. source ./scripts/activate.sh && cd

    2. examples/bridge-app/nxp/rt/rw61x/
    复制代码

    b)
    1. gn gen --args="chip_enable_wifi=true chip_enable_openthread=true

    2. chip_enable_matter_cli=true is_sdk_2_15=true

    3. openthread_root="//third_party/connectedhomeip/third_party/openthread/ot-nxp/openthread-br" enable_bridge=true

    4. rt_nvm_component="littlefs"" out/debug
    复制代码

    c)
    1. ninja -C out/debug
    复制代码

    最后在out/debug下生成chip-rw61x-bridge-example文件,添加.axf后缀,使用MCUXpresso IDE v11.9.x烧录到RW612中。


    2. 烧录K32W061 Zigbee Coordinator


    为确保RW612与K32W061的UART通讯稳定可靠,将JN-AN-1247缺省的波特率由1000000bps改为115200bps再进行编译,然后将Binaries\ControlBridge_Full_GpProxy_115200\ControlBridge_Full_GpProxy_115200.bin使用DK6Programmer.exe烧入K32W061中。


    3. 建立Matter ZigBee Bridge的运行环境


    3.1 将RW612作为MatterOverWiFi设备加入Matter的Controller,以树莓派为例:
    1. $ chip-tool pairing ble-wifi 1 SSID Passwd 20202021 3840
    复制代码

    这里的SSID是WiFi路由器AP的服务集合标识(Service Set Identifier),Passwd为对应的密码。当RW612成功加入时,会在树莓派的Console上打印的 Matter信息靠近结尾附近有:


    “Device commissioning completed with success”


    3.2 创建Openthread边缘路由器(OTBR:Openthread Border Router)
    在RW612的CLI中依次输入下列命令:
    1. >otcli dataset init new

    2. >otcli dataset panid 0xabcd   --- 0xabcd can be changed to other value

    3. >otcli dataset channel 25       --- 25 can be changed between 11~26

    4. >otcli dataset commit active

    5. >otcli ifconfig up

    6. >otcli thread start

    7. >otcli state                              --- must wait till “leader” state appears

    8. >otcli dataset active –x           --- thread dataset used in chip-tool similar to following : 0e08000000000001000035060004001fffe002088711152e77458a490708fdcbf744a91020cb05100c208752e1bd2586f0a87ed481890312030f4f70656e5468726561642d633130640410d60d95cb5db1044086f7813e66de19020c0402a0f7f80102abcd0003000019
    复制代码

    3.3 将MatterOverThread设备加入RW612 OTBR


    以K32W148的Lighting App为例,在K32W148上按下SW2,该设备的串口打印:“Started BLE Advertising”


    此时在树莓派的Console上运行:
    1. chip-tool pairing ble-thread 2 hex: 0e08000000000001000035060004001fffe002088711152e77458a490708fdcbf744a91020cb05100c208752e1bd2586f0a87ed481890312030f4f70656e5468726561642d633130640410d60d95cb5db1044086f7813e66de19020c0402a0f7f80102abcd0003000019  20202021 3840
    复制代码

    当在树莓派的Console上Matter打印信息靠近结尾附近出现:


    “Device commissioning completed with success”


    说明K32W148已成功加入RW612的OTBR,此时可在树莓派的Console上运行:


    $chip-tool onoff toggle 2 1


    这里chip-tool后的第一个参数onoff是On/Off cluster,第二个参数是Toggle命令(也可以是On或Off命令),第三个参数2是该K32W148入网时使用的NodeID=2,最后一个参数1是OnOff Cluster所在的端点EndPoint值。


    上述命令可以点亮K32W148上的LED,再次执行该命令将关闭该LED。


    3.4 运行Matter ZigBee Bridge


    在RW612的CLI上依次运行下述命令:首先将ZB Coordinator置为出厂模式,然后在11频道上建立ZigBee网络并使能加网:
    1. > zb-erasepdm        ---  erase currently used Zigbee channel, skip this if want to

    2. continue on existing channel

    3. > zb-nwk-form 11    --- can be any value between 11~26 as valid Zigbee channel

    4. > zb-nwk-pjoin 255    --- 255 to enable and 0 to disable permit join
    复制代码
    这时将一个出厂模式的ZR彩灯(ColorLight)上电,很快就会在RW612的串口打印中出现:
    Add Color Light
    Node Type=3,Short=0x18d4,MAC=0x158d00031f1742,EP=12928
    这里的EP=12928就是该ZB彩灯在Matter网络中被动态分配的端点,如果有更多的ZB节点加入,则会有更多的动态EP依次递增的(12929,12930…)被分配给这些ZB设备。


    此时,被分配了动态EP的ZB节点就从Non-Matter设备变成了Matter设备,通过在树莓派上运行chip-tool实现对其OnOff、LevelControl及ColorControl Cluster下各属性的控制:
    1. $

    2. chip-tool onoff toggle 1 12928

    3. $ chip-tool

    4. levelcontrol move-to-level 2 1 1 1 1 12928

    5. $ chip-tool

    6. colorcontrol move-to-hue 32 1 1 1 1 1 12928

    7. $ chip-tool

    8. colorcontrol move-to-saturation 64 1 1 1 1 12928

    9. $ chip-tool

    10. colorcontrol move-to-color-temperature 128 1 1 1 1 12928

    11. $ chip-tool

    12. colorcontrol move-to-color 30000 60000 1 1 1 1 12928
    复制代码

    在上述各例子中:chip-tool后第一个参数是已注册到Matter Bridge中的cluster,如onoff/levelcontrol/colorcontrol,接下去的各参数具体含义可通过:
    chip-tool cluster command方式获取,如:
    chip-tool colorcontrol move-to-hue就会返回:
    1. Hue Direction TransitionTime OptionsMask OptionsOverride destination-id endpoint-id-ignored-for-group-commands
    复制代码

    对于Sensor这类ZED设备,通常这些节点的Cluster在入网时与ZB Coordinator进行了绑定(Binding),使得这些ZED具有相应的属性汇报功能,若某个属性状态发生变化就会自动上报,使RW612也同步获知。


    小结
    NXP 三合一无线协议MCU RW612+K32W061的Matter ZigBee Bridge和OTBR方案是目前业界第一款融合了Matter ZigBee Bridge和OTBR的解决方案,具有系统简单,性价比高等优点。


    此外,本文中这种RW612和K32W061的组合有两套独立的802.15.4接口,在Dual-PAN应用场景下,相比使用单一802.15.4接口时OpenThread与ZigBee在不同PAN之间频繁切换不可避免导致的丢包,本方案不存在频段切换的问题,从而完全避免了这种局限性。这种优势在大网络LNT环境下尤其明显。

    qiandao qiandao
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-14 17:26 , Processed in 0.090972 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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