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