一种优化的弹载设备不拆弹软件在线升级方法与流程

文档序号:14727211发布日期:2018-06-19 11:51阅读:320来源:国知局

本发明涉及弹载嵌入式软件升级技术领域,尤其涉及一种优化的弹载设备不拆弹软件在线升级方法。



背景技术:

传统导弹弹载设备未考虑不拆弹软件在线升级,在后期研制过程中频繁需要对导弹进行拆解,将各产品返回生产单位单独进行软件升级,浪费了大量的成本。

在新研导弹中,已有部分型号实现了弹载设备软件在线升级功能,但该方案是在应用层软件中实现,需设计复杂的A/B分区软件升级、度量、引导的方案来解决升级过程中因意外断电或异常操作导致应用程序被破坏,而无法再次启动或再次升级的问题,增加了各设备在软件设计中的复杂度,此外,该功能集成在应用程序,导致应用程序可能存在一些不可预见的隐患。



技术实现要素:

在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

为解决上述问题,本发明提出一种优化的弹载设备不拆弹软件在线升级方法。

一种优化的弹载设备不拆弹软件在线升级方法,包括:

在弹载设备的Boot引导程序和应用程序之间增加调度程序;

弹载设备上电启动后,由所述Boot引导程序加载并执行所述调度程序,所述调度程序执行对码流程;

如果对码成功,则执行应用程序升级流程;

接收上位机发送的分包数据,并实时对分包数据进行校验,校验正确后取出单包程序存入RAM中;

对RAM中完整的程序数据进行整体校验,校验正确后烧写至FLASH中,并回读进行字节比对。

本发明提供的优化的弹载设备不拆弹软件在线升级方法,软件功能与应用程序独立开,应用程序不集成软件升级的功能,避免了A/B分区的设计复杂度,减少了硬件资源消耗和设计成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的优化的弹载设备不拆弹软件在线升级方法一种实施例的流程图。

图2为本发明提供的优化的弹载设备不拆弹软件在线升级方法一种应用场景的全弹典型结构图。

具体实施方式

下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或者更多个其他附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。

参考图1,一种优化的弹载设备不拆弹软件在线升级方法,包括:

步骤S101,在弹载设备的Boot引导程序和应用程序之间增加调度程序;

步骤S102,弹载设备上电启动后,由所述Boot引导程序加载并执行所述调度程序,所述调度程序执行对码流程;

步骤S103,如果对码成功,则执行应用程序升级流程;

步骤S104,接收上位机发送的分包数据,并实时对分包数据进行校验,校验正确后取出单包程序存入RAM中;

步骤S105,对RAM中完整的程序数据进行整体校验,校验正确后烧写至FLASH中,并回读进行字节比对。

具体地,在弹上设备DSP的boot引导程序(该Boot引导程序包括DSP片内的Bootloader程序和二次引导程序)和应用程序之间增加一个调度程序,通过DSP的多级引导能力,可分级加载并执行调度程序及应用程序,调度程序和应用程序存储到外部非易失性存储器FLASH中。

弹载设备上电启动后,由DSP的boot引导程序引导加载并执行调度程序,调度程序通过对码流程,选择执行应用软件升级功能,或应用软件引导加载功能,如果对码成功,则执行应用软件升级,如果对码失败,则执行应用软件引导加载功能。

上电启动后,boot引导程序引导加载调度程序,调度程序上台运行,初始化外设硬件端口,在限定时间内开始对码流程,通过1553B总线或RS422串口等外设接口与上位机进行协议对码:弹载设备按周期循环接收数据,若能收到第一组正确的约定数据,则发送第一组应答数据,再按周期循环接收第二组数据,反馈第二组应答数据……;若超时未完成协议对码过程,则对码失败;若在规定的时间内完成协议对码,则判定对码成功,进入软件升级流程。

进入软件升级流程后,通过外设接口依据协议和通讯周期接收上位机发送的应用程序文件分包数据。这是因为应用程序文件一般较大,上位机在发送前需要对应用程序文件进行拆包,按照协议加上头字和该包数据的CRC32校验和。升级流程接收到分包数据后,对分包数据进行校验,校验正确后取出单包程序文件数据存入RAM中。接收完应用程序后对RAM中完整的程序数据进行整体校验,校验正确后烧写到FLASH中。在烧写的过程中和烧写完成后可通过相应的手段确保FLASH中数据的正确性:烧写过程中,按字节进行比对,每写入一个字节,回读该字节进行比对;烧写完成后,回读整个应用程序,计算CRC32校验和与上位机发送的校验和进行比对。

若对码失败,则进入到应用程序引导加载流程,从FLASH中读取应用程序,加载到RAM中相应的区域,跳转并启动执行应用程序。需要注意的应用程序RAM分配必须与调度程序RAM分配区域互不冲突,否则会影响应用程序运行。

以下通过具体应用场景对本发明做进一步说明。

参考图2,综合控制计算机(简称:综控机)应用程序由测试设备通过弹地1553B总线上传至综控机,其它弹上设备应用程序由测试设备通过弹地1553B总线上传至综控机,综控机再通过RS422串口或弹内1553B总线转发至待升级设备。因此,在对综控机软件进行升级时,其上位机为测试设备;对弹上其它设备软件进行升级时,其上位机为综控机。

全弹软件升级分为综控机软件升级和弹上其它设备软件升级两部分,分为升级前通电检查、设备供电及对码、软件升级、升级后通电检查等过程。

以下对针对综控机和其它设备的软件升级过程分别进行描述。

综控机软件升级:

A.测试设备按正常测试流程进行升级前通电检查,综控机分别引导加载运行boot程序、调度程序和应用程序,应用程序检查全弹电气状态和综控机软件版本号并上报测试设备,测试设备收到检查结果后给综控机断电;

B.测试设备先启动对码流程,向综控机发送对码指令,再对综控机供电;

C.综控机上电在执行调度程序过程中收到对码指令,完成协议对码后进入综控机软件升级流程,接收测试设备下发的固件数据,校验无误后写入FLASH,并将升级结果上报测试设备。测试设备收到升级结果后给综控机断电;

D.测试设备按正常测试流程进行升级后通电检查,过程同A步骤。

弹上其它设备软件:

a.测试设备按正常测试流程进行升级前通电检查,待升级设备分别引导加载运行boot程序、调度程序和应用程序,应用程序检查软件版本号,通过综控机转发并上报测试设备,测试设备收到检查结果后给全弹断电;

b.测试设备先对综控机供电,待综控机进入应用程序后向综控机发送设备对码指令,综控机的应用程序通过对码指令识别待升级设备标识,向待升级设备转发对码指令,并控制待升级设备供电;

c.待升级设备上电后在执行调度程序过程中收到综控机转发的对码指令,完成协议对码后进入软件升级流程。综控机接收测试设备下发的固件数据,转发给待升级设备,待升级设备校验无误后写入FLASH,将升级结果通过综控机转发并上报测试设备。测试设备收到升级结果后给全弹断电;

d.测试设备按正常测试流程进行升级后通电检查,过程类似a.步骤,已升级设备上电进入应用程序后检查软件版本号,通过综控机转发并上报测试设备,测试设备收到检查结果后给全弹断电。

在升级过程中,若因意外断电或其它原因导致写入FLASH过程中断,应用程序不完整,无法进行升级前检查步骤,可跳过该步骤,直接进行后续软件升级流程。

本发明提供的优化的弹载设备不拆弹软件在线升级方法,软件升级功能与应用程序独立开,应用程序不集成软件升级的功能;软件升级功能与调度程序集成,软件升级过程中遇到异常断电或其它故障时,应用程序被破坏,但不会破坏调度程序,仍然可通过调度程序进行应用程序升级;优化了原有的升级方案,避免了A/B分区,减少了硬件资源消耗和设计成本;管理上,有利于软件分级管理和分级保护,调度程序作为底层软件,功能实现后不会频繁更改,而应用程序需要经常变化,将软件区分开,设计人员只需关心一个配置项。

虽然已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本申请的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在它们的范围内包括这样的过程、设备、手段、方法或者步骤。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1