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

发布者:学思者最新更新时间:2013-10-14 来源: eefocus关键字:在线升级  关键点控制  嵌入式操作系统 手机看文章 扫描二维码
随时随地手机看文章
随着嵌入式操作系统技术的发展,在网络终端设备中有越来越广泛的应用。在实际使用中,为了扩展业务功能、解决软件中存在的问题和提升设备性能,或者为了满足设备的定制业务(如广告业务),需要对嵌入式设备的软件系统或者资源文件及时进行更新,就是软件系统的升级业务。目前,嵌入式设备软件更新有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所示)。
[page]
系统运行过程中检测到有新版本需要升级正常运行系统,则判断基本运行系统的关键点状态,如果为SUV状态,则直接在正常运行系统中升级该升级包,否则需要设置从基本运行系统启动,并重启终端后在基本运行系统中升级该升级包。如果检测到需要升级基本运行系统,则判断正常运行系统关键点状态,如果为SUV状态,则直接在基本运行系统中升级该升级包,升级完成后设置正常运行系统的关键点状态为SSNV状态,否则忽略该升级包(如图4所示)。在基本运行系统启动成功,如果此时基本运行系统的关键点状态为SSNV状态,则设置为SUNV状态(如图5所示)。基本运行系统的主要功能就是完成正常运行系统的升级。启动后如果检测到有新版本需要升级正常运行系统,则下载该升级包进行升级业务,升级完成后设置正常运行系统的关键点状态为SSNV状态,并表示基本运行系统的关键点状态为SUV状态(如图6所示)。

通过上述的关键点控制,该升级方案保证了任何情况下都有一个系统是能够正常运行升级系统,不会出现终端因为升级过程断电等因素造成升级失败后,不能再自动恢复的问题,对终端升级的安全性有较大的提升。例如在正常运行系统中升级正常运行系统时,基本运行系统保证是SUV状态,如果出现断电情况,终端重启后进入基本运行系统中可以把正常运行系统升级;在正常运行系统中升级基本运行系统时,正常运行系统保证是SUV状态,如果出现断电情况,终端重启后进入正常运行系统可以继续升级基本运行系统;在基本运行系统中升级正常运行系统时,基本运行系统保证是SUV状态,如果出现断电情况,终端重启后进入基本运行系统可以继续升级正常运行系统。该升级方案中不允许在基本运行系统中升级自身。


3 结语

该方法在医疗呼叫系统中进行了应用与验证,嵌入式系统基于S3C2440处理器,负责系统中医疗信息的发布、查询,语音呼叫及医疗增援服务,其中床头机、医护机、门口机均采用该系统,医疗呼叫系统需要全天候工作,不可能指定时间对系统升级,且升级过程需要用户不可见,通过应用本方法能够方便的升级系统软件,以修复软件BUG或者增强软件服务。升级过程中用户不可见,且升级完成后不需要重启终端,对于升级的易用性和友好性有较大改进。

本文分析了常用的网络终端设备在线升级的方案,在保证在线升级过程安全的基础上,通过对双系统升级方法的优化和改进,通过关键点状态的记录和判断,实现了绝大部分情况下,可以在正常运行系统中直接升级正常运行系统,升级完成后不需要重启系统,做到升级过程对用户透明。同时在原来只能升级正常运行系统的基础上,支持升级基本运行系统的功能,对于提升网络终端设备在线升级的易用性和安全性有较大的帮助。

关键字:在线升级  关键点控制  嵌入式操作系统 引用地址:基于关键点控制的网络嵌入式设备在线升级的实现

上一篇:处理器全方位能耗测量的实现
下一篇:基于嵌入式ARM平台的可信计算软件栈的设计与实现

推荐阅读最新更新时间:2024-03-16 13:28

嵌入式操作系统的通用硬件抽象层设计
引言   为了便于操作系统在不同硬件结构上进行移植,美国微软公司首先提出了将操作系统底层与硬件相关的部分单独设计成硬件抽象层HAL(Hardware Abstraction Layer)的思想。硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能。然而,目前BSP形式的硬件抽象层仅仅能够解决有限的几种操作系统在同样有限的BSP所支持的硬件平台上的移植,而对绝大多数需要根据不同嵌入式应用而专门定制的嵌入式操作系统来说能起的作用则非常有限。 1 硬件抽象层原理 1.1 硬件抽象层概念   嵌入式系统是一类特殊的计算机系统。它自底向上包括3个主要部分:硬件环境、嵌入式操作系统和嵌入式应用程序。
[嵌入式]
STM32G47x系列MCU中双Bank的工作原理及在线升级实现
1、前言 STM32G47x 的 Flash 可以工作在双 bank 模式下,在该模式下对 FLASH 的操作支持RWW(Read-While-Write),在 Bank1 中可以对 Bank2 进行操作而不影响当前 Bank1 中的应用程序的运行,反之亦然。本文对双 Bank 模式下程序在线升级进行介绍,指出操作中的注意事项。 2、双 Bank 工作原理 STM32G47x 系列 MCU 支持 Flash 双 Bank 功能,且芯片出厂默认配置即使能了双 Bank功能。基于两个独立的 Bank,用户可以选择将应用程序放在任意一个 Bank 中运行,通过设置标志位 BFB2 来决定从哪一个 Bank 启动: BFB2 = 0,
[单片机]
STM32G47x系列MCU中双Bank的工作原理及<font color='red'>在线升级</font>实现
嵌入式操作系统VxWorks中TFFS文件系统的构建
摘要:目前的嵌入式系统多使用FLASH作为主存,因此,如何有效管理FLASH上的数据非常重要。文章以MX29LV160BT芯片为例,讨论了在VxWorks操作系统下Nor Flash上建立TFFS文件系统的一般步骤,从而为FLASH上的数据管理提供了理想的选择方式,同时也为开发者和用户升级程序提供了方便。 关键词:VxWorks Flash MTD TFFS 文件系统 嵌入式系统正随着Internet的发展而在各个领域得到广泛的应用,作为一个优秀的操作系统,VxWorks实现了比其他实时操作系统更好的有效性、商用性、可裁减性以及互操作性,广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事
[应用]
STM32在线升级IAP-Hex文件和Bin文件的区别
1 - HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身 在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。 2- BIN文件格式 对二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二进制数据。
[单片机]
嵌入式操作系统μC/OS-Ⅱ面向数控系统的改进
嵌入式操作系统μC/OS-Ⅱ是一个可裁剪、源码开放、结构小巧、抢先式的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高,占用空间小,可移植性强,实时性能优良和可扩展性强等特点。数控系统是一个典型的强实时性系统,具有可确定性。可确定性主要是确保条件出现到由此引起的动作开始(或者结束)的时间在一个准确的时段内。在数控系统中,条件是由操作员的指令(如:紧急停止、移动x轴等)或是机床的状态(如刀具破损等)引起的。本文分析了数控系统任务的特点,结合μC/OS-Ⅱ的内核体系,对μC/OS-Ⅱ的任务分类、任务调度和中断服务策略做了改进,使其更加适合于数控系统的应用。 1 μC/OS-Ⅱ对任务的分类 μC/OS-Ⅱ中每个任务有5种状态:
[嵌入式]
嵌入式操作系统Nucleus下触摸屏驱动的开发
Nucleus 是一款优秀的 嵌入式 实时操作系统(RTOS),具有抢占式和时间片轮转任务调度方式,主要用在时间苛刻的 嵌入式 应用当中。大约95%的Nucleus用ANSI C 写成,作为一个库加载到应用代码当中。目前 手机 行业有很多使用Nucleus。 1. 触摸屏 控制 电路 的硬件结构 触摸屏控制电路主要有一下四部分组成:进行数据处理、控制功能的MCU,一个四线 电阻 式触摸屏和控制芯片ADS7846, 以及显示触摸点坐标的显示部分。 在这里主要对触摸屏的硬件电路和 驱动 设计做一个较详细的介绍 ADS7846是美国TI公司推出的一款四线制电阻式触摸屏控制器,通过 机械 式触摸,可以迅速得到触摸点位置信号。它
[模拟电子]
在ARM CPU上广泛采用的三种嵌入式操作系统浅析
嵌入式操作系统是ARMCPU的软件基础,从8位/16位单片机发展到以ARMCPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。更重要的是嵌入式操作系统对应用程序可以起到屏蔽的作用,使应用程序员面向操作系统级开发应用软件,并易于在不同的ARM核的嵌入式处理器上移植。 嵌入式操作系统都具有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7到Xscale各种ARMCPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的ARM开发工具,如ARM公司的SDT/ADS和RealView等,也可以使用开发软件,如GCC/GDB、KDE或Eclipe开发环境,市场上还有专用的开发工
[单片机]
在ARM CPU上广泛采用的三种<font color='red'>嵌入式操作系统</font>浅析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved