Matter规范:Matter智能家居标准的工作原理

如果你对Matter智能家居规范的工作原理感到好奇,那么请继续阅读,了解Matter软件栈、底层技术、数据和交互模型以及Matter设备的入网流程。
如需了解Matter智能家居标准的入门知识,请查阅本系列的第一部分,其中介绍了为什么需要Matter以及构建Matter设备的基本步骤。

Matter软件栈

Matter的主要目标是提供一种“基于IPv6的智能家居设备通用通信协议”。构建在Matter栈上的应用程序使用Matter的集群API(相当于通过网页浏览器发起的HTTPS请求)来进行通信和/或执行Matter设备变更。为了更深入地了解,让我们以开放系统互联(OSI)模型为指南,来审视Matter软件栈。

Matter栈的核心位于OSI模型的第5层至第7层(会话层、表示层和应用层)。对于其他OSI层,Matter栈强调使用已有的协议。在传输层和网络层,Matter依赖于TCP或消息可靠性协议/UDP——所有这些都在IPv6网络协议之上运行。(例外:对于设备配置,Matter使用蓝牙传输协议(BTP)和蓝牙低功耗(GATT)网络协议。设备配置将在后文讨论。)最后,Matter利用一组多样的媒体层(数据链路层和物理层)协议——Wi-Fi、以太网、Thread——来传输和接收数据。

图1. Matter软件栈
file
图2. Matter连接性
file
如前所述,Matter架构的关键在于OSI模型的第5层至第7层(以下称为Matter应用层)。Matter应用层进一步细分为以下组件:

  • 应用层:定义最终产品的业务逻辑。
  • 数据模型层:描述Matter节点支持的远程操作(例如,智能视频门铃的开/关、LED或摄像头功能)。应用层与这一层中定义的数据结构交互,这些数据结构反映了底层设备的状态。
  • 交互模型层:定义客户端和服务器设备之间允许的一组交互,以及如何通过交互在节点之间交换数据。这些交互是在数据模型层定义的元素上执行的。
  • 动作框架层:将作为交互一部分的消息转换为序列化的二进制数据包。
  • 安全层:对动作框架层中的编码帧进行加密,并附加消息认证码。
  • 消息框架和路由层:用必需和可选的头字段组成有效载荷,这些字段指定了消息的属性和逻辑路由信息。
  • 传输和IP框架层:通过IP网络管理有效载荷的传输到对等设备。这一层可以使用TCP或UDP上的MRP。在配置过程中,可以使用BLE上的蓝牙传输协议代替这一层。

图3. Matter应用层
file
随着我们对Matter工作原理的深入了解,让我们更仔细地研究Matter设备数据模型,以理解设备在这个突破性框架中是如何通信的。

Matter设备数据模型

所有Matter设备都由节点组成,节点是网络中唯一可识别和可寻址的资源,用户可以将其视为功能完整的实体。一个节点是完全完整的Matter应用功能。

Matter网络通信始于并终止于一个节点,这意味着Matter设备可以有多个节点(并且通常确实如此!)。节点由一组端点组成。并且节点可以有多个端点——每个端点创建相同功能的一个实例。最后,每个端点封装了一个功能集。请注意,每个Matter节点必须有端点0,它保留给Matter实用程序集群。

图4. Matter设备数据模型
file
以智能视频门铃为例,一个端点可能涉及照明功能,另一个涉及运动检测,还有一个涉及实用功能,如无线(OTA)更新。

这一切的核心是集群。端点由一个或多个集群组成。一个集群将特定功能(如可调光灯光端点的开/关级别控制)分组在一起。集群有两种类型:

  • 服务器集群是有状态的,负责保存属性、命令和事件的值。
  • 客户端集群是无状态的,并启动与远程服务器集群的交互。

集群由一个或多个以下元素组成:属性、命令和/或事件。属性是节点保持的状态(例如,当前状态)。命令是可以执行的动作——相当于远程过程调用。事件是过去状态转换的记录,包括一个单调递增的计数器、时间戳和优先级。

Matter设备类型是端点上的一个或多个强制性和可选集群的集合,这些集群定义了物理设备的顶级属性。如果一个节点实现了设备类型,那么它必须在一个或多个端点上包含一组集群,以定义一种独特且连贯的行为。这些在Matter设备库规范中有所概述。

图5. Matter设备数据模型集群
file
为了进一步理解Matter的工作原理,让我们深入探讨节点之间是如何交互的。

Matter设备交互模型

交互模型定义了节点的数据模型与其他节点的数据模型之间的关系。节点之间具有水平关系——读取和订阅属性及事件、写入属性以及调用命令。令人困惑的是,对命令的响应也是一个命令。

图6. Matter设备交互模型
file
交互是指一个节点与另一个节点建立加密通信序列。交互可能由一个或多个事务组成,而事务又由一个或多个动作组成。动作是节点之间的交互模型级消息。

图7. Matter设备交互示例
file
交互示例

在智能视频门铃领域,Matter控制器读取门锁集群的LockType属性(读取)并修改门锁集群的OperatingMode(写入)。

Matter控制器还可以利用门锁集群的UnlockDoor命令来远程解锁门。在这种特殊的定时交互情况下,在发送命令(调用)之前必须交换两条消息。这种复杂的机制有助于防止潜在攻击者拦截并重放命令以稍后解锁门。

最后,Matter控制器还可以订阅门锁集群的不同属性——例如LockState——使控制器能够在门解锁时接收通知。

一个Matter节点至少属于一个“结构”——一组彼此通信的逻辑节点集——但可以属于多个结构。结构中的节点共享相同的信任根和配置状态,并且可以用唯一的64位ID来标识。节点还可以属于一个“组”,即一种机制,用于在同一操作中同时寻址和向多个节点发送消息。每当Matter节点与属性、事件或命令交互时,必须在消息中指定一个“路径”。

现在我们知道了数据模型在Matter协议中是如何交互的,让我们来看看Matter设备的入网流程。

Matter设备入网

在Matter中,配置是将结构凭据分配给新设备的过程:

图8. Matter设备入网
file
在设备发现期间,正在配置的设备必须通过以下三种方法之一进行广播:

  • 蓝牙LE:如果节点正在被添加到其第一个Matter结构中,则特别使用此方法。
  • DNS-SD:如果节点已连接到以太网或已经是Wi-Fi或Thread网络(或结构的成员)的成员,则通常使用此方法。
  • Wi-Fi软接入点:此方法涉及通过临时软接入点网络进行设备发现。网络SSID格式为MATTER-ddd-vvvv-pppp,其中:ddd=12位判别式十六进制数;vvvv=16位供应商ID,采用十六进制格式;pppp=16位产品ID,采用十六进制格式。

从那里开始,配置器运行密码认证会话建立(PASE)协议。PASE协议在参与配置的设备之间建立第一个会话。会话是使用带外提供的密码建立的,该密码仅配置器和被配置者知道,用于派生加密密钥。一次只能进行一个PASE会话。

入网数据有效载荷包含:

  • 16位供应商ID
  • 12位设备判别式
  • 27位设置密码
  • 8位发现功能位掩码

入网有效载荷采用以下方式之一进行编码:

  • 手动配对码:入网信息是数字序列。
  • 二维码:通过移动应用程序扫描(移动设备是配置器)。
  • 二维码有效载荷:由二维码视觉表示的字母数字代码。此代码可以手动输入到命令行工具中。

然后,配置器请求被配置者备份其原始配置——如果配置不成功,这是一种故障保护措施。配置器从被配置者读取所有描述符和基本信息集群,其中包括供应商ID、产品ID、产品名称和序列号。接下来,配置器用监管信息(即位置和国家、当前UTC时间等)配置被配置者。

下一步是认证,以确定设备是否已获认证并且是真正的Matter设备。在这里,配置器从被配置者中提取设备认证证书和产品认证中间(PAI)证书——然后进行挑战请求,以确认被配置者的真实性。

然后,配置器向被配置者发送证书签名请求(CSR),被配置者创建一个唯一的操作密钥对,该密钥对将用于证书认证会话建立。被配置者将生成的CSR信息返回给配置器,配置器将收到的CSR信息传递给管理域管理器,以生成可信节点操作证书(NOC)。

配置器使用AddTrustedRootCertReq命令在被配置者上安装根证书,并使用AddNOC命令安装NOC和操作ID后,被配置者成为Matter结构的新节点。

在网络配置阶段,配置器在被配置者上配置操作网络。对于Thread或Wi-Fi设备,这一步是必要的,但对于已经连接到网络的以太网设备则不是必要的。

在操作发现期间,新配置的节点连接到网络。如果被配置者是Wi-Fi设备,它将使用mDNS来发现设备。如果被配置者是Thread设备,那么Thread边界路由器将使用mDNS为Thread设备。一旦新配置的节点在操作上被发现,配置器和节点就使用CASE协议建立安全通信。CASE协议验证配置器和设备是否位于同一逻辑结构中,并可以在结构上开始交换AES加密消息。

通过对Matter设备入网流程的全面了解,您已经为深入探索创建Matter设备的实践领域做好了更充分的准备。

联系Smartlabs打造您的Matter设备

在Smartlabs,我们提供兼容Matter的智能家居产品设计。如果您正在寻找一家专业的产品设计和开发公司,以确保您的智能家居设备能够无缝协同工作——无论是现在还是未来——请让我们的专家知道我们如何能将您的愿景变为现实。