更新时间:2024-06-20 08:28:17下载pdf
本文介绍了 Wi-Fi 模组的离线语音 I2C 协议。适用于使用涂鸦离线语音模组进行 MCU 开发的开发者。
通信速率:100kbit/s
总线地址:0x64
通信数据线:SCL、SDA
数据中断脚:INT_PIN
引脚上拉,当语音模组需要主动发送数据给IoT模组,产生 100ms 的低电平告知IoT模组有数据需要发送
数据传输量:单条数据不能超过 256 bytes
Wi-Fi模组作为主机(primary),语音模组作为从机(secondary),主机主动查询从机的状态,从机收到指令后回应最新的状态信息给主机。
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 升级扩展用 |
命令字 | 1 | 具体帧类型 |
数据长度 | 2 | 大端 |
数据 | N | |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
IoT模组主动发送命令,语音模组收到命令后立刻回复(50ms内)。
语音模组想主动上报消息到 IoT 模组,需要如下步骤。
语音模组需要把INT管脚拉低100ms,产生一个100ms的低电平脉冲。
IoT模组收到中断信号后使用0x88命令去查询数据语音模组状态的改变。
语音模组回复状态改变的信息。
IoT模组回复语音模组收到了状态改变的信息。
I2C通信命令如下表:
命令字 | 功能 | 说明 |
---|---|---|
0x00 | 心跳检测 | IoT模组每5s间隔发心跳给离线语音模组 |
0x01 | 查询版本信息 | IoT模组发送0x01指令获取语音模组软硬件版本信息 |
0x03 | IoT模组Wi-Fi网络状态 | IoT模组发送Wi-Fi网络状态给到语音模组 |
0x04 | 重置 Wi-Fi-切换配网模式 | 重置IoT模组进入EX配网,再重置进入AP配网 |
0x05 | 重置 Wi-Fi-切换配网模式 | 可以指定IoT模组重置进入哪种配网模式 |
0x06 | DP状态上报 | 离线语音模组上报DP控制给IoT模组。IoT收到后下将命令转发到MCU控制对应 DP 执行 |
0x07 | DP状态下发 | IoT模组同步DP信息给到语音模组 |
0x08 | 查询DP信息 | 语音模组发送命令主动查询MCU所有的DP信息并同步 |
0x63 | 音频产测 | 设置离线语音模组的语音内部环路测试模式 |
0x64 | 唤醒产测 | 设置离线语音模组的唤醒测试模式 |
0x65 | 语音设置与上报 | 设置离线语音模组参数,以及语音模组参数主动上报 |
0x66 | 语音识别文本上发 | 语音模组提供Unicode格式的语音识别文本给IoT模组 |
0x67 | 文本验证结果下发 | IoT模组将平台验证的语音文本的结果,以Unicode格式告知语音模组 |
Wi-Fi模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x88 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55 aa 00 88 00 00 87
语音模组返回:
语音模组会根据当前是否有状态改变来决定发送什么数据。譬如当前有用户语音要求重置配网,那么语音模组就会发送0x05命令字,如果是上报DP,那么就会发送0x06命令字 。如果当前语音模组状态没有改变,那么就发送0x00心跳命令字作为心跳给到Wi-Fi模组作为回复。
语音模组如果没有状态改变则回复心跳信息
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x00 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00:语音模组重启后第一次心跳返回值,仅发送一次,用于模组判断工作过程中MCU是否重启 0x01:除语音模组重启后第一次返回0外,其余均返回此值 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:
0x55aa 03 00 0001 00 03
(语音模组第一次返回)
0x55aa 03 00 0001 01 04
(除第一次外,正常返回)
重置Wi-Fi状态转化如下图所示:
语音模组发送 :
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x04 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 04 0000 06
回复语音模组接收到了重置Wi-Fi命令。
Wi-Fi模组返回 :
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x04 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 04 0000 03
此帧提供语音模组 根据自身需求选择性选择重置Wi-Fi后的配置方式。
语音模组发送 :
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00:进入smartconifg配置模式 0x01:进入AP配置模式 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 05 0001 00 08
,进入smartconfig配置模式
回复语音模组接收到了重置Wi-Fi-选择配置模式命令。
Wi-Fi模组返回 :
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 05 0000 03
datapoint命令/状态数据单元如下所示:
数据段 | 字节数 | 说明 | |||
---|---|---|---|---|---|
dpid | 1 | datapoint序号 | |||
type | 1 | 对应开放平台上某datapoint具体的数据类型,通过如下“表示值”标识 | |||
类型 | 表示值 | 长度(字节) | 说明 | ||
raw | 0x00 | N | 对应于raw型datapoint(模组透传) | ||
bool | 0x01 | 1 | value范围:0x00/0x01 | ||
value | 0x02 | 4 | 对应int类型,大端表示 | ||
string | 0x03 | N | 对应于具体字符串 | ||
enum | 0x04 | 1 | 枚举类型,范围0-255 | ||
bitmap | 0x05 | 1/2/4 | 长度大于1字节时,大端表示 | ||
len | 2 | 长度对应value的字节数 | |||
value | 1/2/4/N | hex表示,大于1字节采用大端传输 |
说明:
- “状态上报”可含多个datapoint“命令数据单元”。
- 语音模组根据用户输入的语音转化为相应的DP功能点传给Wi-Fi模组,譬如用户语音输入设置湿度30℃,湿度的对应的DP是5,湿度是指的值为30(0x1e)。
语音模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 取决于“状态数据单元”类型以及个数 |
数据 | N | “dp状态数据单元”组 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:湿度对应5号DP,使用valve型变量,湿度为30℃
0x55aa 03 06 0008 05 02 0004 0000001e 39
回复语音模组接收到了DP控制上报命令。
Wi-Fi模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 06 0000 05
语音模组通过命令字(0x2B)主动查询Wi-Fi模组的网络状态,Wi-Fi模组通过0x2B命令字告知语音模组网络状态。
语音模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x2B |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 2B 0000 2D
Wi-Fi模组回复设备网络状态。
设备联网状态 | 描述 | 状态值 |
---|---|---|
状态1 | smartconfig配置状态 | 0x00 |
状态2 | AP配置状态 | 0x01 |
状态3 | Wi-Fi已配置但未连上路由器 | 0x02 |
状态4 | Wi-Fi已配置且连上路由器 | 0x03 |
状态5 | 已连上路由器且连接到云端 | 0x04 |
状态6 | Wi-Fi设备处于低功耗模式 | 0x05 |
Wi-Fi模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2B |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 :smartconfig配置状态 0x01 :AP配置状态 0x02 :Wi-Fi已配置但未连上路由器 0x03 :Wi-Fi已配置且连上路由器 0x04 :已连上路由器且连接到云端 0x05 :Wi-Fi设备处于低功耗模式 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 2B 0001 04 2F ,IoT模组以连接到云端
语音模组通过命令字(0x24)主动查询Wi-Fi信号强度,Wi-Fi模组通过0x24命令字告知语音模组信号强度。
语音模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x24 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 24 0000 26
Wi-Fi模组回复信号强度给到语音模组。
Wi-Fi模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x24 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00:表示失败 小于0:表示信号强度,如(-60db) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 24 0001 80 A4
语音模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x66 |
数据长度 | 2 | 0x0012 |
数据 | 2 | 语音文本ID,语音模组可通过ID对应唯一的场景命令,例如:“回家模式”对应的ID为00 01 |
2 | 国家码,用来标识下面字符是哪个国家的语言,例如中国“CN”,美国“US” | |
N | 总数据长度不超过256bytes 例如: 中文:“回家场景” 英文:“good night mode” | |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
国家码标准,请参考 OEM App 账号所在数据分区参考 中的信息。
例:回家场景,ID为00 01
55 aa 03 66 00 10 00 01 43 4e e5 9b 9e e5 ae b6 e5 9c ba e6 99 af da
Wi-Fi接受到语音模组的文本信息之后,上发到平台进行场景认证是否有效。
Wi-Fi模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x66 |
数据长度 | 2 | 0x0000 |
数据 | N | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:55 aa 00 66 00 00 65
语音模组通过命令字(0x08)主动查询MCU的DP信息,Wi-Fi模组去查询MCU的DP信息,并透传给语音模组。
语音模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 08 0000 0A
Wi-Fi模组答复语音模组。
Wi-Fi模组返回 :
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 08 0000 07
设备联网状态 | 描述 | 状态值 |
---|---|---|
状态1 | smartconfig配置状态 | 0x00 |
状态2 | AP配置状态 | 0x01 |
状态3 | Wi-Fi已配置但未连上路由器 | 0x02 |
状态4 | Wi-Fi已配置且连上路由器 | 0x03 |
状态5 | 已连上路由器且连接到云端 | 0x04 |
状态6 | Wi-Fi设备处于低功耗模式 | 0x05 |
Wi-Fi 模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 指示Wi-Fi工作状态: 0x00:状态1 0x01:状态2 0x02:状态3 0x03:状态4 0x04:状态5 0x05:状态6 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 03 0001 00 03
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 03 0000 05
,回复联网状态命令
Wi-Fi模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x65 |
数据长度 | 2 | xx |
数据 | 1 | 子命令:0x00 |
数据 | Data: { “mic”:true, “volume”:8, “play”:true, “bt_play”:true, “alarm”:”xxxx”, “ctrl_group”:”xxxx” } | mic:麦克风打开/关闭功能 true(打开)/false(关闭) volume:音量大小 范围:0~100 play:播放/暂停功能 true(播放)/false(暂停) bt_play:蓝牙开关功能true(开)/false(关) alarm:本地闹钟功能 “xxx”为字符串 ctrl_group:语音控制组合功能 “xxx”为字符串 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x65 |
数据长度 | 2 | 0x02 |
数据 | 1 | 子命令:0x00 |
数据 | 1 | 操作结果: 0x00: 成功 0x01: 失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
状态通知,语音模组主动上报参数状态:
语音模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x65 |
数据长度 | 2 | 1+N |
数据 | 1 | 子命令:0x01 |
数据 | Data: { “mic”:true, “volume”:8, “play”:true, “bt_play”:true, “alarm”:”xxxx”, “ctrl_group”:”xxxx” } | mic:麦克风打开/关闭功能 true(打开)/false(关闭) volume:音量大小 范围:0-10 play:播放/暂停功能 true(播放)/false(暂停) bt_play:蓝牙开关功能true(开)/false(关) alarm:本地闹钟功能 “xxx”为字符串 ctrl_group:语音控制组合功能 “xxx”为字符串 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
Wi-Fi模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x65 |
数据长度 | 2 | 2 |
数据 | 1 | 子命令:0x01 |
数据 | 1 | 操作结果: 0x00: 成功 0x01: 失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
状态查询,IoT模组主动查询参数状态:
Wi-Fi发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x65 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x02 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x65 |
数据长度 | 2 | 1+N |
数据 | 1 | 子命令:0x02 |
数据 | Data: { “mic”:true, “volume”:8, “play”:true, “bt_play”:true, “alarm”:”xxxx”, “ctrl_group”:”xxxx” } | mic:麦克风打开/关闭功能 true(打开)/false(关闭) volume:音量大小 范围:0-10 play:播放/暂停功能 true(播放)/false(暂停) bt_play:蓝牙开关功能true(开)/false(关) alarm:本地闹钟功能 “xxx”为字符串 ctrl_group:语音控制组合功能 “xxx”为字符串 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
Wi-Fi模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x01 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 01 0000 00
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x01 |
数据长度 | 2 | N |
数据 | N | {“h”:”1.0.0”,“s”:”1.0.0”,“w”:”小智管家”} |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:{“h”:”1.0.0”,“s”:”1.0.0”,“w”:”小智管家”}
产品信息字段说明:
软硬件版本号格式:主版本号 .子版本号.阶段版本号
主版本号 定义: 当模组功能有较大的变动,比如增加多个模组或者整体架构发生变化。此版本号由项目决定是否修改。
子版本号 定义: 当功能有一定的增加或变化,比如增加了对权限控制、增加自定义视图等功能。此版本号由项目决定是否修改。
阶段版本号 定义: 一般是Bug修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的Bug即可发布一个修订版。此版本号有项目经理决定是否修改
硬件型号:
h表示VCT1模组硬件版本号为1.0.0
s表示软件版本号为1.0.0
w表示唤醒词为小智管家
Wi-Fi模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x07 |
数据长度 | 2 | 取决于“状态数据单元”类型以及个数“N+3” |
数据 | 2 | 传输数据序列号 范围 1-0xfff0,到达 0xfff0 之后重新回到 1,确保每个独立帧的 seq 值唯一,应答帧的序列号需要和控制帧保持一致 |
数据 | 1 | DP数据控制来源 0x00:MCU主动更新 0x01:局域网 0x02:广域网 0x03:本地定时 0x04:广域网场景联动 0x05:可靠的通道 0x06:蓝牙 0x07:本地场景联动 0xF0:离线语音模组 0xF1:其他控制来源 |
数据 | N | “dp状态数据单元”组 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:离线语音模组控制的湿度对应5号DP,使用valve型变量,湿度为30℃
0x55aa 03 07 000b 0001 f0 05 02 0004 0000001e 2e
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x07 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:返回静音状态值:55 aa 00 07 00 00 06
设置离线语音模组的语音内部环路测试模式。
Wi-Fi模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x63 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 音频产测值: 0x00: 关闭音频产测; 0x01: mic1音频环路测试; 0x02: mic2音频环路测试; 0xA0: 查询当前产测状态; |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 63 0001 01 64
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x63 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 音频产测状态: 0x00: 关闭音频产测; 0x01: mic1音频环路测试; 0x02: mic2音频环路测试; |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 63 0001 01 08
,启动mic1音频环路测试
设置离线语音模组的唤醒测试模式。
Wi-Fi模组发送唤醒产测命令:
Wi-Fi模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x64 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x00 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 64 0001 00 03
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x64 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令:0x00 |
数据 | 1 | 返回: 0x00:启动唤醒产测失败 0x01:启动唤醒产测成功 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 64 0001 01 08
,启动唤醒产测成功
语音模组唤醒产测结果上报:
语音模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x64 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令:0x01 |
数据 | 1 | 唤醒返回值: 0x00: 唤醒成功; 0x01: 唤醒失败(10s超时失败); |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 64 0001 00 03
Wi-Fi模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x64 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x01 |
数据 | 0 | |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 64 0002 01 00 08
,启动唤醒产测成功
Wi-Fi模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x67 |
数据长度 | 2 | 0x0015 |
2 | 传输数据序列号 范围 1-0xfff0,到达 0xfff0 之后重新回到 1,确保每个独立帧的 seq 值唯一,应答帧的序列号需要和控制帧保持一致[H1] | |
1 | 场景平台验证的结果: 01:验证成功 00:验证失败 | |
2 | 语音场景ID,对应唯一的场景,例如“回家场景”对应ID为00 01 | |
数据 | N | 数据限制总数据长度不超过256bytes: 例如: 中文:“回家场景” 英文:“good night mode” |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:返回“回家场景”验证结果:
55 aa 00 67 00 11 00 01 01 00 01 e5 9b 9e e5 ae b6 e5 9c ba e6 99 af 4a
这个就代表“回家场景”平台验证成功。
语音模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x67 |
数据长度 | 2 | 0x0000 |
数据 | N | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈