Matter(以前称为 Project Connected Home over IP 或 Project CHIP)是一个 开源应用层协议,向下屏蔽了设备制造商的生态和系统,旨在创建跨智能家居设备、移动应用程序和云服务的统一通信标准。它支持多种现有技术,包括 以太网
、Wi-Fi
、Thread
和低功耗蓝牙 (BLE
),并使用 TCP
和 UDP
等基于 IPv6
的传输协议来确保不同类型网络之间的连接。
Matter 由 开源 SDK(https://github.com/project-chip)实现,该 SDK 不仅包含规范的实现,还包含一套丰富的示例和互操作代码。核心 Matter 协议适用于 OSI 环境的前三层,这意味着它支持任何类型的 IPv6 传输和网络运行。虽然通过 IPv6 进行控制和其他操作通信,但可能会采用 Bluetooth 低功耗 (BLE) 来调试新设备1。
Matter 既灵活,又可以互操作。它基于低功耗 802.15.4 网络以及 Wi-Fi 智能家居设备的多年挑战和成功经验。与 Thread 类似,Matter 基于 IPv6 构建。它提供强大的加密功能、明确定义的设备类型及其数据建模,以及对多个生态系统管理员的支持。
Matter还支持其他智能家居技术的桥接,(例如 Zigbee、Bluetooth Mesh 和 Z-Wave)。这意味着基于这些协议的设备可以通过桥接器操作,桥接器是 Matter 网络和其他桥接的物联网技术的成员设备。桥接器有双重优势。使用其他协议的设备可以访问面向本机 Matter 设备的技术和生态系统。与此同时,Matter 将利用具有大规模已安装用户群体的成熟技术,创建一个真正连接的事物网络。
Matter 应用层可以分为几个主要组件。
在最底层,Matter 协议栈与传输层交互。有效数据包在发送设备上沿着协议栈向下流动,在接收设备上沿着协议栈向上流动。
应用程序层定义给定最终产品的业务逻辑。例如,对于照明的应用程序可能包含处理打开/关闭灯泡及其颜色特征的逻辑。对于门锁应用程序,业务逻辑可以根据来自特定虚拟助理技术的语音命令来打开和关闭特定模型的门栓。它还可以定义来自特定 PIN 键盘 UI 的输入、门栓模型上特定 LED 的反应等。
数据模型层使用 属性(Attribute)
、命令(Command)
和 事件(Event)
的概念描述 Matter 节点支持的远程操作,并分组为称为 集群(Cluster)
的逻辑块。Matter 应用集群规范中包含的集群具有明确定义的范围和行为,以确保不同供应商开发的 Matter 节点之间的互操作性。集群可以是抽象的,这意味着它可以作为多种设备类型的基础,以减少向 Matter 引入新产品类别的时间和成本。
数据模型层描述了处理数据的抽象,而交互模型定义了如何通过交互在节点之间交换数据。
交互模型层定义了客户端和服务器设备之间可以执行哪些交互。发起交互的节点称为发起者(通常为客户端设备Client
),作为交互的接收者的节点称为目标(通常为服务器设备Server
)。
动作框架层将作为交互一部分的消息从交互模型转换为序列化的二进制数据包。
安全层从动作框架层获取编码帧,对其进行加密并附加消息身份验证代码,以确保数据受到数据包发送者和接收者的保护和验证。
该层负责将有效负载与必需的和可选的标头字段组合在一起。这些标头字段指定消息的属性及其逻辑路由信息。
该层管理通过 IP 网络向对等设备传输有效负载。它使用传输控制协议 (TCP) 或用户数据报协议 (UDP) 与 Matter 消息可靠性协议 (MRP) 的组合。MRP 实现重传、提供传送确认并确保拒绝重复的消息。在调试过程中,可以使用蓝牙 LE 上的蓝牙传输协议来代替该层。
Matter 网络拓扑是指 Matter 设备与 IPv6 网络之间的连接结构。不同的 IPv6 网络可以通过中央集线器 Hub(例如 Thread 边界路由器或 Wi-Fi 接入点)相互通信。
Matter 允许通过 Matter 桥与基于其他协议(例如 Zigbee、Bluetooth Mesh 和 Z-Wave)的外部网络连接。
下图展示了一个通用的 Matter 拓扑示例,其中包含两个 Thread 边界路由器设备,其中一个具有与 Internet 的可选连接,以及图上部的三个 Wi-Fi 设备,充当其他协议设备的 Matter 桥接器。
下图中体现了 Matter over Wi-Fi、Matter over Thread 以及 Matter 桥接设备的工作情况。
首先设备通过蓝牙加入到 Matter 网络,因为 WiFi 本身支持 IP,但是 Thread 网络不持支 IP,所以 Matter over Thread 必须通过 Thread 边界路由器给 Thread 网络中的设备分配IP地址,才能进行通信。非 Matter 协议的设备通过特定的 Matter 桥接设备也能加入到 Matter 网络中进行通信。
在单一网络拓扑中,所有的 Matter 设备都连接到一个单一的逻辑网络。 它可以是 Thread/802.15.4 网络、Wi-Fi 网络或以太网网络。在 Wi-Fi/以太网的情况下,网络实际上可以跨越多个 Wi-Fi 和/或以太网段,前提是所有段都在链路层桥接。 节点(Node)是 Fabric 中的 Matter 设备的单个实例,可在 IP 网络上运行。
在单一网络拓扑中的每个节点都通过单个网络接口与 Fabric 中的每个其他节点进行通信。
在 Matter 中,分属不同网络的设备可以进行同端通信,这也就意味着一个 Wi-Fi 设备可以和一个 Thread 进行相互的信息转发,而 Matter 则扮演了一个虚拟网络的身份,并称其为 Fabric。
星形网络拓扑由多个外围网络组成,这些网络通过 Hub 连接在一起。Hub 通常是客户家庭网络(Wi-Fi/以太网)中的设备,而外围网络可以是任何支持的网络类型。外围网络必须始终通过一个或多个边界路由器(Border Router)直接连接到 Hub。
在架构上,任何数量的外围网络可以存在于单个 Fabric 中,包括相同类型的多个网络。节点可以具有到任何网络(Hub 或外围设备)的接口,并且可以直接与同一网络上的其他节点通信。然而,任何必须跨越网络边界才能到达目的地的通信必须通过边界路由器(Border Router)。
该协议对边界路由器提出了一系列要求。这些要求涉及地址分配、路由分配和广播、多播支持和代理发现。
注:在现 Matter1.0 版本规范中,Thread是主要支持的 LLN(Low-Power and Lossy Network)。在许多情况下,客户安装将尝试维护一简单的网络拓扑,包括一个 Wi-Fi/以太网子网和一个单 Thread 网络。但是,可以支持多个 Thread 网络。
AP(Access Point): WI-FI无线接入点,AP 负责向 STA 提供 Wi-Fi 信号,并提供连接互联网的网络服务。
STA(Station): STA 是 Wi-Fi 中的无线客户端,即 Station。STA 可以是智能手机、平板电脑、笔记本电脑等各种设备,它们可以通过 Wi-Fi 连接到无线接入点,访问互联网或者局域网中的资源。
BR(Border Router): 指的是边界路由器,BR 是一种网络设备,可以连接两个或多个 IP 子网,并将它们转换为同一个 Thread 网络,使得不同子网中的设备可以互相通信。BR 是 Thread 网络中的核心设备之一,通常由路由器或者网关设备提供。
ED(End device): 指的是终端设备,ED 是 Thread 网络中的客户端设备,如智能手机、平板电脑、笔记本电脑等。ED 可以直接连接到 BR 或者 R,也可以通过其他设备中继进行通信。
R(Router): 指的是内部路由器。R 是一种网络设备,可以连接多个 ED 和其他 R,负责在 Thread 网络中进行路由选择和数据转发。
SED(Sleepy End Device): 指的是低功耗终端设备。SED 是一种特殊的终端设备,通常采用低功耗的无线技术,可以在不需要进行通信时进入睡眠模式,从而延长电池寿命。SED 可以直接连接到 BR 或者 R,也可以通过其他设备中继进行通信。
Matter 网络使用以下概念:
绑定(Binding): 允许在单个或两个单独的 Matter 节点上的 Matter 端点之间建立关系的功能。这些关系通过永久存储在设备内存中并由绑定集群管理的绑定条目来描述。绑定用于分配节点上客户端集群的一个或多个目标,以便设备知道应该对哪个远程设备进行操作。建立绑定引发的行为是应用程序定义的,并且不受 Matter Core 规范的限制,这为不同的自定义场景开辟了道路。例如,您可以创建一种关系,在该关系中按下电灯开关设备上的按钮会导致一个或一组灯泡设备的状态发生变化。
桥(Bridge): 用于将与 Matter 不兼容的网状网络设备暴露给 Matter 网络的网络设备(例如 Zigbee 设备)。然后,此类桥接设备可以与结构中的 Matter 设备一起工作,并在不同的应用层上进行通信。该桥确保 Matter 和非 Matter 设备之间的连接是安全的。
控制器(Controller): Matter 控制器是 Matter 网络中的一个节点,也是Matter 开发环境中的一个角色。控制器设备用于通过网络远程配对和控制 Matter 配件设备,并使用蓝牙® LE 和常规 IPv6 通信与其进行交互。
边缘路由器(Edge Router): 用于确保 Matter 支持的不同 IPv6 网络的互操作性的网络设备。边缘路由器的主要任务是协调跨网络通信。多个边缘路由器可以在网络内运行,以确保无单点故障。边缘路由器的示例包括 Thread 边界路由器和 Wi-Fi 接入点。
Fabric: 这是一组相互通信且可以属于不同网络的逻辑节点。结构中的设备共享相同的信任根和配置状态,并且可以通过唯一的 64 位结构 ID 进行识别。
Multi-fabric: 一项 Matter 功能,允许将 Matter 节点委托给不同的结构(每个结构都有自己的管理员)并与这些结构内的其他设备进行通信。此功能对于确保多个应用程序和生态系统开箱即用的互操作性至关重要。它也可以称为多管理。有关更多信息,请参阅Matter multiple fabrics feature
节点(Node): Matter 设备的单个实例,在使用节点 ID 和安全凭证进行调试后可在 IPv6 网络上使用。一个节点可以委托给多个单独的结构,并使用多个结构功能拥有多个管理员,因此具有多个节点 ID。Matter 中的节点支持家庭自动化桥接,从而允许实施其他家庭自动化技术、传输和链路层。每个节点都分配了一个唯一的 64 位节点 ID、一个由 CSA 静态分配的 16 位供应商 ID (VID)、一个 16 位产品 ID (PID) 和一个 16 位组 ID (GID),其中标识结构中的一组节点。
OTA提供商(OTA Provider): Matter 节点,可以响应 OTA 请求者节点有关可用软件更新映像的查询,并在无线 (OTA) 软件更新过程中向 OTA 请求者提供更新包。
OTA请求者(OTA Requestor): Matter 节点,可以向 OTA Provider 节点请求有关可用软件更新映像的信息,并在 OTA 软件更新过程中从 OTA Provider 节点接收更新包。OTA 请求者还可以处理有关 Matter 网络中可用 OTA 提供商的公告。
• 由 Leung 写于 2023 年 11 月 8 日
• 参考:Google Home Developers - Matter
nRF Connect SDK - Matter
project-chip
【Matter】Matter学习笔记1