作者:admin于 2018年06月19日 发布在分类 / 产品相关 / 通讯模块 / 接入规范与标准 下,并于 2020年07月16日 编辑
    MIOC 标准接入协议 MCU 与通讯模组-架构V1.0

       1029

       0



    一、通讯模型

    设备主控MCU 通过串口和通讯模组(WIFI、4G、mesh)进行通讯

    串口的通讯参数如下:

    波特率:9600

    数据位:8

    奇偶校验:无

    停止位:1

    数据流控:无

    WIFI模组供电电压:3.3V,电流(MAX)150mA

    二、约定

    长度:由两个字节(2B)组成,采用大端编码方式,即高字节在前,低字节在后。

    指令格式:指令由以下部分按顺序构成。

    包头

    2B 固定: 0xFFFF

    如数据内容包含0xFFFF,则统一以0xFF55FF55替代,接收方注意当作0xFFFF处理

    包长度

    2B

    从命令开始一直到校验和的字节长度(包括命令和校验和)

    命令

    1B

    包序号

    1B

    由命令发起方给出,从1开始递增,超过255后从1重新开始。命令确认消息中包序号标识被确认的消息的序号。

    消息体 依据实际情况

    校验和

    1B

    对数据包中的包长度开始到有效负载的直接求和取余数,即sum(…)%256

    注:所有指令接收方需确认,如发送方300ms内没有收到确认,发送方需重发该指令,每条指令最多重发3次。

    三、通讯协议

    3.1获取设备基本信息

    通讯模块上电后,将向MCU查询设备信息。

    通讯模块 >>>  MCU

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x01

    4

    包序号

    1

    5

    校验和

    1

    MCU回复: MCU >>> 通讯模块

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x02

    4

    包序号

    1

    对应查询包的包序号

    5

    串口协议版本号

    2

    6

    业务协议版本号

    2

    7
    应用标识
    20 对应应用标识[ASCII 20字节16进制数据]

    8

    产品标识码

    16

    对应产品标识[16字节16进制数据]

    9

    校验和

    1

    通讯模块上电后,设备通过串口发送设备的基本信息。


    MCU >>> 通讯模块

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x02

    4

    包序号

    1

    对应查询包的包序号

    5

    串口协议版本号

    2

    6

    业务协议版本号

    2

    7
    应用标识
    20 对应应用标识[ASCII 20字节16进制数据]

    8

    产品标识码

    16

    对应产品标识[16字节16进制数据]

    9 设备类型 1 0X01

    10

    校验和

    1



    3.2通讯模组向MCU发送业务指令

    业务指令一般为控制指令,如开关设备、设置模式、设置温度、请求状态等

    通讯模组 >>> MCU

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x03

    4

    包序号

    1

    5

    业务指令

    Max 65530

    参照对接设备的业务协议文档

    6

    校验和

    1

    MCU回复: MCU >>> 通讯模组

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x04

    4

    包序号

    1

    对应发送包的包序号

    5

    业务指令

    Max 65530

    参照对接设备的业务协议文档

    6

    校验和

    1

    3.3MCU向通讯模组发送业务指令

    应用场景一般为故障上报、开关状态/模式等通过其他方式如红外遥控、产品集成的功能按键改变之后,主动上报给通讯模组。

    MCU  >>> 通讯模组

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x05

    4

    包序号

    1

    5

    业务指令

    Max 65530

    参照对接设备的业务协议文档

    6

    校验和

    1

    通讯模组回复: 通讯模组 >>> MCU

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x06

    4

    包序号

    1

    对应发送包的包序号

    5

    业务指令

    Max 65530

    参照对接设备的业务协议文档

    6

    校验和

    1

    3.3心跳

    当通讯模组超过60秒没有收到MCU的数据包,将向MCU发送心跳包。MCU收到心跳包后应立即回复。当通讯模组连续3次没有收到MCU的心跳回复,则重启自身。如MCU 180秒内没有收到通讯模组的心跳请求,则应通过硬件引脚重启通讯模组。

    通讯模组向MCU发送心跳:通讯模组 >>>  MCU

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x07

    4

    包序号

    1

    5

    校验和

    1

    MCU回复: MCU  >>> 通讯模组

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x08

    4

    包序号

    1

    对应发送包的包序号

    5

    校验和

    1

    3.4 MCU通知通讯模组(WIFI)进入配网模式

    WIFI模组收到进入配网模式指令后,需判断当前是否已成功连接上无线路由器,如已连接,则让设备处于可绑定模式,否则,让设备进入对应的SoftAPAirLink等配网模式。

    MCU  >>>   WIFI模组

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x09

    4

    包序号

    1

    5

    校验和

    1

    WIFI模组回复: WIFI  >>>  MCU

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x0A

    4

    包序号

    1

    对应发送包的包序号

    5

    校验和

    1

    3.5 重置WIFI模组

    重置的内容包括WIFI 模组已保存的局域网WIFI SSID和密码,DIDPasscode等信息。

    MCU   >>>   WIFI模组

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2 数据包大小

    3

    命令

    1

    0x0B

    4

    包序号

    1

    5

    校验和

    1

    WIFI模组回复: WIFI   >>>   MCU

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x0C

    4

    包序号

    1

    对应发送包的包序号

    5

    校验和

    1

    3.6 重启MCU

    通讯模组可以请求重启MCU,当做MCU OTA升级时可能使用该指令。

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x0D

    4

    包序号

    1

    5

    校验和

    1

    MCU向通讯模组确认重启: MCU   >>> 通讯模组

    为避免通讯模组没有收到确认而重发指令造成MCU多次重启,则MCU回复通讯模组后需等待600ms再进行重启操作。

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x0E

    4

    包序号

    1

    对应发送包的包序号

    5

    校验和

    1


    3.7 WIFI模块通知MCU网络连接成功

    通讯模组通知MCU网络连接成功

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x11

    4

    包序号

    1

    5

    校验和

    1

    MCU向通讯模组确认收到: MCU   >>> 通讯模组

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x12

    4

    包序号

    1

    对应发送包的包序号

    5

    校验和

    1




    3.8 非法包回复

    通讯模块回复MCU非法数据包 通讯模块 >>>   MCU

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x0F

    4

    包序号

    1

    非法包序号

    5

    错误码

    1

    1 : 校验和错误

    2 :命令不识别

    3 :其他

    6

    校验和

    1

    MCU回复通讯模块非法数据包 MCU  >>> 通讯模块

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    数据包大小

    3

    命令

    1

    0x10

    4

    包序号

    1

    非法包序号

    5

    错误码

    1

    1 : 校验和错误

    2 :命令不识别

    3 :其他

    6

    校验和

    1



    3.9 客户端发起局域网内设备发现(UDP PORT:9980)

    客户端发送查询指令 APP >>>  通讯模块

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    0x0003

    3

    命令

    1

    0xFA

    4

    包序号

    1

    包序号

    5

    校验和

    1


    通讯模块回复     通讯模块  >>> APP

    序号

    字段

    长度(B)

    说明

    1

    包头

    2

    固定:0xFFFF

    2

    长度

    2

    0x000C

    3

    命令

    1

    0xFB

    4

    包序号

    1

    包序号

    5

    设备类型

    1


    6

    MAC地址

    8

    6

    校验和

    1




    访问权限

    创建人 admin
    工作小组 MIOC物联网开放平台
    文档编辑权限 工作小组
    文档阅读权限 来自分类
    分类阅读权限 所有人
    分类编辑权限 所有人
    分类审核权限
    标签

    序号 命令 校验 长度 通讯 模组 包头 固定 段长 说明
    历史版本

    修改日期 修改人 备注
    2020-07-16 15:56:44[当前版本] 梁良 增加
    2020-07-16 15:55:01 梁良 增加
    2020-07-16 10:11:09 admin 增加设备发现协议
    2020-04-24 17:10:34 梁良 修改mesh上报信息标题
    同类知识
    相关知识

    MIOTO WIKI-V3.2.0