Matter协议编码/解码
在线Matter协议编码/解码工具,支持TLV数据解析与构建、配网载荷解码与生成、C结构体Schema映射,适用于智能家居设备联调与协议排障
粘贴从 Matter 抓包、日志或调试工具获取的 TLV 字节流
点击加载示例
解码结果
输入 TLV 数据后自动解析结果
JSON 视图
输入 TLV 数据后自动解析结果
Matter 协议技术参考
TLV 元素类型参考
| 类型名称 | 类型码 | 值长度 |
|---|---|---|
| 有符号整数 | 0x00-0x03 | 1/2/4/8 字节 |
| 无符号整数 | 0x04-0x07 | 1/2/4/8 字节 |
| 布尔值 | 0x08-0x09 | 0 字节 |
| 浮点数 | 0x0A-0x0B | 4 或 8 字节 |
| UTF-8 字符串 | 0x0C-0x0F | 长度前缀 + 数据 |
| 字节串 | 0x10-0x13 | 长度前缀 + 数据 |
| 空值 | 0x14 | 0 字节 |
| 结构体 | 0x15 | 容器,0x18 结束 |
| 数组 | 0x16 | 容器,0x18 结束 |
| 列表 | 0x17 | 容器,0x18 结束 |
| 容器结束 | 0x18 | 0 字节 |
Matter 协议概述
Matter 是由连接标准联盟(CSA)推动的统一智能家居互联标准,使不同生态平台设备可互通协作,广泛用于家庭自动化与 IoT 终端接入。
Matter TLV 编码格式
Matter 使用紧凑 TLV(二进制标签-长度-值)序列化结构化数据,常见于交互模型消息、配网数据和设备认证信息。
控制字节结构
每个 TLV 元素首字节低 5 位表示元素类型,高 3 位表示标签形式。标签与长度字段根据类型按需出现。
| 位字段 | 说明 |
|---|---|
| Bits [4:0] | 元素类型 |
| Bits [7:5] | 标签形式(匿名、上下文、Profile、完全限定) |
C 结构体 Schema 使用指南
Schema 模式可解析 C/C++ 结构体定义并生成字段输入表单,帮助快速构造带标签的 TLV 数据。
支持语法
- typedef struct 内容 StructName;
- typedef struct Tag 内容 StructName;
- struct StructName 内容;
支持类型
| 类别 | C/C++ | TLV |
|---|---|---|
| 有符号整数 | int8_t/int16_t/int32_t/int64_t | int |
| 无符号整数 | uint8_t/uint16_t/uint32_t/uint64_t | uint |
| 布尔 | bool/_Bool | bool |
| 浮点 | float/double | float/double |
| 字符串 | char[]/char* | utf8 |
| 字节串 | uint8_t[]/uint8_t* | bytes |
配网载荷格式
配网载荷可表示为 QR 字符串(MT: 前缀)、手动配对码(11/21 位)或 NFC URI(mt: 前缀),包含版本、VID/PID、鉴别码、配对密码等字段。
Base38 编码
Matter QR 载荷使用 Base38 字符集(0-9、A-Z、-.)编码,以在二维码字母数字模式下平衡长度与可读性。
手动配对码
11 位手动码包含短鉴别码与配对密码,21 位扩展码额外包含厂商与产品信息,并使用 Verhoeff 校验位保障输入准确性。
开发应用场景
- 解析设备交互抓包中的 TLV 二进制数据
- 构造交互模型测试请求与响应样例
- 校验 QR 码和手动码中的配网字段
- 调试设备认证与配网流程异常
- 生成协议联调与回归测试数据
规范参考
- Matter Core Specification(CSA)
- connectedhomeip 开源仓库
- Matter SDK 开发文档
- Build with Matter Handbook