CN109766116B - 一种基于can通讯的多核控制组件在线引导升级方法 - Google Patents
一种基于can通讯的多核控制组件在线引导升级方法 Download PDFInfo
- Publication number
- CN109766116B CN109766116B CN201811509967.7A CN201811509967A CN109766116B CN 109766116 B CN109766116 B CN 109766116B CN 201811509967 A CN201811509967 A CN 201811509967A CN 109766116 B CN109766116 B CN 109766116B
- Authority
- CN
- China
- Prior art keywords
- core
- main control
- program
- control program
- online
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于CAN通讯的多核控制组件在线引导升级方法,包括配置多核控制组件、加载监控程序、等待在线引导升级命令、在线升级。本发明的优势在于:主控程序更新过程中,只擦除了主控程序对应扇区,保留监控程序软件扇区,不进行全扇区擦除,如出现异常(掉电或通讯异常),导致升级中断,重新上电后,依旧可以加载监控程序,发指令继续对主控程序进行更新,避免了控制组件灌封后由于无法连接芯片仿真器更新软件而导致报废的危险。
Description
技术领域
本发明属于嵌入式芯片内软件在线升级技术领域,具体为一种基于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;
下位机开发环境,Code Composer Studio 7.1;
下位机调试仿真器,Xds200;
上位机开发平台,Windows 7;
上位机开发环境,Visual Studio 2008;
上位机CAN通讯转换器:USB CAN;
外部存储芯片,(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存储主控程序;
其余内容同前一实施例。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以现在本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于CAN通讯的多核控制组件在线引导升级方法,其特征在于,用于炮射制导弹药的控制软件,包括如下步骤:
S1、配置多核控制组件,配置基于CAN通讯的多核控制组件,所述多核控制组件包括嵌入式芯片,所述嵌入式芯片上有多个核,每一个核对应有一个控制软件,每个控制软件包括监控程序和主控程序;所述嵌入式芯片的每个核都包括外部非易失性存储器和内部易失性存储器,所述每个核的外部非易失性存储器内储存该核的控制软件;
所述步骤S1中,配置的多核控制组件中包括TMS320C28377D双核DSP;
S2、加载监控程序,控制系统上电后,各核从外部存储器中加载监控程序;
S3、等待在线引导升级命令,在等待时间内,若收到外部在线升级命令,则停止跳转主控程序逻辑,进入在线升级流程;
如果在等待时间内第一核收到在线升级命令,且升级对象为第一核,则第一核通知第二个核进入升级待机状态,并擦除第一核对应扇区,将接收外部程序数据写入到指定的扇区完成主控程序升级;若第一核收到的升级对象为第二个核,则第一核转发升级命令给第二个核,让第二个核执行在线升级流程,其它核处于待机状态;
S4、在线升级,各核的监控程序擦除主控程序,并接收外部升级主控程序对应数据帧,写入外部非易失性存储器内,完成主控程序代码在线更新流程;
所述步骤S1中,还包括如下步骤:
S11、分配监控程序和主控程序,每个核的外部非易失性存储器内分配有监控程序扇区和主控程序扇区两块区域,分别储存监控程序和主控程序;在线升级时,各核的监控程序擦除主控程序对应扇区,保留监控程序软件扇区,不进行全扇区擦除,并接收外部升级主控程序对应数据帧,写入主控程序扇区,完成主控程序代码在线更新流程。
2.根据权利要求1所述的在线引导升级方法,其特征在于,所述步骤S1中,还包括如下步骤:
S12、选择通信,配置的多个核中选定其中一个与外部进行CAN通信,其它核只能接收这选定的其中一个核转发的外部通信数据。
3.根据权利要求1所述的在线引导升级方法,其特征在于所述步骤S3中,还包括如下步骤:
S31、跳转主控程序,等待若干时间,若未收到外部在线升级命令则从监控程序跳转到主控程序,主控程序完成控制系统各类控制调度命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811509967.7A CN109766116B (zh) | 2018-12-11 | 2018-12-11 | 一种基于can通讯的多核控制组件在线引导升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811509967.7A CN109766116B (zh) | 2018-12-11 | 2018-12-11 | 一种基于can通讯的多核控制组件在线引导升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766116A CN109766116A (zh) | 2019-05-17 |
CN109766116B true CN109766116B (zh) | 2022-07-15 |
Family
ID=66451428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811509967.7A Active CN109766116B (zh) | 2018-12-11 | 2018-12-11 | 一种基于can通讯的多核控制组件在线引导升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766116B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488168B (zh) * | 2019-12-25 | 2023-09-12 | 湖北航天飞行器研究所 | 一种基于boot二次加载的武器系统控制软件安全升级方法 |
CN113590160B (zh) * | 2021-08-13 | 2024-07-05 | 北京经纬恒润科技股份有限公司 | 一种软件在线升级方法及多核ecu |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407878A (zh) * | 2014-10-20 | 2015-03-11 | 北京航天发射技术研究所 | C6000数字信号处理器在线升级方法 |
CN107861745A (zh) * | 2017-11-30 | 2018-03-30 | 厦门科华恒盛股份有限公司 | 一种应用程序在线升级方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012106912A1 (zh) * | 2011-07-21 | 2012-08-16 | 华为技术有限公司 | 对芯片进行动态升级的方法、系统及基板管理控制器 |
CN102929158B (zh) * | 2012-10-30 | 2015-01-07 | 北京华力创通科技股份有限公司 | 一种多核多模型并行分布式实时仿真系统 |
CN103793355A (zh) * | 2014-01-08 | 2014-05-14 | 西安电子科技大学 | 基于多核dsp的通用数字信号处理板卡 |
-
2018
- 2018-12-11 CN CN201811509967.7A patent/CN109766116B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407878A (zh) * | 2014-10-20 | 2015-03-11 | 北京航天发射技术研究所 | C6000数字信号处理器在线升级方法 |
CN107861745A (zh) * | 2017-11-30 | 2018-03-30 | 厦门科华恒盛股份有限公司 | 一种应用程序在线升级方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109766116A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506535B (zh) | 一种汽车ECU控制器更新升级Bootloader软件的方法 | |
CN109766116B (zh) | 一种基于can通讯的多核控制组件在线引导升级方法 | |
CN106201590B (zh) | 一种fpga配置文件加载方法和系统 | |
CN101826027A (zh) | 一种嵌入式系统及其升级方法 | |
CN112988183A (zh) | 程序升级方法、装置、电子设备及存储介质 | |
CN111240720A (zh) | 引导程序升级方法、装置及存储介质 | |
US20170228236A1 (en) | Vehicle control device, reprogramming system | |
US9678867B2 (en) | Method for changing the software in the memory of an electronic control unit | |
CN109597635A (zh) | 一种主控程序安全引导升级方法、嵌入式设备及存储器 | |
CN108182078B (zh) | 一种优化的弹载设备不拆弹软件在线升级方法 | |
US10691467B2 (en) | Booting method using system firmware with multiple embedded controller firmwares | |
CN113064604A (zh) | 一种固件升级方法和装置 | |
CN105760191A (zh) | 嵌入式系统设备程序烧写量产方法 | |
US9600397B2 (en) | Dynamic debugging method of a software module and corresponding device | |
CN103092659A (zh) | 脱离仿真器支持环境的dsp软件升级系统及其升级方法 | |
CN103677923A (zh) | 一种boot引导程序运行保护方法 | |
CN114546453A (zh) | Fpga配置项在线升级方法、系统、设备及存储介质 | |
CN107566169A (zh) | 一种基于openwrt的固件升级方法及路由器 | |
CN116775085B (zh) | 多核异构片上系统更新方法、装置、芯片及交通设备 | |
CN106598654A (zh) | 一种在线更新PowerPC主板引导芯片的方法 | |
CN103077056A (zh) | 使用少量ROM资源的Bootlorder实现方法 | |
CN109815055B (zh) | 卫星程序管理系统和卫星程序管理方法 | |
CN112346770A (zh) | 一种嵌入式程序在线更新方法 | |
CN111488168B (zh) | 一种基于boot二次加载的武器系统控制软件安全升级方法 | |
CN106611124B (zh) | 计算机装置及其开机方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |