• Matter理论教程-通用-1-01:理论详解


    源码文档软件硬件技术交流技术支持入口文末
    【所有相关 IDESDK例程源码均可从群文件 免费获取免安装解压即用

     

    持续更新中,欢迎关注!

    【活动报名】2023.03.03
    【拿破仑】芯科Matter实战分享
    https://jinshuju.net/f/Ob2hRC

    本次分享活动特点:
    【1】完全站在开发者的角度思考问题
    【2】在官方指导的基础上,进一步简化开发流程
    【3】所有例程、开发板等软硬件资料全部免费提供
    【4】零基础可上手
    【5】所有演示可100%轻松复现


    说明:本文主要介绍Matter标准的基本概念以及Matter协议组成。

    一、基本概念

    1.1 Matter是什么?

    Matter是由智能家居行业的行业巨头共同提出的目的在于提高不同厂商只能家居产品间的兼容性和互操作性的统一只能家居标准。

    1.2 Matter将带来那些好处?

    解决生态壁垒问题,同一个Matter设备可以同时支持多家厂商的生态系统。(比如个Matter设备可以同时接入苹果和亚马逊)。
    解决通信壁垒问题,Matter网络层基于IPV6,天生就有IP连接能力,目前可以在WiFi、thread、以太网上运行,蓝牙仅在配网过程中使用。
    更好的兼容性,通过Matter桥接设备可以让非Matter协议的设备加入到Matter网络中。
    更加自动化,除去入网配置过程,正常工作的Matter设备间的交互通过本地局域网络实现,不需要额外的转发设备。
    更安全,Matter设备从入网到正常工作整个过程都有相关的加密保证。

    1.3 Matter的协议架构

    虽然Matter是应用层的协议,但是作为开发学习人员有必要了解Matter的协议架构,这有助于加深理解。

    在这里插入图片描述

    由架构图可知,Matter日后可能支持另外的“future network layers”

    1.4 Matter的网络拓扑结构

    在这里插入图片描述

    上图中体现了Matter over wi-fi、Matter over thread以及Matter桥接设备的工作情况。

    首先设备通过蓝牙加入到Matter网络,因为WiFi本身支持IP,但是thread网络不持支IP,所以Matter over thread 必须通过thread边界路由器给thread网络中的设备分配IP地址,才能进行通信。非Matter协议的设备通过特定的Matter桥接设备也能加入到Matter网络中进行通信。

    二、关键技术

    2.1 Matter应用层细分

    在这里插入图片描述

    Matter的应用层可以详细分为7层:

    1. 应用:实际使用效果。

    2. 数据模型:描述设备各种功能的数据原型。

    3. 互动模型:表示可以在设备上执行的能于设备交互的一组操作,即一些对于数据模型的操作。

    4. 动作框架:典型的基于互动模型的数据封装。**

    5. 安全性&加密和签名:对交互的数据进行加密和签名。

    6. 消息构架和路由:与加密和签名的交互,通过可选的或需要的包头创建需要的数据构造,指定消息的属性以及一些路由信息。

    7. IP 成帧和传输管理:将交互的数据进行IP封包,将其发送到底层传输协议以进行数据的 IP 管理。

    对于开发学习人员来说,主要的精力放在数据模型、互动模型、动作框架上面,其中的数据模型尤为关键,是Matter能够首先互联互通的关键所在。

    2.2 Matter的数据模型

    Matter其实就是通过使用统一的数据模型来提高智能家居设备的互通性。通讯的过程就是本地的Endpoint和远端Endpoint交互。Matter数据模型可以将具体的设备的所用功能都抽象出来,使得开发过程得到极大的简化。

    在这里插入图片描述

    Matter Node:Matter网络里面的可寻址的,唯一的,具备一系列功能和能力的单元。实际中对应一个具体的设备或者一个具体的软件。

    Endpoint:一个物理设备可以划分成为1个或者多个逻辑实体,每个逻辑实体都是一个endpoint。

    Endpoint有3种类型:第一种是 Root Endpoint,每一个物理设备都有必须具有。它用来描述一个设备的能力集合; 还有复合(composed endpoint),对于功能比较复杂的设备,我们可以按照一定的层级结构组合这个endpoint。最后还有叶(leaf endpoint)。

    Cluster:Cluster是用来实习一种具体功能的模型。Cluster是一个client-server通信模型,即有一个client端和一个server端。Cluster中定义了一些属性、命令和事件。属性一般定义在server端(on/off level等)。Client和server之间是通过预先定义好的命令来控制设备状态,这些命令以请求-应答的方式来工作。Event可以视为一种特殊的命令,即在server发生变化的时候主动通知client端,进行状态同步。

    Attribute:Attribute 表示可以读取或写入的内容,支持多种数据格式,实际中代表了智能设备的相关属性(门的开关、室内温度等)。 Attribute 也可以设置为只读。

    Command:命令,即触发 Cluster 进行某种行为的指令,每条 Command 可以有自己的参数。比如on/off控制开关,MoveToLevel+参数 控制亮度等。

    2.3 Matter中的设备交互模型

    在这里插入图片描述

    Matter中的交互发生在本地endpoint和远端endpoint之间,交互的最基本元素是path和action。path是action操作的对象,path可以是一个属性、命令或者是event。Action包括读/写,上报、订阅、调用等,action要么是一个请求,要么是一个响应。

    举例如下:

    在这里插入图片描述

    2.4 Matter的桥接机制

    桥接目的:让非Matter设备(Zigbee、Z-Wave、Bluetooth LE Mesh 等协议的物联网设备)可以和Matter设备协同工作。而此功能的实现必须要借助Matter桥接设备。
    桥接设备的数据模型如下:

    在这里插入图片描述

    当桥接设备仅仅完成协议翻译工作时,其数据结构如上图所示,EP0中PartsList字段列出桥接设备的所有端点,每个端点代表一个非 Matter 设备。其设备类型为 Bridge。
    除过EP0外其他端点上的 Descriptor(描述符)Cluster 可以提供有关特定被桥接设备的信息。它们的设备类型为Bridge Node。

    当桥接设备除了翻译协议外还具备Matter原生功能(比如恒温器)时,其数据结构发生细微变化。

    在这里插入图片描述

    此时虽然EP0的PartsList中包含EP1,但是EP1代表桥接设备本身而不是非Matter设备的功能,这种情况下EP1的设备类型中没有Bridge Node。

    【参考目录】

    (注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)


    在这里插入图片描述

     

    持续更新中,欢迎关注!

     

    【所有相关 IDESDK例程源码均可从群文件 免费获取免安装解压即用
    源码文档软件硬件技术交流技术支持入口文末

    在这里插入图片描述

  • 相关阅读:
    C语言从入门到精通 第七章(利用数组处理批量数据)
    Vue学习第16天——全局事件总线$bus的理解
    TensorFlow实战教程(三十二)-Transformer的商品评论情感分析 机器学习和深度学习的Baseline模型实现
    基本数据类型的包装类
    智谱AI GLM4开源!快速上手体验
    使用pandas将表格中的数据进行处理
    计算机视觉系列 -MMDetection 之SSDLite经典算法
    【一天一题—Day1】1260. 二维网格迁移
    orchestrator常见问题汇总
    C++ Builder XE关于vector超速载入到listView表中
  • 原文地址:https://blog.csdn.net/m0_38064214/article/details/127772863