CN112181454A - 一种无人值守设备的远程升级系统及方法 - Google Patents
一种无人值守设备的远程升级系统及方法 Download PDFInfo
- Publication number
- CN112181454A CN112181454A CN202010997890.3A CN202010997890A CN112181454A CN 112181454 A CN112181454 A CN 112181454A CN 202010997890 A CN202010997890 A CN 202010997890A CN 112181454 A CN112181454 A CN 112181454A
- Authority
- CN
- China
- Prior art keywords
- equipment
- upgrading
- app
- cloud
- upgrade
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 19
- 238000012795 verification Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 230000007704 transition Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种无人值守设备的远程升级系统及方法,系统包括设备端嵌入式APP升级管理组件、设备端嵌入式引导加载模块以及云端升级管理模块;云端升级管理模块与设备端嵌入式APP升级管理组件进行通信决定是否发起升级,与设备端嵌入式引导加载模块进行无线通信控制发送升级包到设备,设备端嵌入式APP升级管理组件用于接收云端升级管理模块的升级命令并复位设备,设备端嵌入式引导加载模块用于升级包的接收、搬运和跳转执行。本发明提供的远程升级方法克服了现有无人值守设备固件升级依赖本地升级或远程升级不具备断点续传能力的问题,能够有效的降低无人值守类设备的运营和维护成本。
Description
技术领域
本发明属于物联网设备的固件升级领域,涉及一种无人值守设备的远程升级系统及方法。
背景技术
随着物联网技术的发展,越来越多的无人值守设备参与到了各行业的各个生产环节中,无人值守设备的数量庞大,并且部分无人值守设备由于其工作的特殊性,部署在人员不便到达的区域。设备一旦安装,不便在现场进行固件版本更新和维护。
目前,无人值守设备的固件升级依赖本地升级或现场升级的方式,效率低下,即使远程升级也不具备断点续传的能力,为软件的更新带来不便和资源浪费。
发明内容
本发明的目的在于针对上述现有技术中无人值守设备固件升级操作不便的问题,提供一种无人值守设备的远程升级系统及方法,有效降低无人值守类设备的运营和维护成本。
为了实现上述目的,本发明有如下的技术方案:
一种无人值守设备的远程升级系统,包括设备端嵌入式APP升级管理组件APPM、设备端嵌入式引导加载模块BSL以及云端升级管理模块OTAM;所述的云端升级管理模块OTAM与设备端嵌入式APP升级管理组件APPM进行通信决定是否发起升级,与设备端嵌入式引导加载模块BSL进行无线通信控制发送升级包到设备,设备端嵌入式APP升级管理组件APPM用于接收云端升级管理模块OTAM的升级命令并复位设备,设备端嵌入式引导加载模块BSL用于升级包的接收、搬运和跳转执行,如果在设定的升级重试次数后仍然无法正确升级,则云端升级管理模块OTAM使设备复位执行原APP;在升级包的下载过程中设备端通过引入“断点”位置,记录下载传输进度,保证远程升级具备断点续传功能;设备端存储空间划分为3部分:DOWN区,用于存储升级包APP的代码,既是下载缓存区又是升级包备份区;APP区,用于存储运行时的APP代码;BSL区,用于存储BSL代码。
所述设备端嵌入式引导加载模块BSL的功能包括软件初始化、通信、升级包下载、DOWN区校验、搬运、APP区校验以及跳转准备;所述的“断点”位置基于升级包数据块的索引号,设备记录升级包数据块的索引号并不断更新,当发生网络传输中断后,下次OTA时通过上报记录的“断点”位置实现升级包续传;整个升级包依据每次传输的数据量大小分割为若干数据块,总数记为C,由Dstart表示DOWN区的起始地址,Astart表示APP区的起始地址,Δ表示DOWN区相对APP区的地址偏移量,AddrA(i)表示索引号为i的数据块在APP区的起始地址,AddrD(i)表示索引号为i的数据块在DOWN区的起始地址,则满足以下公式:
Δ=Dstart-Astart
AddrD(i)=AddrA(i)+Δ,i∈[0,C)
设备接收、存储数据块并更新“断点”位置,记为BPL,b表示发生网络传输中断的“断点”位置,i表示数据块索引号,则满足以下公式:
BPL=b,b∈[-1,C)
i∈[0,C)
且i=b+1当b∈[-1,c-1)
当“断点”位置BPL=C-1时,云端发送整个升级包的校验值,设备收到升级包校验值之后,更新BPL=-1,从而保证无论断点发生在升级包数据块的传输过程中还是升级包校验值传输时,均能够达到“断点续传”的效果。
所述的设备端嵌入式APP升级管理组件APPM是嵌入式APP的一个功能组件,该组件收到云端升级管理模块OTAM的远程升级命令时完成以下两步操作:1)置位OTAF;2)使设备复位,进入设备端嵌入式引导加载模块BSL的程序入口,开始OTA过程;所述的OTAF为设备端升级标识,当OTAF等于1代表云端干预的升级,当OTAF等于0代表备份升级。
所述的云端升级管理模块OTAM有两部分功能:1)与设备APP软件通信,当有新的APP升级包时,发送“远程升级”命令到APP;2)与设备端嵌入式引导加载模块BSL之间进行软件通信,控制OTA升级过程,根据设备当前升级包“断点”位置续传升级包。
本发明同时提供一种无人值守设备的远程升级方法,包括以下步骤:
1)当有新的APP版本时,发起升级需求,设置设备升级命令;
2)接收升级命令置位设备端升级标识OTAF,并复位设备;
3)运行设备端嵌入式引导加载模块BSL,上报最近一次OTA的状态及升级包“断点”位置BPL=[-1,C),其中C表示升级包的数据块个数,然后清零设备端升级标识OTAF;
4)云端获得“断点”位置,令当前数据块索引Icur=BPL+1;
5)云端发送索引号为Icur的数据块,设备接收数据块并存储到DOWN区,校验当前数据块,校验正确则更新“断点”位置,即BPL=Icur,并向云端应答“成功”,云端获取下一个数据块继续校验;否则向云端应答“失败”,云端重发该数据块,若设备连续若干次应答“失败”,云端向设备发送“复位”命令,使设备复位,运行原APP;
6)云端将升级包全部下发完毕后,向设备发送整个升级包的包校验值,设备更新“断点”位置BPL=-1;
7)设备端对DOWN区的升级包进行校验,校验结果与云端下发的包校验值进行比较,若二者相等,向云端发送“校验成功”;否则,向云端发送“校验失败”,返回步骤4)重新执行;
8)设备端进行升级包的搬运,由DOWN区搬运到APP区,搬运完成后对APP区升级包校验,校验成功则进行下一步;否则重新搬运,当累计搬运和APP区校验两个过程的次数大于设定次数时,设备端产生复位并清零累计的次数,跳转到步骤10);
9)设备端嵌入式引导加载模块BSL跳转到新的APP程序入口处,运行新的APP;
10)设备重启,运行备端嵌入式引导加载模块BSL,此时OTAF=0,若APP区校验成功则跳转执行原APP;否则,进行备份升级,即对DOWN区进行校验,校验成功则将DOWN区升级包搬运至APP区,并校验APP区,成功则跳转执行新APP,否则与云端通信告警。
步骤1)进行时设备具备升级条件,升级条件为剩余电量>20%,分三种情况进行:
(1)正常升级时网络通讯稳定,上次固件升级成功,现有新的APP升级包需要升级;
(2)断点续传时网络通讯不稳定,上次远程升级的升级包下载过程中网络信号中断;
(3)通过备份升级时设备APP运行中受到不明干扰导致程序代码被修改或者新的升级包下载完成但搬运和APP区校验错误,APP区已遭到破坏。
正常升级时云端升级管理模块OTAM发起升级命令;
断点续传时云端升级管理模块OTAM升级命令有效,上次升级未成功,该指令未清除;设备复位重启,运行设备端嵌入式引导加载模块BSL,此时设备端升级标识OTAF=0;设备端进行APP区校验,此时校验成功,运行原APP;设备APP与云端通信,接收到升级命令置位设备端升级标识OTAF,设备复位;运行设备端嵌入式引导加载模块BSL,此时设备端升级标识OTAF=1,设备与云端通信,上报上次固件升级状态与“断点”位置BPL,上次升级失败,下载升级包过程中通信中断,此时BPL=b,b∈[-1,C-1);云端从索引号为b+1的数据块开始依次下发升级包,并接收设备对每块数据块接收成功应答;云端将升级包全部下载完毕后,云端下发整个升级包的包校验值到设备,设备设置“断点”位置BPL=-1;设备对DOWN区的升级包进行校验,校验结果与云端下发的包校验值进行比较,二者相等,向云端发送校验成功;设备进行升级包的搬运,搬运完成后对APP区的升级包校验,且校验成功;设备由嵌入式引导加载模块BSL跳转到新的APP程序入口处,运行新的APP;
通过备份升级时,设备复位重启,运行设备端嵌入式引导加载模块BSL,此时设备端升级标识OTAF=0;设备端进行APP区校验,此时校验失败;设备端对DOWN区进行校验,校验成功则将DOWN区升级包搬运至APP区;对APP区校验且校验成功,跳转执行新APP。
相较于现有技术,本发明有如下的有益效果:克服了现有无人值守设备固件升级依赖本地升级或远程升级不具备断点续传能力的问题,能够有效的降低无人值守类设备的运营和维护成本。具有升级速度快、安全可靠的特点。同时,本发明能够应用于其他物联网设备的有线或无线(WIFI、蓝牙、2G/3G/4G/5G通信等)远程升级中,具有普适性。
附图说明
图1为本发明的远程升级原理框图;
图2为本发明的设备存储区划分;
图3为本发明OTAF等于1时BSL软件的状态转移图;
图4为本发明OTAF等于0时BSL软件的状态转移图;
图5为本发明的BSL软件流程图;
图6为本发明的数据块传输协议示意图;
图7为本发明的升级包各数据块在存储区的存储示意图;
图8为本发明的“断点”更新示意图;
图9为本发明的云端升级管理模块流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
本发明无人值守设备的远程升级系统包括设备端嵌入式APP升级管理组件APPM、设备端嵌入式引导加载模块BSL以及云端升级管理模块OTAM三个部分,如图1所示。
其中,OTAM与APPM通信决定是否发起升级,与BSL进行无线通信控制发送升级包到设备。APPM负责接收OTAM的升级命令(置位升级标志)并复位设备。BSL负责升级包的接收、搬运和跳转执行,如果在设定的升级重试次数后仍无法正确升级,则OTAM使设备复位执行原APP。此外,升级包的下载过程中设备端通过引入“断点”位置,记录下载传输进度,从而保证远程升级具备断点续传功能。
设备端存储空间划分为3部分,如图2所示,DOWN区,存储升级包APP的代码,既是下载缓存区又是升级包备份区;APP区,存储运行时的APP代码;BSL区,存储BSL代码。
本发明提出一种无人值守设备的远程升级方法包括以下步骤:
1)当有新的APP版本,云端升级管理模块发起升级需求,即设置设备升级命令;
2)设备APP与云端通信,接收升级命令置位OTAF(即OTAF=1,其中OTAF为设备端升级标识),并复位设备;
3)设备重启后,运行BSL,此时OTAF=1;设备与云端通信,上报最近一次OTA的状态及升级包“断点”位置BPL=[-1,C)(其中C表示升级包的数据块个数),然后清零OTAF(即OTAF=0);
4)云端获得“断点”位置,令当前数据块索引Icur=BPL+1;
5)云端发送索引号为Icur的数据块,设备接收数据块并存储到DOWN区,校验当前数据块,校验正确则更新“断点”位置即BPL=Icur,并向云端应答“成功”,云端获取下一个数据块继续步骤5;否则向云端应答“失败”,云端重发该数据块,若设备连续若干次应答“失败”,云端向设备发送“复位”命令,使设备复位,运行原APP;
6)云端将升级包全部下发完毕后,向设备发送整个升级包的包校验值,设备更新“断点”位置BPL=-1;
7)设备端对DOWN区的升级包进行校验,校验结果与云端下发的包校验值进行比较,二者相等,向云端发送“校验成功”;否则,向云端发送“校验失败”,云端重新开始升级包的下载过程即步骤4);
8)设备端进行升级包的搬运(DOWN区搬运到APP区),搬运完成后对APP区升级包校验,校验成功则进行步骤9);否则重新开始搬运过程,当累计搬校(搬运和APP区校验两个过程的简称)次数大于设定次数时,设备端产生复位并清零累计搬校次数,跳转到步骤10);
9)设备端BSL跳转到新的APP程序入口处,运行新的APP;
10)设备重启,运行BSL,此时OTAF=0,若APP区校验成功则跳转执行原APP;否则,进行备份升级,即对DOWN区进行校验,校验成功则将DOWN区升级包搬运至APP区,并校验APP区,成功则跳转执行新APP,否则与云端通信告警。
嵌入式引导加载模块设计:
依据BSL软件的功能,设计7个状态:软件初始化(S1)、通信(S2)、升级包下载(S3)、DOWN区校验(S4)、搬运(S5)、APP区校验(S6)、跳转准备(S7),APP运行(S8)是APP软件的状态,此处罗列旨在更清晰的描述状态转移,各状态描述及状态间转移如图3、图4所示,其中图3为OTAF等于1(云端干预的升级)时BSL的状态转移图,图4为OTAF等于0(备份升级)时BSL的状态转移图。图5为BSL流程图。
系统“断点续传”功能基于升级包数据块的索引号,设备记录升级包数据块的索引号并不断更新,发生网络传输中断后,下次OTA时通过上报记录的“断点”位置实现升级包续传。
整个升级包依据每次传输数据量大小可分割为若干数据块,总数记为C,数据块传输协议示意图如图6所示,数据块在设备存储区的示意图如图7所示,其中Dstart表示DOWN区的起始地址,Astart表示APP区的起始地址,Δ表示DOWN区相对APP区的地址偏移量,AddrA(i)表示索引号为i的数据块在APP区的起始地址,AddrD(i)表示索引号为i的数据块在DOWN区的起始地址,则图中各量满足公式1:
Δ=Dstart-Astart
AddrD(i)=AddrA(i)+Δ,i∈[0,C) 公式1
设备接收、存储数据块并更新“断点”位置,记为BPL。BPL的更新示意图如图8所示。图中b表示发生网络传输中断的“断点”位置,i表示数据块索引号,满足公式2:
BPL=b,b∈[-1,C)
i∈[0,C)
且i=b+1当b∈[-1,c-1) 公式2
当“断点”位置BPL=C-1时,云端发送整个升级包的校验值,设备收到升级包校验值后,更新BPL=-1,从而保证无论断点发生在升级包数据块的传输过程中还是升级包校验值传输时,均能达到“断点续传”的效果。
嵌入式APP升级管理组件设计:
APP升级管理组件是嵌入式应用软件(简称APP)的一个功能组件,该组件收到云端升级管理模块的远程升级命令时完成以下两步:
1)置位OTAF(即OTAF=1);
2)使设备复位,进入BSL程序入口,开始OTA过程。
云端升级管理模块设计:
云端升级管理模块有两部分功能:
1)与设备APP软件通信,有新的APP升级包时,发送“远程升级”命令到APP;2)与设备BSL软件通信,控制OTA升级过程,根据设备当前升级包“断点”位置续传升级包。
以下针对正常升级、断点续传以及通过备份升级三种情况分别具体说明:
正常升级
场景1:网络通讯稳定,设备具备升级条件(剩余电量>20%),上次固件升级成功,现有新的APP升级包需要升级,则系统升级过程如下:
1)云端升级管理模块发起升级,即设置升级命令;
2)设备APP与云端通信,接收到升级命令置位OTAF(即OTAF=1),设备复位;
3)设备运行BSL,此时OTAF=1,设备与云端通信上报上一次固件升级状态与“断点”位置BPL(上次升级成功,此时断点位置为-1);
4)云端从索引号为0的数据块开始下发升级包;
5)云端依次下发数据块,并收到设备端的“成功”接收应答;
6)云端将升级包全部下载完毕后,下发整个升级包的包校验值到设备,设备设置“断点”位置BPL=-1;
7)设备对DOWN区的升级包进行校验,校验结果与云端下发的包校验值进行比较,二者相等,向云端发送校验成功;
8)设备进行升级包的搬运(DOWN区搬运到APP区),搬运完成后对APP区的升级包校验,且校验成功;
9)设备由BSL跳转到新的APP程序入口处,运行新的APP。
断点续传
场景2:网络通讯不稳定,监测设备具备升级条件(剩余电量>20%),上次远程升级的升级包下载过程中网络信号中断了,则系统升级过程如下:
1)云端升级管理模块升级指令有效(上次升级未成功,该指令未清除);
2)设备复位重启,运行BSL,此时OTAF=0;
3)设备端进行APP区校验,此时校验成功,运行原APP;
4)设备APP与云端通信,接收到升级命令置位OTAF(即OTAF=1),设备复位;
5)设备运行BSL,此时OTAF=1,设备与云端通信,上报上次固件升级状态与“断点”位置BPL,上次升级失败,下载升级包过程中通信中断,此时BPL=b,b∈[-1,C-1);
6)云端从索引号为b+1的数据块开始依次下发升级包,并接收设备对每块数据块接收成功应答;
7)云端将升级包全部下载完毕后,云端下发整个升级包的包校验值到设备,设备设置“断点”位置BPL=-1;
8)设备对DOWN区的升级包进行校验,校验结果与云端下发的包校验值进行比较,二者相等,向云端发送校验成功;
9)设备进行升级包的搬运(DOWN区搬运到APP区),搬运完成后对APP区的升级包校验,且校验成功;
10)设备由BSL跳转到新的APP程序入口处,运行新的APP。
通过备份升级
场景3:设备APP运行中受到不明干扰导致程序代码被修改或者新的升级包下载完成但搬校错误(即此时APP区已遭到破坏),设备具备升级条件(剩余电量>20%),则系统升级过程如下:
1)设备复位重启,运行BSL,此时OTAF=0;
2)设备端进行APP区校验,此时校验失败;
3)设备端对DOWN区进行校验,校验成功则将DOWN区升级包搬运至APP区;对APP区校验且校验成功,跳转执行新APP。
以上所述的仅仅是本发明的较佳实施例,并不用以对本发明的技术方案进行任何限制,本领域技术人员应当理解的是,在不脱离本发明精神和原则的前提下,该技术方案还可以进行若干简单的修改和替换,这些修改和替换也均属于权利要求书所涵盖的保护范围之内。
Claims (7)
1.一种无人值守设备的远程升级系统,其特征在于,包括设备端嵌入式APP升级管理组件APPM、设备端嵌入式引导加载模块BSL以及云端升级管理模块OTAM;所述的云端升级管理模块OTAM与设备端嵌入式APP升级管理组件APPM进行通信决定是否发起升级,与设备端嵌入式引导加载模块BSL进行无线通信控制发送升级包到设备,设备端嵌入式APP升级管理组件APPM用于接收云端升级管理模块OTAM的升级命令并复位设备,设备端嵌入式引导加载模块BSL用于升级包的接收、搬运和跳转执行,如果在设定的升级重试次数后仍然无法正确升级,则云端升级管理模块OTAM使设备复位执行原APP;在升级包的下载过程中设备端通过引入“断点”位置,记录下载传输进度,保证远程升级具备断点续传功能;设备端存储空间划分为3部分:DOWN区,用于存储升级包APP的代码,既是下载缓存区又是升级包备份区;APP区,用于存储运行时的APP代码;BSL区,用于存储BSL代码。
2.根据权利要求1所述无人值守设备的远程升级系统,其特征在于:设备端嵌入式引导加载模块BSL的功能包括软件初始化、通信、升级包下载、DOWN区校验、搬运、APP区校验以及跳转准备;所述的“断点”位置基于升级包数据块的索引号,设备记录升级包数据块的索引号并不断更新,当发生网络传输中断后,下次OTA时通过上报记录的“断点”位置实现升级包续传;整个升级包依据每次传输的数据量大小分割为若干数据块,总数记为C,由Dstart表示DOWN区的起始地址,Astart表示APP区的起始地址,Δ表示DOWN区相对APP区的地址偏移量,AddrA(i)表示索引号为i的数据块在APP区的起始地址,AddrD(i)表示索引号为i的数据块在DOWN区的起始地址,则满足以下公式:
Δ=Dstart-Astart
AddrD(i)=AddrA(i)+Δ,i∈[0,C)
设备接收、存储数据块并更新“断点”位置,记为BPL,b表示发生网络传输中断的“断点”位置,i表示数据块索引号,则满足以下公式:
BPL=b,b∈[-1,C)
i∈[0,C)
且i=b+1当b∈[-1,c-1)
当“断点”位置BPL=C-1时,云端发送整个升级包的校验值,设备收到升级包校验值之后,更新BPL=-1,从而保证无论断点发生在升级包数据块的传输过程中还是升级包校验值传输时,均能够达到“断点续传”的效果。
3.根据权利要求1所述无人值守设备的远程升级系统,其特征在于:所述的设备端嵌入式APP升级管理组件APPM是嵌入式APP的一个功能组件,该组件收到云端升级管理模块OTAM的远程升级命令时完成以下两步操作:1)置位OTAF;2)使设备复位,进入设备端嵌入式引导加载模块BSL的程序入口,开始OTA过程;所述的OTAF为设备端升级标识,当OTAF等于1代表云端干预的升级,当OTAF等于0代表备份升级。
4.根据权利要求1所述无人值守设备的远程升级系统,其特征在于:所述的云端升级管理模块OTAM有两部分功能:1)与设备APP软件通信,当有新的APP升级包时,发送“远程升级”命令到APP;2)与设备端嵌入式引导加载模块BSL之间进行软件通信,控制OTA升级过程,根据设备当前升级包“断点”位置续传升级包。
5.一种无人值守设备的远程升级方法,其特征在于,包括以下步骤:
1)当有新的APP版本时,发起升级需求,设置设备升级命令;
2)接收升级命令置位设备端升级标识OTAF,并复位设备;
3)运行设备端嵌入式引导加载模块BSL,上报最近一次OTA的状态及升级包“断点”位置BPL=[-1,C),其中C表示升级包的数据块个数,然后清零设备端升级标识OTAF;
4)云端获得“断点”位置,令当前数据块索引Icur=BPL+1;
5)云端发送索引号为Icur的数据块,设备接收数据块并存储到DOWN区,校验当前数据块,校验正确则更新“断点”位置,即BPL=Icur,并向云端应答“成功”,云端获取下一个数据块继续校验;否则向云端应答“失败”,云端重发该数据块,若设备连续若干次应答“失败”,云端向设备发送“复位”命令,使设备复位,运行原APP;
6)云端将升级包全部下发完毕后,向设备发送整个升级包的包校验值,设备更新“断点”位置BPL=-1;
7)设备端对DOWN区的升级包进行校验,校验结果与云端下发的包校验值进行比较,若二者相等,向云端发送“校验成功”;否则,向云端发送“校验失败”,返回步骤4)重新执行;
8)设备端进行升级包的搬运,由DOWN区搬运到APP区,搬运完成后对APP区升级包校验,校验成功则进行下一步;否则重新搬运,当累计搬运和APP区校验两个过程的次数大于设定次数时,设备端产生复位并清零累计的次数,跳转到步骤10);
9)设备端嵌入式引导加载模块BSL跳转到新的APP程序入口处,运行新的APP;
10)设备重启,运行备端嵌入式引导加载模块BSL,此时OTAF=0,若APP区校验成功则跳转执行原APP;否则,进行备份升级,即对DOWN区进行校验,校验成功则将DOWN区升级包搬运至APP区,并校验APP区,成功则跳转执行新APP,否则与云端通信告警。
6.根据权利要求5所述无人值守设备的远程升级方法,其特征在于,步骤1)进行时设备具备升级条件,升级条件为剩余电量>20%,分三种情况进行:正常升级时网络通讯稳定,上次固件升级成功,现有新的APP升级包需要升级;断点续传时网络通讯不稳定,上次远程升级的升级包下载过程中网络信号中断;通过备份升级时设备APP运行中受到不明干扰导致程序代码被修改或者新的升级包下载完成但搬运和APP区校验错误,APP区已遭到破坏。
7.根据权利要求6所述无人值守设备的远程升级方法,其特征在于:
正常升级时云端升级管理模块OTAM发起升级命令;
断点续传时云端升级管理模块OTAM升级命令有效,上次升级未成功,该指令未清除;设备复位重启,运行设备端嵌入式引导加载模块BSL,此时设备端升级标识OTAF=0;设备端进行APP区校验,此时校验成功,运行原APP;设备APP与云端通信,接收到升级命令置位设备端升级标识OTAF,设备复位;运行设备端嵌入式引导加载模块BSL,此时设备端升级标识OTAF=1,设备与云端通信,上报上次固件升级状态与“断点”位置BPL,上次升级失败,下载升级包过程中通信中断,此时BPL=b,b∈[-1,C-1);云端从索引号为b+1的数据块开始依次下发升级包,并接收设备对每块数据块接收成功应答;云端将升级包全部下载完毕后,云端下发整个升级包的包校验值到设备,设备设置“断点”位置BPL=-1;设备对DOWN区的升级包进行校验,校验结果与云端下发的包校验值进行比较,二者相等,向云端发送校验成功;设备进行升级包的搬运,搬运完成后对APP区的升级包校验,且校验成功;设备由嵌入式引导加载模块BSL跳转到新的APP程序入口处,运行新的APP;
通过备份升级时,设备复位重启,运行设备端嵌入式引导加载模块BSL,此时设备端升级标识OTAF=0;设备端进行APP区校验,此时校验失败;设备端对DOWN区进行校验,校验成功则将DOWN区升级包搬运至APP区;对APP区校验且校验成功,跳转执行新APP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010997890.3A CN112181454B (zh) | 2020-09-21 | 2020-09-21 | 一种无人值守设备的远程升级系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010997890.3A CN112181454B (zh) | 2020-09-21 | 2020-09-21 | 一种无人值守设备的远程升级系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181454A true CN112181454A (zh) | 2021-01-05 |
CN112181454B CN112181454B (zh) | 2023-04-07 |
Family
ID=73956384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010997890.3A Active CN112181454B (zh) | 2020-09-21 | 2020-09-21 | 一种无人值守设备的远程升级系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181454B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658120A (zh) * | 2022-12-27 | 2023-01-31 | 成都万创科技股份有限公司 | 微电脑通用的ota升级方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1052571A2 (en) * | 1999-05-13 | 2000-11-15 | ECI Telecom Ltd. | A method and apparatus for downloading software into an embedded-system |
WO2002084484A2 (en) * | 2001-04-18 | 2002-10-24 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
CN101132573A (zh) * | 2006-08-23 | 2008-02-27 | 中兴通讯股份有限公司 | 一种终端批量升级的实现方法 |
KR20080023064A (ko) * | 2006-09-08 | 2008-03-12 | 삼성전자주식회사 | 무선 통신 단말의 프로그램 갱신 방법 및 시스템 |
CN101877723A (zh) * | 2010-06-18 | 2010-11-03 | 中兴通讯股份有限公司 | 无线传感器网络节点远程升级系统、方法及设备 |
CN102023876A (zh) * | 2009-09-14 | 2011-04-20 | 漳州科能电器有限公司 | 一种可软件在线升级的嵌入式系统及在线升级方法 |
CN102314369A (zh) * | 2011-10-09 | 2012-01-11 | 杭州先锋电子技术股份有限公司 | 一种远程在线监控系统中设备自升级方法 |
WO2012100535A1 (zh) * | 2011-01-30 | 2012-08-02 | 华为技术有限公司 | 超级内核组件的升级方法和计算机系统 |
CN103530146A (zh) * | 2013-09-16 | 2014-01-22 | 成都交大光芒科技股份有限公司 | 低功耗嵌入式设备远程无线升级方法 |
CN107800786A (zh) * | 2017-10-20 | 2018-03-13 | 南京晓庄学院 | 一种智能终端远程升级断点传输方法 |
CN110134418A (zh) * | 2019-05-10 | 2019-08-16 | 上海擎感智能科技有限公司 | 基于空间下载技术的整车升级方法及装置、存储介质和终端 |
CN111240713A (zh) * | 2019-12-28 | 2020-06-05 | 杭州拓深科技有限公司 | 一种用电检测远程断点续传的方法 |
-
2020
- 2020-09-21 CN CN202010997890.3A patent/CN112181454B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1052571A2 (en) * | 1999-05-13 | 2000-11-15 | ECI Telecom Ltd. | A method and apparatus for downloading software into an embedded-system |
WO2002084484A2 (en) * | 2001-04-18 | 2002-10-24 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
CN101132573A (zh) * | 2006-08-23 | 2008-02-27 | 中兴通讯股份有限公司 | 一种终端批量升级的实现方法 |
KR20080023064A (ko) * | 2006-09-08 | 2008-03-12 | 삼성전자주식회사 | 무선 통신 단말의 프로그램 갱신 방법 및 시스템 |
CN102023876A (zh) * | 2009-09-14 | 2011-04-20 | 漳州科能电器有限公司 | 一种可软件在线升级的嵌入式系统及在线升级方法 |
CN101877723A (zh) * | 2010-06-18 | 2010-11-03 | 中兴通讯股份有限公司 | 无线传感器网络节点远程升级系统、方法及设备 |
WO2012100535A1 (zh) * | 2011-01-30 | 2012-08-02 | 华为技术有限公司 | 超级内核组件的升级方法和计算机系统 |
CN102314369A (zh) * | 2011-10-09 | 2012-01-11 | 杭州先锋电子技术股份有限公司 | 一种远程在线监控系统中设备自升级方法 |
CN103530146A (zh) * | 2013-09-16 | 2014-01-22 | 成都交大光芒科技股份有限公司 | 低功耗嵌入式设备远程无线升级方法 |
CN107800786A (zh) * | 2017-10-20 | 2018-03-13 | 南京晓庄学院 | 一种智能终端远程升级断点传输方法 |
CN110134418A (zh) * | 2019-05-10 | 2019-08-16 | 上海擎感智能科技有限公司 | 基于空间下载技术的整车升级方法及装置、存储介质和终端 |
CN111240713A (zh) * | 2019-12-28 | 2020-06-05 | 杭州拓深科技有限公司 | 一种用电检测远程断点续传的方法 |
Non-Patent Citations (2)
Title |
---|
牛军浩等: "基于GPRS的STM32固件远程升级系统", 《现代信息科技》 * |
黄家升: "基于IAP的单片机软件远程升级", 《舰船电子对抗》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658120A (zh) * | 2022-12-27 | 2023-01-31 | 成都万创科技股份有限公司 | 微电脑通用的ota升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112181454B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104090796B (zh) | 一种嵌入式设备程序更新方法和系统 | |
CN110096294B (zh) | 一种可任意断点无线升级mcu应用程序的方法 | |
CN101557583B (zh) | 直放站设备嵌入式软件的远程升级与版本切换方法 | |
CN110730104A (zh) | 一种mesh网络设备的多设备批量固件升级的方法 | |
CN104899065A (zh) | 一种可批量软件在线恢复与软件在线升级的方法和系统 | |
CN105183515A (zh) | 云台固件升级的方法及装置 | |
CN104750515A (zh) | 固件版本升级的方法及系统 | |
CN106874054B (zh) | 一种直放站内模块程序在线升级方法与系统 | |
CN110837389A (zh) | 设备升级方法、装置、物联网设备和存储介质 | |
CN104007996A (zh) | 一种分布式控制系统的可靠固件升级实现方法 | |
CN101951391A (zh) | 监控设备远程升级的方法、装置及系统 | |
CN105573794A (zh) | 一种嵌入式系统软件远程更新方法及系统 | |
CN106886438A (zh) | 基于fpga的系统远程更新方法 | |
CN111813424A (zh) | 一种远程升级方法、装置、电子设备及存储介质 | |
CN112181454B (zh) | 一种无人值守设备的远程升级系统及方法 | |
CN105045640A (zh) | 一种软件升级方法、装置及智能设备 | |
CN111813597A (zh) | 一种空调器 | |
CN104965747A (zh) | 软件升级的方法及装置 | |
CN112596764B (zh) | 一种基于NB-IoT远程升级的物联网监测方法和装置 | |
CN116841578B (zh) | 一种移动机器人的远程升级方法及系统 | |
CN111522571A (zh) | 设备升级方法、装置、终端设备及存储介质 | |
CN112152836A (zh) | 小存储容量设备的远程固件自动升级方法、系统及芯片 | |
CN110609691A (zh) | 一种远程更新dsp程序的方法 | |
CN111142909B (zh) | 基于xc7z045芯片实现can网络远程升级的终端、方法和系统 | |
CN114756270A (zh) | 自动驾驶系统固件升级方法和自动驾驶系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |