更新时间:2024-06-24 08:13:32下载pdf
蓝牙单点通用模组可提供扩展联网模组的服务,支持设备在未连接蓝牙的情况下接入云服务。蓝牙主要用于近场通信,而联网模组可直接连接云服务,实现远距离通信。扩展联网模组的方案填补了单蓝牙通信距离有限的不足,使设备应用场景更加多样化。
适用于需要在不依赖网关的情况下,随时连接云服务实现远距离通讯的蓝牙设备。
提供蓝牙单点配网控制支持,完成蓝牙配网后可激活扩展联网模组,实现双链路控制。
在无蓝牙连接的情况下,可通过扩展联网模组使用涂鸦 App 以及云服务。
提供更为可靠的连接,模组将自动根据蓝牙连接情况和扩展联网模组的在线情况,选择合适的通信链路,以便提供云服务和涂鸦 App 控制。
通过扩展联网模组也可以给设备推送远程升级,升级速度相较于蓝牙更为迅速,同时升级场景更为自由。
蓝牙扩展联网模组相关命令帧格式如下:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6~6+Len-1 | 1 | SubCmd | 子命令字 |
Len-1 | 数据 | 子命令数据 | |
6+Len | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
所有大于 1 个字节的数据均采用大端模式传输。
当 MCU 需要访问联网模组(当前为 Cat.1)特有的一些信息时,例如定位信息等,可以通过该指令按照 Cat.1 串口协议 直接访问 Cat.1 模组。
模组 <-> MCU:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6~6+Len-1 | 1 | SubCmd | 0x00 |
Len-1 | DATA | 包含透传协议的版本号、命令字、数据长度、数据字段。 | |
6+Len | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 发送:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6~6+Len-1 | 1 | SubCmd | 0x01 |
Len-1 | DATA | 见下表 | |
6+Len | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
DATA 数据格式:
1 字节 | 1 字节 |
---|---|
op_type | op_object |
op_type
:
0x01
:通知。当 MCU 不通过蓝牙模组而直接控制扩展模组电源开关时,需要通知蓝牙模组,以便更新工作状态。0x02
:控制。MCU 通过控制蓝牙模组上的扩展模组电源控制引脚,来控制扩展模组电源的开关。0x03
:读取。MCU 可通过该操作读取当前扩展模组的电源配置情况。op_object
:
0
表示写入/读出为低电平,1
表示写入/读出为高电平。0
表示写入/读出为低电平,1
表示写入/读出为高电平。模组回复:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6~6+Len-1 | 1 | SubCmd | 0x01 |
Len-1 | DATA | 见下表 | |
6+Len | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
DATA 数据格式:
1 字节 | 1 字节 | 1 字节 |
---|---|---|
op_type | op_object | status |
status
:
0x00
:成功。MCU 发送:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6 | 1 | SubCmd | 0x02 |
7 | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组回复:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6 | 1 | SubCmd | 0x02 |
7 | 1 | Status |
|
8 | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
apn
、cops
、m
、mht
、dp_cache
和 dp_ack
选项的配置。MCU 发送:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6 | 1 | SubCmd | 0x03 |
N | 配置 | { “apn”:“”, “cops”:“”, “m”:0, “mht”:120, “dp_cache”:0, “dp_ack”:0 } 所有配置均是可选项。如果没有配置,模组将自动配置默认值如上。 数值的含义参考:Cat.1 串口协议-查询产品信息(0x01) |
|
6+N | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:
设置 apn
为 cniot
,{"apn":"cniot"}
。
55 AA 00 C0 00 10 03 7B 22 61 70 6E 22 3A 22 63 6E 69 6F 74 22 7D EB
清空 apn
设置,{"apn":""}
。
55 AA 00 C0 00 0B 03 7B 22 61 70 6E 22 3A 22 22 7D C6
设置多个可选项,{"apn":"cniot","m":0,"mht":100,"cops":"12345","dp_cache":1,"dp_ack":1}
。
55 AA 00 C0 00 47 03 7B 22 61 70 6E 22 3A 22 63 6E 69 6F 74 22 2C 22 6D 22 3A 30 2C 22 6D 68 74 22 3A 31 30 30 2C 22 63 6F 70 73 22 3A 22 31 32 33 34 35 22 2C 22 64 70 5F 63 61 63 68 65 22 3A 31 2C 22 64 70 5F 61 63 6B 22 3A 31 7D CB
模组回复:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6 | 1 | SubCmd | 0x03 |
7 | 1 | Status |
|
8 | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:55 AA 00 C0 00 02 03 00 C4
MCU 发送:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6 | 1 | SubCmd | 0x04 |
6+N | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:55 AA 00 C0 00 01 04 C4
模组回复:
序号 | 字节数 | 字段 | 说明 |
---|---|---|---|
0 1 |
2 | 帧头 | 0x55 0xAA |
2 | 1 | 版本号 | 0x00 |
3 | 1 | 命令字 CMD | 0xC0 |
4 5 |
2 | 数据长度 Len | Len 高 8 位 Len 低 8 位 |
6 | 1 | SubCmd | 0x04 |
7 | 1 | 配置 | { “apn”:“”, “cops”:“”, “m”:0, “mht”:120, “dp_cache”:0, “dp_ack”:0 } 打印所有配置,对于未进行配置的选项,模组将显示默认配置值。 数值的含义参考:Cat.1 串口协议-查询产品信息(0x01) |
8 | 1 | CRC8 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:
55 AA 00 04 00 3D 04 7B 22 61 70 6E 22 3A 22 22 2C 22 63 6F 70 73 22 3A 22 22 2C 22 6D 22 3A 30 2C 22 6D 68 74 22 3A 31 32 30 2C 22 64 70 5F 63 61 63 68 65 22 3A 30 2C 22 64 70 5F 61 63 6B 22 3A 30 7D EA({"apn":"","cops":"","m":0,"mht":120,"dp_cache":0,"dp_ack":0})
A:由于 Cat.1 串口通讯协议和蓝牙串口通讯协议上的差异,通过蜂窝链路 MCU OTA 升级无法下发有效的文件 CRC32,所以 MCU OTA 应当使用文件 MD5 进行完整性校验。
如果在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 TuyaOS-蓝牙设备开发 版块进行沟通咨询。咨询前,建议首先查阅 官方资料 或参考已有帖子,并认真阅读 发帖规范。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈