更新时间:2024-06-20 08:48:17下载pdf
本文介绍 NB-IoT 通讯方式设备采用 MCU SDK 开发时使用的涂鸦串口协议。
大于 1 字节的数据均采用大端模式传输。
协议中举例数据为十六进制。
NB 模组主动发起的通信发送包超时时长为 1 秒,重发机制会重发三包。
通常采用同命令字一发一收同步机制,即一方发出命令,另一方应答。若发送方超时未收到正确的响应包,则视为超时传输。
说明:具体通信方式以 协议详述 章节为准。
MCU 状态上报则采用同步模式,MCU 状态上报命令字为 y
,如下所示:
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 固定为 0x55aa。 |
版本 | 1 | 升级扩展用。 |
命令字 | 1 | 具体帧类型。 |
数据长度 | 2 | 大端。 |
数据 | N | 数据部分包含网络层传下来的数据,例如 IP 数据包等。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
产品信息由 Product ID、MCU 软件版本构成。
x.x.x
,其中 0<=x<=99,x 为十进制数。模组发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x01 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组发送示例
55 aa 00 01 00 00 00
MCU 返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x01 |
数据长度 | 2 | N |
数据 | N | {“p”:“gl9iswyeobu5s93j”, “v”:“1.0.0”, “s”:“psm”, “c”:“isp”} |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
数据
参数 | 说明 |
---|---|
p | 产品 ID,即在开发者平台所创建的产品的 PID。 |
v | MCU 版本。 |
s | 设备的功耗模式。
|
c | 设备连接云的方式。
|
MCU 返回示例
55 AA 00 01 00 38 7B 22 70 22 3A 22 67 6C 39 69 73 77 79 65 6F 62 75 35 73 39 33 6A 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 2C 22 73 22 3A 22 70 73 6D 22 2C 22 63 22 3A 22 69 73 70 22 7D 02
设备联网状态 | 描述 | 状态值 |
---|---|---|
状态 1 | 搜索 NB 网络中。 | 0x01 |
状态 2 | 已搜索 NB 网络。 | 0x02 |
状态 3 | 已连接到电信平台,设备未绑定。 | 0x03 |
状态 4 | 设备已绑定,已连接到涂鸦云。 | 0x04 |
模组发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x02 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 指示 NB-IoT 模组工作状态: 0x01 : 状态 1 0x02 : 状态2 0x03 : 状态 3 0x04 : 状态 4 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组发送示例
设备已绑定,已连接到涂鸦云。
55 aa 00 02 00 01 04 06
MCU 返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x02 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 返回示例
55 aa 00 02 00 00 01
设备将会重置一切设置,并刷新模组到出厂状态,然后模组重新向云端请求激活。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
55 aa 00 03 00 00 02
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回示例
55 aa 00 03 00 00 02
注意:设备联网状态 必须为已连接到云端,否则实时状态上报命令将执行失败。
MCU 可以通过实时状态上报命令,将数据的实时状态上报到模组。
使用场景
要求实时推送状态的设备,类似报警器等。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 取决于 状态数据单元 类型以及个数。 |
数据 | N | 一个或多个组合 状态数据单元 组。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 成功 0x01 失败 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
单个状态数据单元上报样例
状态数据:DP 点 109,bool 型变量,数值为 1。
55 aa 00 05 00 05 6d 01 00 01 01 79
多个状态数据单元上报样例
状态数据 1:DP 点 109,bool 型变量,数值为 1。
状态数据 2:DP 点 102,string 型变量,数值为 “201804121507”(具体传输对应 ASCII 值)。
55 aa 00 05 00 15 6d 01 00 01 01 66 03 00 0c 32 30 31 38 30 34 31 32 31 35 30 37 5d
MCU 的记录型数据是由多个 DP 点组合的整条数据,因此需要整体上报。上报可通过向 NB 模组发送下方描述的命令。若数据上报时设备断网,这条数据则会暂时在模组端存储,在下次网络通畅、有数据上报时,模组会再次上传存储的数据。
使用场景
对于类似门锁等包含多个需要上报到服务端、当作整条信息处理的 DP 点数据的类记录型的设备,若设备短暂断网,本命令会要求设备暂存无法上报成功的数据,以满足记录型设备的上报需求。命令上报需要带上本地的时间。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 取决于状态数据单元类型以及个数。 |
数据 | 7 | 需要使用 MCU 的时间戳时,按以下信息格式: Data[0] 为年份,0x00 表示 2000 年 Data[1] 为月份,从 1 开始到 12 结束 Data[2] 为日期,从 1 开始到 31 结束 Data[3] 为时钟,从 0 开始到 23 结束 Data[4] 为分钟,从 0 开始到 59 结束 Data[5] 为秒钟,从 0 开始到 59 结束 Data[6] 为星期,从 1 开始到 7 结束,1 代表星期一 说明:需要使用模组的时间戳时,只需要将该字段填充 0。模组内部将自动将内部 RTC 时间填充到记录型数据上。 |
模组发送 | N | 一个或多个组合 状态数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
单个状态数据单元
DP 点 109,bool 型变量,数值为 1 。以模组内部 RTC 时间为准。
55 aa 00 08 00 0c 00 00 00 00 00 00 00 6d 01 00 01 01 d1
多个状态数据单元
55 aa 00 08 00 1c 00 00 00 00 00 00 00 6d 01 00 01 01 66 03 00 0c 32 30 31 38 30 34 31 32 31 35 30 37 a7
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
命令下发为异步处理协议,MCU 收到相关控制包,确认接收到回复下发包后,完成相关的控制动作。MCU 状态反馈通过 MCU 的状态上报实现。
模组发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x09 |
数据长度 | 2 | 取决于命令数据单元类型以及个数。 |
数据 | N | 命令数据单元组。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组发送信息示例
系统开关对应 3 号 DP,使用 bool 型变量,开机数值为 1。
55 aa 00 09 00 05 03 01 00 01 01 13
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x09 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 返回信息示例
55 aa 00 09 00 00 08
Datapoint 命令/状态数据单元如下所示。
数据字段属性 | 长度(字节) | 说明 |
---|---|---|
dpid | 1 | 功能点序号 |
type | 1 | 对应开放平台上功能点具体的数据类型:
|
len | 2 | 长度对应 value 的字节数(大端) |
value | 1/2/4/N | hex 表示,大于 1字节采用大端传输 |
说明:Datapoint 命令/状态数据单元除 Raw 类型外,其他类型均属于 Obj 型。状态数据可含多个 Datapoint 命令数据单元。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
55 aa 00 06 00 00 05
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0008 |
数据 | Data | 数据长度为(1) 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 代表星期一 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回示例
本地时间:18 年 9 月 17 日 16 时 9 分 5 秒星期一。
55 aa 00 06 00 08 01 12 09 11 10 09 05 01 59
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x10 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
55 aa 00 10 00 00 0F
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x10 |
数据长度 | 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 代表星期一 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回示例
格林威治时间:2018 年 9 月 17 日 8 时 21 分 3 秒 星期一。
55 aa 00 10 00 08 01 12 09 11 08 15 03 01 65
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 2 | 0x0006+0x08+0x01+N |
数据 | 6 | 数据长度为 6 字节: 设备当前格林时间: Data[0] 为年份, 0x00 表示 2000 年 Data[1] 为月份,从 1 开始到 12 结束。 Data[2] 为日期,从 1 开始到 31 结束。 Data[3] 为时钟,从 0 开始到 23 结束。 Data[4] 为分钟,从 0 开始到 59 结束。 Data[5] 为分钟,从 0 开始到 59 结束。 |
- | 8 | 用户输入的密码数据:Data[6]~Data[13] 数据内容范围为 ‘0’~’9’数据传输使用ASCII码 |
- | 1 | 管理员密码组数(0~10) 有多少组管理员密码后面带上相应组数数据(暂时不支持)默认填0 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU发送带两组长度为 6 的管理员密码的数据包:
55 aa 00 12 00 1C 12 09 11 06 22 29 31 35 39 35 30 31 35 38 02 06 *35 32 31 33 31 34* 35 32 31 33 31 33 b3
第一组密码数据:521314
第二组密码数据:521313
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 (密码核对通过) 0x01 (密码核对失败)//通信操作错误码 0x02 (设备未激活) 0x03 (数据长度错误) |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回密码校验失败:
55 aa 00 12 00 01 01 13
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
门锁获取当前生效临时密码:
55 aa 00 13 00 00 12
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | 0x0001+N(临时密码) |
数据 | 1+N | 数据长度为1+N字节: Data[0] 为是否获取密码成功标志,为0表示失败,后面不会带上相关密码和有效时间数据,数据内容长度为1,为1表示成功 Data[1] 密码组数(0 ~10)当密码组数为0的时候表示面板没有创建密码。串口传输不会带上相关密码和有效时间数据 Data[2] 密码长度(后面每组的密码长度保持一致) //第一组密码相关数据 Data[3] 密码编号 (实际编号需要在密码编号的数据上加900)(1 ~ 50) Data[4] 密码有效次数 为 0:表示不限制次数密码-有效期内可以不限次数开门。为 1:表示一次性密码-有效期内只能开一次门 Data[5] 密码当前状态 0:表示密码有效 1:表示面板已经进行了删除操作此密码无效密码生效日期(格林时间) Data[6] 为年份, 0x00 表示 2000年 Data[7] 为月份,从 1 开始到 12 结束 Data[8] 为日期,从 1 开始到 31 结束 Data[9] 为时钟,从 0 开始到 23 结束 Data[10] 为分钟,从 0 开始到 59 结束 Data[11] 为秒钟,从 0 开始到 59 结束密码截至日期(格林时间) Data[12] 为年份, 0x00 表示 2000 年 Data[13] 为月份,从 1 开始到 12 结束 Data[14] 为日期,从 1 开始到 31 结束 Data[15] 为时钟,从 0 开始到 23 结束 Data[16] 为分钟,从 0 开始到 59 结束。 Data[17] 为秒钟,从 0 开始到 59 结束。 临时密码(具体字节数N=data[2])(密码数据传输字符的 ASCII 码) //第二组密码数据… |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
Wi-Fi模组返回当前10组密码数据密码:
55 AA 00 13 00 DF 01 0A 07 0A 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 09 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 08 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 07 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 06 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 05 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 04 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 03 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 02 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 01 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 C6
设备长时间不联网也可使用的动态密码。
MCU发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x16 |
数据长度 | 2 | N |
数据 | Year(1)+mon(1)+day(1)+hour(1)+min(1)+sec(1)+code_len(1)+code(n) | 格林时间+密码长度+密码 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
例:离线密码:1849455172 格林时间:2021/01/11 08:18:42
55 AA 00 16 00 11 15 01 0B 08 12 2A 0A 01 08 04 09 04 05 05 01 07 02 C3
模组返回
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x16 |
数据长度 | 2 | N |
数据 | Result(1)+type(1)+decode_len(1)+decode(n) | Result: 0 正确 非0 错误(无后续数据) Type: 0 限时开门密码 1 单次开门密码 2 清除密码 decode_len:解密后数据长度 decode:解密数据 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
查询设备 NB-IoT 的信号强度。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0b |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
55 aa 00 0b 00 00 0a
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0b |
数据长度 | 2 | 0x0002 |
数据 | 2 | Data[0] 取值:
当 Data[0] 为 0x01 时,Data[0] 表示 RSSI 即:
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回示例
55 aa 00 0b 00 02 01 50 5D
查询设备是否已经被用户绑定。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbb |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
55 aa 00 bb 00 00 0a
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbb |
数据长度 | 2 | 0x0001 |
数据 | 1 | 数据长度为 1 字节。
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息
55 aa 00 bb 00 01 01 bc
MCU 将睡眠锁设置为 1 后,模组将禁止进入睡眠。设置为 0 后,模组将自动在 IDLE 进入 PSM 模式低功耗待机。在 PSM 模式下,可以拉低 PSM-INT 引脚,唤醒模组。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb2 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 数据长度为 1 字节。
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
55 aa 00 b2 00 01 01 00
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb2 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 0 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息
55 aa 00 b2 00 00 b1
用户可以根据自己的业务需求,设置模组的 NB-IoT 网络心跳周期,默认心跳间隔是 8 小时。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb3 |
数据长度 | 2 | 0x0004 |
数据 | 4 | uint32_t 类型,单位为秒,大端格式。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
设置心跳间隔为 1 小时。
55 aa 00 b3 00 04 00 00 0e 10 da
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb3 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息
55 aa 00 b3 00 01 01 b4
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xc1 |
数据长度 | 2 | 0x0004 |
数据 | 4 | uint32_t 类型,单位为秒,大端格式。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
设置下一次唤醒间隔为 3 分钟。
55 aa 00 c1 00 04 00 00 00 b4 78
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xc1 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息
55 aa 00 c1 00 01 01 c2
通过设置网络心跳间隔时间,模组将周期性的自动发送心跳包,本命令可以由 MCU 控制主动发送一个心跳包,以用于主动同步下发数据。在通常情况下,可以由实时状态上报(例如上报电量)替代本命令的功能。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb1 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 AA 00 B1 00 00 B0
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb1 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息
55 AA 00 B1 00 01 01 B2
设备联网状态 | 描述 | 状态值 |
---|---|---|
状态 1 | 搜索 NB 网络中 | 0x01 |
状态 2 | 搜索到 NB 网络 | 0x02 |
状态 3 | 已连接到电信平台,设备未绑定 | 0x03 |
状态 4 | 设备已绑定,已连接到涂鸦云 | 0x04 |
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2b |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送示例
55 aa 00 2b 00 00 2c
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2b |
数据长度 | 2 | 0x0001 |
数据 | 1 | 指示 NB 模组工作状态:
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
设备已绑定,已连接到涂鸦云。
55 aa 00 2b 00 01 04 2f
本命令可以由 MCU 主动发送 IMSI 获取包,获取模组的国际移动用户识别码。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb5 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 AA 00 B5 00 00 B4
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb5 |
数据长度 | 2 | 0x000F |
数据 | 15 | 示例:460113012467340 。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
55 AA 00 B5 00 0F 34 36 30 31 31 33 30 31 32 34 36 37 33 34 30 BD
MCU 主动下发指令至模组,获取 ICCID 指令,模组将 ICCID(长度 20 的字串)返回给 MCU。本命令可以由 MCU 控制,主动发送 ICCID 获取包,以用于获取模组的 SIM 卡识别号码。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb6 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 AA 00 B6 00 00 B5
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb6 |
数据长度 | 2 | 0x0014 |
数据 | 20 | 示例:89861118249000363490 。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
55 AA 00 B6 00 14 38 39 38 36 31 31 31 38 32 34 39 30 30 30 33 36 33 34 39 30 DB
本命令可以由 MCU 控制,主动发送 CESQ 获取包,以获取模组的拓展信号质量参数。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb7 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 AA 00 B7 00 00 B6
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb7 |
数据长度 | 2 | 0x0006 |
数据 | 6 | 由 ReLev, BER, RSCP, ECNO, RSRQ, RSRP 组成。 |
BYTE[0] | 1 | RXLev:接收信号强度等级
|
BYTE[1] | 1 | BER:信道位错误百分率
|
BYTE[2] | 1 | RSCP:接收信号码功率
|
BYTE[3] | 1 | Ecno:Ec/No
|
BYTE[4] | 1 | RSRQ : 参考信号接收质量
|
BYTE[5] | 1 | RSRP : 参考信号接收功率
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
55 AA 00 B7 00 06 28 00 FF FF 22 44 48
说明:本指令需要 SIM 卡支持。
MCU 主动发送一个 T3324 活动定时器指令包。本指令可用于设置模组从空闲模式进入 PSM 模式的超时时间(单位:秒)。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb9 |
数据长度 | 2 | 0x0004 |
| 数据 | 4 | 活动时间,单位:秒。<br/>例如:活动时间为 120(0x78)秒,即 <ul><li>act_time[0]:0x00<li>ct_time[1]:0x00<li>act_time[2]:0x00<li>act_time[3]:00x78 |
| 校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 AA 00 B9 00 04 00 00 00 78 34
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xb9 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
55 AA 00 B9 00 01 01 BA
对于使用电池供电的设备,在模组进行固件升级时,固件升级过程意外断电将可能会导致模组无法正常工作,因此需要电池剩余足够的电量以完成升级整个过程。
当用户 App 触发升级模组且下载完固件后,App 会向 MCU 询问电池电量是否正常。厂商需要根据硬件设计,确定一个电池电量充足的阈值(通常为 大于 50%)来应答模组。
说明:不使用电池供电的设备可以直接应答非低电量状态后开始升级。
模组发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbc |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组发送信息示例
55 AA 00 BC 00 00 BB
MCU 返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbc |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 返回信息示例
55 AA 00 BC 00 01 01 BD
MCU 主动下发给模组获取 IMEI 指令,模组将 IMEI(长度 15 的字串)返回给 MCU。本命令可以由 MCU 控制,主动发送 IMEI 获取包,以用于获取设备的 IMEI 码。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbd |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 AA 00 BD 00 00 BC
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbd |
数据长度 | 2 | 0x000f |
数据 | 15 | 示例:864237040014733 。 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
55 AA 00 BD 00 0F 38 36 34 32 33 37 30 34 30 30 31 34 37 33 33 CF
设备运行状态 | 描述 | 状态值 |
---|---|---|
状态 1 | 设备初始化中 | 0x00 |
状态 2 | 设备识别到 SIM 卡 | 0x01 |
状态 3 | 设备正常运行中 | 0x02 |
状态 4 | 设备被绑定 | 0x03 |
状态 5 | 设备被解绑 | 0x04 |
状态 6 | 设备成功下载 SCHEMA | 0x05 |
状态 7 | 设备正准备进入睡眠 | 0x06 |
状态 8 | 设备正准备重启 | 0x07 |
模组发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbe |
数据长度 | 2 | 0x0001 |
数据 | 1 | 指示 NB 模组工作状态:
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组发送信息
设备正常运行中。
55 aa 00 be 00 01 02 c0
设备运行状态 | 描述 | 状态值 |
---|---|---|
状态 1 | 设备初始化中 | 0x00 |
状态 2 | 设备识别到SIM卡 | 0x01 |
状态 3 | 设备正常运行中 | 0x02 |
状态 4 | 设备被绑定 | 0x03 |
状态 5 | 设备被解绑 | 0x04 |
状态 6 | 设备成功下载SCHEMA | 0x05 |
状态 7 | 设备正准备进入睡眠 | 0x06 |
状态 8 | 设备正准备重启 | 0x07 |
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbf |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 aa 00 bf 00 00 be
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xbf |
数据长度 | 2 | 0x0001 |
数据 | 1 | 指示NB模组运行状态: 0x00 : 状态 1 0x01 : 状态2 0x02 : 状态 3 0x03 : 状态 4 0x04 : 状态 5 0x05 : 状态 6 0x06 : 状态 7 0x07 : 状态 8 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
设备识别到 SIM 卡。
55 aa 00 bf 00 01 01 c0 ]
本命令可以由 MCU 控制主动发送指令包,使模组立刻进入睡眠状态。
MCU 发送
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xc0 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
MCU 发送信息示例
55 AA 00 C0 00 00 BF
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xc0 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
55 AA 00 C0 00 00 BF
由于设备可能无法识别部分基站的 APN 接入点,所以可由用户从 MCU 端手动配置设备的 APN 名称。
MCU 发送信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC2 |
数据长度 | 2 | 无 |
数据 | 取决于具体数据 | {“apn”:“ctnb”,“pdp_type”:“IP”} |
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
数据
参数 | 说明 |
---|---|
apn | 设备访问的 APN 名称,根据当前 SIM 接入的运营商而定。如:
|
pdp_type | 分组数据协议的类型,默认使用 IP 。
|
MCU 发送信息示例
55 AA 00 C2 00 1E 7B 22 61 70 6E 22 3A 22 63 74 6E 62 22 2C 22 70 64 70 5F 74 79 70 65 22 3A 22 49 50 22 7D 6B
模组返回信息
字段 | 长度(Byte) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0xC2 |
数据长度 | 2 | 0x0001 |
数据 | 1 |
|
校验和 | 1 | 从帧头开始按字节求和,得出的结果对 256 求余。 |
模组返回信息示例
55 AA 00 C2 00 01 00 C2
版本 | 日期 | 说明 |
---|---|---|
0.6.12 | 2021.04.01 | 增加波特率9600/115200自适应说明。 |
0.6.11 | 2020.11.30 | 增加记录型数据使用MCU时间戳。 |
0.6.10 | 2020.11.19 | 新增设置设备APN命令。 |
0.6.9 | 2020.11.16 | 更新 设置心跳时间间隔的返回状态。 |
0.6.8 | 2020.08.17 | 更新 MCU 获取查询模组 NB 网络强度中数据呈现形式。 |
0.6.7 | 2020.08.13 | 查询产品信息中,新增功耗模式及云连接方式返回。 |
0.6.6 | 2020.07.27 | 新增记录型数据唤醒时间功能。 |
0.6.5 | 2020.05.14 | 获取/发送设备运行状态信息命令中,新增 SIM 卡识别成功,设备绑定,解绑,schema下载完成等状态。 |
0.6.4 | 2020.04.28 | 新增获取/发送设备运行状态信息命令。新增发送强制设备进入睡眠命令。 |
0.6.3 | 2020.04.16 | 新增发送设备IMEI信息命令。 |
0.6.2 | 2019.11.09 | 新增发送心跳包命令。 |
0.6.1 | 2019.09.05 | 更新记录型上报协议中的时间字段规则。 |
0.6.0 | 2019.06.24 | 更新 Wi-Fi 相关信息。 |
0.5.2 | 2019.03.20 | 更新睡眠锁说明。 |
0.5.1 | 2019.03.08 | 继承 Wi-Fi 通用门锁对接文档。 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈