首页> 中国专利> 软件版本升级管理装置和软件版本升级管理方法

软件版本升级管理装置和软件版本升级管理方法

摘要

本发明公开了软件版本升级管理装置及方法,该装置包括:第一和第二版本存储模块,存储系统的软件版本,两者互为备份;存储选择模块,选择第一及第二版本存储模块中的一个参与后续的操作;存储控制模块,控制存储选择模块对第一及第二版本存储模块的选择;读写控制模块,与存储选择模块和存储控制模块连接,实现数据的读写操作;版本加载模块,受读写控制模块的控制并通过读写控制模块从第一或第二版本存储模块下载所需软件版本;版本信息寄存模块,与存储控制模块和读写控制模块连接,存储系统的表示当前软件版本存储位置的设备号和表示版本状态的状态值,用互相为备份的版本存储模块替换单一存储模块,实现系统软件版本备份和回退的技术进步。

著录项

  • 公开/公告号CN101169749A

    专利类型发明专利

  • 公开/公告日2008-04-30

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200710169782.1

  • 发明设计人 郑斌儒;刘嵘;

    申请日2007-11-20

  • 分类号G06F11/14(20060101);G06F9/445(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人尚志峰;吴孟秋

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦

  • 入库时间 2023-12-17 20:02:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-09

    未缴年费专利权终止 IPC(主分类):G06F11/14 授权公告日:20090722 终止日期:20161120 申请日:20071120

    专利权的终止

  • 2015-02-18

    专利权的转移 IPC(主分类):G06F11/14 变更前: 变更后: 登记生效日:20150127 申请日:20071120

    专利申请权、专利权的转移

  • 2009-07-22

    授权

    授权

  • 2008-06-25

    实质审查的生效

    实质审查的生效

  • 2008-04-30

    公开

    公开

说明书

技术领域

本发明涉及系统软件版本升级管理技术,尤其涉及通信领域的主控系统的软件版本升级管理装置和方法。

背景技术

为了应对技术不断更新和用户会不断提出新需求的需要,产品在系统设计阶段就必须考虑系统能实现软件版本随时更新的要求。在目前,需要加载软件版本的器件主要集中在处理器(包括通用处理器、数字信号处理器和单片机)和FPGA(Field Programmable GateArray)这几类可软件编程的器件类型上。由于在系统的启动过程中就需要下载软件版本,因此这些器件的软件版本一般都放在FLASH(闪存,一种可靠性较高的存储器)上,系统上电后,需要加载软件版本的器件只需通过操作FLASH的数据接口就可以读取到需要的数据。对于软件版本的升级其本质就是更新FLASH的内容,将新的数据写入FLASH中,当系统重启后,就可以得到新的软件版本,实现整个系统升级。目前更新FLASH内容的方法主要有:一是通过编程器,技术人员到用户现场将新的软件版本烧录到FLASH中,这种方法的优点在于一次操作不成功可以多次操作,但缺点也比较明显,就是增加了系统升级成本和操作不方便;另一种方法是软件系统可以支持软件版本在线升级,即技术人员可以在远端通过系统提供的用户接口对系统进行升级操作,将新的软件版本拷贝到FLASH中,成功后通过软启动命令使系统重启加载新的软件版本实现系统升级,该方法的优点是技术人员可以不到用户现场只需远程登录到用户设备上就能实现软件版本升级,同时由于软件版本升级不需要专用的烧录器,也大大的节约了系统升级成本,但这种方法也有其明显不足之处:可靠性较低,如正在对FLASH进行更新的时候,系统突然断电或其他异常导致系统重新启动,这时旧的软件版本已经被破坏,新的软件版本还没有更新成功,系统因没有完整的软件版本而不能重新启动,不能再进行远端操作,需要技术人员赶到现场解决这个严重故障。

上述两种软件版本升级的方法除了已经列举的缺点外,由于现在的版本存储器FLASH设计采用的是一个单模块设计,不能备份原有的软件版本,因此不能提供软件版本回退功能,即新的软件版本出现问题后,不能方便的回退到长期使用的验证过的原有的软件版本上。

发明内容

鉴于上述技术问题,本发明所要解决的技术问题在于提供一种可靠的软件版本升级管理装置和软件版本升级管理装置方法,其能够克服现有技术中存在的软件版本升级过程中可靠性低,版本管理不灵活,以及升级维护成本高的问题。

根据本发明的第一方面的软件版本升级管理装置,用于对系统的软件版本进行升级管理,包括:第一版本存储模块和第二版本存储模块,用于存储系统的软件版本,第一版本存储模块与第二版本存储模块互为备份;存储选择模块,用于选择第一版本存储模块及第二版本存储模块中的一个参与后续的操作;存储控制模块,用于控制存储选择模块对第一版本存储模块及第二版本存储模块的选择;读写控制模块,与存储选择模块和存储控制模块连接,用于实现数据的读写操作;版本加载模块,受读写控制模块的控制并通过读写控制模块从第一版本存储模块或第二版本存储模块下载所需软件版本;以及版本信息寄存模块,与存储控制模块和读写控制模块连接,用于存储系统的表示当前软件版本存储位置的设备号和表示版本状态的状态值。

在上述软件版本升级管理装置中,版本加载模块是具有控制系统的处理器设备。

在本发明第一方面的软件版本升级管理装置中,还包括版本控制模块,用于进行系统的控制,版本控制模块通过读写控制模块选择处于备份状态的第一版本存储模块或第二版本存储模块,并写入新的软件版本;版本控制模块通过读写控制模块修改版本信息寄存模块中的设备号和状态值。

在上述的软件版本升级管理装置中,第一版本存储模块和第二版本存储模块包括永久记忆性存储器,接受版本控制模块的读写操作和版本加载模块的读操作。

在上述的软件版本升级管理装置中,存储控制模块根据查询版本信息寄存模块返回的内容或者读写控制模块接收到的版本控制模块的选择控制请求,控制存储选择模块选择第一版本存储模块或第二版本存储模块。

在上述的软件版本升级管理装置中,读写控制模块完成版本控制模块、版本加载模块、以及第一版本存储模块或第二版本存储模块之间的数据读写操作转换和数据转发操作,具有以下功能:实现版本控制模块对版本信息寄存模块的更新操作;控制版本加载模块的版本下载操作;通过存储控制模块控制存储选择模块完成版本控制模块对第一版本存储模块或第二版本存储模块的读写操作;当新的软件版本第一次不能正常启动时,控制系统重新启动并将系统的软件版本自动回退到原有软件版本。

在上述的软件版本升级管理装置中,第一版本存储模块和第二版本存储模块是相互独立的存储器、或是一个存储器的相互独立的两个存储空间,当第一版本存储模块和第二版本存储模块是相互独立的存储器时,存储选择模块通过总线选择第一版本存储模块或第二版本存储模块;当第一版本存储模块和第二版本存储模块是一个存储器的相互独立的两个存储空间时,存储选择模块通过地址选择第一版本存储模块或第二版本存储模块。

在上述的软件版本升级管理装置中,版本信息寄存器模块是永久记忆性存储器,包括当前版本寄存器。

根据本发明第二方面的软件版本升级管理方法,用于对系统的软件版本进行升级管理,通过包含有互为备份的第一版本存储模块和第二版本存储模块的软件版本升级管理装置来实现,包括以下步骤:步骤一,软件版本升级管理装置的版本控制模块接收新的软件版本,并将新的软件版本写入处于备份状态的第一版本存储模块或第二版本存储模块中;当写入成功时,更新软件版本升级管理装置的版本信息寄存模块中的当前版本寄存器的设备号,使设备号指向存有新的软件版本的第一版本存储模块或第二版本存储模块的设备号;步骤二,系统复位重启或断电重启后,软件版本升级管理装置的存储控制模块根据版本信息寄存模块中的当前版本寄存器的设备号,控制软件版本升级管理装置的存储选择模块选择存有新的软件版本的第一版本存储模块或第二版本存储模块,同时软件版本升级管理装置的读写控制模块控制版本加载模块,让其处于加载等待状态,直到存储控制模块完成对存储选择模块的控制;步骤三,读写控制模块无效其对版本加载模块的控制,版本加载模块开始通过读写控制模块从存有新的版本的第一版本存储模块或第二版本存储模块下载软件版本,下载成功后,系统继续启动;步骤四,当系统成功启动后,完成一次版本升级;当系统没有成功启动时,读写控制模块修改版本信息寄存模块中的当前版本寄存器的设备号和状态值,使设备号为存有原有软件版本的第一版本存储模块或第二存储模块的设备号,然后控制整个系统重新启动。

在上述的软件版本升级管理方法中,在步骤一之前还包括以下过程:当版本控制模块接收到软件版本升级的命令时,首先通过读写控制模块查询版本信息寄存模块的当前版本寄存器,获得存储当前运行的软件版本的第一版本存储模块或者第二版本存储模块的设备号,确认处于备份状态的是第一版本存储模块还是第二版本存储模块。

采用本发明所述方法和装置,与现有技术相比,取得了用互相为备份的版本存储模块替换单一存储模块,实现系统软件版本备份和回退的技术进步,达到了软件版本灵活管理的效果,节省了系统升级成本,提高了系统可靠性和市场竞争力等等。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是软件版本升级管理装置的模块图。

图2是软件版本升级管理方法的第一实施例的流程图。

图3是软件版本升级管理方法的第二实施例的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是软件版本升级管理装置100的模块图。如图1所示,版本管理装置100包括:版本存储模块101、102、存储选择模块103、存储控制模块104、版本控制模块105、读写控制模块106、版本加载模块107、版本信息寄存模块108。

为了方便描述,假设系统原来运行的软件版本存储在版本存储模块101中,新的软件版本需要写入处于备用状态的版本存储模块102中。

版本存储模块101,由可靠性高的永久记忆性存储器组成,存储系统所需的软件版本。与版本存储模块102是相互为备份的版本存储设备,它们可以是相互为独立的存储设备,也可以是一个大的存储器的相互独立的存储空间。

版本存储模块102,结构和功能与版本存储模块101一样,在本实施例中,该版本存储模块102处于备用状态,当软件版本升级的时候,存储新的软件版本。

存储选择模块103,是一种存储设备选择器,根据版本存储模块101、102的类型既可以是存储空间的地址选择也可以是两个独立存储设备的总线选择。存储选择模块103接收来自存储控制模块104的控制信号,并根据该控制信号从版本存储模块101和版本存储模块102中选择出一个模块接受读写控制模块106的读写操作。

存储控制模块104,控制存储选择模块103的对版本存储模块101、102的选择。存储控制模块104在系统重启的时候,首先去查询版本信息寄存模块108中的当前软件版本寄存器,根据反馈回来的设备号,控制存储选择模块103的对版本存储模块101、102的选择;完成对存储选择模块103的控制后,存储控制模块104向读写控制模块106输出一个状态信号,标志存储选择模块103的版本存储模块的选择操作完成,读写控制模块106可以进行后续工作。在系统正常运行的过程中,存储控制模块104能接收读写控制模块106的版本存储模块选择请求,接收到请求后,首先无效输出给读写控制模块106的状态信号,指示存储选择模块103此时的选择是无效,读写控制模块106需要等待,然后根据请求信号传过来的设备号,控制存储选择模块103进行选择,完成这个操作后,改变输出给读写控制模块106的状态信号的值,通知读写控制模块106可以继续其后续操作。

版本控制模块105,由负责系统控制的中央处理器构成,负责完成从用户接口接收新的软件版本并将软件版本通过读写控制模块106写入备份的版本存储模块102中去的操作,当版本加载模块107是一个处理器设备并承担系统控制操作的时候,版本控制模块105可以省略,用版本加载模块107替代其工作。当有软件版本需要升级的时候,版本控制模块105首先通过读写控制模块106查询版本信息寄存模块108的当前版本寄存器,可以间接获得处于备用状态的版本存储模块102的设备号,根据这个设备号去通知读写控制模块106,要求它去请求存储控制模块104去控制存储选择模块103,使处于备用状态的版本存储模块102与读写控制模块106连接,并能接受其读写控制;当完成与版本存储模块102的连接后,版本控制模块105将新的软件版本通过读写控制模块106写入版本存储模块102,成功后,将版本存储模块102的设备号通过读写控制模块写入版本信息寄存模块108中的当前版本寄存器。当系统重启后,就完成一次软件版本更新。如果新的软件版本设计不满足用户需求或者其他原因,版本控制模块105可以通过读写控制模块106修改版本信息寄存模块108中的当前版本寄存器,写入版本存储模块101的设备号,从而实现版本回退功能。

读写控制模块106,实现数据读写操作转换和数据转发操作。版本控制模块105、版本加载模块107、版本存储模块101和版本存储模块102之间的数据读写时序和数据格式可能不同,系统是依靠读写控制模块106来实现这些模块的读写操作转换和数据转发。读写控制模块106实现版本控制模块105对版本信息寄存模块108的更新操作。系统断电或复位重启后,读写控制模块106首先通过控制信号禁止版本加载模块107的加载操作,直到检测到标志着存储选择模块103已经完成版本存储模块选择的由存储控制模块104发送过来的状态信号后,读写控制模块106才撤销对版本加载模块107的控制信号;然后版本加载模块107开始加载版本,并启动整个软件系统,系统启动完成后,版本控制模块105通知读写控制模块106系统已经正常启动,同时更新当前版本寄存器的版本状态标志位。当版本加载模块107成功下载版本后,读写控制模块106启动一个内部计数器,当计数器的计数值超过预定值后,仍然没有收到版本控制模块105的标志系统已经正常启动的通知,读写控制模块106主动发起一个对版本信息寄存模块108中当前版本寄存器的查询操作,检测其版本状态标志位,当标志位为0的时候,修改当前版本寄存器中的设备号,写入存有上一版本(原有版本)的版本存储模块101的设备号,并同时将当前版本寄存器的状态值设置为1;然后读写控制模块106发出系统复位命令,自动重新启动整个系统,系统软件版本回退到经过验证的原有版本,重启后,用户可以选择重新升级软件版本或者其他操作。

版本加载模块107,由需要加载软件版本的处理器或FPGA等软件可编程器件构成。读写控制模块106控制版本加载模块107何时可以加载软件版本;版本加载模块107可以通过读写控制模块106从版本存储模块101或者版本存储模块102获得需要的软件版本。

版本信息寄存模块108,由一个小容量的永久记忆性存储器构成,包含一个当前版本寄存器。该寄存器定义了两个字段,一个字段为设备号,用于指示系统下次重新启动的时候是从版本存储模块101还是从版本存储模块102下载软件版本;另外一个字段为状态值,用于标志设备号所指示的版本存储模块中的软件版本是否至少一次被成功启动过,0:表示没有成功启动过,1:表示至少成功启动一次。存储控制模块104在重新启动的时候需要查询当前版本寄存器的设备号,确定存储选择模块103去选择版本存储模块101还是版本存储模块102;版本控制模块105通过读写控制模块106修改当前版本寄存器的设备号和状态值实现版本更新和回退功能;读写控制模块106可以主动修改当前版本寄存器的设备号和状态值实现系统自动软件版本回退功能。

图2是软件版本升级管理方法的第一实施例的流程图。如图2苏轼,软件版本升级管理方法包括以下步骤:

步骤S210,版本控制模块接收新的软件版本,并将新的软件版本写入处于备份的版本存储模块中。在成功的将新的软件版本写入版本存储模块后,更新版本信息寄存模块中的当前版本寄存器,使当前版本寄存器中的设备号指向存有最新软件版本的版本存储模块的设备号;

步骤S220,系统复位重启或断电重启,存储控制模块根据查询到版本信息寄存模块中的版本存储模块的设备号,控制存储选择模块选择存有升级后的软件版本的版本存储模块。同时读写控制模块控制版本加载模块,让其处于加载等待状态,直到存储控制模块完成对存储选择模块的控制。

步骤S230,读写控制模块无效其对版本加载模块的控制,版本加载模块开始通过读写控制模块从版本存储模块下载软件版本,下载成功后,系统继续启动。当系统成功启动后,完成一次版本升级。

步骤S240,如果步骤S230执行后升级不成功,读写控制模块修改版本信息寄存模块中的当前版本寄存器的设备号和状态值,使设备号为存有上一软件版本的版本存储模块的设备号,然后控制整个系统重新启动。

图3是软件版本升级管理方法的第二实施例的流程图。如图3所示,对于本发明的软件版本升级的步骤如下:

步骤302,准备,当用户需要升级软件版本或者软件版本回退的时候,整个系统需要是正在正常运行的系统,并且技术人员可以通过用户接口登录到系统,对系统进行操作。当技术人员登录到系统后,可以执行版本升级或者版本回退命令。

步骤S304,版本控制模块105收到软件版本更新或者软件版本回退命令后,通过读写控制模块106查询版本信息寄存模块108的当前版本寄存器,获得当前运行的软件版本是从哪个版本存储模块下载的,在本发明中该操作获得的是版本存储模块101的设备号,通过该设备号版本控制模块105知道版本存储模块102是处于备用状态或者系统的软件版本需要回退到版本存储模块102存放的软件版本上。

步骤S306,版本控制模块105在获得版本存储模块102是后续需要操作的对象后,需要判断接收到的操作命令是软件版本更新命令还是版本回退命令,如果是软件版本更新命令,则执行步骤S308;如果是软件版本回退,则执行步骤S328。

步骤S308,根据步骤S304获得的设备号,版本控制模块105通知读写控制模块106它需要对版本存储模块102进行写操作,并等待读写控制模块106反馈版本存储模块102准备状态;读写控制模块106获得版本控制模块105的版本存储模块选择通知后,将版本存储模块102的设备号发送给存储控制模块104,并请求其控制存储选择模块103选择版本存储模块102作为后续操作的对象,当存储选择模块103完成选择版本存储模块102作为后续操作对象后,存储控制模块104通过状态信号通知读写控制模块106版本存储模块102已经准备好,可以进行后续操作。版本控制模块105从读写控制模块106获得版本存储模块102已经准备好后,执行步骤S310。

步骤S310,更新软件版本,版本控制模块105将新的软件版本通过读写控制模块106写入版本存储模块102。同时版本控制模块105还需要通过读写控制模块106修改版本信息寄存模块108的当前版本寄存器,将其设备号修改为版本存储模块102的设备号;将状态值设置为0,以供新的软件版本不能成功启动后,系统能自动回退到原有软件版本。

步骤S312,重新启动,系统复位重新启动或者断电重新启动,重新加载软件版本。读写控制模块106控制版本加载模块107,禁止版本加载模块107加载软件版本,等待存储选择模块103选择操作完成后再进行版本下载操作。

步骤S314,选择软件版本,存储控制模块104在系统重启后,查询版本信息寄存模块108的当前版本寄存器的设备号,通过这个设备号获得版本加载模块107应该从版本存储模块102下载版本的信息,于是控制版本选择模块103选择版本存储模块102作为后续操作的对象。完成这些操作后存储控制模块104发送状态信号给读写控制模块106,指示版本选择模块103已经完成选择操作,版本存储模块102已经准备好进行后续操作。

步骤S316,加载软件版本,读写控制模块106获得版本存储模块102已经准备好后,撤销对版本加载模块107的控制,允许版本加载模块107通过读写控制模块106从版本存储模块102下载软件版本。

步骤S318,启动成功,在版本加载模块107成功从版本存储模块102下载版本后,启动内部计数器,等待版本控制模块105发来的系统启动成功的通知。在版本控制模块105发出系统启动成功的通知后,执行步骤S320;如果在内部计数器的计数值超过设置值后,读写控制模块106仍然没有收到版本控制模块105的系统启动成功的通知,执行步骤S322。

步骤S320,版本控制模块105在系统启动成功后,通过读写控制模块106修改版本信息寄存模块108的当前版本寄存器的状态值,将其设置为1,表示该软件版本至少被成功启动一次。至此,系统完成整个启动过程。

步骤S322,查询当前版本寄存器,读写控制模块106主动查询版本信息寄存模块108的当前版本寄存器中的状态值。

步骤S324,读写控制模块106根据步骤S322返回的状态值,判断版本加载模块107加载的版本是否被成功启动过,如果状态值是0,说明该软件版本还没有成功加载过,软件版本升级失败,版本需要回退到以前的版本,执行步骤S326;如果状态值是1,说明该软件版本是经过该系统启动验证过,不能启动可能有其他问题,需要技术人员现场解决,因此不进行版本回退,直接结束系统启动。

步骤S326,修改当前寄存器,读写控制模块106在新的软件版本不能在系统正常启动后,修改版本信息寄存模块108的当前寄存器中的设备号和状态值,将设备号修改为版本存储模块101的设备号,将状态值修改为1,然后重新启动系统,让版本加载模块107从版本存储模块101下载版本,执行步骤S312。

步骤S328,更新当前版本寄存器,版本控制模块105用从用户命令传过来的设备号替换版本信息寄存模块108的当前版本寄存器中的设备号,并且将状态值设置为0,执行步骤S312。

步骤S330,结束,系统结束启动操作。

采用本发明所述方法和装置,与现有技术相比,取得了用互相为备份的版本存储模块替换单一存储模块,实现系统软件版本备份和回退的技术进步,达到了软件版本灵活管理的效果,节省了系统升级成本,提高了系统可靠性和市场竞争力等等。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号