机智云开发手册.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机智云开发手册

第一章:通信协议分析 ———以微信宠物屋为例 微信宠物屋是机智云提供的一套完整的基础例程,在了解相关通信流程之后,我们可在该程序基础上开发自己的程序,实现与云服务的对接,进而达到远程控制的目的,接下来我们就来仔细分析下机智云的“M2M”机制到底是如何“跑起来的”。 第一节:文档说明部分详解 第一步:我们打开微信宠物屋程序gokit-mcu-master:看到他的目录结构如下 其中:MDK_Project即是STM32的程序入口,在分析程序之前我们先来看一下《宠物屋产品设备端开发指南》了解一下该程序实现的功能和串口协议的规定是怎样的。 首先:我们来看产品信息,该处定义了相关的数据点(如何建立数据点请访问)和宠物屋实现的功能,包括:调节RGB三色灯、电机转速、红外探测等。这些大家了解就行。其中需要大家特别注意的是“设备识别码”这个关键词,可以看到微信宠物屋的识别码是“6f3074f4f1314bd7e3ae0b”,机智云对于每一款产品都会生成唯一的识别码以作区分,待会我们将在程序中找到定义识别码的位置。 其次:我们来看产品信息,可以看到流程图上清楚的介绍了整个协议工作的流程,简单分析一下,其实可以分为两部分处理: 第一部分、按键事件发生:主要用于MCU处理按键事件发生后与WIFI的通讯处理。 第二部分、串口事件发生:机智云是通过WIFI模块与MCU以串口通信来实现的,所以下面的这些有关WIFI的事件都可以归类为串口事件的发生,包括:Wifi 发送控制命令、Wifi 发送查询命令、Wifi 发送心跳命令、Wifi 状态更新、外设状态变化。 总体来说,整个系统上电之后的流程如下: 1)MCU 先上电,初始化完成后,给模块上电; 2) 模块初始化; 3) 模块向MCU 询问必要信息,MCU 返回信息(见协议举例); 4) 进入正常工作循环; a) 模块给MCU 下发控制命令(见协议举例); b) MCU 返回确认,表示收到命令,正在执行(见协议举例); c) 执行完新控制命令后,无论状态是否发生变化,MCU 都需要通知模块最新状态(见 协议举例); d) 若MCU 检测到环境属性变化或者用户在设备上按键引起的状态变化,MCU 需要 通知模块最新状态,但是其发送的频率不能快于2 秒每次(见协议举例); e) 若环境状态一直不变化,MCU 需要每隔10 分钟定期主动上报当前状态f) 模块会 向MCU 发送心跳,MCU 收到后按照格式返回即可(见协议举例);MCU 连续180 秒 收不到模块的数据,即可认为模块异常,可以给模块重新上电; 最后:我们来了解具体通讯协议的约定,可以看到 命令格式:header(2B)=0xFFFF, len(2B), cmd(1B), sn(1B), flags(2B),DATA(XB),checksum(1B) 说明: 1) 包头(header)固定为0xFFFF; 2) 长度(len)是指从cmd 开始到整个数据包结束所占用的字节数; 3) 命令字(cmd)表示具体的命令含义,详见协议举例; 4) 消息序号(sn)由发送方给出,接收方响应命令时需把消息序号返回给发送方; 5) 标志位(flag),本产品填写默认0; 6) p0 数据区(DATA),详细参见p0 数据区约定; 7) 检验和(checksum)的计算方式为从len~DATA,按字节求和; 8) 所有发送的命令都带有确认,如在200 毫秒内没有收到接收方的响应,发送方;应重 发,最多重发3 次; 9) 多于一个字节的整型数字以大端字节序编码(网络字节序); 10) 数字均用16 进制表示; 相信这一部分大家都能看懂,这里不再叙述,接下来看到“p0 数据区约定”,实现如下功能: 模块向MUC 发送控制命令时携带p0 命令和命令标志位以及可写数据区 MCU 主动发送状态时或者回复wifi 模块的状态查询时携带p0 命令和完整数据区 数据区会自动合并布尔和枚举变量,且有严格的顺序,不可任意改变 怎么来理解这三个功能呢?我们知道在机智云上定义数据点完成后,系统会自动生成对应的“串口通讯协议”如下图所示: 我们下载这份通讯协议文档打开,可以看到具体有如下命令: 1)WiFi模组请求设备信息 2)WiFi模组与设备MCU的心跳 3)设备MCU通知WiFi模组进入配置模式 4) 设备MCU重置WiFi模组 5)WiFi模组向设备MCU通知WiFi模组工作状态的变化 6) WiFi模组请求重启MCU 7)非法消息通知 8)WiFi模组读取设备的当前状态 9)设备MCU向Wi

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档