[发明专利]一种基于MQTT通讯协议的单片机固件升级通讯方法有效
申请号: | 202011139933.0 | 申请日: | 2020-10-22 |
公开(公告)号: | CN112291323B | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | 王维;黄海峰;邢瑞毅;王天瑞;苏慧杰 | 申请(专利权)人: | 上海电科智能系统股份有限公司;上海建工集团股份有限公司 |
主分类号: | H04L67/12 | 分类号: | H04L67/12;H04L67/00;H04L41/082;G06F8/65 |
代理公司: | 上海璀汇知识产权代理事务所(普通合伙) 31367 | 代理人: | 王文颖 |
地址: | 200063 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mqtt 通讯 协议 单片机 升级 方法 | ||
1.一种基于MQTT通讯协议的单片机固件升级通讯方法,包括上位机、MQTT服务器及物联网设备,其中,MQTT服务器位于云端,上位机和物联网设备均为MQTT客户端,上位机和物联网设备之间通过MQTT服务器交互Json数据,其特征在于,所述单片机固件升级通讯方法包括以下步骤:
步骤1、若新的固件发布,则上位机启动后加载新固件的镜像文件,并获取新固件的版本号;
步骤2、上位机通过对固件版本字段Ver的订阅,确保固件版本字段Ver更新为新固件的版本号的值;
步骤3、上位机订阅物联网设备通讯字段Device和上位机通讯字段Host,通过对上位机通讯字段Host的订阅,确保上位机通讯字段名Host可成功更新;
步骤4、物联网设备上电启动后进入Bootloader程序,通过对固件版本字段名Ver的订阅获得最新的固件版本号A,将固件版本号A与当前物联网设备的当前固件版本号B进行比较,若固件版本号A大于当前固件版本号B,则进入步骤5,否则,进入步骤8;
步骤5、物联网设备申请进行固件下载,包括以下步骤:
步骤501、物联网设备更新物联网设备通讯字段Device的值为固件版本号A;
步骤502、上位机获取更新后的物联网设备通讯字段Device,核对物联网设备通讯字段Device中的版本号与固件版本字段Ver对应的版本号,如相符则更新上位机通讯字段Host为固件参数,否则更新上位机通讯字段Host为表示放弃操作的值;
步骤503、物联网设备在周期T内获取上位机通讯字段Host,若获取失败,则进入步骤505,若获取成功,则进入步骤504;
步骤504、若上位机通讯字段Host为固件参数,则擦除对应ROM,更新物联网设备通讯字段Device为表示请求第i+1行内容的值后将进入步骤6,i值初始化为0,物联网设备将变量C赋值为i值,若上位机通讯字段Host为表示放弃操作的值,则进入步骤8;
步骤505、若重复获取次数超过最大重复次数K,则进入步骤8,否则返回步骤501;
步骤6、进行固件传输,包括以下步骤:
步骤601、上位机获取物联网设备通讯字段Device,将i值更新为i+1后,更新上位机通讯字段Host,将上位机通讯字段Host的值更新为i值以及新固件的镜像文件第i行的内容;
步骤602、物联网设备获取上位机通讯字段Host,先判断上位机通讯字段Host中的i值是否为C+1,若不是,则将当前数据包丢弃,请求上位机重发数据包;若上位机通讯字段Host中的i值是为C+1,则解析上位机通讯字段Host中所包含的新固件的镜像文件第i行的内容,写入ROM,将变量C赋值为更新后的i值,进入步骤603;
步骤603、判断变量C的值是否小于新固件的镜像文件的最大行数,若是,则将物联网设备通讯字段Device更新为表示请求第i+1行内容的值后,返回步骤601,若不是,则进入步骤7;
步骤7、物联网设备进行固件完整性校验,若完整性校验成功,则将结果和新固件版本号写入ROM,单次更新物联网设备通讯字段Device为表示固件更新成功的值,跳转至步骤8;若完整性校验失败,则单次更新物联网设备通讯字段Device为表示固件更新失败的值,重启物联网设备;
若上位机获取的物联网设备通讯字段Device为表示固件更新成功的值或为表示固件更新失败的值,则更新上位机通讯字段Host为空字段;
步骤8、跳转进入App程序,物联网设备正常工作。
2.如权利要求1所述的一种基于MQTT通讯协议的单片机固件升级通讯方法,其特征在于,所述步骤2或步骤3中,对所述固件版本字段Ver或所述上位机通讯字段Host的订阅及更新包括以下步骤:
步骤201:以固定数据重发周期T,对固件版本字段Ver或上位机通讯字段Host进行更新,并获取更新后的固件版本字段Ver的值或上位机通讯字段Host的值,设上位机在当前数据重发周期T内更新的固件版本字段Ver的值或上位机通讯字段Host的值为V1,进入步骤202;
步骤202:上位机在当前数据重发周期T内获得固件版本字段Ver的值或上位机通讯字段Host的值为V2,进入步骤203;
步骤203:若V1=V2,则固件版本字段Ver或上位机通讯字段Host更新成功,结束对固件版本字段Ver或上位机通讯字段Host的订阅,否则,返回步骤201。
3.如权利要求1所述的一种基于MQTT通讯协议的单片机固件升级通讯方法,其特征在于,所述步骤4中,所述物联网设备运行自带定时重启功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海电科智能系统股份有限公司;上海建工集团股份有限公司,未经上海电科智能系统股份有限公司;上海建工集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011139933.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种漫反射隧道防火涂层及施工方法
- 下一篇:一种门锁结构及具有该结构的充电桩