CN1464394A - 一种软件在线升级的方法 - Google Patents

一种软件在线升级的方法 Download PDF

Info

Publication number
CN1464394A
CN1464394A CN 02112209 CN02112209A CN1464394A CN 1464394 A CN1464394 A CN 1464394A CN 02112209 CN02112209 CN 02112209 CN 02112209 A CN02112209 A CN 02112209A CN 1464394 A CN1464394 A CN 1464394A
Authority
CN
China
Prior art keywords
rompaq
variable
program
reset
terminal module
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
Application number
CN 02112209
Other languages
English (en)
Other versions
CN1280724C (zh
Inventor
常国强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN 02112209 priority Critical patent/CN1280724C/zh
Publication of CN1464394A publication Critical patent/CN1464394A/zh
Application granted granted Critical
Publication of CN1280724C publication Critical patent/CN1280724C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

软件在线升级的方法,涉及软件下载领域,包括步骤:在终端模块可配置区域划出一个区域以存储下载程序监控结构变量;当监控中心进行软件升级时,按照现有具有软件在线升级功能的终端模块的升级方法将升级程序传输到终端模块并保存到可配置区域中;对下载程序监控结构变量各成员变量赋值,将其存储到可配置区域;停止对看门狗操作,等其规定时间到来后使CPU复位,终端模块重新启动;读取已赋初值的下载程序监控结构变量,据其结构成员取值确定程序下一步流程;监控中心对运行升级软件的监控模块进行监测,无误后下发取消监控命令;监控模块将监控变量置为“否”,终端再重新启动时直接运行升级程序;本发明提高了工作效率。

Description

一种软件在线升级的方法
技术领域
本发明涉及软件下载领域,具体涉及动力设备与环境集中监控领域中的软件下载方法。
背景技术
动力设备及环境集中监控***是对通信局(站)的电源、空调、油机、蓄电池、高低压配电等多种设备和环境的各种参数、图像、声音等进行遥测、遥信和遥控,实时监测其运行参数,诊断和处理故障,记录和分析相关数据,从而实现通信局(站)少人或无人值守并对设备进行集中监控和集中维护的计算机控制***。
动力设备及环境集中监控***多采用分布式计算机控制***,一般分为本地网监控中心、县级监控站、远端被控局监控单元和远端监控终端模块。其中,远端监控终端模块与被监控设备直接连接,用于对被监控设备工作状态的监视和运行参数的采集,并将结果送往监控单元和监控中心,并实时接收和执行来自监控中心和监控单元的监测和控制命令。为了提高终端监控模块的可靠性和灵活性,终端模块除了具备上述基本功能外,还具备软件在线升级功能,即当远端监控终端模块的运行软件需要升级时,只需在监控中心进行软件在线升级,而不必到每个端局对每个终端模块进行升级,大大减少软件升级的工作量。
具有软件在线升级功能的终端模块的硬件设计以CPU为核心,并配备存储出厂程序的可擦可编程只读存储器(EPROM)和存储配置内容和升级程序的快可擦可编程只读存储器,简称闪存(FLASHEPROM)以及监视程序运行情况的看门狗(WATCHDOG)。软件升级模块的设计一般都集中在保证升级软件在从监控中心到终端模块的传输过程中正确传输以及在升级程序和出厂程序之间可重复切换等方面。其工作原理是,当终端模块上电运行后,CPU首先执行EPROM中的程序读取FLASH EPROM中的配置内容,然后根据配置内容运行出厂程序或下载程序。无论是运行出厂程序还是升级程序,程序都必须在规定的时间内对WATCHDOG进行操作,否则WATCHDOG就会复位CPU,使***重新运行。当监控中心需要进行软件升级时,终端模块的软件升级模块首先将升级程序存放到单板的FLASHEPROM中,并对FLASH EPROM中配置区进行配置,表明单板将运行FLASH EPROM中的下载程序,然后就停止对WATCHDOG操作,当WATCHDOG规定时间到后,WATCHDOG就复位CPU,使***重新运行。当***重新运行并读取FLASH EPROM配置内容后,就会执行升级程序,以后无论什么原因,程序重启后都将运行FLASHEPROM中的升级程序,除非对FLASH EPROM中的配置区重新配置。
上述具有软件在线升级功能的终端模块的技术方案虽然保证了升级软件在从监控中心到终端模块的传输过程中正确传输以及在升级程序和出厂程序之间可重复切换,但对升级程序内在的可靠性却较少考虑,如果由于升级软件设计人员失误,升级程序本身存在致命性错误,就可能导致错误的升级程序被正确地传输到终端模块,然后成功地与出厂程序切换,终端模块最后运行错误的升级程序。当终端模块运行错误的升级程序时,因无法在规定时间内对WATCHDOG进行操作,WATCHDOG就会复位CPU,使***重新运行。当***重新运行后,又运行错误的升级程序,WATCHDOG又会复位CPU,使***重新运行。这样,终端模块就陷入了复位、重启又复位的死循环,和监控中心失去了联系。监控中心既无法重新升级程序,也无法命令终端模块切回出厂程序,终端模块自己也无法再切换回正确的出厂程序,而必须等待维护人员亲自到远端现场进行恢复,使软件在线升级功能的作用大打折扣。
发明内容
本发明所要解决的技术问题在于克服上述的软件在线升级功能所具有的缺陷,结合目前具有软件在线升级功能的终端模块的特点,在其现有的硬件设计基础上,使得终端模块不会因为升级程序的设计错误和监控中心失去联系,维护人员也不必因此远赴现场解决问题。
本发明提出的软件在线升级的方法包括如下步骤:
第1步、在终端模块可配置区域(如FLASH EPROM)划出一个区域以存储下载程序监控结构变量Monitor_Upgrade,该结构变量包括升级程序变量EnableUpgrade、监控变量EnableMonitor、异常复位变量Abend等成员变量;
第2步、当监控中心进行软件升级时,按照现有具有软件在线升级功能的终端模块的升级方法将升级程序正确地传输到终端模块并保存到存储升级程序的可配置区域中;
第3步、对下载程序监控结构变量Monitor_Upgrade各成员变量赋值,即将升级程序变量EnableUpgrade、监控变量EnableMonitor均置为“是”,异常复位变量Abend置为“否”,然后将已赋值的下载程序监控结构变量存储到可配置区域;
第4步、停止对看门狗WATCHDOG的操作,等WATCHDOG规定时间到来后,使CPU复位,终端模块重新启动;
第5步、终端模块重新启动后读取已赋初值的下载程序监控结构变量Monitor_Upgrade,根据其结构成员取值情况确定程序下一步流程,即:
1)、若升级程序变量EnableUpgrade为“是”,则开始运行升级程序,否则运行出厂程序;
2)、若监控变量EnableMonitor置为“是”,则进入3);否则就退出判断而直接运行升级程序或出厂程序;
3)、判断此次程序复位是否属于异常复位,即如果Abend是“否”,则属于程序正常复位,否则就是异常复位;若属于正常复位,则重新对Abend赋值“是”,然后运行升级程序;若属于异常复位,则可以判断升级程序存在错误,不再执行升级程序,而是先将升级程序变量EnableUpgrade置为“否”,然后运行出厂程序,等待监控中心重新进行软件升级;
第6步、监控中心对运行升级软件的监控模块运行情况进行监测,发现运行无误后,下发取消监控命令;
第7步、监控模块收到取消监控命令后,将监控变量EnableMonitor置为“否”,以后终端再重新启动时,就直接运行升级程序,而不再判断是否异常复位。
采用本发明所述方法较以往软件升级方法增加了对升级程序运行情况的监控,可以自动区分终端模块的CPU复位属于正常复位还是异常复位,可避免因升级程序本身错误导致终端模块和监控中心失去联系而无法恢复,而且是可控的,不影响运行升级程序后因为其他原因导致终端模块复位后又重新运行出厂程序的情况发生。此外,该方法只须通过软件设计即可实现,不需要进行任何硬件改动。因此本发明所述的具有自恢复功能的软件在线升级方法在提高终端模块软件设计可靠性方面取得了明显进步,达到了真正无须维护人员远赴现场进行维护的效果,提高了工作效率。
附图说明
图1是本发明所述方法的流程示意图。
图2是实现本发明方法的具体硬件框图。
具体实施方式
下面结合图1、图2和实施例对本发明的软件在线升级方法做进一步说明。
如图2所示,硬件部分以Intel 386TM EX嵌入式微处理器作为CPU,并配以EPROM、FLASH EPROM、RAM、WATCHDOG等基本电路以及遥测、遥信、遥控等功能单元和通讯单元。其中EPROM存储出厂程序,FLASH EPROM存储配置信息和升级程序,WATCHDOG对程序运行情况进行监控,通信单元负责和监控中心联系,并接受监控中心发送的升级程序和各种命令。
软件部分除了保证升级程序可靠下载和正确存储等基本功能外,还要对升级程序在终端模块的运行情况进行监控,为此要在终端模块可配置区域(FLASH EPROM)划出一个区域专门存储对升级程序运行情进行监控的下载程序监控结构变量Monitor_Upgrade,其定义如下:struct MonitorOfUpgrade{
unsigned char EnableUpgrade,   ∥是否运行升级程序标志
unsigned char EnableMonitor; ∥是否进行监控标志
unsigned char Abendt,       ∥是否异常复位标志
unsigned int NumOfAbent      ∥CPU允许异常复位次数(可选)}Monitor_Upgrade
下载程序监控结构变量Monitor_Upgrade存储在单板FLASHEPROM中的一个指定地址,如:
#define AddMonitorOfDownloadInFlash((unsigned char*)0x7f6000L)
每次对它进行操作前必须先将其从FLASH EPROM中读出,操作完成后必须再向FLASH EPROM中写入。
在应用程序中对下载程序监控结构变量Monitor_Upgrade的操作分三次进行,一次在升级程序完全正确地写入到FLASH EPROM之后,从FLASH EPROM中将下载程序监控结构变量Monitor_Upgrade读出,然后对它的结构成员进行如下赋值运算:
Monitor_Upgrade.EnableUpgrade=1;∥引导升级程序
Monitor_Upgrade.EnableMonitor=1;      ∥进行监控
Monitor_Upgrade.Abendt=0;     ∥正常复位
Monitor_Upgrade.NumOfAbent=3;      ∥允许异常复位次数然后将已赋值的结构变量重新写入FLASH EPROM中,并停止对WATCHDOG的操作,直至WATCHDOG使CPU复位。
对下载程序监控结构变量Monitor_Upgrade的第二次操作在终端模块重新启动后,主程序首先读取存储在FLASH EPROM中的下载程序监控结构变量Monitor_Upgrade,并对其结构成员进行访问和判断,以确定程序流向。
值得注意的是,无论程序在何种情况下,只要对下载程序监控结构变量Monitor_Upgrade各结构成员变量进行了操作,都要将已重新赋值后的结构变量重新写入FLASH EPROM中。
对下载程序监控结构变量Monitor_Upgrade的第三次操作依据升级程序是否正确而定。如果程序继续运行后,监控中心通过观察终端模块的运行情况确认其已满足设计要求时,则发送升级程序正确的确认命令。终端模块收到确认命令后,对结构变量Monitor_Upgrade进行第三次操作:
MonitorOfDownload.EnableMonitor=0;  ∥通过确认,取消监控,然后重新写入FLASH EPROM中并继续运行升级程序。
如果升级程序存在错误而导致WATCHDOG动作使CPU复位,则会在终端模块重新启动后对结构变量Monitor_Upgrade进行第三次操作:
Monitor_Upgrade.EnableUpgrade=0;    ∥运行出厂程序
然后重新写入FLASH EPROM中并继续运行出厂程序。
由于升级程序从监控中心传输到终端模块花费的传输资源比较多,若由于现场其他原因在监控中心下发取消监控命令之前而使CPU复位,则升级程序监控模块也会误判断为升级程序错误,而切换回出厂程序,这样就必须重新将升级程序传输到终端模块,为避免浪费传输资源,可以在第5步判断***属于异常复位后进行计数,当增加了允许异常复位次数选项后,则会在每次异常复位时先判断其是否为零,如果为零则切换回出厂程序,否则将异常复位次数减1:
Monitor_Upgrade.NumOfAbent--;
然后重新写入FLASH EPROM中并继续运行升级程序。

Claims (2)

1、一种软件在线升级的方法,包括如下步骤:
第1步、在终端模块可配置区域划出一个区域以存储下载程序监控结构变量,该结构变量包括升级程序变量、监控变量、异常复位变量等成员变量;
第2步、当监控中心进行软件升级时,按照现有具有软件在线升级功能的终端模块的升级方法将升级程序正确地传输到终端模块并保存到存储升级程序的可配置区域中;
第3步、对下载程序监控结构变量各成员变量赋值,然后将已赋值的下载程序监控结构变量存储到可配置区域;
第4步、停止对看门狗的操作,等看门狗规定时间到来后,使CPU复位,终端模块重新启动;
第5步、终端模块重新启动后读取已赋初值的下载程序监控结构变量,根据其结构成员取值情况确定程序下一步流程,即:
1)、若升级程序变量为“是”,则开始运行升级程序,否则运行出厂程序;
2)、若监控变量置为“是”,则进入3);否则就退出判断而直接运行升级程序或出厂程序;
3)、判断此次程序复位是否属于异常复位,若属于正常复位,则重新对异常复位变量赋值“是”,然后运行升级程序;若属于异常复位,则可以判断升级程序存在错误,不再执行升级程序,而是先将升级程序变量置为“否”,然后运行出厂程序,等待监控中心重新进行软件升级;
第6步、监控中心对运行升级软件的监控模块运行情况进行监测,发现运行无误后,下发取消监控命令;
第7步、监控模块收到取消监控命令后,将监控变量置为“否”,以后终端再重新启动时,就直接运行升级程序,而不再判断是否异常复位。
2、根据权利要求1所述的一种软件在线升级的方法,其特征在于:在第5步判断***属于异常复位后进行计数,在每次异常复位时先判断允许异常复位次数选项是否为零,如果为零则切换回出厂程序,否则将异常复位次数减1,然后重新写入可配置区域中并继续运行升级程序。
CN 02112209 2002-06-21 2002-06-21 一种软件在线升级的方法 Expired - Fee Related CN1280724C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 02112209 CN1280724C (zh) 2002-06-21 2002-06-21 一种软件在线升级的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 02112209 CN1280724C (zh) 2002-06-21 2002-06-21 一种软件在线升级的方法

Publications (2)

Publication Number Publication Date
CN1464394A true CN1464394A (zh) 2003-12-31
CN1280724C CN1280724C (zh) 2006-10-18

Family

ID=29742090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02112209 Expired - Fee Related CN1280724C (zh) 2002-06-21 2002-06-21 一种软件在线升级的方法

Country Status (1)

Country Link
CN (1) CN1280724C (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100384122C (zh) * 2005-05-25 2008-04-23 深圳创维数字技术股份有限公司 网络终端产品的在线升级方法
CN100383738C (zh) * 2005-02-28 2008-04-23 乐金电子(中国)研究开发中心有限公司 一种便携终端的程序动态载入装置及方法
CN101236506B (zh) * 2008-02-25 2011-07-20 中兴通讯股份有限公司 一种机架式设备的版本升级方法
CN103036706A (zh) * 2012-11-26 2013-04-10 青岛海信传媒网络技术有限公司 应用升级异常的本地处理方法
CN104469278A (zh) * 2013-09-25 2015-03-25 浙江大华技术股份有限公司 一种监控***升级方法及装置
WO2017080006A1 (zh) * 2015-11-13 2017-05-18 邦彦技术股份有限公司 一种可节省存储芯片的集中存储方法及多功能模块***
CN116521201A (zh) * 2023-04-26 2023-08-01 如果新能源科技(江苏)股份有限公司 电池包的软件升级方法和电池包

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100383738C (zh) * 2005-02-28 2008-04-23 乐金电子(中国)研究开发中心有限公司 一种便携终端的程序动态载入装置及方法
CN100384122C (zh) * 2005-05-25 2008-04-23 深圳创维数字技术股份有限公司 网络终端产品的在线升级方法
CN101236506B (zh) * 2008-02-25 2011-07-20 中兴通讯股份有限公司 一种机架式设备的版本升级方法
CN103036706A (zh) * 2012-11-26 2013-04-10 青岛海信传媒网络技术有限公司 应用升级异常的本地处理方法
CN104469278A (zh) * 2013-09-25 2015-03-25 浙江大华技术股份有限公司 一种监控***升级方法及装置
WO2017080006A1 (zh) * 2015-11-13 2017-05-18 邦彦技术股份有限公司 一种可节省存储芯片的集中存储方法及多功能模块***
CN116521201A (zh) * 2023-04-26 2023-08-01 如果新能源科技(江苏)股份有限公司 电池包的软件升级方法和电池包

Also Published As

Publication number Publication date
CN1280724C (zh) 2006-10-18

Similar Documents

Publication Publication Date Title
US7200845B2 (en) System and method for high availability firmware load
CN100525206C (zh) 自动恢复设备故障的实现方法及***
CN101542445B (zh) 零单点故障负载平衡器的设备及方法
CN103209197B (zh) 集群服务器部署方法及***
CN101789886B (zh) 一种分布式环境的环境搭建自动化***及方法
CN110209405B (zh) 分布式***的自动化升级方法及装置
CN102314369A (zh) 一种远程在线监控***中设备自升级方法
CN1427587A (zh) 用于远端更新家用设备功能的方法和***
CN1933416A (zh) 一种具有自恢复功能的远程在线升级方法
CN109347681A (zh) 分布式***中的自更新功能
CN1280724C (zh) 一种软件在线升级的方法
CN2851205Y (zh) 基于嵌入式处理器的电梯监测终端
CN102819478B (zh) 一种无代理的数据处理***监控与管理方法
CN102722420A (zh) 一种自诊断终端、检测方法及远程维护***
CN101136768A (zh) 通信设备的软件及硬件版本管理方法和***
CN104102519A (zh) 机架式服务器***的固件更新方法及其装置
US7499987B2 (en) Deterministically electing an active node
CN103136005A (zh) 更新固件的方法
CN111597014B (zh) 免二次镜像的容器化JavaEE应用服务器的发布方法
CN113515316A (zh) 一种新型边缘云操作***
CN111324599A (zh) 一种区块链实验***及管理方法
CN102567050B (zh) B/s***远程部署项目的方法和装置
CN113296795A (zh) 应用部署方法、装置、设备、存储介质及程序产品
CN109654462B (zh) 一种智能灯柱功能延伸***
CN102081548A (zh) Java应用的处理方法、***和SAF平台

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061018

Termination date: 20190621