一种单板应用版本的实现方法及系统的制作方法

文档序号:76258阅读:295来源:国知局
专利名称:一种单板应用版本的实现方法及系统的制作方法
技术领域
本发明涉及计算机与嵌入式设备技术领域
,尤其涉及一种单板应用版本的实现方法及系统。
背景技术
目前各种嵌入式设备、通信i殳备的应用版本,如启动软件或升级软件版
本等,通常保存在非易失性存储器(Non-Volatile Memory)如flash (闪存)中, 一旦flash中的软件版本被破坏或者出现软件故障,将导致无法继续访问flash,从而造成整个设备将无法正常运行或者无法升级。
为了解决这个问题,现有技术中通常对设备单板的应用版本采用双版本相互备f分的方法;或者采用大小版本的方法,小版本用于紧急恢复,大版本用于正常运行。两种方法的工作原理基本相同单板首先从BootRom (启动芯片)启动,然后检查flash存储器中的第一个软件版本,如果该第一个软件版本可用,则正常启动;如果第一个软件版本不可用,则检查第二个版本是否可用,如果第二个版本可用则正常启动,不可用则只能停止运行,等待人工千预对设备进行修复。
如图l所示,采用双版本方法的运行流程可分为如下步骤
步骤IOI, 单板从BootRom启动;
步骤102, 检查flash存储器中的第一个软件版本是否可用,如果可用,则执行步骤105,否则ii^步骤103;
步骤103, 检查flash存储器中的第二个软件版本是否可用,如果可用则执行步骤105,否则进入步骤104;
步骤104,如果所有的版本都不可用,则停止在BootRom状态,等待人工修复;步骤105, 从该可用版本正常启动。
从以上流程可以看出,采用双版本方法的软件版本在两个软件版本都^皮破坏时,只能依赖于人工打开设备,经过复杂的操作重新下载软件版本到flash中,维护效率低;此外,保存双版本需要占用较大的存储空间,对flash的存储容量要求较高,导致成本增加;同时,还使得flash存储器的读写访问速度都比较慢。

发明内容
本发明要解决的技术问题是提供一种单板应用版本的实现方法及系统,当单板应用软件出现异常时对软件版本进行恢复,能够降低产品成本和维护费用,提高维护效率。
为了解决上述问题,本发明提供了一种单板应用版本的实现方法,包括
单板启动后,检查程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下栽到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。
进一步地,所述检查程序存储器中有无可用的应用版本包括从所述程序存储器中定位应用版本的位置,以及冲交验所述应用版本的合法性和完整性。
进一步地,所述方法还包括将所述新的应用版本文件下载到所述单4反内存中后,核j睑所述新的应用版本的合法性和完整性。
进一步地,所述校验应用版本的合法性和完整性包括使用循环冗余算法检查所述应用版本的完整性,以及使用RSA算法检查所述应用版本的合法性。
进一步地,所述通过启动网络协议下载新的应用版本包括通过动态主机分配协议DHCP协议请求IP地址和应用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文件传输协议请件。进一步地,若对所述新的应用版本解^f不成功,则重新请求下载,其中,
对所述新的应用版本进行解析包括在所述新的应用版本中找到启动内核和文件系统的位置。
进一步地,所述方法还包括加载运行所述新的应用版本完毕后,通过网络协议下载新的应用版本,并将新的应用版本写入所述程序存储器中,以对所述程序存储器中的应用版本进行更新。
本发明还^^供了一种单板应用版本的实现系统,包括具有程序存储器的单板,还包括存储有应用版本的服务器,所述单板内存与所述服务器相连,
所述单板在启动后,检查所述程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。
进一步地,所述单板还用于
将所述新的应用版本文件下载到所述单板内存中后,校验所述新的应用版本的合法性和完整性;以及,
在加载运行所述新的应用版本完毕后,通过网络协议下载新的应用版本,并将新的应用版本写入所述程序存储器中,以对所述程序存储器中的应用版本进行更新。
进一步地,所述服务器包括应用版本服务器和DHCP服务器,所述单板内存分别与所述应用版本服务器及所述DHCP服务器相连,其中,
所述应用版本服务器,用于存储所述应用版本;
所迷DHCP服务器,用于IP地址的分发及应用版本文件名称的下发;
所述单板内存,用于通过DHCP协议向所述DHCP服务器请求IP地址和应用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文件传输协议从所述应用版本服务器上下载新的应用版本文件。
采用本发明方法及系统,使得嵌入式设备、通信设备在存储器上的软件版本出现异常或故障的情况下,无须打开设备,可直接下载软件版本到内存中,通过运行内存中的软件版本,并更新故障设备存储器中的软件版本,使设备恢复正常运行。
本发明可以用于软件版本的紧急恢复,与传统的双版本或大小版本相比,
降低了产品成本,提高了维护效率;并且,当传统的方法中两个版本同时失效时,也可以利用本发明的方法进行恢复;同时,本发明也可以用于实现单板无盘启动,无须在flash存储器上读写软件版本,提高了效率。


图1为现有技术中采用双版本备份的软件版本的运行流程图;图2为本发明实施例的基于内存的安全软件版本系统的示意图;图3为本发明实施例的基于内存的安全软件版本的方法流程图。
具体实施方式
针对目前基于flash存储软件的设备, 一旦设备软件出现异常则设备将无法启动或升鈒的问题,本发明提出了一种基于内存的单板应用版本,其核心是将设备单板通过网络连接到软件版本服务器,这样,当单板软件版本出现异常或故障的情况时,通过启动网络协议从软件版本服务器下载软件版本到内存中,通过运行内存中的软件版本,并更新故障设备存储器中的软件版本,使设备恢复正常运行。
具体地,本发明的单板应用版本的实现方法主要采用以下技术方案
步骤一,单板上电,从BootRom启动;
步骤二, BootRom内程序检测程序存储器,如flash存储器中有无可用的应用版本(软件版本),若有,则加载flash中的可用版本,正常启动,本方法结束;否则BootRom启动网络协议向软件版本服务器请求下载软件版本,并执行下一步;
步骤三,下载新的软件版本到内存中,并检查所下载的软件版本文件的完整性和合法性;
步骤四,解析内存中的该软件版本,从该版本直接启动。
在完成上述步骤之后,可以通过定义的软件接口更新flash中的软件版本,从而完成设备修复。更新flash中的软件版本包括内存软件版本启动完成后,通过网络协议下载新的软件版本,并将版本写入到flash存储器中。
其中,上述步骤二中,检查flash存储器有无软件版本可用包括从flash中定位软件版本的位置,使用循环冗余算法校验软件版本以确认其完整性,使用RSA (—种非对称加密算法)算法校验软件版本签名以确认其合法性;
上述步骤二中,启动网络协议向软件版本服务器请求版本软件包括首先通过DHCP (Dynamic Host Configuration Protocol ,动态主才几分配协i义)协议向DHCP服务器请求IP地址和软件版本文件名称,再根据获取的IP地
版本文件。
上述步骤三中,检查软件版本文件的完整性和合法性包括使用循环冗余算法完成软件版本校验和确认其完整性,以及使用RSA算法校验软件版本签名确认其合法性。
上述步骤四中,解析内存中的软件版本包括在内存软件版本中找到启动内核和文件系统的位置。
下面结合附图和具体实施例对本发明作进一步详细描述。
如图2所示,本发明实施例的单板应用版本的实现系统主要包括设备单板、软件版本服务器和DHCP服务器。设备单板通过网络连接与软件版本服务器及DHCP服务器相连,软件版本服务器负责存储设备软件版本,DHCP服务器负责IP地址的分发和软件版本文件名称的下发。在本发明的其它实施例中,软件版本爿良务器和DHCP服务器也可以合并为一个物理设备。如图3所示,本发明实施例的单板应用版本的实现方法的具体实施步骤 如下
步骤201,单板上电,完成设备初始化设备硬件初始化,包括flash存 储器、内存、网络设备等;软件初始化,包括网络协议栈初始化;
步骤202,设备初始化完成后,BootRom内程序开始从flash中搜索已有 的软件版本,找到软件版本后使用循环冗余算法检查版本的完整性,使用 RSA算法检查版本的合法性,如果软件版本可用,则进入步骤207,否则执 行步骤203;
步骤203, BootRom内程序启动网络协议栈,通过DHCP协议向DHCP 服务器请求IP地址和软件版本文件名称,DHCP服务器从地址池中取一个IP 地址并下发给设备单板,同时利用BootFile字段将软件版本名称发给设备单 板;
步骤204,设备单板根据收到的上述IP地址和软件版本文件名称,通过 文件传输协议将软件版本下载到设备单板内存中;
步骤205, BootRom内程序检查内存中的软件版本文件的完整性和合法 性,包括使用循环冗余算法检查版本的完整性,使用RSA算法检查版本的 合法性,并进行下一步;
步骤206,判断内存软件版本是否可用,如果可用,则进入步骤207;否 则进入步骤204,尝试重新下载软件版本到内存中;
步骤207,在软件版本中通过一定的方法找到内核和文件系统的位置, 加载内核,启动i殳备软件。
可选地,步骤207中,设备启动完成后,可以使用预先定义的软件接口, 更新flash中的软件版本;如果设备软件启动失败,可以更新服务器中的软件 版本,并从步骤201重新开始。
通过上述流程可以看出,采用本发明的技术方案不需要在flash中保存多 个软件版本,减少了设备成本;更新设备软件版本过程全部自动化完成,不 需要人工干预。与传统的双版本或大小版本相比,提高了维护效率,减小了 维护成本。
权利要求
1、一种单板应用版本的实现方法,其特征在于,包括单板启动后,检查程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。
2、 如权利要求
1所述的方法,其特征在于,所述检查程序存储器中有 无可用的应用版本包括从所述程序存储器中定位应用版本的位置,以及校 验所述应用版本的合法性和完整性。
3、 如权利要求
1所述的方法,其特征在于,所述方法还包括将所述 新的应用版本文件下载到所述单板内存中后,校验所述新的应用版本的合法 性和完整性。
4、 如权利要求
2或3所述的方法,其特征在于,所述校验应用版本的 合法性和完整性包括使用循环冗余算法检查所述应用版本的完整性,以及 使用RSA算法检查所述应用版本的合法性。
5、 如权利要求
1所述的方法,其特征在于,所述通过启动网络协议下 载新的应用版本包括通过动态主机分配协议DHCP协议请求IP地址和应 用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文件传 输协议请求下载新的应用版本文件。
6、 如权利要求
1所述的方法,其特征在于,若对所述新的应用版本解 析不成功,则重新请求下载,其中,对所迷新的应用版本进行解析包括在 所述新的应用版本中找到启动内核和文件系统的位置。
7、 如权利要求
1所述的方法,其特征在于,所述方法还包括加载运 行所述新的应用版本完毕后,通过网络协议下载新的应用版本,并将新的应 用版本写入所述程序存储器中,以对所述程序存储器中的应用版本进行更新。
8、 一种单板应用版本的实现系统,包括具有程序存储器的单板,其特 征在于,还包括存储有应用版本的服务器,所述单板内存与所述服务器相连,所述单板在启动后,检查所述程序存储器中有无可用的应用版本,若有, 则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请 求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所 述新的应用版本进行解析,解析成功后加载运行。
9、 如权利要求
8所述的系统,其特征在于,所述单4反还用于将所述新的应用版本文件下载到所述单板内存中后,校验所述新的应用 版本的合法性和完整性;以及,在加载运行所述新的应用版本完毕后,通过网络协议下栽新的应用版本, 并将新的应用版本写入所述程序存储器中,以对所述程序存储器中的应用版 本进行更新。
10、 如权利要求
8或9所述的系统,其特征在于,所述服务器包括应用 版本服务器和DHCP服务器,所述单板内存分别与所述应用版本服务器及所 述DHCP服务器相连,其中,所述应用版本服务器,用于存储所述应用版本;所述DHCP服务器,用于IP地址的分发及应用版本文件名称的下发;所述单板内存,用于通过DHCP协议向所述DHCP服务器请求IP地址 和应用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文 件传输协议从所述应用版本服务器上下载新的应用版本文件。
专利摘要
本发明公开了一种单板应用版本的实现方法及系统,所述方法包括单板启动后,检查程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。采用本发明方法及系统,使得嵌入式设备、通信设备在存储器上的软件版本出现异常或故障的情况下,无须打开设备,可直接下载软件版本到内存中,通过运行内存中的软件版本,并更新故障设备存储器中的软件版本,使设备恢复正常运行。
文档编号GKCN101482823SQ200910003096
公开日2009年7月15日 申请日期2009年1月19日
发明者孙旺强 申请人:中兴通讯股份有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1