1.本发明涉及嵌入式软件设计应用领域,特别涉及一种异构平台嵌入式软件在线重构方法。
背景技术:2.近年来,随着航空电子设备发展迅猛,其载荷能力也越来越强,结合在航空领域计算机系统中广泛应用的主从分布式体系结构,其电子设备的集成度也越来越高,出于对体积和重量的考虑,设备安装空间狭小,给维护及升级嵌入式软件带来很多不变,加上战场情况复杂,操作人员维护时间紧迫,故传统的开盖拆装设备、连接电缆、搭建调试环境通过仿真器连接进行软件升级极为不便,这种操作方式成为制约作战人员维护及升级系统的主要因素。
3.目前各类航空电子设备系统中核心器件fpga的重构工作长期以来都是单独使用fpga仿真器来完成,使用过程中需要按模块芯片逐一手动连接调试,固化过程耗时长,单片fpga大约在30分钟以上,效率低下,且受加电时间限制;另外,powerpc、mcu、dsp等嵌入式软件的重构也需要利用特定的调试设备,不仅操作繁琐,系统中各个模块交互总线类型杂乱,原位检测及升级、重加载程序耗时长,易出错。如常见的航空电子设备powerpc软件的升级,操作人员需通过调试电脑中相应计算机板厂家提供的升级软件进行操作,完成各目标电子设备嵌入式软件的在线加载和重构,其物理连接关系图如1所示。
4.由于不同powerpc中ip地址可能有冲突,现有的这种程序加载方式通常仅在单板计算机未集成进系统时,针对单个需要执行软件升级的powerpc较为适用。一旦遇到能力基线升级对应的分布式系统内多个软件同时升级的情况,或是对航电网络中跨平台的多种应用软件进行重构时,设备间总线协议也各不相同,无法快速高效地完成升级部署。更严重的是,当电子设备安装到飞机平台后,由于装机条件和外部环境限制,仿真器等加载软件所需电缆开盖连接会很困难,为了重构程序甚至需要将设备分机拆下来,费时费力,严重影响电子设备维护和保障的效率。
5.针对以上问题,现有技术一般从以下两个方面寻求解决方案:一是采取重构程序压缩传输,重构总线提速等方式,力求达到快速升级程序的目的;二是通过外部接口实现对计算机处理器的软件升级,如借助维护保障设备,构建单独的维护及升级网络,完成电子设备内多个嵌入式软件的升级重构工作;
6.以上两种方法均存在问题:
7.a)对需要固化的程序进行压缩以及固化方式优化都仅仅是固化时间上能有所减少,但是治标不治本,不能解决狭小空间拆装困难、加电时间受限以及调试环境不具备等情况,这些才真正耗时耗力;
8.b)目前航空领域电子设备集成度较高,分布式架构下,很多设备集成在一个或多个分机内,涉及整个系统多个软件基线版本同步组网升级,单独完成单个设备的软件固化工作还不能达到升级固化整个系统软件的完备性;
9.c)各类平台大系统存在设备的多样性,总线协议也各不相同,现有的在线升级软件未考虑多个跨总线的计算机板内软件之间的交互关系,无法同步升级重构软件以及对其进行版本管理。
技术实现要素:10.针对现有技术中存在的问题,提供了一种异构平台嵌入式软件在线重构方法,使各个平台电子设备中嵌入式软件能够在有限的装机及外场维护环境下,依托当前系统内部各种互联互通的总线网络进行版本同步管理及在线升级重构,进而达到大幅提高设备维护升级效率的目的,同时需满足该方法具有可移植性及维护性。
11.本发明采用的技术方案如下:一种异构平台嵌入式软件在线重构方法,所述异构平台由综控设备、主控节点计算机及多个从节点计算机组成,主控节点计算机与从节点计算机之间通过内部总线通信,主控节点计算机与综控设备通过以太网通信,重构过程包括:
12.步骤1、综控设备加载配置文件,将待重构的应用程序传输至主控节点计算机;
13.步骤2、主控节点计算机接收到待重构的应用程序后,对内容进行校验,并按照总线协议填写目的标识与待重构的应用程序打包为数据包,并转发至主控节点计算机下层连接的从节点计算机;
14.步骤3、从节点计算机接收到数据包后,解析数据包中目的标识进行数据转发或数据缓存,若接收到需当前节点重构的应用程序则返回应答消息,同时进行数据校验及存储;
15.步骤4、综控设备收到应答消息无误后,下发重构指令,由主控节点计算机转发至相应从节点计算机,由计算机软件执行重构过程并返回重构状态;
16.其中,目的标识记载有数据包传输时的路由路径。
17.进一步的,所述步骤1的子步骤包括:
18.步骤1.1、综控设备根据异构平台的拓扑结构编辑配置文件,包括硬件配置文件和版本配置文件;
19.步骤1.2、通过配置ip和端口号,扫描连接的计算机节点并加载配置文件,同时获取所有计算机节点的软件版本信息并显示;
20.步骤1.3、选择需要重构的应用程序,下发至主节点计算机。
21.进一步的,所述步骤1中,硬件配置文件和版本配置文件均为xml格式文件,硬件配置文件包括每个节点计算机的数据路由信息和重构信息;版本配置文件根据系统实际版本管理进行编辑。
22.进一步的,每个从节点计算机由系统配置有物理id、父节点id及子节点id。
23.进一步的,内部总线采用双层协议打包方式进行数据发送,所述双层协议打包方式分为:第一层总线通信协议和第二层在线重构数据通信协议。
24.进一步的,所述目的标识包括由拓扑层标识、层标识、各层转发节点id组成,其中,拓扑层标识为0或1,0表示转发,1表示不转发;层标识为当前转发层标识,初始为0,每转发一次增加1;节点id表示节点转发的目的地址。
25.进一步的,从节点计算机解析数据包中目的标识的具体过程为:
26.以层标识作为下标,从目标标识中获取最后一层转发节点id,判断是否与本节点计算机的物理id一致,若一致则缓存该数据包;若不一致,则从目标标识中获取下一层转发
节点id,判断下一层转发节点id是否在本节点计算机的子节点id范围内,若在,则修改目的标识中拓扑层标识与层标识,并转发该数据包。
27.进一步的,从节点计算机接收到应答数据后直接转发给父节点。
28.进一步的,所述从节点计算机进行数据校验及存储过程为:数据接收完成后,对文件进行crc校验,若从节点计算机有文件系统,则将待重构的应用程序存在文件系统指定目录下,若从节点计算机没有文件系统,则将待重构的应用程序中的数据文件写入flash,上报文件接收状态。
29.与现有技术相比,采用上述技术方案的有益效果为:本发明能够依托系统内部各种互联互通的总线网络进行软件重构,完全摆脱了异构平台多设备多总线分支的束缚,可以同时完成多个嵌入式软件的在线重构、健康状态监控及版本管理,大幅提高了电子设备的维护效率,解决了环境不具备的情况下升级电子设备嵌入式软件费时费力的难题。
附图说明
30.图1为现有技术中航空powerpc软件加载物理连接关系图。
31.图2为本发明提出的异构平台在线重构系统架构示意图。
32.图3为本发明提出的异构平台在线重构过程示意图。
33.图4为本发明提出的双层协议数据打包示意图。
34.图5为本发明提出的一实施例中电子设备嵌入式软件重构拓扑图。
具体实施方式
35.下面结合附图对本发明做进一步描述。
36.如图2、图3所示,本发明提出一种异构平台嵌入式软件在线重构方法,异构平台在线重构系统架构中,综控设备通过以太网连接电子设备的主控计算机处理器软件,主控节点以及分布式架构下的各层从节点计算机处理器软件中,部署有统一的加载及引导程序,通过系统内部各层各类总线实现指定节点计算机处理器内的程序重构、擦除、版本管理和健康状态获取工作,同时可以定时刷新整个系统的健康状态,在综控设备管理控制界面上实现整体感知,主要目标是实现软件的快速重构以及版本管理。具体方案如下:
37.步骤1、综控设备(或pc机)加载配置文件,将待重构的应用程序传输至主控节点计算机;
38.步骤2、主控节点计算机接收到待重构的应用程序后,对内容进行校验,并按照总线协议填写目的标识与待重构的应用程序打包为数据包,并转发至主控节点计算机下层连接的从节点计算机;
39.步骤3、从节点计算机接收到数据包后,解析数据包中目的标识进行数据转发或数据缓存,若接收到需当前节点重构的应用程序则返回应答消息,同时进行数据校验及存储;
40.步骤4、综控设备(或pc机)收到应答消息无误后,下发重构指令,由主控节点计算机转发至相应从节点计算机,由计算机软件执行重构过程并返回重构状态;
41.其中,目的标识记载有数据包传输时的路由路径。在本实施例中,主控节点计算机中加载ppc软件,从节点计算机加载ppc或fpga软件。
42.在本实施例中,所述步骤1的子步骤包括:
43.步骤1.1、综控设备根据异构平台的拓扑结构编辑配置文件,包括硬件配置文件和版本配置文件;
44.步骤1.2、通过配置ip和端口号,扫描连接的计算机节点并加载配置文件,同时获取所有计算机节点的软件版本信息并显示;
45.步骤1.3、选择需要重构的应用程序,下发至主节点计算机。
46.为了适用于系统内不同电子设备的硬件环境,设计了统一的系统配置文件,可以灵活配置设备中各层计算机节点软件的消息路由信息、待重构软件所属计算机的硬件信息(包括硬件id、总线类型、指令集、版本等信息),从而实现在异构平台下的快速移植和能力集成。在本实施例中,硬件配置文件和版本配置文件均为xml格式文件,硬件配置文件包括每个节点计算机的数据路由信息和重构信息(如如ppc路由和fpga重构信息));版本配置文件根据系统实际版本管理进行编辑。同时,每个从节点计算机由系统配置有物理id、父节点id及子节点id。
47.由于设备间不同总线采用的通信协议不同,为了满足多设备总线间的数据传输,数据发送采用双层协议打包方式,双层协议数据打包示意图如图4所示。其中,第一层协议为总线通信协议,可灵活适应不同类型总线通信要求;第二层协议为在线重构数据通信协议,可根据项目实际需求更改。
48.在本实施例中,为了实现不同设备多个计算机软件节点间的数据路由传输,本发明提出了目的标识,即多层路由表(在本实施例中为6层,可根据实际情况扩展),采用“顶层”和“通信节点层”的分层处理方式实现数据路由处理。
49.其中,顶层用于维护系统拓扑结构表,生成数据路由路径,主要由主控节点计算机实现。目的标识数据结构如表1所示。
50.表1目的标识数据格式
[0051][0052]
其中,“拓扑层标识”表示数据路由状态(本节点接收或转发数据);“层标识”表示子节点id的存放位置;“节点id”表示向子节点转发的目的地址。
[0053]
通信节点层,由各层从节点计算机实现,根据目的标识完成数据路由中继工作,每
个节点仅关心自身以及直接连接的其他节点,即父节点、子节点。
[0054]
各节点的数据路由过程为:
[0055]
下行数据分为转发数据或不转发数据(即由该节点接收该数据),具体的,
[0056]
以层标识作为下标,从目标标识中获取最后一层转发节点id,判断是否与本节点计算机的物理id一致,若一致则缓存该数据包。
[0057]
以层标识作为下标,从目标标识中获取最后一层转发节点id,判断是否与本节点计算机的物理id一致,若不一致,则从目标标识中获取下一层转发节点id,判断下一层转发节点id是否在本节点计算机的子节点id范围内,若在,则修改目的标识中拓扑层标识与层标识(在本实施例中,拓扑层标识左移1位;层标识增加1),并转发该数据包。
[0058]
上行数据为转发数据,接收到子节点数据后直接转发给父节点。
[0059]
本实施例中,从节点计算机进行数据校验及存储过程为:数据接收完成后,对文件进行crc校验,若从节点计算机有文件系统,则将待重构的应用程序存在文件系统指定目录下,若从节点计算机没有文件系统,则将待重构的应用程序中的数据文件写入flash,上报文件接收状态,综控设备实时监控各节点反馈的校验信息及重构状态信息。
[0060]
本实施例还提出一具体异构电子设备进行说明,具体如下:
[0061]
该电子设备包括含3层分支结构,共2个ppc软件,4个fpga软件需要在线重构,其具体拓扑图如图5所示,重构过程如下:
[0062]
(1)根据拓扑图构件配置文件,初始化综控设备在线重构软件,建立网络连接,加载配置文件;
[0063]
(2)由综控设备向电子设备中各个节点计算机软件下发设备扫描指令,获取当前软件版本;
[0064]
(3)下发指定待重构软件的固化数据文件,基于图5所示的拓扑图,假设第1层主控节点计算机ppc软件的id为0,第2层节点p1~p3的id号分别为2、3、5,第3层从节点计算机软件p4~p5的id号分别为6、3。若需要重构从节点计算机p4软件,则数据分发路径为:pc-》主控ppc-》p1-》p4。因此,目的标识应该设置如下表所示:
[0065]
位标识名称备注b1拓扑层标识001000xxb2层标识0b31层转发id2b42层转发id6b53层转发idxb64层转发idxb75层转发idxb8预留 [0066]
1)管控power pc处理
[0067]
①
校验目标标识,有效;
[0068]
②
查询“拓扑层标识”最左边1bit,判断为
‘0‘
则转发;
[0069]
③
取“层标识”为0,选择转发子节点id,获取子节点id为2;
[0070]
④
校验转发子节点id,有效;
[0071]
⑤
将“拓扑层标识”左移1位,“层标识”增加1;
[0072]
⑥
将数据包转发至子节点2,即p1;
[0073]
此时的目的标识如下表所示:
[0074]
位标识名称备注b1拓扑层标识010000xxb2层标识1b31层转发id2b42层转发id6b53层转发idxb64层转发idxb75层转发idxb8预留 [0075]
2)节点p1处理
[0076]
①
查询“拓扑层标识”最左边1bit,判断为
‘0‘
则转发;
[0077]
②
取“层标识”为1,选择转发子节点id,获取子节点id为6;
[0078]
③
校验转发子节点id,有效;
[0079]
④
将“拓扑层标识”左移1位,“层标识”增加1;
[0080]
⑤
将数据包转发至子节点6,即p4;
[0081]
此时的目的标识如下表所示:
[0082]
位标识名称备注b1拓扑层标识100000xxb2层标识2b31层转发id2b42层转发id6b53层转发idxb64层转发idxb75层转发idxb8预留 [0083]
3)节点p4处理
[0084]
①
查询“拓扑层标识”最左边1bit,判断为
‘1‘
则缓存;
[0085]
②
校验目标节点,有效;
[0086]
③
将“目的标识”写入应答数据包“源地址”;
[0087]
④
发送应答数据;
[0088]
(4)综控设备收到p4的应答数据后,下发启动重构指令,p4开始调用所在计算机板提供的重构处理api接口进行程序文件固化,完毕后上报重构状态。
[0089]
传统方式下升级软件及版本维护需要的软硬件环境包括:一台调试计算机,n根调试电缆,n个仿真器,串口显示器等,运用该异构平台嵌入式软件在线重构技术只需要一台pc机(综控设备)和一根网线;而本发明通过一台pc机更新该电子设备上的2个ppc软件及4个v7系统fpga软件,传统方式下升级系统中所有软件总时长为1.8小时左右,运用该技术重
构升级所有软件仅耗时不到15分钟;并且传统方式下重构升级程序只能获取当前软件状态,且不能实时监控健康状态及在线重构信息反馈,重新加电才能验证是否重构软件成功,运用该技术,通过pc机上的综控软件,可以同时监控这6个软件的版本、健康状态、程序重构详细信息,状态反馈等。
[0090]
除了在电子设备产品维护阶段可以通过该方法,采用外接保障设备完成在线重构升级软件工作,若为航空舰载等电子设备,交付安装到飞机或舰船等平台后,还能够通过软件集成,进而直接通过航电显控维护画面也可触发相应操作,航电总线将待加载软件执行代码发送到设备,由设备内部各个主控计算机软件解析下传并固化到对应ppc单板计算机的flash中或fpga,实现了“一键加载”,极大提高了设备维护软件升级的效率。
[0091]
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。
[0092]
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0093]
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。