一种可批量软件在线恢复与软件在线升级的方法和系统的制作方法
【技术领域】
[0001]本发明涉及通信控制技术领域,尤其涉及一种可批量软件在线恢复与软件在线升级的方法和系统。
【背景技术】
[0002]通信行业的迅猛发展,导致了应用场景的千差万别、错综复杂。设备的维护、更换成本节节攀升,对后台运营提出了很高的要求。因此,通过远程升级实现远程通信设备程序更新和维护显得尤为重要。
[0003]通信行业存在设备远程部署、批量部署的应用场景,例如一个架设在荒郊野外的铁塔,其上面会同时安装多个天线控制设备。传统的升级必须到塔下,甚至爬到塔上,然后利用专用工具升级,这使用户无法接受。后期,提出了远程升级,即通过GPRS、WIFI等方式在监控中心升级,设备维护条件得到极大改善。但是,上述远程升级方式还存在极大的弊端,例如,必须一对一逐个升级,费事费力,一旦升级失败,程序无法恢复、运行,必须再通过传统的升级方式去升级。
【发明内容】
[0004]本发明的目的在于提出一种可批量软件在线恢复与软件在线升级的方法和系统,能够实现对多个远程设备的软件进行批量在线更新和恢复。
[0005]为达此目的,本发明采用以下技术方案:
一种可批量软件在线恢复与软件在线升级的方法,包括:
51、集中控制设备批量下发软件在线升级/软件在线恢复的指令给多个远程设备;
52、若为软件在线升级指令,则远程设备获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件;
53、若为软件在线恢复指令,则远程设备将现有软件恢复为已备份的上一个版本软件。
[0006]其中,若集中控制设备下发的是软件在线升级指令,则在所述步骤S2、若为软件在线升级指令,则远程设备获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件之前,还包括:
将原始的升级文件通过特定的编码格式生成不同远程设备类型和不同软件版本的升级镜像文件;
集中控制设备通过扫描算法扫描所有总线上的远程设备,并分配地址、建立连接。
[0007]其中,所述步骤S2、若为软件在线升级指令,则远程设备获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件,具体为:
S200、若集中控制设备向所有需要进行软件在线升级的远程设备发送软件在线升级指令,则集中控制设备选择多个升级镜像文件和需要更新软件程序的远程设备,并设置升级镜像文件与远程设备的对应关系后批量下发软件在线升级开始指令;
S210、远程设备接收到该指令后回复该指令,并进入升级下载模式;集中控制设备通过通信协议将选择的升级镜像文件分成多个数据帧,批量下发到对应的远程设备;
S220、远程设备对接收到的数据帧进行验证;若验证不通过,则结束下载,并退出升级下载模式;若验证通过,则将接收到的数据帧写入内部存储器;
S230、升级镜像文件下载结束,集中控制设备向对应的所有进行软件升级的远程设备批量下发软件在线升级结束指令;
S240、远程设备接收到该指令后对接收到的升级镜像文件进行解密并验证数据完整性,若验证通过则远程设备重启;
S250、远程设备重启后进入程序更新模式以覆盖上一个版本软件,并对上一个版本软件备份;
S260、若远程设备升级成功,则进入新应用程序执行;若升级失败,则自动恢复上一个版本软件,并执行上一个版本软件。
[0008]其中,所述步骤S3、若为软件在线恢复指令,则远程设备将现有软件恢复为已备份的上一个版本软件,具体为:
若集中控制设备向所有需要进行软件在线恢复的远程设备发送软件在线恢复指令,则远程设备将现有软件恢复为已备份的上一个版本软件,并运行该软件。
[0009]其中,所述升级镜像文件,包括:CRC32校验、文件长度、文件名称、厂家代号、软件版本、设备类型;所述数据帧包括,帧头、地址、收发序号、数据长度、设备地址、设备类型、软件版本、数据、CRC校验和尾帧。
[0010]其中,集中控制设备可以同时选择多个不同的升级镜像文件和批量更新程序的远程设备,I个升级镜像文件可以与多个具有相同设备类型的远程设备对应。
[0011]其中,所述步骤S210中的集中控制设备通过通信协议将选择的升级镜像文件分成多个数据帧,按照地址、设备类型、软件版本与远程设备的对应关系批量下发到对应的远程设备,在下发过程中,通过数据帧错序重发、丢包重发方式控制数据下发的稳健性。
[0012]其中,当软件在线升级时,远程设备先执行原有版本软件备份,然后再开始升级;升级过程中出错,设备无法运行更新后的升级软件时会自动恢复到原有版本程序,并回归正常设备运行状态。
[0013]一种采用上述任一项所述的一种可批量软件在线恢复与软件在线升级的方法的系统,包括集中控制设备及与所述集中控制设备连接的多个远程设备,所述集中控制设备和远程设备通过RS485总线连接。
[0014]其中,所述集中控制设备与远程设备之间通信采用主从、应答模式,集中控制设备为主设备,远程设备为从设备,一主多从。
[0015]有益效果:
本发明所述的一种可批量软件在线恢复与软件在线升级的方法及系统,由于该技术方案采用了批量更新方式,可以快速实现多个不同类型设备的远程在线更新,操作更便捷,更新效率更高。如果出现程序缺失、升级异常,通过自动恢复机制可以使远程设备自动从异常中恢复到正常工作状态,大大提高设备稳定性和无故障运行率。实现数据重发、多重校验功能,使整个过程具有更高可靠性和安全性。
【附图说明】
[0016]图1是本发明具体实施例提供的一种可批量软件在线恢复与软件在线升级的方法的流程图。
[0017]图2是本发明具体实施例提供的一种可批量软件在线恢复与软件在线升级的系统的结构示意图。
【具体实施方式】
[0018]下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。
[0019]实施例1:
图1是本发明具体实施例提供的一种可批量软件在线恢复与软件在线升级的方法的流程图。如图1所示,本发明所述的一种可批量软件在线恢复与软件在线升级的方法,包括:
51、集中控制设备I批量下发软件在线升级/软件在线恢复的指令给多个远程设备2;
52、若为软件在线升级指令,则远程设备2获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件;
53、若为软件在线恢复指令,则远程设备2将现有软件恢复为已备份的上一个版本软件。
[0020]可见,本发明所述的方法,通过采用批量更新方式,可以快速实现多个不同类型设备的远程在线更新,操作更便捷,更新效率更高。如果出现程序缺失、升级异常,通过自动恢复机制可以使远程设备2自动从异常中恢复到正常工作状态,大大提高设备稳定性和无故障运行率。
[0021]在本实施例中,若集中控制设备I下发的是软件在线升级指令,则在所述步骤S2、若为软件在线升级指令,则远程设备2获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件之前,还包括:
将原始的升级文件通过特定的编码格式生成不同远程设备类型和不同软件版本的升级镜像文件;
集中控制设备I通过扫描算法扫描所有总线上的远程设备2,并分配地址、建立连接。
[0022]通过对原始的升级文件进行格式处理,满足特定通信协议的要求,实现生成适合不同远程设备2类型和不同软件版本的升级镜像文件。集中控制设备I通过其规定的扫描算法扫描与其相连的总线上的远程设备2,并为远程设备2分配地址,建立连接。
[0023]所述步骤S2、若为软件在线升级指令,则远程设备2获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件,具体为:
S200、若集中控制设备I向所有需要进行软件在线升级的远程设备2发送软件在线升级指令,则集中控制设备I选择多个升级镜像文件和需要更新软件程序的远程设备2,并设置升级镜像文件与远程设备2的对应关系后批量下发软件在线升级开始指令;
S210、远程设备2接收到该指令后回复该指令,并进入升级下载模式;集中控制设备I通过通信协议将选择的升级镜像文件分成多个数据帧,批量下发到对应的远程设备2 ;
S220、远程设备2对接收到的数据帧进行验证;若验证不通过,则结束下载,并退出升级下载模式;若验证通过,则将接收到的数据帧写入内部存储器;
S230、升级镜像文件下载结束,集中控制设备I向对应的所有进行软件升级的远程设备2批量下发软件在线升级结束指令;
S240、远程设备2接收到该指令后对接收到的升级镜像文件进行解密并验证数据完整性,若验证通过则远程设备2重启;
S250、远程设备2重启后进入程序更新模式以覆盖上一版本软件,并对上一版本软件备份;远程设备2重启进入在线程序更新模式,首先对上一版本软件镜像备份,然后用接收到的升级镜像文件覆盖上一版本软件。
[0024]S260、若远程设备2升级成功,则进入新应用程序执行;若升级失败,则自动恢复上一个版本软件,并执行上一个版本软件。当远程设备2升级结束,跳转到新应用程序执行。若跳转成功,升级成功,实现设备软件的在线升级,否则升级失败,用备份的软件镜像重新覆盖升级失败的程序区,自动恢复原软件版本并执行,设备从升级失败的异常中恢复到正常工作模式。
[0025]在上述内容中,所述升级镜像文件,包括但不限于:CRC32校验、文件长度、文件名称、厂家代号、软件版本、设备类型;所述数据帧包括但不限于:帧头、地址、收发序号、数据长度、设备地址、
设备类型、软件版本、数据、CRC校验和尾帧。
[0026]需要说明的是,所述步骤S220、远程设备2对接收到的数据帧进行验证;若验证不通过,则结束下载,并退出升级下载模式;若验证通过,则将接收到的数据帧写入内部存储器,具体包括以下内容:
远程设备2对接收到的数据帧中的地址、收发序号、CRC等信息验证数据正确性;若地址不正确,丢弃;若收发序号错误,回复错序重发信息;若CRC错误,回复数据校验错误信息。若验证正确,将接收到的数据帧中等数据信息写入内部存储器。另外,还包括远程设备2对第一帧数据中包含的设备类型、软件版本等信息进行验证,若验证不正确则回复无效文件信息,并结束下载,退出下载模式。远程设备2不仅会计算单个数据帧的数据长度和校验,还会计算整个已接收数据的数据长度和CRC32校验。由于在第一帧数据中,会判定远程设备2信息的关键数据,验证升级文件的有效性,在一开始就避免将错误的文件下载到远程设备2端。数据帧包含收发数据帧序号,通过比较集中控制设备I发送数据帧序号与远程设备2期望接收数据帧序号,判定是否丢包或者错序,从而确定是否触发数据帧重发机制。
[0027]所述步骤S3、若为软件在线恢复指令,则远程设备2将现有软件恢复为已备份的上一个版本软件,具体为:
若集中控制设备I向所有需要进行软件在线恢复的远程设备2发送软件在线恢复指令,则远程设备2将现有软件恢复为已备份的上一个版本软件,并运行该软件。
[0028]当批量进行软件在线恢复时,集中控制设备I选择需要软件在线恢复的远程设备2,批量下发软件恢复指令。远程设备2回复指令后重启。远程设备2并进入程序恢复模式,恢复已备份的原版本软件,并执行该软件,设备进入正常工作模式。
[0029]当批量进行软件在线升级时,集中控制设备I选择多个升级镜像文件和批量更新程序的远程设备2 ,并设置好镜像文件与远程设备2的对应关系后批量下发升级开始指令。远程设备2回复该指令,并进入升级下载模式。
[0030]远程设备2具有4种运行工作状态:程序更新模式、程序恢复模式、运行模式,升级下载模式。远程设备2重启后通过存储区内部的工作状态标志位选择进入工作模式。
[0031]对于本技术方案,集中控制设备I可以同时选择多个不同的升级镜像文件和批量更新程序的远程设备2,I个升级镜像文件可以与多个具有相同设备类型的远程设备2对应。
[0032]需要说明的是,所述步骤S210中的集中控制设备I通过通信协议将选择的升级镜像文件分成多个数据帧,按照地址、设备类型、软件版本与远程设备2的对应关系批量下发到对应的远程设备2,在下发过程中,通过数据帧错序重发、丢包重发方式控制数据下发的稳健性。实现了数据重发、多重校验功能,使整个过程具有更高可靠性和安全性。
[0033]在本方案中,当软件在线升级时,远程设备2先执行原有版本软件备份,然后再开始升级;升级过程中出错,设备无法运行更新后的升级软件时会自动恢复到原有版本程序,并回归正常设备运行状态。
[0034]实施例2
本发明所述的系统实施例、方法实施例属于同一技术构思,在系统实施例中未详尽描述的内容,请参见方法实施例。
[0035]图2是本发明具体实施例提供的一种可批量软件在线恢复与软件在线升级的系统的结构示意图。如图2所示,本发明所述的一种采用上述任一项所述的一种可批量软件在线恢复与软件在线升级的方法的系统,包括集中控制设备I及与所述集中控制设备I连接的多个远程设备2,所述集中控制设备I和远程设备2通过RS485总线连接。
[0036]所述集中控制设备I与远程设备2之间通信采用主从、应答模式,集中控制设备I为主设备,远程设备2为从设备,一主多从。
[0037]需要说明的是,本发明所述的集中控制设备I可以是多种类型设备,本发明主要采用以下两种类型设备:
传统的PC机。基于XP或者Window7等桌面系统的PC机,可以通过串口转RS485模块连接到485总线上。
[0038]嵌入式处理器。嵌入式处理器可以是ARM控制器、Power PC或者MIPS等。
[0039]本实施例中采用基于ARM9平台的集中控制单元(CQJ, Center Control Unit)。
[0040]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其技术构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种可批量软件在线恢复与软件在线升级的方法,其特征在于,包括: 51、集中控制设备批量下发软件在线升级/软件在线恢复的指令给多个远程设备; 52、若为软件在线升级指令,则远程设备获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件; 53、若为软件在线恢复指令,则远程设备将现有软件恢复为已备份的上一个版本软件。2.根据权利要求1所述的一种可批量软件在线恢复与软件在线升级的方法,其特征在于,若集中控制设备下发的是软件在线升级指令,则在所述步骤S2、若为软件在线升级指令,则远程设备获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件之前,还包括: 将原始的升级文件通过特定的编码格式生成不同远程设备类型和不同软件版本的升级镜像文件; 集中控制设备通过扫描算法扫描所有总线上的远程设备,并分配地址、建立连接。3.根据权利要求2所述的一种可批量软件在线恢复与软件在线升级的方法,其特征在于,所述步骤S2、若为软件在线升级指令,则远程设备获取升级软件数据信息,对上一个版本软件备份,进行软件升级;若软件升级成功,则结束;若软件升级失败,则将软件恢复为上一个版本软件,具体为: S200、若集中控制设备向所有需要进行软件在线升级的远程设备发送软件在线升级指令,则集中控制设备选择多个升级镜像文件和需要更新软件程序的远程设备,并设置升级镜像文件与远程设备的对应关系后批量下发软件在线升级开始指令; S210、远程设备接收到该指令后回复该指令,并进入升级下载模式;集中控制设备通过通信协议将选择的升级镜像文件分成多个数据帧,批量下发到对应的远程设备; S220、远程设备对接收到的数据帧进行验证;若验证不通过,则结束下载,并退出升级下载模式;若验证通过,则将接收到的数据帧写入内部存储器; S230、升级镜像文件下载结束,集中控制设备向对应的所有进行软件升级的远程设备批量下发软件在线升级结束指令; S240、远程设备接收到该指令后对接收到的升级镜像文件进行解密并验证数据完整性,若验证通过则远程设备重启; S250、远程设备重启后进入程序更新模式以覆盖上一个版本软件,并对上一个版本软件备份; S260、若远程设备升级成功,则进入新应用程序执行;若升级失败,则自动恢复上一个版本软件,并执行上一个版本软件。4.根据权利要求1所述的一种可批量软件在线恢复与软件在线升级的方法,其特征在于,所述步骤S3、若为软件在线恢复指令,则远程设备将现有软件恢复为已备份的上一个版本软件,具体为: 若集中控制设备向所有需要进行软件在线恢复的远程设备发送软件在线恢复指令,则远程设备将现有软件恢复为已备份的上一个版本软件,并运行该软件。5.根据权利要求3所述的一种可批量软件在线恢复与软件在线升级的方法,其特征在于,所述升级镜像文件,包括:CRC32校验、文件长度、文件名称、厂家代号、软件版本、设备类型;所述数据帧包括,帧头、地址、收发序号、数据长度、设备地址、设备类型、软件版本、数据、CRC校验和尾帧。6.根据权利要求3所述的一种可批量软件在线恢复与软件在线升级的方法,其特征在于,集中控制设备可以同时选择多个不同的升级镜像文件和批量更新程序的远程设备,I个升级镜像文件可以与多个具有相同设备类型的远程设备对应。7.根据权利要求3所述的一种可批量软件在线恢复与软件在线升级的方法,其特征在于,所述步骤S210中的集中控制设备通过通信协议将选择的升级镜像文件分成多个数据帧,按照地址、设备类型、软件版本与远程设备的对应关系批量下发到对应的远程设备,在下发过程中,通过数据帧错序重发、丢包重发方式控制数据下发的稳健性。8.根据权利要求3所述的一种可批量软件在线恢复与软件在线升级的方法,其特征在于,当软件在线升级时,远程设备先执行原有版本软件备份,然后再开始升级;升级过程中出错,设备无法运行更新后的升级软件时会自动恢复到原有版本程序,并回归正常设备运行状态。9.一种采用权利要求1-8任一项所述的一种可批量软件在线恢复与软件在线升级的方法的系统,其特征在于,包括集中控制设备及与所述集中控制设备连接的多个远程设备,所述集中控制设备和远程设备通过RS485总线连接。10.根据权利要求9所述的一种可批量软件在线恢复与软件在线升级的系统,所述集中控制设备与远程设备之间通信采用主从、应答模式,集中控制设备为主设备,远程设备为从设备,一主多从。
【专利摘要】本发明公开了一种可批量软件在线恢复与软件在线升级的方法和系统,该系统包括集中控制设备和通过RS485总线连接的多个远程设备,集中控制设备通过对升级软件编码格式处理,生成不同设备类型和不同软件版本的升级镜像文件,并通过通信协议下发软件在线升级指令和数据帧,控制所有远程设备的在线升级过程;集中控制设备通过直接下发软件在线恢复指令将远程设备的软件恢复上一版本。远程设备自动完成软件下载、检测、存储、校验、备份、更新过程,掉电不影响;远程设备升级失败,能够自动恢复原版本软件并恢复设备工作状态维持正常运行;集中控制设备通过获取所有设备版本信息判断升级成功与否。本发明能够实现对多个远程设备的软件进行批量升级和恢复。
【IPC分类】G06F9/445, G06F11/14
【公开号】CN104899065
【申请号】CN201510318584
【发明人】刘海洲, 陈羿伊, 王峥, 陈可, 余晓华
【申请人】武汉虹信通信技术有限责任公司
【公开日】2015年9月9日
【申请日】2015年6月11日