设备通讯协议参考_第1页
设备通讯协议参考_第2页
设备通讯协议参考_第3页
设备通讯协议参考_第4页
设备通讯协议参考_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、设备通讯协议设备通讯协议23/23设备通讯协议设备通信协议目录 TOC o 1-3 1.适用范围 PAGEREF _Toc416183776 h 32.协议框架 PAGEREF _Toc416183777 h 33.协议内容 PAGEREF _Toc416183778 h 33.1设备内部组网协议(或者MCU透传模式协议) PAGEREF _Toc416183779 h 33.1.1 通讯命令格式 PAGEREF _Toc416183780 h 33.1.2 配对机制 PAGEREF _Toc416183781 h 33.1.3 连接机制 PAGEREF _Toc416183782 h 43.

2、1.4 心跳机制 PAGEREF _Toc416183783 h 53.2 设备与云端通讯协议 PAGEREF _Toc416183784 h 53.2.1 通讯命令格式 PAGEREF _Toc416183785 h 53.2.2 连接流程 PAGEREF _Toc416183786 h 53.3 数据包格式定义 PAGEREF _Toc416183787 h 63.3.1设备间通讯数据格式 PAGEREF _Toc416183788 h 63.3.2 设备与云、APP通讯数据格式 PAGEREF _Toc416183789 h 94.公共命令定义 PAGEREF _Toc416183790

3、 h 105.编码表 PAGEREF _Toc416183791 h 115.1节点类型编码表 PAGEREF _Toc416183792 h 115.2命令回应编码表 PAGEREF _Toc416183793 h 11适用范围本协议定义WiFi模块与MCU控制单元,WiFi模块与云APP间,以及主从模块之间的通讯协议框架。协议框架协议基于二进制协议框架,完成命令发送接收、命令上报、内部组网等功能。协议内容3.1设备内部组网协议(或者MCU透传模式协议)备内部组网协议包括设备配对、连接、心跳机制等,目的是将一个子设备加入到设备组中,并保持连接。3.1.1 通讯命令格式采用二进制的通讯协议格式

4、,包格式如下表:同步头HeadOption包长度(变长)加密随机数(Option)源设备类型(Option)源设备编码(Option)CMD KeyCMD IDPayloadCRC(Option)2B1B12 B1B1B3B1B1BNB2B详细的包格式在后续章节介绍3.1.2 配对机制配对机制仅适用于设备内组网模式,MCU透传模式不需要组网协议。进入配对模式由主从设备分别触发,只有在进入配对模式后,才处理相关的配对命令。从设备进入配对模式后定时发送配对请求,直到收到请求回应。主设备收到请求后分配一个设备ID给从设备,标识此ID被占用,并等待采集器的上线通知,一定时间内收到通知之后确认存入设备列

5、表,如果没有上线通知,则认为设备没有配对成功,从子设备中删除。从设备收到配对回应后存储设备ID,并且发送上线通知,收到上线通知后完成配对。配对的过程如下图所示:3.1.3 连接机制设备每次上电连接需要发送上线通知以及连接所需要的参数给主设备,如下图所示:3.1.4 心跳机制使用对等的心跳机制,主设备和从设备都可以发现对方的异常状态。3.2 设备与云端通讯协议设备与云端通讯协议基于MQTT协议,数据包使用MQTT协议传输,数据加密方式采用SSL加密,命令码采用2进制命令格式同设备间通讯协议。3.2.1 MQTT通讯框架本协议是针对与设备的数据通信,目前通信节点包括:设备、云端和APP终端三方。W

6、IFI上的协议采用MQTT协议框架,串口上的通信采用包含包头和校验的二进制协议,通信包采用二进制格式传输,高位在前低位在后。此协议定义的MQTT Topic类型有以下2种:单播,unicast/u/TargetType/TargetID广播,broadcast/b/SourceType/SourceID注释:TargetType:目标设备类型,TargetID:目标设备编码SourceType:源设备类型,SourceID:源设备编码3.2.2 通讯命令格式设备与云端、APP的通讯命令分为4种:请求与回应、通知命令、广播命令,具体的命令以及格式在后面章节介绍。3.2.2 连接流程设备连接云端的

7、步骤如下图:3.3 数据包格式定义数据包的格式根据通讯双方的不同、数据链路的差异会有不同的包格式,本协议为尽量保证数据包格式的统一,做了几点规划:数据包格式中核心的部分包括CMD ID和CMD Payload,这两部分格式所有的包中保持一致,CMD ID 1个字节,CMD Payload紧跟CMD ID长度N字节。设备间通讯,包括内部命令、外部转发命令等的数据包格式虽然可能不一样,但是都可以通过包头中的Option字节进行区分,可以公用相同的解析函数外部串口通讯的命令格式与设备间通讯格式保持一致。设备间通讯数据格式同步头HeadOption包长度(变长)加密随机数(Option)源设备类型(O

8、ption)源设备编码(Option)CMD KeyCMD IDPayloadCRC(Option)2B1B12 B1B1B3B1B1BNB2B3.3.1.1 Fix header固定帧头,格式如下表:同步头Head Option包长度(变长)2Byte1Byte12 Byte同步头:0 x5CFEHead Option:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0预留预留预留预留CheckSum校验广播类型链路CRC校验加密选项typedef enum OPTIONAL_ENCRYPT_BIT = (10), OPTIONAL_CRC_BIT = (11), OPTION

9、AL_BROADCAST_DATALINK_BIT = (12), OPTIONAL_CHECKSUM_BIT = (1设备同步头HeadOption包长度(变长)加密随机数(Option)源设备类型(Option)源设备编码(Option)源设备GUID目标设备GUIDCMD IDPayloadCRC(Option)2B1B12 B1B1B3B34字节1BNB2B上行数据格式,设备-PAD同步头HeadOption包长度(变长)加密随机数(Option)源设备类型(Option)源设备编码(Option)源设备GUIDCMD IDPayloadCRC(Option)2B1B12 B1B1B3

10、B34字节1BNB2B公共命令定义下表是公共命令码以及命令数据的定义,此表仅涉及到上文提到的CMD ID和命令信息码(或回复码),命令中的其他部分数据请参考上文中的数据包定义。命令码命令描述通信方命令组成备注设备内部命令起始1请求配对从设备-主设备CMD Key1Byte,0 x01CMD ID1Byte业务设备类型5Byte当前的内部设备类型1Byte当前的内部设备编码3Byte,全0表示未配置过,非全0表示之前配置过设备业务编码长度1Byte设备业务编码N Byte5个字节的业务设备类型,需要向乐君申请,并且保存在从设备中设备业务编码是用从设备自行定义的设备ID字符串,不超过32字节2请求

11、配对回应主设备-从设备CMD Key,0 x01CMD ID1ByteRC1Byte,参考RC表分配的设备类型1Byte分配的设备ID3Byte3设备启动通知MCU/从设备-主设备CMD Key1Byte, 0 x01CMD ID1Byte版本号1Byte子设备类型1Byte,参考5.3章节:子设备类型表业务设备类型5Byte内部设备类型1Byte内部设备编码3Byte设备业务编码长度1Byte设备业务编码N Byte4设备启动通知的回应主设备-MCU/从设备CMD Key1Byte, 0 x01CMD ID1ByteRC1Byte, 参考RC表5WiFi就绪通知主设备-MCU/从设备CMD

12、Key1Byte, 0 x01CMD ID1Byte6WiFi断开通知主设备-MCU/从设备CMD Key1Byte, 0 x01CMD ID1Byte7云就绪通知主设备-MCU/从设备CMD Key1Byte, 0 x01CMD ID1Byte8云断开通知主设备-MCU/从设备CMD Key1Byte, 0 x01CMD ID1Byte9WiFi模块上电通知WiFi模块-MCUCMD Key1Byte, 0 x01CMD ID1ByteWiFi模块上电后定时发送上电通知给MCU,直至MCU上报上线通知给WiFi模块(适用于用于透传模式)10WiFi模块配置完成通知WiFi模块-MCUCMD

13、Key1Byte, 0 x01CMD ID1ByteRC1Byte,0成功,3超时,4退出11退出WiFi模块配置MCU-WiFi模块CMD Key1Byte, 0 x01CMD ID1Byte12退出WiFi模块配置回应WiFi模块-MCUCMD Key1Byte, 0 x01CMD ID1ByteRC1Byte,0成功,1失败13重新配置WiFi模块MCU-WiFi模块CMD Key1Byte, 0 x01CMD ID1Byte14重新配置WiFi模块回应WiFi模块-MCUCMD Key1Byte, 0 x01CMD ID1ByteRC1Byte,0成功,1失败15设置WiFi模块串口波

14、特率MCU-WiFi模块CMD Key1Byte, 0 x01CMD ID1ByteBaudrate4ByteBaudrate取值:9600192003840057600115200其他值返回fail默认值是960016设置WiFi模块串口波特率回应WiFi模块-MCUCMD Key1Byte, 0 x01CMD ID1ByteRC1Byte,0成功,1失败返回值以新设置的波特率发送17查询WiFi模块串口波特率MCU-WiFi模块CMD Key1Byte, 0 x01CMD ID1Byte18查询WiFi模块串口波特率回应WiFi模块-MCUCMD Key1Byte, 0 x01CMD ID

15、1ByteRC1Byte,0成功,1失败Baudrate4ByteWiFi模块命令起始32设备信息上报WiFi模块- Cloud/APPCMD ID1ByteNum1Byte,设备个数设备拥有者的小智IDstring, 10字节WiFi模块Mac地址ASCII,12字节GUIDASCII,17字节、设备业务编码长度1Byte、设备业务编码N Byte、固件版本1BYTE、设备硬件架构类型1BYTE、设置是否在线1Byte,若干MQTT主题:/b/SourceType/SourceID第一个设备是主设备设备硬件架构类型参考“设备硬件架构类型编码表”设备是否在线,0不在线,1在线33WiFi配置完

16、成通知WiFi模块-APPCMD ID1Byte设备GUIDASCII,17字节用户的小智IDstring, 10字节设备业务编码长度1Byte设备业务编码N ByteMQTT主题:/u/TargetType/TargetID34获取WiFi模块监控数据Cloud/APP-WiFi模块CMD ID1Byte35获取WiFi模块监控数据回应WiFi模块-Cloud/APPCMD ID1ByteWiFi模块连接信号强度1Byte,有符号的1个字节,一般范围在-100Dbm0DbmWiFi模块型号16byte, 小于16字节的字符串36设置WiFi配置信息APP/Cloud/串口控制端-设备CMD

17、ID1Byte是否设置拥有者ID1Byte,0不设置,1设置设备拥有者的小智IDstring, 10字节是否设置路由器信息1Byte,0不设置,1设置SSID Len,用户名长度1 BYTE,用户名长度小于等于32字节PWD Len,密码长度1 BYTE,密码小于等于64字节SSIDPWD37设置WiFi配置信息回应设备-APP/Cloud/串口控制端CMD ID1ByteRC(参考命令回应编码表:0成功,1失败38删除子设备APP/Cloud/串口控制端-设备CMD ID1ByteGUIDASCII,17字节39删除子设备回应设备- APP/Cloud/串口控制端CMD ID1ByteRC(

18、参考命令回应编码表:0成功,1失败40获取设备列表APP/Cloud/串口控制端-主设备 CMD ID1Byte41获取设备列表回应主设备-APP/Cloud/串口控制端CMD ID1ByteNum1Byte,设备个数设备拥有者的小智IDstring, 10字节WiFi模块Mac地址ASCII,12字节GUIDASCII,17字节、设备业务编码长度1Byte、设备业务编码N Byte、固件版本1BYTE、设备硬件架构类型1BYTE、设置是否在线1Byte,若干设备是否在线,0不在线,1在线44设置设备进入配对模式App/Cloud/串口控制端-设备CMD ID1Byte45设置设备进入配对模式

19、回应设备- App/Cloud/串口控制端CMD ID1ByteRC(参考命令回应编码表:0成功,1失败) BYTE47设置设备退出配对模式App/Cloud/串口控制端-设备CMD ID1Byte48设置设备退出配对模式回应设备- App/Cloud/串口控制端CMD ID1ByteRC(参考命令回应编码表:0成功,1失败) BYTE49请求同步时间设备-CloudCMD ID1Byte50请求同步时间回应Cloud-设备CMD ID1ByteRC(参考命令回应编码表:0成功,1失败) BYTERTC时间67Byte,格式是秒-分-时-日-月-年-星期几,各一个字节星期几的范围从17,1表示

20、星期一51扫描AP列表控制端-设备CMD ID1Byte52扫描AP列表回应设备到控制端CMD ID1ByteRC(参考命令回应编码表:0成功,1失败) BYTEAP Number1Byte,扫描到的AP数量AP信息 32Byte,SSID1Byte,RSSI信号强度若干SSID为字符串,最大32字节,返回数据中固定32字节位置存放SSID。信号强度取值范围0100所有设备公共命令起始64主MCU OTA传输文件Cloud-设备CMD ID1Byte总包数2Byte当前包号2Byte包内容N BYTE,最大长度102465主MCU OTA传输文件回应设备-CloudCMD ID1ByteRC(

21、参考命令回应编码表:0成功,1失败,32包号错误,33数据校验错误) 1 BYTE当前包号2Byte66设置出厂信息App/Cloud-设备CMD ID1Byte设备ID12 Byte设备业务ID长度1 Byte设备业务IDN Byte设备业务ID长度为0表示不需要设备业务ID暂时只需要工厂测试程序支持67设置出厂信息回应设备-App/CloudCMD ID1ByteRC(参考命令回应编码表:0成功,1失败68Debug Log输出控制App/Cloud-设备CMD ID1ByteDebug Log开关1Byte,0关,1开是否掉电保存1Byte,0掉电不保存,1掉电保存暂时云端实现69Deb

22、ug Log输出控制回应设备- App/CloudCMD ID1ByteRC(参考命令回应编码表:0成功,1失败70Debug Log信息输出设备- App/CloudCMD ID1Byte固件版本version1Byte日志类型LogType1ByteLog内容NByte,字符串71从MCU OTA传输文件Cloud-设备CMD ID1Byte总包数2Byte当前包号2Byte包内容N BYTE,最大长度1024用于升级主从MCU架构下的从MUC固件72从MCU OTA传输文件回应设备-CloudCMD ID1ByteRC(参考命令回应编码表:0成功,1失败,32包号错误,33数据校验错误)

23、 1 BYTE当前包号2Byte73云端推送通知信息CloudAPP/设备CMD ID1Byte推送信息内容nByte76OTA升级完成上报设备- Cloud/APPCMD ID1ByteRC1Byte, 0成功,1失败云端以这个命令作为OTA真正完成的判断标准 编码表5.1节点类型编码表节点类型编码类型名称5.2命令回应编码表031,公共错误码命令回应编码命令回应含义0成功1失败内部通讯公共RC值起始2配对失败,设备满3WiFi配置(Easy link)超时4WiFi配置(Easylink)退出531内部通讯公共RC值预留外部通讯公共RC值起始32OTA包号错误33OTA数据校验错误34当前

24、状态不允许OTA3563外部通讯公共RC值预留业务RC值起始64255业务错误码5.3 子设备类型表子设备类型描述1透传模式下的MCU设备2组网模式下的从设备5.4 设备硬件架构类型编码表设备硬件结构类型描述0单MCU架构1双MCU架构(WiFi模块+控制MCU模块)附录6.1 CRC校验算法static const uint8 c_crc_htalbe = / CRC 高8位查表0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x4

25、0, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1, 0 x81, 0 x40,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80,

26、 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1, 0 x81, 0 x40,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1, 0 x81, 0 x40,0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1, 0 x81, 0 x40,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0

27、x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1, 0 x81, 0 x40,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1

28、, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x00, 0 xC1, 0 x81, 0 x40, 0 x01,

29、0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1, 0 x81, 0 x40,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x

30、00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81, 0 x40;static const uint8 c_crc_ltalbe = / CRC校验查表低8位0 x00, 0 xC0, 0 xC1, 0 x01, 0 xC3, 0 x03, 0 x02, 0 xC2, 0 xC6, 0 x06, 0 x07, 0 xC7,0 x05, 0

31、xC5, 0 xC4, 0 x04, 0 xCC, 0 x0C, 0 x0D, 0 xCD, 0 x0F, 0 xCF, 0 xCE, 0 x0E,0 x0A, 0 xCA, 0 xCB, 0 x0B, 0 xC9, 0 x09, 0 x08, 0 xC8, 0 xD8, 0 x18, 0 x19, 0 xD9,0 x1B, 0 xDB, 0 xDA, 0 x1A, 0 x1E, 0 xDE, 0 xDF, 0 x1F, 0 xDD, 0 x1D, 0 x1C, 0 xDC,0 x14, 0 xD4, 0 xD5, 0 x15, 0 xD7, 0 x17, 0 x16, 0 xD6, 0 xD

32、2, 0 x12, 0 x13, 0 xD3,0 x11, 0 xD1, 0 xD0, 0 x10, 0 xF0, 0 x30, 0 x31, 0 xF1, 0 x33, 0 xF3, 0 xF2, 0 x32,0 x36, 0 xF6, 0 xF7, 0 x37, 0 xF5, 0 x35, 0 x34, 0 xF4, 0 x3C, 0 xFC, 0 xFD, 0 x3D,0 xFF, 0 x3F, 0 x3E, 0 xFE, 0 xFA, 0 x3A, 0 x3B, 0 xFB, 0 x39, 0 xF9, 0 xF8, 0 x38,0 x28, 0 xE8, 0 xE9, 0 x29,

33、0 xEB, 0 x2B, 0 x2A, 0 xEA, 0 xEE, 0 x2E, 0 x2F, 0 xEF,0 x2D, 0 xED, 0 xEC, 0 x2C, 0 xE4, 0 x24, 0 x25, 0 xE5, 0 x27, 0 xE7, 0 xE6, 0 x26,0 x22, 0 xE2, 0 xE3, 0 x23, 0 xE1, 0 x21, 0 x20, 0 xE0, 0 xA0, 0 x60, 0 x61, 0 xA1,0 x63, 0 xA3, 0 xA2, 0 x62, 0 x66, 0 xA6, 0 xA7, 0 x67, 0 xA5, 0 x65, 0 x64, 0 xA4,0 x6C, 0 xAC, 0 xAD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论