Matter OTA 固件升级

Matter OTA 是一个允许 Matter fabric 中的 Matter 设备更新其固件的过程。 出于安全原因,Matter 核心规范要求每个设备都实现固件更新方法。 Matter OTA 提供了一种满足此要求的便捷方式。

在此过程中,推荐软件镜像由另一个 Matter 节点提供,该节点获取有关映像的信息并从集中且可靠的来源下载。 下载是通过特殊的传输协议进行的,并且需要用户同意才能将图像应用于目标 Matter 设备。

涉及到角色

  • OTA Requestor

    任何将要更新其固件的 Matter 设备。 此角色对应于 OTA 请求者设备类型,该设备类型实现 OTA 软件更新提供程序群集的客户端角色和 OTA 软件更新请求程序群集的服务器角色。

    OTA Requestor只能从 OTA Provider 处接收有关可用软件更新的信息。 因此,它可能会实现一种机制,以发现提供商并使用强制轮询机制定期向 OTA Provider查询新软件映像。 但是,它也可以在 Matter 网络调试期间从commissioner那里接收有关 OTA Provider的信息.

    OTA Requestor通常在配件上实现。

  • OTA Provider

    为 OTA 更新提供镜像的设备。 此角色对应于 OTA 提供程序设备类型,该设备类型实现 OTA 软件更新提供程序群集的服务器角色,以及 OTA 软件更新请求程序群集的客户端角色(可选)。 fabric上的任何设备都可以担任此角色,只要它有权访问 Internet 或带有软件映像链接的数据库。

    OTA 提供商使用设备制造商提供的任何自定义机制了解新的软件映像。 如果它支持查询 DCL,它还可以从 Matter Distributed Compliance Ledger 中了解新的软件更新。

    OTA 提供商了解新软件映像后,会将其下载到其内部缓存中。 然后,一旦请求,它就会使用 Matter 的批量数据交换协议 (BDX) 将图像发送给 OTA 请求者.

    OTA 提供商可以在fabric上向 OTA 请求者宣布其存在。 OTA 请求者还可以在调试期间或通过动态发现了解交换矩阵上的 OTA 提供商。

    OTA 提供商通常在生态系统提供商的智能家居中心上实施。

Bulk Data Exchange Protocol (BDX)

为了传输软件映像,Matter 使用自己的内部批量数据交换 (BDX) 协议。 其主要目的是促进 Matter 节点之间的数据交换。 该协议基于简单文件传输协议 (TFTP)。 BDX 不要求传输的文件具有任何特定格式,但它允许将任意元数据附加到文件。 用于 OTA 传输时,OTA 提供程序使用 bdx://<node-id>/<file-name> 格式将 URI 发送到 OTA 请求者,其中对应于要接收映像的 OTA 请求者的节点 ID,并且是唯一标识节点上软件映像文件的任意文件路径。

Matter Distributed Compliance Ledger

Matter Distributed Compliance LedgerDCL) 是一个加密安全的数据库,向 Matter 项目的所有贡献者开放。 它充当有关供应商及其设备型号的合规性状态的信息以及向经过验证的 CSA 成员提供供应商设备元数据的事实来源。 作为设备制造商,您应该在将设备推向市场之前将有关设备的信息添加进去。 如果不执行此步骤,Matter 生态系统可能不允许将设备调试到家庭网络中。

需要满足的条件

  • OTA 请求者和 OTA 提供程序必须是同一fabric的成员。
  • OTA 请求者必须知晓 OTA 提供商。
  • 软件镜像源必须可供 OTA 提供商使用,例如 DCL。
  • 软件镜像的版本必须比 OTA 请求者上当前使用的固件版本更新。
  • OTA 请求者需要轮询定期的向 OTA 提供商查询新软件映像。

升级的流程图

Matter OTA 镜像下载始终在后台进行,不会影响设备的正常运行。

软件镜像传输的格式信息

在 Matter OTA 过程中传输的软件镜像必须满足特定的结构要求,才能正确传输和应用。

Matter OTA 的所有软件映像都必须包含标准化标头,OTA 提供商在将镜像发送给 OTA 请求者之前使用该标头来验证映像。 标头包含多种类型的信息,包括软件版本、Vendor ID 和Product ID。

软件映像必须使用固定编码,并且必须包含下表中列出的必填字段。

Field name Type Characteristics Description
FileIdentifier uint32 Fixed-width, little-endian-encoded, unsigned.。 在 OTA 映像文件的开头标识该文件。
TotalSize uint64 文件的总大小(以字节为单位)
HeaderSize uint32 TLV 编码的标头字段的总大小
Header TLV TLV encoding type and value. 有关更多信息,请参阅 Matter Core Specification 的第 11.20.2.4 节。
Payload N/A Software image contents

Tag-Length-Value (TLV) 是一种用于在字节字符串中对简单结构化数据进行编码的格式。

相关推荐
我先去打把游戏先4 小时前
ESP32开发指南(基于IDF):连接AWS,乐鑫官方esp-aws-iot-master例程实验、跑通
开发语言·笔记·单片机·物联网·学习·云计算·aws
德迅云安全杨德俊6 小时前
HTTPS:现代网站运营的安全基石与价值引擎
网络协议·安全·https
七七七七0710 小时前
【计算机网络】NAT技术深度解析:从原理到NAPT实现的工作机制
网络·网络协议·计算机网络·智能路由器·信息与通信
QQ129584550411 小时前
ThingsBoard部件数据结构解析
数据结构·数据库·物联网·iot
TDengine (老段)12 小时前
TDengine 数学函数 ASCII 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
秋已杰爱13 小时前
技术准备七:websocket
网络·websocket·网络协议
护国神蛙14 小时前
HTTP 重定向踩坑实录:307、301、308 问题排查全指南
前端·网络协议
Cyyyy_g16 小时前
【2025 SWPU-NSSCTF 秋季训练赛】gift_F12
网络协议·网络安全·https·状态模式
郝学胜-神的一滴17 小时前
QAxios研发笔记(二):在Qt环境下基于Promise风格简化Http的Post请求
开发语言·c++·笔记·qt·网络协议·程序人生·http