【活动报名】2023.03.03
【拿破仑】芯科Matter实战分享
https://jinshuju.net/f/Ob2hRC
本次分享活动特点:
【1】完全站在开发者的角度思考问题
【2】在官方指导的基础上,进一步简化开发流程
【3】所有例程、开发板等软硬件资料全部免费提供
【4】零基础可上手
【5】所有演示可100%轻松复现
说明:本文针对matter使用过程中人们比较关心的一些流程进行分析举例,希望能够帮助大家理解。
一、Matter设备调试流程
设备调试就是将设备配置入网,让设备能够在网络中互相通信。在此过程中,新设备需要做到两件事:1、安全地加入网络;2、和同一网络中的其他设备建立控制关系。
设备调试的前提是:设备的安全证书先传递给网络,当网络检查完安全证书的有效性后,该设备才会被授权在网络上运行。在此过程中,被调试的设备称为“调试设备(Commissionee)”;调试设备的设备称为“调试专员(Commissioner)”。设备调试过程包括以下步骤:
1、设备发现:调试专员(Commissioner)在网络接口(例如低功耗蓝牙、Wi-Fi 或其他连接的 IP 网络)上发现可调试设备。 调试专员通过可调试设备的二维码、手动配对码、NFC标签或其他方式获取带外密码。
2、使用PASE(Passcode-Authenticated Session Establishment)进行安全设置:使用 PASE 在调试专员(Commissioner)和调试设备(Commissionee)之间建立加密密钥。 调试专员和待调试设备之间交换的所有matter消息都使用PASE派生密钥进行加密。 安全设置过程还建立了在设备认证过程中使用的认证口令(attestation challenge)。
3、设备认证验证:调试专员将调试设备的可靠性确立为经过认证的matter设备,如果设备没有认证,则通知用户。
4、信息配置:调试专员向调试设备提供有效的域、UTC时间、操作证书和网络接口配置等信息。
5、加入网络:当调试设备不在运行的网络中,调试专员触发调试设备连接到运行网络。 然后节点或调试设备的 IPv6 地址由调试专员或管理员使用(如果已知)或发现(如果未知)。
6、使用CASE(Certificate Authenticated Session Establishment(CASE))进行安全设置:CASE派生加密密钥用于在调试专员和节点之间建立安全通信。 调试专员与matter节点之间的所有单播 matter消息都使用这些CASE派生密钥进行加密。
7、调试完成消息交换:在操作网络上使用CASE派生的加密密钥交换加密的消息,指示成功完成调试过程。
二、Matter设备间的本地自动化交互
同步控制:通过绑定指令使开关和灯泡绑定,之后用户对开关的任何操作(开或关)就会同步反映至灯泡上。
异步通知(订阅-报告):用户先将传感器和恒温器绑定,恒温器(订阅者)接收来自温度传感器(发布者)的数据( Attribute 或 Event)。完成后,恒温器就可以订阅传感器的 Attribute,并定期或在传感器 Attribute 变化时,接收来自传感器的数据。
三、Matter桥接流程
因为桥接设备需要联通matter和非matter协议的设备,所以matter设备本身必须具备加入matter网络的能力(IP)和加入对应非matter协议的能力。以Matter和ZigBee的桥接过程作为举例。
1、桥接设备进行Matter入网。
2、桥接设备进行ZigBee入网。
3、桥接设备ZigBee入网后,会通过广播命令的方式,来发现 Zigbee 网络中符合条件的设备。满足条件的 ZigBee 设备进行回复并告知桥接设备自己的网络地址。之后,桥接设备将为每一个匹配的 ZigBee设备添加一个动态端点,使其作为被桥接设备加入 Matter 网络。
4、 Matter 系统通过 Matter 的设备发现机制发现这些桥接设备。
5、桥接成功,Matter 系统中的控制器就可以在桥接设备的帮助下,控制 ZigBee 网络中的设备。
需要特别注意的是:第2、3步的交互方式由设备厂商和具体协议而定,不在Matter的范围内。而且Matter桥接设备不具备通用性,需要针对特定的协议或者厂家制定特定的桥接设备。
四、Matter跨生态系统的互联互通流程
当一个matter设备被一个Matter生态系统(Matter Fabric)成功接纳后,该设备会拥有一个只被该生态系统认证而不被别的生态系统认证的”节点操作证书Node Operational Certificate)“。内含一个可用于识别某个节点的唯一标识符,即节点操作标识符(节点 ID)。该证书是Matter节点在Matter生态系统(Matter Fabric)中的通行证。
如果一个matter设备拥有A个NOC证书和A个节点ID,那么它就同时处于A个Matter Fabric 。一个 Matter 节点拥有的资源(即 CPU/RAM)决定了它最多可同时支持多少个 Fabric。当一个设备加入多个Matter生态系统中时:
每个 Matter Fabric 也会有其对应的根证书 (Root CA Certificate),用于验证 Fabric 中各节点的身份(即各节点的 NOC 证书)。举例而言,灯泡在接收到一个消息后会用自己有的根证书验证这个消息,确认来自哪一个生态系统,比如绿色 Fabric 中将使用绿色 Fabric 的根证书,来验证其收到的请求是否来自于绿色 Fabric 中的 abc 节点。而且通过证书验证可以区分不同生态系统间的消息。这样就实现了跨生态系统的互联。
设备管理员可以要求 Matter 设备在完成认证与配网之后,再次打开认证窗口,被其他生态系统进行认证,从而使该设备加入其他 Matter Fabric。
五、Matter设备控制访问流程
节点在网络中完成身份验证后,下一步就是访问控制。每个 Matter 节点都有一个访问控制列表 (ACL, Access Control List) ,记录了一个生态系统中其他设备对该节点的操作权限。举例如下。
当一个 Matter 手机 App 控制 Matter 网络中的灯泡时,灯泡将获得一系列由 ACL 定义的权限。此后,灯泡在执行任何操作之前,将首先通过手机 App 的 NOC 证书和安装在灯泡上的受信根 CA 证书,来验证手机 App 的身份。接着,灯泡将检查 ACL,确认此手机 App 是否具有控制灯泡操作的权限。如果有,则控制访问生效,如果没有就拒绝访问。
【参考目录】:
(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)