0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过利用关键点控制实现网络终端设备在线升级的方案

电子设计 来源:郭婷 作者:电子设计 2019-08-09 08:05 次阅读

随着嵌入式操作系统技术的发展,在网络终端设备中有越来越广泛的应用。在实际使用中,为了扩展业务功能、解决软件中存在的问题和提升设备性能,或者为了满足设备的定制业务(如广告业务),需要对嵌入式设备的软件系统或者资源文件及时进行更新,就是软件系统的升级业务。目前,嵌入式设备软件更新有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所示)。

通过利用关键点控制实现网络终端设备在线升级的方案

系统运行过程中检测到有新版本需要升级正常运行系统,则判断基本运行系统的关键点状态,如果为SUV状态,则直接在正常运行系统中升级该升级包,否则需要设置从基本运行系统启动,并重启终端后在基本运行系统中升级该升级包。如果检测到需要升级基本运行系统,则判断正常运行系统关键点状态,如果为SUV状态,则直接在基本运行系统中升级该升级包,升级完成后设置正常运行系统的关键点状态为SSNV状态,否则忽略该升级包(如图4所示)。在基本运行系统启动成功,如果此时基本运行系统的关键点状态为SSNV状态,则设置为SUNV状态(如图5所示)。基本运行系统的主要功能就是完成正常运行系统的升级。启动后如果检测到有新版本需要升级正常运行系统,则下载该升级包进行升级业务,升级完成后设置正常运行系统的关键点状态为SSNV状态,并表示基本运行系统的关键点状态为SUV状态(如图6所示)。

通过利用关键点控制实现网络终端设备在线升级的方案

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

通过利用关键点控制实现网络终端设备在线升级的方案

3 结语

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

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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19093

    浏览量

    228783
  • 嵌入式
    +关注

    关注

    5058

    文章

    18970

    浏览量

    301868
  • 网络
    +关注

    关注

    14

    文章

    7480

    浏览量

    88533
收藏 人收藏

    评论

    相关推荐

    通过InConnect平台实现终端设备远程访问

    OpenVPN软件客户端; d.新增站点,默认对等网络; e.新增终端,选择刚新增的站点; f.确保云管理和VPN在线,站点/终端访问虚拟IP成功,
    发表于 07-24 06:06

    【OK210申请】用户级手持终端设备

    申请理由:由于项目的需求,需要为设备开发一个用户级手持终端设备,以提高产品品质和用户体验,所以想试试这款开发版。项目描述:使用嵌入式开发平台,开发一个远程图像采集显示终端,并通过
    发表于 07-18 21:40

    通过MCU串口管理CC2530协调器。实现终端设备入网添加,删除,网络终端设备实时网络状态查询,请问哪种方案更好?

    方式烧录, MCU 可以支持同时用 ZNP_API 和 monitor_API 管理协调器吗?如果可以,最好。主要目的是通过MCU 串口管理 协调器。实现终端设备入网添加,删除,网络
    发表于 06-01 03:36

    请问下:网络建立好后,如果,协调器重启后,为什么需要再次重启终端设备

    您好:        请问下:网络建立好后,如果,协调器重启后,为什么需要再次重启终端设备,我的协调器才能收到数据?         有没有方法使得,在协调器复位后,不再重启终端设备终端设备
    发表于 06-24 00:46

    请问zigbee 终端设备如何离开当前网络

    zigbee 终端设备如何离开当前网络,恢复出厂设置吗??
    发表于 08-08 06:05

    基于NXP i.MX6UL打造手持终端设备方案解决仓储管理需求

    ` 近年来,随着电子商务的迅猛发展,与仓储物流相关的年总支出占GDP的比重越来越大,通过更智能的手持终端设备来对仓储物流管理进行改善,是降低成本的重要举措,那么怎样的嵌入式计算机产品可以完美贴合仓库
    发表于 08-31 10:43

    如何利用ATmega64实现终端设备显示控制

    本文介绍了图像点阵式液晶模块CM320240与AVR单片机ATmega64相结合实现终端设备显示控制的一种方法。给出了硬件电路的设计以及系统软件架构的搭建,并阐述了一种树形菜单界面的设计方法。
    发表于 06-02 06:19

    如何利用现有局域网,在不添加中间网关的情况下,控制终端设备

    如何利用现有局域网,在不添加中间网关的情况下,控制终端设备。现有条件和计划实现效果1、设备分散在多个房间、每个房间内分散在多个位置。2、机柜
    发表于 12-23 14:54

    证通电子人脸支付终端设备ZT8623通过OpenHarmony兼容性测评

    金融支付解决方案,围绕客户需求进行自主创新。其研发的人脸支付终端设备ZT8623通过人脸识别技术终端安全认证,符合银联卡受理终端安全规范,支
    发表于 12-06 18:37

    证通电子人脸支付终端设备ZT8623通过OpenHarmony兼容性测评

    金融支付解决方案,围绕客户需求进行自主创新。其研发的人脸支付终端设备ZT8623通过人脸识别技术终端安全认证,符合银联卡受理终端安全规范,支
    发表于 12-23 11:26

    OLT(光缆终端设备)是什么

    OLT: optical line terminal(光缆终端设备),用于连接光纤干线的终端设备。OLT除了提供业务汇聚的功能外,还是集中网络管理平台。在OLT上可以实现基于
    发表于 03-08 19:49 5.5w次阅读

    网络终端设备的安装与配置及结构

    计算机网络用户主要通过网络终端设备实现与计算机网络的连接,获取
    发表于 09-20 17:33 5次下载
    <b class='flag-5'>网络</b><b class='flag-5'>终端设备</b>的安装与配置及结构

    关键控制网络嵌入式设备在线升级设计实现

    系统或者资源文件及时进行更新,就是软件系统的升级业务。目前,嵌入式设备软件更新有2种方式:一种是在本地使用PC机通过串口(或者网口)将软件下载到设备中完成软件系统的
    发表于 10-24 10:21 0次下载
    <b class='flag-5'>关键</b><b class='flag-5'>点</b><b class='flag-5'>控制</b><b class='flag-5'>网络</b>嵌入式<b class='flag-5'>设备</b><b class='flag-5'>在线</b><b class='flag-5'>升级</b>设计<b class='flag-5'>实现</b>

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

    系统或者资源文件及时进行更新,就是软件系统的升级业务。目前,嵌入式设备软件更新有2种方式:一种是在本地使用PC机通过串口(或者网口)将软件下载到设备中完成软件系统的
    发表于 11-30 12:01 253次阅读
     基于<b class='flag-5'>关键</b><b class='flag-5'>点</b><b class='flag-5'>控制</b>的<b class='flag-5'>网络</b>嵌入式<b class='flag-5'>设备</b><b class='flag-5'>在线</b><b class='flag-5'>升级</b>的<b class='flag-5'>实现</b>

    2021华为开发者大会:超级终端设备体验升级

    2021华为开发者大会超级终端设备体验升级,分布式协同计算能力实现性能升级
    的头像 发表于 10-22 15:13 1562次阅读
    2021华为开发者大会:超级<b class='flag-5'>终端设备</b>体验<b class='flag-5'>升级</b>