基于RW612的Matter ZigBee Bridge和OTBR实现

基于RW612的Matter ZigBee Bridge和OTBR实现
2025年01月13日 14:51 电子产品世界

背景

本文引用地址:

旨在推动智能家居设备间更便捷更安全互连互控的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方案实现

图1 RW612的EVK板外接K32061 ZigBee Coordinator图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

图2 NXP Matter ZigBee Bridge + OTBR 实现图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节点等功能。 

图3 Matter Zigbee Bridge软件架构图3 Matter Zigbee Bridge软件架构

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

图4 RW612 Bridge通过Coordinator控制ZR/ZED的入网流程图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所示)

图5 Simple Descriptor Response内容图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)

b)

c)

最后在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再进行编译,然后将BinariesControlBridge_Full_GpProxy_115200ControlBridge_Full_GpProxy_115200.bin使用DK6Programmer.exe烧入K32W061中。

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

3.1 将RW612作为MatterOverWiFi设备加入Matter的Controller,以树莓派为例:

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

“Device commissioning completed with success”

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

3.3 将MatterOverThread设备加入RW612 OTBR

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

此时在树莓派的Console上运行:

当在树莓派的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网络并使能加网:

这时将一个出厂模式的ZR彩灯(ColorLight)上电,很快就会在RW612的串口打印中出现:Add Color LightNode 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下各属性的控制:

在上述各例子中:chip-tool后第一个参数是已注册到Matter Bridge中的cluster,如onoff/levelcontrol/colorcontrol,接下去的各参数具体含义可通过:

chip-tool cluster command方式获取,如:

chip-tool colorcontrol move-to-hue就会返回:

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环境下尤其明显。

zigbee树莓派
新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片