串口协议

更新时间:2024-04-08 08:18:04下载pdf

涂鸦 MCU 通用协议接入使用的串口通用协议为涂鸦自定义的串口接入协议 ,可适用于所有已支持接入涂鸦 IoT 云的通用对接模组。目前,已支持 Wi-Fi、Wi-Fi & 蓝牙、蓝牙、蓝牙 Mesh、Zigbee、NB-IoT 和 LTE Cat.1 等无线通信方式接入。

连接模式

涂鸦 MCU 通用协议接入分为标准功耗和低功耗两种模式,分别如下图所示:

标准功耗

模组MCUTX -> RXRX <- TX模组MCU

低功耗

模组MCUTX -> RXRX <- TX控制 IO1控制 IO2模组MCU
  • 低功耗模式下控制 IO 使用与控制可在对应无线通信方式下低功耗控制章节了解。
  • 涂鸦 MCU 通用协议接入的通信模组串口均只支持 3.3V 电平。
    如与使用 5V 供电的 MCU 串口对接,需确定 MCU 是否支持 3.3V 电平串口,否则需要做串口电平转换。

串口通讯约定

名词 说明
波特率(bit/s)
  • Wi-Fi/Wi-Fi & 蓝牙:9600/115200
  • 蓝牙:9600/115200
  • 蓝牙 Mesh:9600/19200/115200
  • Zigbee:9600/115200
  • NB-IoT:9600/115200
  • LTE Cat.1:9600/115200/460800/921600
数据位 8
奇偶校验
停止位 1
数据流控

波特率自适应支持,可在对应无线通信方式下波特率自适应章节了解。

帧格式

标准协议

当前 MCU 标准协议接入,以下无线通信方式采用标准协议:

  • Wi-Fi/ Wi-Fi & 蓝牙
  • 蓝牙
  • 蓝牙 Mesh
  • NB-IoT
  • LTE Cat.1
字段 字节数 说明
帧头 2 固定为 0x55aa
版本 1 升级扩展用
命令字 1 具体帧类型
数据长度 2 大端
数据 N 实体数据
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

扩展协议

当前 MCU 标准协议接入,以下无线通信方式采用扩展协议:Zigbee。

字段 字节数 说明
帧头 2 固定为 0x55aa
版本 1 升级扩展用
包序号 2 传输数据序列号,范围 0-0xfff0,到达 0xfff0 之后重新回到 0
命令字 1 具体帧类型
数据长度 2 大端
数据 N 实体数据
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

说明

  • 所有大于 1 个字节的数据均采用大端模式传输。
  • 协议中举例数据为十六进制。
  • 版本字段用于拓展功能使用。

串口通信模式

命令字通信模式

通常命令字采用一发一收的同步模式,即发送方发送命令,接收方应答,如下图所示。

MCU模组发送命令字 N命令字 N 应答MCU模组

即一方发出命令,另一方应答,若发送方超时未收到正确的响应包,则超时重发。

具体命令字以各无线通信方式 协议列表 章节中为准。

模组下发命令通信模式

模组控制命令下发及 MCU 状态上报则采用异步模式。假设模组控制命令下发的命令字为 X,MCU 状态上报的命令字为 Y,如下所示:

  • 模组控制命令下发:

    模组MCU模组控制命令字 X 下发MCU 状态命令字 Y 上报模组MCU

    上图假设模组控制命令下发命令字为 X,MCU 状态上报命令字为 Y

    • 下发流程
      1. 模组通过 0x04 指令下发命令,内容为可下发的 DP 数据。
      2. MCU 接收到 0x04 指令之后进行回复,表示串口接收到该命令。
      3. MCU 通过 0x05 指令将执行的结果上报至云端。
      4. 验证 0x05 指令的序列号和 0x04 指令是否保持一致。
  • MCU 状态上报:

    MCU 状态上报采用异步模式。MCU 状态上报分为被动上报和主动上报两种情况。

    • 被动上报:模组端发送数据命令至 MCU,MCU 执行后返回状态。
    模组MCU控制命令下发命令执行MCU 状态命令字上报模组MCU
    • 主动上报:MCU 状态发生改变(例如物理操作或者断电重启等)时,将主动上报当前状态至模组。MCU 主动上报为异步操作,如果 MCU 未在指定时间内接收状态上报应答帧,或者接收到的应答帧中状态为不成功,MCU 需要重新上报状态。
    MCU模组状态改变MCU 状态命令字上报MCU模组

DP 格式

数据段 长度(字节) 说明
dpid 1 功能点序号
type 1 对应平台上某功能点具体的数据类型,通过如下 表示值 标识
类型 表示值 长度(字节) 说明
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 字节采用大端传输