更新时间:2024-06-18 02:01:06下载pdf
波特率:115200/9600(自动侦测2分钟,如果未侦测到默认使用115200)
数据位:8
奇偶校验:无
停止位:1
数据流控:无
MCU:用户控制板控制芯片,与涂鸦模组通过串口对接
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 升级扩展用 |
命令字 | 1 | 具体帧类型 |
数据长度 | 2 | 大端 |
数据 | N | 数据内容 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
所有大于1个字节的数据均采用大端模式传输。
一般情况下,采用同命令字一发一收同步机制,即一方发出命令,另一方应答,若发送方超时未收到正确的响应包,则超时传输,如下图所示:
具体通信方式以协议详述中为准。
模组控制命令下发及 MCU 状态上报则采用异步模式,假设模组控制命令下发命令字为 x
,MCU状态上报命令字为 y
,如下所示:
MCU 状态上报:
模组发送:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x00 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 00 0000 ff
MCU 返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x00 |
数据长度 | 2 | 0x0000 |
数据 | 1 | 0x00:MCU重启后第一次心跳返回值,仅发送一次,用于模组判断工作过程中MCU是否重启 0x01:除MCU重启后第一次返回0外,其余均返回此值 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:
模组发送:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x01 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 00 0000 ff
MCU 返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x01 |
数据长度 | 2 | N |
数据 | N | {“p”:“AIp08kLIftb8x2x0”, “v”:“1.0.0”, “m”:1, “apn”:“cniot”, “mht”:60, “qr”:1 } 其中APN是可选项。如果没有APN,系统自动配置APN。mht、qr是可选项。 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:{"p":"AIp08kLIftb8x2x0","v":"1.0.0","m":1}
p
表示产品ID为AIp08kLIftb8x2x0v
表示MCU版本为1.0.0m
表示模组的功耗。
mht
表示模组的MQTT心跳间隔时间,单位秒。默认心跳间隔100s。qr
表示模组拉取扫码配网使用的二维码的短码的字段。
当前自处理模式下,LED灯只支持NET_MODE指示灯。
模组发送:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x02 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 02 0000 01
MCU 返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x02 |
数据长度 | 2 | 0x0000/0x0002 0x0000:指示模组工作为MCU与模组配合处理模式,MCU需实现上述说明中提及的功能。 0x0002:指示模组工作为模组自处理模式。 |
数据 | 0/2 | 数据长度为2
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:
0x0c
:GPIO120x0d
:GPIO13设备联网状态 | 描述 | 状态值 |
---|---|---|
状态1 | SIM卡未连接 | 0x00 |
状态2 | 搜索网络中 | 0x01 |
状态3 | 已经成功注册未联网 | 0x02 |
状态4 | 联网成功并获取到IP | 0x03 |
状态5 | 已连接到云端 | 0x04 |
状态6 | SIM基站注册被拒绝,可能是SIM当前的业务未开通。 | 0x05 |
模组发送:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 参考状态说明 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 03 0001 00 03
MCU 返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 03 0000 05
Cat.1接收到重置命令后,对SIM卡进行复位,然后重新连接蜂窝网络
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x04 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 04 0000 06
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x04 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 04 0000 03
Cat.1模组有全功能工作模式,飞行模式两种。
设置工作模式时,不能重复设置,否则会返回设置失败
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 1:全功能模式 4:飞行模式 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 04 0000 06
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0000 |
数据 | 1 | 0:设置成功 1:设置失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 04 0000 03
模组下发
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 取决于数据单元的个数 |
数据 | N | 数据单元集合(见下面数据单元说明) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
数据单元说明:
DP 命令/状态数据单元如下所示:
数据段 | 长度 | 说明 |
---|---|---|
dpid | 1 | 数据点序号 |
type | 1 | 数据类型标识(不同的数据类型有不同的数据结构见下表格说明) |
len | 2 | 数据长度 |
value | 1/2/4/N | 实际数据,大端传输 |
数据类型说明
数据类型标识 | 类型 | 长度 | 说明 |
---|---|---|---|
0x00 | raw | N | 透传类型的数据 |
0x01 | bool | 1 | 布尔类型的数据,取值为0和1 |
0x02 | value | 4 | int类型的数据 |
0x03 | string | N | 字符串类型的数据 |
0x05 | enum | 1 | 枚举类型的数据 |
0x06 | bitmap | 1/2/4 | bitmap类型的数据 |
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 取决于数据单元的个数 |
数据 | N | 数据单元集合(见数据单元说明) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:湿度对应5号 DP,使用value型变量,湿度为30%
0x55aa 03 07 0008 05 02 0004 0000001e 3a
模组发送:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 08 0000 07
何时升级客户涂鸦开发者平台自己的产品页面配置相关升级选项触发,模组仅作为支持MCU升级的数据传输通道,也不对数据内容做任何解析。
目前涂鸦平台的MCU升级支持下面四种升级方式的配置:
模组发送完所有的升级包,重新发送01命令字(查询产品信息)MCU需要在一分钟回复产品信息中的软件版本号带上升级后的MCU版本号,版本号需要和在涂鸦后台配置升级的版本号保持一致。
升级启动方式含自动及手动升级。当处于自动升级时,模组检测云端MCU有更新版本固件,则自动启动与MCU升级包交互流程;当处于手动升级时,通过App确定,模组才启发与MCU升级包交互流程
模组发送:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0a |
数据长度 | 2 | 0x0004 |
数据 | 4 | 固件包文件大小 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 0a 0004 00006800 75(固件包长度26624,即26KB)
MCU 返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x0a |
数据长度 | 2 | 0x0001 |
数据 | 1 | 升级包传输分包大小 0x00:默认256 Bytes (兼容旧固件) 0x01:512 Bytes 0x02:1024 Bytes |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 0a 0001 00 0d
模组发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0b |
数据长度 | 2 | 0x0004+数据包长度 |
数据 | N | 前面4个字节是包偏移,后面紧跟数据包内容 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0b |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 0b 0000 0d
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x0c |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 03 0c 0000 0e
模组返回:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0c |
数据长度 | 2 | 0x0007 |
数据 | 7 | 数据长度为7字节: Data[0]为是否获取时间成功标志,为0表示失败,为1表示成功 Data[1]为年份, 0x00表示2000年 Data[2]为月份,从1开始到12结束 Data[3]为日期,从1开始到31结束 Data[4]为时钟,从0开始到23结束 Data[5]为分钟,从0开始到59结束 Data[6]为秒钟,从0开始到59结束 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:0x55aa 00 0c 0007 01 10 04 13 05 06 07 4c(格林时间2016年4月19日5时6分7秒)
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x0e |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0e |
数据长度 | 2 | 0x0002 |
数据 | 4 | 数据长度为4字节: Data[0]: 0:SIM卡未检测到,1:SIM卡检测成功 Data[1]: 0:未写过授权,1:写过授权 Data[2]: 0:RF未校准,1:已经校准 Data[3]: 信号强度(0~31) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x1c |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1c |
数据长度 | 2 | 0x0008 |
数据 | 8 | 数据长度为8字节: Data[0]为是否获取时间成功标志,为0表示失败,为1表示成功 Data[1]为年份, 0x00表示2000年 Data[2]为月份,从1开始到12结束 Data[3]为日期,从1开始到31结束 Data[4]为时钟,从0开始到23结束 Data[5]为分钟,从0开始到59结束 Data[6]为秒钟,从0开始到59结束 Data[7]为星期,从1开始到7结束 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:
获取模组剩余内存,返回-1表示不支持获取内存
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x0f |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0f |
数据长度 | 2 | 0x0004 |
数据 | 4 | 剩余内存大小,大端格式 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU可以获取当前Unix时间戳,时区信息以及夏令时范围。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x1b |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1b |
数据长度 | 2 | N |
数据 | N |
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x22 |
数据长度 | 2 | 取决于数据长度 |
数据 | N | 状态数据单元 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x23 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x01:成功 0x00:失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x24 |
数据长度 | 2 | 0 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x24 |
数据长度 | 2 | 0x0001 |
数据 | 1 | RSSI值,范围为0-31 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x25 |
数据长度 | 2 | 0 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x25 |
数据长度 | 2 | 0 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
对于需要休眠降低功耗的MCU模组,可在休眠前发送该指令关闭模组心跳,方便进入休眠状态。该指令请勿在设备刚上电时发送,模组上电后需要和MCU建立心跳连接。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x2b |
数据长度 | 2 | 0 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2b |
数据长度 | 2 | 0x0001 |
数据 | 1 | 同报告设备联网状态中的联网状态一致 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x2d |
数据长度 | 2 | 0 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2d |
数据长度 | 2 | 0x0007 |
数据 | 7 | Data[0]为获取MAC地址是是否成功的标志: 0x00表示成功,表示后面6字节的MAC地址有效 0x01表示获取MAC失败,表示后面6字节的MAC无效 当获取MAC地址标志位Data[0]表示成功时: Data[1]~Data[6]则表示模组有效的MAC地址 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
Cat.1模组有全功能工作模式,飞行模式两种。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x01 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
例:55 AA 03 71 00 01 01 75
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002 |
数据 | 2 | Data[0]:0x01 Data[1]:
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
本命令可以由 MCU 控制主动发送一个 IMSI 获取包,可用于获取模组的国际移动用户识别码。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x02 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0010 |
数据 | 2 | Data[0]:0x02 Data[1]-Data[15]:字符串格式IMSI |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组获取 ICCID指令,模组将 ICCID(长度20的字串)返回给 MCU。本命令可以由 MCU 控制,主动发送 ICCID获取包,以用于获取模组的 SIM 卡识别号码
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x03 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0015 |
数据 | 2 | Data[0]:0x03 Data[1]-Data[20]:字符串格式ICCID |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组获取 IMEI 指令,模组将 IMEI(长度15的字串)返回给 MCU。本命令可以由 MCU 控制,主动发送 IMEI 获取包,以用于获取设备的 IMEI 码。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x04 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0010 |
数据 | 2 | Data[0]:0x04 Data[1]-Data[15]:字符串格式IMEI |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组设置GNSS启动或者关闭定位功能。该功能由于GNSS模组的处理事务比较多,应答的消息超时时间最大为3秒。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0003 |
数据 | Data | 子命令:0x81 控制命令:0x01启动、0x00 关闭 定位类型:(开启模式下有效) 0x00:GPS+北斗 0x01:GPS+GLONASS 0x02:GPS 0x03:北斗(需要确认GNSS设备是否支持) 0x04:GLONASS(需要确认GNSS设备是否支持) 0x05:Galileo(需要确认GNSS设备是否支持) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0003 |
数据 | 3 | 子命令:0x81 启动或者关闭状态: 0:失败,1:成功 定位类型状态(关闭时该状态显示值无效): 0:失败,1:成功 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组设置GNSS启动或者关闭定位功能。该功能由于GNSS模组的处理事务比较多,应答的消息超时时间最大为3秒。启用该功能,需要首先开启GNSS定位功能。
定位类型字段在GNSS定位开启的情况下其值才有效。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0003 |
数据 | Data | 子命令:0x90 上报周期:2字节(秒)(大端模式)上报的 DP ID:1字节 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | Data | 子命令:0x90 状态:0:失败,1:成功 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
上报周期为0的时候,表取消自动上报。上报周期不小于5秒。自动上报的数据通过蜂窝通道。
MCU 主动下发给模组根据设置的 DP ID和上报间隔,模组自动上报定位信息到云端。启用该功能,需要首先开启Wi-Fi定位功能。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | Data | 子命令:0x91 上报周期:2字节(秒)(大端模式)上报的 DP ID:1字节 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x91 状态:0:失败,1:成功 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组根据设置的 DP ID和上报间隔,模组自动上报定位信息到云端。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | Data | 子命令:0x92 上报周期:2字节(秒)(大端模式)上报的 DP ID:1字节 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x92 状态:0:失败,1:成功 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
上报周期为0的时候,表取消自动上报。上报周期不小于5秒。自动上报的数据通过蜂窝通道。
建议Wi-Fi、GNSS、LBS三种定位模式只开启一种自动上报,否则上报周期和设定值可能会有1~2秒的偏差
MCU 主动下发给模组复位GNSS设备。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0003 |
数据 | Data | 子命令:0x83 复位GPIO:0~31,根据实际产品的GNSS设备的复位GPIO口 复位电平:0表示低电平,1表示高电平 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x83 状态:0:失败,1:成功 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组获取GNSS定位信息。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | Data | 子命令:0x10 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002+N |
数据 | 2+N | 子命令:0x10 状态:(1:成功,0:失败) +N字节的定位信息(字符串,longitude ,latitude) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回的定位信息为字符串类型,MCU 在获取到后定位信息后,按照状态上报把模组返回的定位信息上报给云端。如果云端的 DP 是要求纬经度格式,则 MCU 需要对收到的定位信息转为纬经度。
MCU 主动下发给模组获取GNSS定位信息。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | Data | 子命令:0x29 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002+N |
数据 | 2+N | 子命令:0x29 状态:(1:成功,0:失败) +N字节的定位信息(字符串,字符串为纬经度格式:latitude,longitude) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回的定位信息为字符串类型,MCU在获取到后定位信息后,按照状态上报把模组返回的定位信息上报给云端。
MCU 主动下发给模组获取GNSS信号强度。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 子命令:0x11 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0003 |
数据 | 3 | 子命令:0x11 状态:1:成功,0:失败 信号强度:0~100(1字节) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组获取GNSS瞬时速度。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 1 | 0x0001 |
数据 | Data | 子命令:0x12 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0004 |
数据 | 4 | Data[0]子命令:0x12 Data[1]状态:1:成功,0:失败 速度(2字节):单位(100米/H) Data[2] = (速度)高数据位 Data[3] = (速度)低数据位。 例如Data[2]=SPEED>>8 Data[3]=0xFF; |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 主动下发给模组获取 Wi-Fi 定位信息。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 1 | 0x0001 |
数据 | Data | 子命令:0x20 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002+N |
数据 | 2+N | 子命令:0x20 AP信息个数:1(字节) N字节的定位信息(字符串) 如[“b27e525dc87d”,-64],[“957e5b5d087d”,-64]或者"b27e525dc87d,-64,957e5b5d087d,-64" |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回的定位信息为字符串类型,MCU在获取到后定位信息后,按照状态上报直接把模组返回的定位信息上报给云端。
MCU 发送命令给模组,获取定位信息。LBS定位信息的格式是运营商编码(MCC+MNC)+位置区域码+基站编号。如中国电信:46011,e615,04bafc0a
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | Data | 子命令:0x21 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002+N |
数据 | Data | 子命令:0x21状态:1字节(1,成功;0,失败)N字节的LBS定位信息(字符串格式)如46011,e615,04bafc0a |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回示例
55 AA 00 71 00 15 21 01 34 36 30 31 31 2C 65 36 31 35 2C 30 34 62 61 66 63 30 61 7D
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | Data | 子命令:0x25 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002 |
数据 | Data | 子命令:0x25电量:0~100 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | Data | 子命令:0x26 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002 |
数据 | Data | 子命令:0x26 充电状态: 1 开始充电 2 充电结束 3 电量低 4 电量超低 5 电池拔出 6 充电器拔出 7 充电故障 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
获取是否启动 GNSS/Wi-Fi/LBS 定位功能。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | Data | 子命令:0x30 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002 |
数据 | Data | 子命令:0x30 Data[1]:GNSS定位开启状态。1 表示启动,0 表示关闭。 Data[2]:Wi-Fi 定位开启状态。1 表示启动,0 表示关闭。 Data[3]:LBS定位开启状态。1 表示启动,0 表示关闭。 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256 |
启动/关闭电池供电情况下低电压关机功能,默认处于关闭状态。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0001 |
数据 | 2 | 子命令:0x88 控制命令:0x01表示启动 0x00表示关闭 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x88 控制命令:0x01表示操作成功 0x00表示操作失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256 |
在设备注册后,可以启动/关闭蓝牙连接。默认启动蓝牙连接
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x89 控制命令:0x01表示启动 0x00表示关闭 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x89 控制命令:0x01表示操作成功 0x00表示操作失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256 |
设备从云端获取二维码短连接后,主动发送给MCU。该功能一般使用在有屏的设备且需要在屏幕上显示绑定二维码。
模组发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0001+N |
数据 | 2 | 子命令:0x93 + 短连接地址(字符串格式) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
目前主要针对外接蓝牙 LE 模组,8910模组自带蓝牙 LE 不支持HID功能
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x95 控制命令: 0x01表示打开HID功能 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x95 状态: 0x01成功,0x00失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
目前主要针对外接蓝牙 LE 模组,8910模组自带蓝牙 LE 不支持HID功能,在获取到蓝牙模组处于连接状态后,可发送该命令获取RSSI数据。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0007 |
数据 | 2 | 子命令:0x96 数据上报次数: 4 Bytes 数据上报间隔:2 Bytes(单位是ms) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x72 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x96 状态: 0x01成功,0x00失败,0x02参数错误 RSSI值:蓝牙模组RSSI值 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x31 状态:0x00 HID配对已绑定,0x01 HID配对未绑定 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
说明:目前主要针对外接蓝牙 LE 模组,8910模组自带蓝牙 LE 不支持
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0001 |
数据 | 2 | 子命令:0x32 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0008 |
数据 | 2 | 子命令:0x32 结果:0x00成功,0x01失败 软件版本号: 硬件版本号: |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
本功能是需要SD卡支持。
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0004+N |
数据 | N | 子命令:0x27 端口(1 Byte):0表示播放到本地喇叭 控制字(1 Byte):0,停止 1,播放 2,暂停 3,恢复 音频文件格式(1 Byte):1.pcm 2.wavpcm 3.mp3 4.amr-nb 5.amr-wb 音频文件所在路径(N Byte): 如"/sdcard0/ice_8k_16bit.pcm" |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0005 |
数据 | 2 | 子命令:0x27 +端口(1字节) +控制字(1字节) +音频文件格式 +状态(0,成功;其他失败) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
在本地音乐播放完成后,模组会主动上报播放完成的状态给MCU。
模组返回
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x71 |
数据长度 | 2 | 0x0002 |
数据 | 2 | 子命令:0x2A +状态(0,成功;其他失败) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对256求余 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈