新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于关键点控制的网络嵌入式设备在线升级的实现

基于关键点控制的网络嵌入式设备在线升级的实现

作者:时间:2013-10-14来源:网络收藏
随着技术的发展,在网络终端设备中有越来越广泛的应用。在实际使用中,为了扩展业务功能、解决软件中存在的问题和提升设备性能,或者为了满足设备的定制业务(如广告业务),需要对嵌入式设备的软件系统或者资源文件及时进行更新,就是软件系统的升级业务。目前,嵌入式设备软件更新有2种方式:一种是在本地使用PC机通过串口(或者网口)将软件下载到设备中完成软件系统的升级;另一种是利用网络进行。前者只能在本地进行软件升级操作,不能够批量更新,适合于实验室调试使用,而后者能够对网络中在线终端进行批量升级,得到广泛的应用。实际上,软件已经成为网络终端设备的一项基本功能,软件的方案不同,升级过程的特点和安全性也不相同。

1 系统软件升级常用方案

网络终端设备的系统软件保存在FLASH中,系统启动时把系统软件加载到内存中运行,软件升级的本质是从网络下载新的系统软件内容,把原来系统软件内容擦除,然后写入新的系统软件,系统重启后加载新的系统软件。常用的升级方案包括单系统升级方案和双系统升级方案:

(1)单系统升级方案(如图1所示):系统启动后进行正常的业务功能,此时网络后台检测终端版本号判断是否有新版本可升级,如果检测到当前终端的版本号低于最新版本号,则立即从网络下载升级包启动升级过程,在用户进行业务功能的过程中后台完成对于原系统软件的擦除,并写入新的系统软件和更新当前版本号。该升级过程对于用户是透明的,用户只有在终端重启后再加载新的系统软件。但是该升级方案的安全性比较弱,因为如果内容擦除后终端断电或者重启,则终端中系统软件被破坏,没有可用的系统软件,终端以后再不能正常启动,必须技术支持人员到现场完成软件修复升级。另外,如果新写入的系统软件因为网络传输或者其他原因存在错误时,也会上面的结果。这种升级方案存在较明显的安全性缺陷,现在已经较少使用。


(2)双系统升级方案(如图2所示):为了增强升级过程的安全性,出现了双系统的升级方案,通常的处理是终端中存在一个基本运行系统和一个正常运行系统,分别处于FLASH的不同分区中,基本运行系统只用于升级正常运行系统软件,正常运行系统完成用户的正常业务。业务过程中自动从网络检测最新版本号,判断是否需要升级系统软件,如果检测到有需要升级的系统软件,则终端设置从基本运行系统启动并提示用户重启系统。终端从基本运行系统启动后,从网络下载正常运行系统软件并完成升级过程,写入完成后更新当前版本号,设置从正常运行系统启动后重启,终端从正常运行系统启动,进行正常的用户业务。

该升级方案克服上单系统升级方案中安全性的缺陷,升级过程中如果出现终端异常断电或者重启,只有正常运行系统软件的被破坏,最小备份系统保持正常是升级功能,系统重启后继续从最小备份系统启动,完成系统升级功能。目前网络设备中常会使用该升级,但这种升级方案每次都需要重启系统,且用户需要停止业务进行系统软件的升级,整个升级过程用户只能等待,对于现在用户体验越来越重要的终端设备,该升级方案有较明显的易用性缺陷。

2 基于的系统软件升级方案

基于的升级方案是针对于上述双系统升级方案的优化和改进,通过业务分析和统计,为了修改增强业务功能或者修改BUG,终端升级的绝大部分场景是需要升级正常运行系统,如果能够实现在正常运行系统中能够升级自身,升级过程对用户透明,则能够解做到绝大部分升级过程用户不可见。同时由于基本运行系统也会存在BUG或者需要增强功能,也有需要升级基本运行系统的情况。

本方案通过在系统中设定关键点,在升级过程中通过关键点值控制升级的流程,保证系统软件升级安全性,同时做到升级过程对用户透明,而且除了能够升级正常运行系统外还可以升级基本运行系统(如基本运行系统中存在BUG需要修改时),增强了终端的灵活性,另外升级过程引入了XML格式的升级控制文件,有效的控制了网络版本的兼容性。关键点记录了当前系统软件的状态。根据当前系统软件状态的不同,软件升级的流程不同,在基本运行系统和正常运行系统中都包含下面的关键点,各个关键点的取值和代表含义如下:

(1)系统启动未验证(SSNV):系统升级完成后没有启动过,此时不能保证系统能够正常启动,不能保证系统能够运行业务功能,即没有验证系统的升级功能;正常运行系统处于SSNV状态时,不能在该正常运行系统下升级基本运行系统,否则可能会出现2个系统都不能正常启动的状态。同样基本运行系统处于SSNV状态时,不能在该基本运行系统中升级正常运行系统。

(2)系统升级未验证(SUNV):系统已经正常启动,业务功能正常运行,但没有验证系统的升级功能。如果正常运行系统的升级功能没有验证,则不能在该系统下升级基本运行系统,否则可能会造成基本运行系统被破坏,同时正常运行系统没有升级功能的情况,以后终端再也不具有在线升级的功能。同样基本运行系统处于SUNV状态时,不能在正常运行系统中直接升级正常运行系统本身,需要重启进入基本运行系统进行升级;

(3)系统升级已验证(SUV):系统除了业务功能正常外,升级功能已经验证过,能够进行正常的升级。该状态表明系统功能完全经过验证,如基本运行系统处于SUV状态,则在正常运行系统中可以自动升级自身,正常运行系统处于SUV状态时,可以在正常运行系统中升级基本运行系统。

升级方案的具体控制流程中包含了和判断使用的时机,终端启动后判断从哪个系统启动,如果从正常运行系统启动成功,此时假设正常运行系统的关键点状态为SSNV状态,则设置为SUNV状态(如图3所示)。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭