CN100518082C - 一种具有自恢复功能的远程在线升级方法 - Google Patents
一种具有自恢复功能的远程在线升级方法 Download PDFInfo
- Publication number
- CN100518082C CN100518082C CNB2005101025577A CN200510102557A CN100518082C CN 100518082 C CN100518082 C CN 100518082C CN B2005101025577 A CNB2005101025577 A CN B2005101025577A CN 200510102557 A CN200510102557 A CN 200510102557A CN 100518082 C CN100518082 C CN 100518082C
- Authority
- CN
- China
- Prior art keywords
- program
- destination node
- upgrade server
- upgrade
- parameter
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种具有自恢复功能的远程在线升级方法,其包括:升级服务器发送升级命令;与其最近的节点判断此升级命令是否是发给自己的,若是则反馈;否则转发该升级命令给其它节点;目标节点收到对应的升级命令后向所述升级服务器反馈,所述升级服务器收到反馈消息,将升级程序通过网络转发给所述目标节点;所述目标节点接收完升级程序后,将其写入程序FLASH的存储区间,并修改其公共区间的启动参数,向所述升级服务器反馈;所述升级服务器确认后向所述目标节点发送软启动命令;若对新程序的测试通过,则启用新程序,否则使用旧版本程序。本发明不需远端服务器,也无需冷启动;若升级失败可回复到先前的运行状态,提高了远程升级的可靠性。
Description
技术领域
本发明涉及一种远程通讯中网络设备的升级方法,具体涉及的是一种对网络设备进行自动恢复的远程升级方法。
背景技术
在大型网络中,节点设备通常分布在各种地理环境下,网络拓扑具有设备多、区域分散、结构复杂等特点,为了便于管理和维护,通常通过一定的通讯管理方法实现对拓扑内所有设备集中统一监控管理的目的。
在设备的使用过程中,出于对设备功能的增强、Bug的修改等目的,经常需要对设备的运行程序进行升级。如果派工作人员到现场一一升级,需要耗费很多的人力、物力,而且升级所有设备将需要很长的周期。因此需要找出一种,能够在一个固定地理位置,对网内所有地理位置上的设备完成软件升级的方法。
在众多的软件升级方法中,以中国专利号CN03132982的专利《远程加载或升级程序的系统及其方法》和中国专利号CN01145382《在通信系统中利用单片机实现软件下载的装置及其方法》中提到的升级技术最具代表性,前者的升级思路是:主控子系统通过TFTP网络协议将新版本程序存储在FLASH存储器,由交互加载器完成待升级子系统应用程序的加载,其中,交互加载必须由工程人员复位待升级子系统来实现;因此无法实现远程无人干预的升级。后者采用的方式是:设备的ROM程序先引导FLASH中的主应用程序开始运行,升级时,新应用程序被写入到FLASH的备用程序区,系统重启动后,在内部ROM程序的指导下,新应用程序得到运行。但现有技术需要远端服务器,而且要其全天候工作;若升级失败系统则可能破坏整个系统的完整性。
发明内容
为了解决上述缺陷,本发明提出一种具有自恢复功能的远程在线升级方法,该方法可以有效地节省人力物力、降低升级成本、缩短升级周期。
本发明的技术方案包括:
一种具有自恢复功能的远程在线升级方法,其包括以下步骤:
升级服务器与最接近的节点相连,并发送升级命令;
所述最接近节点判断此升级命令是否是发给自己的,若是则反馈;否则转发该升级命令给其它节点;
目标节点收到对应的升级命令后向所述升级服务器反馈,所述升级服务器收到反馈消息,将升级程序通过网络转发给所述目标节点;
所述目标节点接收完升级程序后,将其写入程序FLASH的存储区间,并修改其公共区间的启动参数,向所述升级服务器反馈;
所述升级服务器确认后向所述目标节点发送软启动命令;
目标节点打开定时器,再执行软启动命令,自举后搬移新程序到内存,程序指针跳转到新程序的入口地址执行,启动完毕后等待升级服务器的测试命令,以及根据收到的测试命令进行测试并反馈测试结果,升级服务器根据反馈的测试结果判断测试是否正常,若正常发送命令关闭定时器、修改程序FLASH公共区的启动参数、发软启动命令,所述目标节点根据收到的软启动命令启动升级后的程序运行,若不正常,定时器超时,目标节点被复位而重新启动,测试次数减1,当失败次数超过预设的测试次数时,启动FLASH的启动程序将公共区的启动参数复原,关闭定时器,启动先前的应用程序。
所述的方法,其中,在目标节点根据收到的测试命令进行测试并反馈测试结果之前进一步包括:
所述的方法,其中,所述程序FLASH划分为至少一存放运行版本程序区、两备用程序区以及一用来存放设备的自举程序、记载各版本程序的信息以及启动参数的公共区。
所述的方法,其中,所述启动参数包括程序运行状态、测试次数、启动区间号、各版本程序的代码长度及各版本程序入口。
本发明所提供的一种具有自恢复功能的远程在线升级方法,与现有技术的两种升级技术相比,本发明方法不需要远端服务器,只需要在升级时启动一个升级服务器,也不用使其全天候工作;整个升级过程无需冷启动;若升级失败系统可以回复到先前的运行状态。
附图说明
图1为本发明方法的最小系统硬件结构图;
图2a和图2b为本发明方法的升级流程图。
具体实施方式
下面结合附图,将对本发明的具体实施方式作进一步描述。
本发明的具有自恢复功能的远程在线升级方法,如图1和图2所示的,升级过程主要包含以下步骤:
A1升级服务器与最近的节点相连,并发送升级命令,进入步骤A2;
A2该节点判断此升级命令是否是发给自己的,若是则反馈,进入步骤A4;否则转发该升级命令,进入步骤A3;
A3目标节点在收到升级命令后向所述升级服务器反馈,进入步骤A4;
A4所述升级服务器收到确认消息,将新应用程序通过网络转发给目标节点,进入步骤A5;
A5所述目标节点接收完应用程序后,将其写入程序FLASH的特定区间,并修改公共区间的启动参数为新版本程序测试参数,向所述升级服务器反馈,进入步骤A6;
A6所述升级服务器确认后向所述目标节点发送软启动命令,进入步骤A7;
A7所述目标节点打开用逻辑电路设计的定时器,然后执行软启动命令,自举后,搬移新程序到内存,程序指针跳转到新程序的入口地址,开始执行,进入步骤A8;
A8所述目标节点启动完毕,等待所述升级服务器的测试命令,进入步骤A9;
A9所述目标节点若收到测试命令则反馈测试结果,进入步骤A10;否则循环等待;
A10所述升级服务器判断反馈结果,若测试正常则发送命令关闭定时器、修改程序FLASH公共区的启动参数、指定新程序区为正常运行程序区的参数、发软启动命令,进入步骤A11;否则进入步骤A12;
A11所述目标节点收到软启动命令,启动新程序运行,升级流程结束;
A12若收到所述升级服务器的异常反馈,或者收不到所述升级服务器的反馈,说明升级不对,定时器超时,所述目标节点被复位而重新启动,测试次数减1,进入步骤A13;
A13当失败次数超过预设值(通常设定为3次)时,启动FLASH的启动程序将FLASH公共区的启动参数复原,关闭定时器,启动先前的应用程序,升级流程结束。
如图1中所示的,程序FLASH被分为四个区,其中,三个区用来存放版本程序,其中一个区存放是当前正在使用的程序,其余两个为备用程序区。第四个区为公共区用来记载单板的自举程序、前面三个区存放的各版本程序的信息以及启动参数等,公共区的自举程序与版本程序区的分离使得当前运行的版本程序可以被更换;用一种可行的拓扑结构将众多的节点组成网络,每个节点具有网内唯一的ID号,通过一定的传输方式实现任意节点间相互访问的目的,所述升级服务器与最近的节点通过串口或者网口相连。
首先,所述升级服务器需将新应用程序写入目标节点的程序FLASH的某个程序区中。随后,配置公共区参数,包括程序运行状态、测试次数、启动区间号、代码长度及程序入口等。接着,所述升级服务器下发重启命令,先启动在CPLD中用逻辑实现的定时器,系统软启动;自举程序执行结束后,判断FLASH中是否有测试程序、测试次数是否大于零,当两个条件都满足时,则进入测试流程;当两个条件任一个不满足,则正常启动:把参数区指定的应用程序搬移到内存中执行,搬移过程中,代码长度及程序入口等参数都来自公共区中的记录。
在测试过程中,在本发明方法中设定的超时时间为20分钟,该时间间隔可根据实际情况修改;测试次数,在本发明方法中缺省的测试次数为3,可根据实际情况进行修改,减1。如果所述目标节点能和升级服务器正常通讯,在规定的20分钟内,工作人员对所述目标节点的新程序的各项功能逐一验证,若各项都验证通过,工作人员则通过所述升级服务器向目标节点发送关闭定时器命令;然后发送命令修改公共区参数:包括将该新应用程序标记为正式程序、测试次数清零、启动区间设置成本程序FLASH区等;最后发送软件复位命令,目标节点重新启动,程序进入正常流程,载入该新程序开始运行,直到下一次升级命令的到来,至此,目标节点测试通过并且升级成功。若测试程序运行后,所述目标节点和所述升级服务器通讯失败,在20分钟内,新程序无法由测试态被修改为正常状态,定时器不能被关闭,导致定时器超时,发出复位信号;所述目标节点重新启动,如果测试次数大于零,其将被减1,再次进入测试流程;若三次重启都无法正常运行测试程序,此时测试次数等于零,所述目标节点再次重启后,进入正常流程,载入旧程序运行,恢复到升级前的状态。这样,在升级失败时,可以恢复使用原先的版本程序。
本发明实现了一种对联网设备的远程在线升级的方法:不需要在现场即可对远端正在运行的设备实现升级。该方法大大降低了设备维护人员的工作量,节省了升级成本;并且具有在升级失败的情况下自动恢复的功能,大大提高了远程升级的可靠性。
但应当理解的是,上述针对本发明具体实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
Claims (3)
1、一种具有自恢复功能的远程在线升级方法,其特征在于包括以下步骤:
升级服务器与最接近的节点相连,并发送升级命令;
所述最接近节点判断此升级命令是否是发给自己的,若是则反馈;否则转发该升级命令给其它节点;
目标节点收到对应的升级命令后向所述升级服务器反馈,所述升级服务器收到反馈消息,将升级程序通过网络转发给所述目标节点;
所述目标节点接收完升级程序后,将其写入程序FLASH的存储区间,并修改其公共区间的启动参数,向所述升级服务器反馈;
所述升级服务器确认后向所述目标节点发送软启动命令;
目标节点打开定时器,再执行软启动命令,自举后搬移新程序到内存,程序指针跳转到新程序的入口地址执行,启动完毕后等待升级服务器的测试命令,以及根据收到的测试命令进行测试并反馈测试结果,升级服务器根据反馈的测试结果判断测试是否正常,若正常发送命令关闭定时器、修改程序FLASH公共区的启动参数、发软启动命令,所述目标节点根据收到的软启动命令启动升级后的程序运行,若不正常,定时器超时,目标节点被复位而重新启动,测试次数减1,当失败次数超过预设的测试次数时,启动FLASH的启动程序将公共区的启动参数复原,关闭定时器,启动先前的应用程序。
2、根据权利要求1所述的方法,其特征在于,所述程序FLASH划分为至少一存放运行版本程序区、两备用程序区以及一用来存放设备的自举程序、记载各版本程序的信息以及启动参数的公共区。
3、根据权利要求2所述的方法,其特征在于,所述参数包括程序运行状态、测试次数、启动区间号、各版本程序的代码长度及各版本程序入口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101025577A CN100518082C (zh) | 2005-09-12 | 2005-09-12 | 一种具有自恢复功能的远程在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101025577A CN100518082C (zh) | 2005-09-12 | 2005-09-12 | 一种具有自恢复功能的远程在线升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1933416A CN1933416A (zh) | 2007-03-21 |
CN100518082C true CN100518082C (zh) | 2009-07-22 |
Family
ID=37879050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101025577A Active CN100518082C (zh) | 2005-09-12 | 2005-09-12 | 一种具有自恢复功能的远程在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100518082C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354286A (zh) * | 2011-09-16 | 2012-02-15 | 天津市亚安科技股份有限公司 | 一种实现云台可靠在线远程升级的系统 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527976B (zh) * | 2008-03-04 | 2011-12-07 | 中兴通讯股份有限公司 | 远程软件升级方法及系统 |
US8892699B2 (en) * | 2008-12-31 | 2014-11-18 | Schneider Electric USA, Inc. | Automatic firmware updates for intelligent electronic devices |
CN101621411B (zh) * | 2009-07-22 | 2014-12-17 | 中兴通讯股份有限公司 | 微控制器远程更新方法和更新系统 |
CN102541585B (zh) * | 2011-11-11 | 2016-05-18 | 深圳市迪威新软件技术有限公司 | 一种远程升级方法及嵌入式系统 |
CN103577214B (zh) * | 2012-08-09 | 2017-03-29 | 罗森伯格(上海)通信技术有限公司 | 应用程序更新方法和装置 |
CN103677871A (zh) * | 2012-09-10 | 2014-03-26 | 上海达实联欣科技发展有限公司 | 在线升级系统及方法 |
CN103106089B (zh) * | 2013-01-25 | 2016-03-02 | 大唐移动通信设备有限公司 | 一种智能平台管理控制器的升级方法和系统 |
CN103106095A (zh) * | 2013-03-11 | 2013-05-15 | 深圳华用科技有限公司 | 一种工业照相机远程升级的方法及照相机 |
CN104991795B (zh) * | 2015-06-19 | 2018-11-02 | 汉王科技股份有限公司 | 主动电容笔的固件升级方法及装置 |
CN106470418A (zh) * | 2015-08-21 | 2017-03-01 | 华为技术有限公司 | 设置通信参数的方法和装置 |
CN105912356B (zh) * | 2016-03-31 | 2019-04-09 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN106371856B (zh) * | 2016-11-08 | 2020-02-04 | 广州商拓软件科技有限公司 | 一种菜单统计的方法及用户终端、应用后台端 |
CN107423087A (zh) * | 2017-05-19 | 2017-12-01 | 北京有初科技有限公司 | 一种服务器可监测的应用程序升级方法 |
CN107682889A (zh) * | 2017-09-11 | 2018-02-09 | 北京奇安信科技有限公司 | 无线网络性能测试方法、装置及系统 |
CN110377314B (zh) * | 2019-07-19 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统的系统升级方法、装置、设备及介质 |
CN110460469B (zh) * | 2019-08-12 | 2022-01-07 | 视联动力信息技术股份有限公司 | 一种系统升级方法、装置和存储介质 |
CN112685053B (zh) * | 2019-10-18 | 2024-05-14 | 航天科工惯性技术有限公司 | 单片机程序远程升级控制方法 |
CN112925532B (zh) * | 2019-12-06 | 2023-07-14 | 北京华为数字技术有限公司 | 一种软件安装方法、信息发送方法及装置 |
CN111625267B (zh) * | 2020-06-02 | 2023-05-26 | 中电科蓉威电子技术有限公司 | 基于uwb通信的程序在线升级系统和方法 |
CN112055353A (zh) * | 2020-09-10 | 2020-12-08 | 中煤科工集团重庆研究院有限公司 | 煤矿人员定位标识卡无线升级系统和方法 |
CN112104738B (zh) * | 2020-09-18 | 2023-04-18 | 深圳赛时达科技有限公司 | 电子价签系统软件的自动升级方法、服务器及系统 |
-
2005
- 2005-09-12 CN CNB2005101025577A patent/CN100518082C/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354286A (zh) * | 2011-09-16 | 2012-02-15 | 天津市亚安科技股份有限公司 | 一种实现云台可靠在线远程升级的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1933416A (zh) | 2007-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100518082C (zh) | 一种具有自恢复功能的远程在线升级方法 | |
CN100545809C (zh) | 一种软件升级方法及其系统 | |
CN103488498B (zh) | 一种计算机启动方法及计算机 | |
JPH0731647B2 (ja) | 分散データ処理ネットワークにおける遠隔保守及び誤り回復方法及び装置 | |
CN111221619A (zh) | 一种业务开通和编排的方法、装置及设备 | |
CN110196804B (zh) | 业务的测试方法和装置、存储介质、电子装置 | |
CN1936844A (zh) | 用于更新软件的方法和系统 | |
US10469620B2 (en) | Method for transferring a new software version to at least one electricity meter via a communication network | |
CN106502713A (zh) | 一种软件升级方法和系统 | |
CN104899116A (zh) | 数据备份的方法、源服务器、目标服务器及系统 | |
CN102299814B (zh) | 一种snmp代理上管理信息库的升级方法和系统 | |
CN109976926A (zh) | 一种屏蔽重启保护bmc更新过程的方法、电路、终端及存储介质 | |
CN113515316A (zh) | 一种新型边缘云操作系统 | |
CN110401729B (zh) | 一种云平台服务器网络迁移方法、系统、终端及存储介质 | |
CN115268976A (zh) | 一种多数据中心采集Agent版本自动升级方法及其系统 | |
CN105930190B (zh) | 一种基于操作系统的程序自启动方法和装置 | |
CN102780578A (zh) | 网络设备的操作系统的更新系统及更新方法 | |
CN102567050B (zh) | B/s系统远程部署项目的方法和装置 | |
CN111917588A (zh) | 边缘设备管理方法、装置、边缘网关设备和存储介质 | |
CN104937863A (zh) | 系统升级的方法和设备 | |
JP2006113754A (ja) | ソフトウェア更新装置及び方法 | |
CN111240700A (zh) | 一种跨网段服务器os部署系统及方法 | |
CN110413311A (zh) | 系统配置方法及服务器 | |
CN111769966B (zh) | 一种克隆升级方法、系统和应用 | |
CN104346239B (zh) | 嵌入式系统中应用程序的异常恢复方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |