一种基于CAN通讯的多核控制组件在线引导升级方法与流程

文档序号:17694973发布日期:2019-05-17 21:24阅读:473来源:国知局
一种基于CAN通讯的多核控制组件在线引导升级方法与流程

本发明属于嵌入式芯片内软件在线升级技术领域,具体为一种基于can通讯的多核控制组件在线引导升级方法。



背景技术:

炮射制导弹药的控制软件固化于控制组件的嵌入式芯片的外部非易失性存储器(外部flash存储器)中,通常所述控制组件只有一个微处理器(即cpu,也称核)为单核,控制系统上电后,嵌入式芯片从外部flash存储器中将控制软件导入芯片内部易失性存储器(内部存储器),然后按照软件设定逻辑控制整个武器系统运行。炮射制导弹药发射时,其控制组件安装在弹头内而需承受冲击、振动及高温高热等恶劣环境,因此需要对控制组件进行灌封,使其与外界隔绝,以此提高其抗冲击振动、抗恶劣环境、防尘防潮防腐的能力以及电绝缘导热等性能。为此,控制组件通常会加入基于某种通讯方式外部在线升级功能,避免灌封后无法通过连接仿真器进行软件更新的问题。

常见的在线升级方案中,外部flash存储器全扇区只分配一种控制软件程序,所有功能均包含在一种控制软件中,控制软件的在线升级过程中需要对存储代码的外部flash存储器芯片执行全扇区擦除;这样就导致控制软件的升级流程就存在一定的风险,即升级流程启动后,如果扇区擦除完成,新控制软件代码数据写入外部flash存储器过程中出现异常(掉电或通讯异常),会导致升级失败且不可逆转,最终结果就是灌封后的控制组件因程序擦除无法运行,且无法通过仿真器进行软件烧写而导致报废。



技术实现要素:

针对现有技术的缺陷和改进需求,为了降低控制组件在线升级过程中的风险,需要开发一种安全的在线升级方法,提高炮射制导弹药控制软件代码维护的可靠性和安全性。

为实现上述目的,本发明提供一种基于can通讯的多核控制组件在线引导升级方法,其特征在于包括如下步骤:

s1、配置多核控制组件,配置基于can通讯的多核控制组件,所述多核控制组件包括嵌入式芯片,所述嵌入式芯片上有多个核,每一个核对应有一个控制软件,每个控制软件包括监控程序和主控程序;所述嵌入式芯片的每个核都包括外部非易失性存储器(外部存储器)和内部易失性存储器(内部存储器),所述每个核的外部非易失性存储器内储存该核的控制软件;

s2、加载监控程序,控制系统上电后,各核从外部存储器(外部flash存储器)中加载监控程序;

s3、等待在线引导升级命令,在等待时间内,若收到外部在线升级命令,则停止跳转主控程序逻辑,进入在线升级流程;

s4、在线升级,各核的监控程序擦除主控程序,并接收外部升级主控程序对应数据帧,写入外部非易失性存储器内,完成主控程序代码在线更新流程。

进一步地,所述步骤s1中,还包括如下步骤:

s11、分配监控程序和主控程序,每个核的外部非易失性存储器内分配有监控程序扇区和主控程序扇区两块区域,分别储存监控程序和主控程序;在线升级时,各核的监控程序擦除主控程序对应扇区,并接收外部升级主控程序对应数据帧,写入主控程序扇区,完成主控程序代码在线更新流程。

进一步地,所述步骤s1中,还包括如下步骤:

s12、选择通信,配置的多个核中选定其中一个与外部进行can通信,其它核只能接收这选定的其中一个核转发的外部通信数据。

优选地,配置的多核控制组件中包括tms320c28377d双核dsp。

更进一步地,所述步骤s3中,还包括如下步骤:

s31、跳转主控程序,等待若干时间,若未收到外部在线升级命令则从监控程序跳转到主控程序,主控程序完成控制系统各类控制调度命令。

本发明将外部flash存储器由传统方案中只分配主控程序变更为监控程序区域和主控程序区域两块扇区;其中,控制系统上电后,各核从外部flash存储器中加载监控程序,等待若干时间,未收到外部在线升级命令则从监控程序跳转到主控程序,主控程序完成控制系统各类控制调度功能;控制系统上电后,嵌入式芯片从外部flash存储器中加载监控程序,在等待时间内,收到外部在线升级命令,则停止跳转主控程序逻辑,进入在线升级流程。选定其中一个微处理器(核)的升级命令和程序数据来自于can通信,其它微处理器(核)的升级命令和程序数据则来自于选定的那一个微处理器(核)转发。监控程序擦除主控程序对应扇区,并接收外部主控程序对应数据帧,写入主控程序扇区,完成主控程序代码在线更新流程;这种方法的优势在于:主控程序更新过程中,只擦除了主控程序对应扇区,保留监控程序软件扇区,不进行全扇区擦除,如出现异常(掉电或通讯异常),导致升级中断,重新上电后,依旧可以加载监控程序,发指令继续对主控程序进行更新,避免了控制组件灌封后由于无法连接芯片仿真器更新软件而导致报废的危险。

附图说明

图1为本发明方法的外部非易失性存储器(外部存储器或称外部flash存储器)分配方式示意图;

图2为本发明方法的多核控制组件安全引导升级流程图。

其中,1-监控程序扇区、2-主控程序扇区。核1,核2,核3,...核n表示多个核中的第一核,第二核,第三核,...第n核。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1为本实施例的外部存储器扇区分配方式,将外部存储器分配为监控程序扇区和主控程序扇区两块区域。其中,监控程序扇区存储监控程序代码,主控程序扇区存储主控程序代码。

本实施例中:

下位机硬件平台,tms320c28377d双核dsp;

下位机开发环境,codecomposerstudio7.1;

下位机调试仿真器,xds200;

上位机开发平台,windows7;

上位机开发环境,visualstudio2008;

上位机can通讯转换器:usbcan;

外部存储芯片,(0k-64k存储监控程序;64k-256k存储主控程序)。

一种基于can通讯的多核控制组件在线引导升级方法,使用的具体情况是:多核控制组件包括嵌入式芯片,所述嵌入式芯片上有多个核,每一个核对应有一个控制软件,对多个软件进行在线引导升级,包括如下步骤:

s1、配置多核控制组件,配置基于can通讯的多核控制组件,所述多核控制组件包括嵌入式芯片,所述嵌入式芯片上有多个核,每一个核对应有一个控制软件,每个控制软件包括监控程序和主控程序;所述嵌入式芯片的每个核都包括外部非易失性存储器(外部存储器)和内部易失性存储器(内部存储器),所述每个核的外部非易失性存储器内储存该核的控制软件;

s11、分配监控程序和主控程序,外部非易失性存储器内分配有监控程序区域和主控程序区域两块扇区,分别储存监控程序和主控程序;在线升级时,各核的监控程序擦除主控程序对应扇区,并接收外部升级主控程序对应数据帧,写入主控程序扇区,完成主控程序代码在线更新流程。

s12、配置的多个核中选定其中一个与外部进行can通信,其它核只能接收这选定的其中一个核转发的外部通信数据;

s2、加载监控程序,控制系统上电后,各核从外部flash存储器中加载监控程序;

s3、等待在线引导升级命令,在等待时间内,若收到外部在线升级命令,则停止跳转主控程序逻辑,进入在线升级流程;等待若干时间,若未收到外部在线升级命令则从监控程序跳转到主控程序,主控程序完成控制系统各类控制调度命令。

s4、在线升级,各核的监控程序擦除主控程序,并接收外部升级主控程序对应数据帧,写入主控程序扇区,完成主控程序代码在线更新流程。

具体见图2监控程序在线引导升级流程,控制系统上电后嵌入式芯片的各个核从外部存储器中加载监控程序,并判断是否进入升级流程。其中,各个核中选定其中一个核才能与外部进行can通信,其它核接收这个选定的核转发外部通信数据,本实施例中,共两个核,选定第一核(图中核1)与外部进行can通信,第二个核(核2)接收第一核转发的外部通信数据。

如果上电时间超过5s第一核未收到外部升级命令,则跳转到主控程序部分;第二个核若上电时间超过5s未收到第一核转发的升级命令,也跳转到主控程序部分。

如果上电5s内第一核收到在线升级命令,且升级对象为第一核,则第一核通知第二个核进入升级待机状态,并擦除第一核对应扇区,将接收外部程序数据写入到指定的扇区完成主控程序升级;若第一核收到的升级对象为第二个核,则第一核转发升级命令给第二个核,让第二个核执行在线升级流程;其它核处于待机状态,本实施例是指第一核处于待机状态。第二个核通过接收第一核转发的升级命令和程序数据完成自身的主控程序升级。

一般监控程序不更新监控程序,主要更新对象为各自核的主控程序,所以升级主控程序内容时,相对安全,升级失败后,重新上电,外部存储器上还存留监控程序,可以重新引导进入升级流程。

另一个实施例中:

下位机硬件平台,tms320c28377d双核dsp;

外部存储芯片,每个核外部存储芯片地址分配:0k-64k存储监控程序;64k-256k存储主控程序;

其余内容同前一实施例。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以现在本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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