一种基于蓝牙和Lora双模式升级的方法及系统与流程

文档序号:17695614发布日期:2019-05-17 21:29阅读:246来源:国知局
一种基于蓝牙和Lora双模式升级的方法及系统与流程

本发明涉及物联网设备升级维护领域,主要是一种基于蓝牙和lora双模式升级的方法及系统。



背景技术:

随着物联网技术的快速发展,各种功耗低,传输距离远的物联网产品层出不穷。lora技术作为众多物联网技术中的一种,其拥有着低成本,低功耗,覆盖范围广等诸多优点,在物联网解决方案中扮演着重要的角色。目前,国内多家公司如阿里巴巴、腾讯等互联网巨头宣布加入lora联盟,而阿里巴巴更表示在未来五年内连接100亿台基于lora的物联网设备,使得lora技术在国内的发展迎来又一个春天。然而,面对如此多的物联网设备,其更新维护就成了一个很大的问题,当物联网设备的软件需要升级时,就需要维护人员去现场操作,甚至直接更换产品,这样会浪费大量的人力和物力。为解决这种不便性,当前有通过lora方式对物联网设备进行远程升级,但是lora传输速率过慢,传输一个50kb的升级包也需要近20分钟的时间,当给多个物联网设备升级时,就显得有点力不从心了。

为解决lora传输速率过慢的问题,专利cn107508702a公开了一种基于蓝牙的lora模块设置及固件升级系统及方法,包括有移动终端及物联网模块,物联网模块包括蓝牙芯片、lora模块及传感器,其中lora模块与蓝牙芯片连接,蓝牙芯片与移动终端通过蓝牙协议连接;所述蓝牙芯片用于接收移动终端发送的配置信息及固件,并将蓝牙数据发送给lora模块,lora模块能回传数据至蓝牙芯片,同时传感器把接收的信息传给蓝牙芯片,蓝牙芯片将接收的信息发送回移动终端。该发明的升级方法是物联网模块通过蓝牙芯片接收配置信息和固件,并根据配置信息设置lora模块和升级lora模块驱动,lora模块根据配置信息和驱动完成对应的设置操作。该发明不足在于:1、传输方式仅限于蓝牙,距离较短,当物联网模块处于人力难以到达的地方时便无法进行升级物联网模块;2、只公开了根据物联网模块物联网模块信息对比固件版本,即采用的是简单的版本号比对,这种方式并不能完全保证物联网模块上的软件和需要更新的升级包相同或不同;3、无法保证升级包的可靠传输,由于传输过程由蓝牙模块作为升级中转站,蓝牙模块的无线接收和串口传输均可能出现错误,导致接收的传输包有误,物联网模块升级一个错误的升级包后很可能无法正常工作甚至无法升级;4、lora固件信息并未通过蓝牙广播出来,升级时需要对每台物联网模块进行连接后才读取版本信息,然后决定是否升级,最后断开连接,连接和断开连接操作会浪费一定时间,当批量升级时,浪费的时间会更多;5、只能针对lora模块升级,当需要同时给蓝牙模块升级时,很可能会因为自身内存不够而无法下载升级包;6、蓝牙模块处于持续工作状态,增加物联网模块功耗,当物联网模块使用电池供电时,相同电量的电池使用时间会短很多。



技术实现要素:

本发明的目的在于克服现有技术存在的不足,而提供一种基于蓝牙和lora双模式升级的方法及系统,解决当物联网设备需要软件升级时,维护人员需要现场操作而带来的大量人力和物力的浪费。

本发明的目的是通过如下技术方案来完成的。一种基于蓝牙和lora双模式升级的方法,根据升级的不同需求情况,选择lora方式升级或者蓝牙方式升级,解决在不同的场景对升级有不同需求的情况,如物联网模块部署在危险或难以达到的地方(如江面或悬崖边)时,采用lora升级,此时对升级速度要求不大;对部署在密度较高的地方或物联网模块未出厂但软件需要更新时,可采用蓝牙方式升级,具体升级步骤如下:

方式一:通过蓝牙方式升级

步骤1:移动终端从服务器上下载蓝牙模块和lora模块的升级包和校验码,计算并存储对应升级包的校验码;

步骤2:移动终端获取设备的蓝牙模块和lora模块的校验码;

步骤3:移动终端将物联网设备中蓝牙模块和lora模块的校验码分别与自身存储的校验码进行比对,校验码不一致则发送对应的升级包,校验码一致则继续搜索下一个物联网设备;

步骤4:物联网设备接收升级包并启动蓝牙模块或lora模块升级;

步骤5:物联网设备升级完后将各自的校验码更新到蓝牙模块的广播中;

方式二:通过lora方式升级

步骤1:物联网设备的lora模块发送lora模块的校验码和该lora模块的相关信息给服务器,服务器收到后保存;

步骤2:服务器计算本地存储的lora模块的软件校验码,遍历保存的lora模块校验码列表,对不一致校验码对应的物联网设备的lora模块发送lora模块升级请求;

步骤3:lora模块接收服务器发送的lora模块升级包并启动升级;

步骤4:lora模块升级完后将lora模块校验码发送给蓝牙模块,蓝牙模块再将其更新到广播中。

作为本发明优选的技术方案:通过蓝牙方式升级时,移动终端下载完升级包后计算本地的蓝牙模块、lora模块的校验码,然后与从服务器接收的蓝牙模块、lora模块的校验码进行比对,若不一致则重新下载校验码不同的升级包。

作为本发明优选的技术方案:通过蓝牙方式升级时,物联网设备将蓝牙模块和lora模块的校验码存放于蓝牙广播内容中,移动终端通过唯一指定识别码uuid和自定义字段搜索指定物联网设备的广播,解析广播内容即可获取蓝牙模块和lora模块的校验码。

作为本发明优选的技术方案:通过蓝牙方式升级时,若移动终端存储的校验码与物联网设备中蓝牙模块和lora模块的校验码不一致,则移动终端对物联网设备发起连接,发送相应的升级包和升级包对应的校验码,升级包传输完成后直接搜索下一台物联网设备,连接后的具体步骤如下:

a:若只有蓝牙模块校验码不同,则发送蓝牙升级包和对应的校验码,物联网设备上的蓝牙模块在收到蓝牙升级包后首先计算蓝牙升级包的校验码,若与接收到的校验码一致,则存储蓝牙升级包的校验码并启动升级,然后更新广播内容中蓝牙模块软件校验码,否则丢弃升级包,并保持原来的蓝牙软件包对应的校验码;

b:若只有lora模块的校验码不同,则发送lora升级包和对应的校验码,物联网设备上的蓝牙模块在收到lora升级包后首先计算lora升级包的校验码,若与接收到的校验码一致,则启动lora升级,否则丢弃升级包;启动lora升级时,蓝牙模块通过串口给lora模块发送升级指令,待lora模块返回可升级响应后,传输lora升级包数据和lora升级包的校验码给lora模块,lora模块在收到lora升级包后首先计算lora升级包的校验码,若与接收到lora升级包的校验码一致,则启动升级,否则丢弃升级包,并重新下载lora升级包,若多次下载后校验码仍不一致,则放弃升级,并返回升级失败的响应给蓝牙模块,蓝牙模块读取响应解析升级失败的原因,发送至移动终端;若升级成功,则将lora模块的校验码通过串口发送给蓝牙模块,蓝牙模块接收后存储并更新广播内容中的lora模块软件校验码;

c:若lora模块和蓝牙模块的校验码均不同,则先执行步骤b,再执行步骤a,即先升级lora模块,再升级蓝牙模块。

作为本发明优选的技术方案:通过lora方式升级时,lora模块在收到lora升级包后首先计算lora升级包的校验码,若与接收到lora升级包的校验码一致,则启动升级并存储lora升级包的校验码,然后将lora升级包的校验码通过串口发送给蓝牙模块,并更新蓝牙广播内容中的lora模块软件校验码,否则丢弃升级包,保持原来的lora软件包的校验码不变,并返回升级失败的响应给服务器,服务器读取响应解析升级失败的原因。

作为本发明优选的技术方案:通过lora方式升级时,对不一致校验码对应的设备发送升级请求后,需要等待其返回可升级的响应才开始启动升级。

作为本发明优选的技术方案:所述物联网设备中蓝牙模块、lora模块,移动终端和服务器采用的校验方式均一致,保证同一个升级包计算出的校验码相同。

作为本发明优选的技术方案:所述移动终端、物联网设备中的蓝牙模块、lora模块的下载失败次数超过预设最大下载失败次数便停止继续下载,并返回失败原因,所述最大下载失败次数设置为3次。

作为本发明优选的技术方案:所述校验码为奇偶校验码、crc校验码或其他能保证可靠通信的校验方式计算出的校验码。

作为本发明优选的技术方案:由于增加蓝牙模块是为了方便升级,lora模块为主要工作单元,为节省升级时间,在采用lora方式升级时则不支持升级蓝牙软件,只能升级lora模块。

作为本发明优选的技术方案:升级方式可选,当设备处于人力难以到达的地方时可选用lora方式升级,当设备处于部署密集的地方时可采用蓝牙方式升级;或者同一设备在出厂前需要更新软件时可用蓝牙升级,出厂后放置在人力难以到达的地方选用lora方式升级。

需要说明的是:为避免同一时刻两种升级方式同时进行,升级前会发送升级指令,物联网设备收到升级指令后给出是否可升级的响应,通过该响应可判断物联网设备当前是否可升级。每次下载升级包后都会重新计算下载后升级包的校验码与传输的校验码,不一致则丢弃升级包,避免升级包在传输过程中受损,物联网设备在升级受损的升级包后出现致命的软件问题以至于无法再升级,必须维护人员去现场操作。

本发明公开了一种基于蓝牙和lora双模式升级系统,主要包括物联网设备、移动终端、lora网关和服务器,其中物联网设备主要包括蓝牙模块、lora模块、存储模块、电源模块;所述蓝牙模块与lora模块通过串口连接,所述蓝牙模块采用蓝牙的方式与移动终端连接,所述lora模块输入输出端连接lora网关输入输出端,lora网关连接系统的服务器;所述存储模块的输入输出端分别与所述蓝牙模块和lora模块的输入输出端采用spi总线连接;

所述蓝牙模块用于接收移动终端发出的指令和升级包,并且广播出当前lora模块和蓝牙模块的软件校验码;

所述存储模块用于存储蓝牙模块和lora模块的升级包;

所述电源模块用于给蓝牙模块,lora模块和存储模块供电;

所述移动终端用于下载服务器的升级包,对物联网设备发送控制指令,并对物联网设备蓝牙模块和lora模块进行升级;

所述lora网关用于lora模块接入服务器,转发服务器和lora模块的数据;

所述服务器用于存储蓝牙模块和lora模块的升级包,对校验码不同的物联网设备蓝牙模块和lora模块进行升级,并发送控制指令给lora模块。

作为本发明优选的技术方案:所述存储模块包括flash存储器a、flash存储器b,通过spi总线分别与蓝牙模块和lora模块通信,其中与蓝牙模块连接的flash存储器a存储蓝牙模块升级包和lora模块升级包,与lora模块连接的flash存储器b存储lora模块的升级包。

作为本发明优选的技术方案:所述电源模块连接电源控制模块,用于控制蓝牙模块和与其连接的flash存储器a的供电,当物联网设备对功耗要求较高时(如采用电池供电),由服务器应用程序发送相关控制指令给lora模块,lora模块控制电源控制模块来断开蓝牙模块和与其连接的flash存储器a的供电。

本发明的有益效果为:

1、两种升级方式可选,可充分利用蓝牙传输速率快和lora传输距离远的特点,取长补短,针对不同场合选用不同的升级方式对物联网设备进行升级。

2、移动终端直接扫描广播信息即可确定物联网设备是否需要升级,无需连接蓝牙后再连接。蓝牙每次连接再退出连接至少需要约3s以上的时间,当大批量升级时,就会耗费很长时间。本发明中蓝牙模块将蓝牙模块和lora模块软件校验码直接广播出来,减少通过移动终端升级的时间。

3、移动终端可批量升级,当发现物联网设备的校验码不同时传输升级包,相同则扫描下一个广播,这样只需在终端界面上点击一下按钮,移动终端自动批量升级,大大减轻操作人员的工作量。

4、由于是无线传输,容易受到干扰而导致传输出错,使升级包受损,当物联网设备升级了受损的升级包后,很可能物联网设备无法启动,且以后都无法进行远程升级,必须维护人员现场操作。本发明在每次下载时均比对校验码,确保升级过程稳定可靠。

5、随着功能的更新,升级包会越来越大,模块自身的存储空间不足以再次存储升级包。本发明中蓝牙模块和lora模块均配备有flash存储器,可防止模块自带的存储空间不够而无法接收升级包的情况。

6、物联网设备接收到升级包并校验成功后,首先得让物联网设备自身进入升级模式,然后读取flash存储器中的升级包至自身的存储空间,才能完成升级操作,这样比较浪费时间。本发明中移动终端或服务器传输完升级包后便寻找下一个需要升级的物联网设备,缩短整个升级时间。

7、lora模块一般采用电池进行供电,为方便升级而增加的蓝牙模块工作时会增加物联网设备功耗,缩短电池使用时间,使得更换电池频率提升,增加维护成本。本发明中通过lora模块控制蓝牙模块是否工作,可降低物联网设备功耗。

附图说明

图1为本发明的系统方框示意图。

图2为蓝牙方式的升级流程示意图。

图3为lora方式的升级流程图。

附图标记说明:1-蓝牙模块,2-lora模块,3-存储模块,4-电源模块,5-电源控制模块,6-移动终端,7-lora网关,8-服务器。

具体实施方式

下面将结合附图对本发明做详细的介绍:

如图1所示,一种基于蓝牙和lora双模式升级系统,主要包括物联网设备、移动终端6、lora网关7和服务器8,其中物联网设备主要包括蓝牙模块1、lora模块2、存储模块3、电源模块4;所述存储模块3包括flash存储器a、flash存储器b,所述蓝牙模块1与lora模块2通过串口连接,所述蓝牙模块1采用蓝牙的方式与移动终端6连接,所述蓝牙模块1用于接收移动终端7发出的指令和升级包,并且广播出当前lora模块和蓝牙模块的软件校验码。所述的lora模块2连接lora网关7,lora网关7连接系统的服务器8。所述flash存储模块a、flash存储模块b的输入输出端分别与所述蓝牙模块和lora模块的输入输出端采用spi总线进行通信,flash存储器a存储蓝牙升级包和lora升级包,flash存储器b存储lora升级包。所述电源模块的输出端与lora模块输入端、flash存储器a输入端、flash存储器b输入端,电源控制模块输入端连接;电源模块用于给蓝牙模块,lora模块和2个flash存储器供电。所述电源控制模块5的输出端与蓝牙模块输入端连接,所述电源控制模块5用于控制电源模块是否对蓝牙模块进行供电,由服务器应用程序发出控制指令给lora模块,再由lora模块控制电源控制模块是否对蓝牙模块供电。所述移动终端用于下载服务器的升级包,对物联网设备发送控制指令,并对物联网设备蓝牙模块和lora模块进行升级;所述lora网关用于lora模块接入服务器,转发服务器和lora模块的数据;所述服务器用于存储蓝牙模块和lora模块的升级包,对校验码不同的物联网设备蓝牙模块和lora模块进行升级,并发送控制指令给lora模块。

实施例1:如图2所示的蓝牙方式升级流程图(升级包传输有误后需要重新传输的步骤省略);应用的场景为:物联网设备未出厂但是软件有更新,需要批量升级物联网设备软件。

步骤如下:

1:移动终端从服务器上下载需要更新的蓝牙和lora升级包和对应升级包的校验码,分别计算下载的升级包的校验码,若其中一个或两个升级包与服务器上的不同,则重新下载校验码不同的升级包。

2:物联网设备上的蓝牙模块广播出蓝牙模块上软件的校验码和lora模块上软件的校验码。

3:移动终端搜索物联网设备,通过uuid和自定义字段搜索指定物联网设备,解析物联网设备广播出的蓝牙模块和lora模块的校验码。

4:将物联网设备上的蓝牙模块和lora模块的校验码与移动终端存储的蓝牙模块和lora模块的校验码进行比较,若都相同,则继续搜索下一个物联网设备,否则只要其中有一个不同,则移动终端发起连接,发送相应的升级包和升级包对应的校验码,升级包传输完成后直接搜索下一台物联网设备。连接后的具体操作如下:

a:若只有蓝牙模块校验码不同,则发送蓝牙升级包和对应的校验码,物联网设备上的蓝牙模块在收到蓝牙升级包后存储至flash存储器a内,然后计算蓝牙升级包的校验码,若与接收到的校验码一致,则存储蓝牙升级包的校验码并启动升级,然后更新广播内容中蓝牙模块软件校验码,否则丢弃升级包,并保持原来的蓝牙软件包对应的校验码。

b:若只有lora模块的校验码不同,则发送lora升级包和对应的校验码,物联网设备上的蓝牙模块在收到lora升级包后存储至flash存储器b内,然后计算lora升级包的校验码,若与接收到的校验码一致,则启动lora升级否则丢弃升级包。启动lora升级时,蓝牙模块通过串口给lora模块发送升级指令,待lora模块返回可升级响应后,传输lora升级包数据和lora升级包的校验码给lora模块,lora模块在收到lora升级包后首先计算lora升级包的校验码,若与接收到lora升级包的校验码一致,则启动升级,否则丢弃升级包,并重新下载lora升级包,若多次下载后校验码仍不一致,则放弃升级,并返回升级失败的响应给蓝牙模块,蓝牙模块读取响应解析升级失败的原因,发送至移动终端。若升级成功,则将lora模块的校验码通过串口发送给蓝牙模块,蓝牙模块接收后存储并更新广播内容中的lora模块软件校验码。

c:若lora模块和蓝牙模块的校验码均不同,则先执行步骤b,则执行步骤a,即先升级lora模块,再升级蓝牙模块。

实施例2:如图3所示的lora方式的升级流程图,应用场景为:物联网设备部署在江面中心来监测水深。

步骤如下:

1:物联网设备首次被部署并上电,lora模块加网成功后发送lora模块的软件的校验码和lora模块编号等信息给服务器,等待服务器返回接收成功的响应。

2:服务器端将接收到的校验码和lora模块编号等信息存储至lora模块信息列表。

3:维护人员在服务器端更新物联网设备软件。

4:服务器计算所更新的物联网设备软件的校验码,然后与自身存储的lora模块信息列表中的校验码进行比对,当二者不一致时,对不一致的lora模块发出升级指令,等待其响应。

5:lora模块收到服务器的升级指令后,若当前未处于升级状态,则向服务器回应可升级的响应。

6:服务器接收到物联网设备可升级的响应后,开始通过lora方式传输lora升级包和校验码。

7:lora模块接收到lora升级包后将其存入flash存储器b内,然后计算接收的升级包的校验码,并与与接收的校验码比对,若一致,则存储该校验码,并将校验码通过串口方式传输至蓝牙模块,蓝牙模块更新广播的lora模块的校验码,然后lora模块读取flash存储器b的内容,启动升级。

8:服务器应用程序下发指令关闭蓝牙和flash存储器a的供电,以降低功耗。

可以理解的是,对本领域技术人员来说,对本发明的技术方案及发明构思加以等同替换或改变都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1