一种车辆电子控制单元的引导装载程序更新方法、装置及设备与流程
未命名
08-06
阅读:99
评论:0
1.本发明涉及新能源汽车技术领域,特别是一种车辆电子控制单元的引导装载程序更新方法、装置及设备。
背景技术:
2.三电控制器ecu(电子控制单元)软件开发过程中,发现bootloader(引导装载程序)软件,随着项目变更的需求以及bootloader软件漏洞等问题,需要将试验车上的bootloader软件进行更新,对于整车上的控制器,如果需要更新底层软件bootloader,现有技术中将整车上的ecu控制器拆下来后通过调试工具进行软件更新,这样可能会造成ecu的损坏;通过软件的方法把bootloader进行更新的方式会给软件开发带来额外的工作量,对项目开发带来巨大挑战。
技术实现要素:
3.本发明要解决的技术问题是提供一种车辆电子控制单元的引导装载程序更新方法、装置及设备,减少软件开发工作量,操作简单,还便于ecu软件维护,降低软件开发成本,提高项目开发效率。
4.为解决上述技术问题,本发明的技术方案如下:
5.一种车辆电子控制单元的引导装载程序更新方法,包括:
6.在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中;
7.检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ecu的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ecu的软件代码存储区的开始地址。
8.可选的,在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中,包括:
9.将新版本的引导装载程序的软件代码下载到ecu的第一软件代码存储区中,同时将需要更新的ecu的软件代码下载到ecu的第二软件代码存储区,所述第一软件代码存储区与所述第二软件代码存储区的存储地址连续,且所述第二软件代码存储区与所述预设存储区的存储地址连续。
10.可选的,所述第一软件代码存储区的开始地址大于所述第二软件代码存储区的结束地址,所述第一软件代码存储区的结束地址小于电子控制单元ecu芯片的存储空间的最大地址。
11.可选的,检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,将所述新版本的引导装载程序的软件代码迁移到预设存储区,包括:
12.检测到预设指令后,调用非易失存储器的擦除接口,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移到预设存储区。
13.可选的,所述预设指令为统一诊断服务uds指令。
14.可选的,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述引导装载程序的软件代码迁移到预设存储区,包括:
15.对所述引导装载程序的软件代码进行循环移位校验,若校验通过,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移到预设存储区。
16.可选的,在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中之前,还包括:
17.车辆电子控制单元ecu上电过程中,运行所述预设存储区中存储的旧版本的引导装载程序的软件代码后,运行所述ecu的软件代码存储区中的ecu的软件代码。
18.本发明还提供一种车辆电子控制单元的引导装载程序更新装置,包括:
19.下载模块,用于在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的存储空间中;
20.更新模块,用于检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ecu的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ecu的软件代码存储区的开始地址。
21.本发明还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上所述的方法。
22.本发明还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。
23.本发明的上述方案至少包括以下有益效果:
24.本发明的上述方案,通过在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中;检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ecu的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ecu的软件代码存储区的开始地址;本方法减少软件开发工作量,操作简单,还便于ecu软件维护,降低软件开发成本,提高项目开发效率。
附图说明
25.图1是本发明实施例的车辆电子控制单元的引导装载程序更新方法的流程示意图;
26.图2是本发明实施例的车辆电子控制单元的引导装载程序更新方法的结构示意图;
27.图3是本发明实施例的车辆电子控制单元的引导装载程序更新方法的一具体流程示意图;
28.图4是本发明实施例的车辆电子控制单元的引导装载程序更新方法的一具体流程示意图;
29.图5是本发明实施例的车辆电子控制单元的引导装载程序更新装置的结构示意图。
具体实施方式
30.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
31.如图1所示,本发明的实施例提出一种车辆电子控制单元的引导装载程序更新方法,包括:
32.步骤11,在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中;
33.步骤12,检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ecu的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ecu的软件代码存储区的开始地址。
34.该实施例中,是通过更新ecu的app软件,将所述新版本的引导装载程序的软件代码下载到ecu主控芯片中;更新后的ecu的app软件运行并向ecu发送升级指令,ecu在接收到指令后,擦除预设存储区内旧版本的引导装载程序的软件代码,写入新版本的引导装载程序的软件代码,引导装载程序更新完成。
35.需要说明的是,所述引导装载程序的软件代码和所述ecu的app软件代码均存储于ecu主控芯片内的flash非易失存储器中;
36.该实施例中,所述新版本的引导装载程序的软件代码和需要更新的ecu的app软件代码同时下载时,需要对引导装载程序的hex文件(一种以ascii文本形式传达二进制信息的文件格式)和app软件的hex文件进行合并;根据项目不同,合并的hex文件的物理地址需要根据实际地址进行修改,如表1所示:
37.表1:部件物理地址表
[0038][0039]
本发明一可选的实施例中,步骤11包括:
[0040]
步骤111,将新版本的引导装载程序的软件代码下载到ecu的第一软件代码存储区
中,同时将需要更新的ecu的软件代码下载到ecu的第二软件代码存储区,所述第一软件代码存储区与所述第二软件代码存储区的存储地址连续,且所述第二软件代码存储区与所述预设存储区的存储地址连续。
[0041]
本发明一可选的实施例中,所述第一软件代码存储区的开始地址大于所述第二软件代码存储区的结束地址,所述第一软件代码存储区的结束地址小于电子控制单元ecu芯片的存储空间的最大地址。
[0042]
如图2所示,本实施例中,所述ecu的app软件代码占用存储空间1024kb,假设所述ecu的软件代码存储区预留1919kb,则所述ecu的软件代码存储区剩余空间等于1919kb-1024kb=895kb;因为所述引导装载程序的软件代码占用空间128kb小于所述ecu的软件代码存储区剩余空间895kb,所以所述引导装载程序的软件代码可以合并到所述ecu的软件代码存储区剩余空间内。
[0043]
本发明一可选的实施例中,步骤12包括:
[0044]
步骤121,检测到预设指令后,调用非易失存储器的擦除接口,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移到预设存储区。
[0045]
如图3所示,本实施例中,通过发送统一诊断服务uds指令,ecu软件把原bootloader软件擦除掉再把存储在app区域的bootloader最新软件搬移到bootloader对应的内存处,其中,uds协议(unified diagnostic services,统一诊断服务),是诊断服务的规范化标准,比如读取故障码应该向ecu(电控单元)发什么指令,读数据流又是发什么指令。uds是一个应用层协议(iso 14229-1),所以它既可以在can线上实现,甚至也能在ethernet上实现。在车辆电子控制单元ecu的app软件代码更新完成,所述ecu的app软件运行,实时判断是否升级引导装载程序(bootloader)指令;如果判定升级,ecu读取所述第一软件代码存储区内新版本的引导装载程序的版本号,并与所述预设存储区内存储的旧版本的引导装载程序的版本号进行比较,如果所述新版本的引导装载程序的版本号较新,则调用所述flash非易失存储器的擦除接口和写入接口,将所述软件代码存储区内的新版本引导装载程序的软件代码迁移到预设存储区,对所述旧版本的引导装载程序软件代码进行覆盖,升级工作完成;如果所述旧版本引导装载程序的版本号较新,则退出当前升级模式。
[0046]
本发明一可选的实施例中,步骤12中,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述引导装载程序的软件代码迁移到预设存储区可以包括:
[0047]
对所述引导装载程序的软件代码进行循环移位校验,若校验通过,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移到预设存储区。
[0048]
本实施例中,在所述flash非易失存储器对引导装载程序的软件代码擦除和写入的过程中,加入crc循环移位校验,以保证数据搬运过程中数据的完整性和一致性;所述crc循环移位校验也称为多项式编码,由信息字段和校验字段组成;是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。
[0049]
本发明一可选的实施例中,在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代
码存储区中之前,还可以包括:
[0050]
步骤10,车辆电子控制单元ecu上电过程中,运行所述预设存储区中存储的旧版本的引导装载程序的软件代码后,运行所述ecu的软件代码存储区中的ecu的软件代码。
[0051]
如图4所示,本实施例中,系统上电,运行引导装载程序(bootloader),ecu初始化完成,运行旧版本的ecu的app软件,发送升级ecu的app软件指令,新版本的ecu软件代码与所述新版本的引导装载程序的软件代码同时下载到所述ecu的软件代码存储区中,所述车辆电子控制单元ecu的app软件代码更新完成。
[0052]
本发明通过上述方法,实现引导装载程序(bootloader)的更新,无需额外开发软件,减少软件开发工作量;操作简单,还便于ecu软件维护,降低软件开发成本,提高项目开发效率。
[0053]
如图5所示,本发明的实施例还提供一种车辆电子控制单元的引导装载程序更新装置50,包括:
[0054]
下载模块51,用于在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的存储空间中;
[0055]
更新模块52,用于检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ecu的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ecu的软件代码存储区的开始地址。
[0056]
可选的,下载模块51在用于在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中时,具体用于:
[0057]
将新版本的引导装载程序的软件代码下载到ecu的第一软件代码存储区中,同时将需要更新的ecu的软件代码下载到ecu的第二软件代码存储区,所述第一软件代码存储区与所述第二软件代码存储区的存储地址连续,且所述第二软件代码存储区与所述预设存储区的存储地址连续。
[0058]
可选的,所述第一软件代码存储区的开始地址大于所述第二软件代码存储区的结束地址,所述第一软件代码存储区的结束地址小于电子控制单元ecu芯片的存储空间的最大地址。
[0059]
可选的,更新模块52在用于检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,将所述新版本的引导装载程序的软件代码迁移到预设存储区时,具体用于:
[0060]
检测到预设指令后,调用非易失存储器的擦除接口,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移到预设存储区。
[0061]
可选的,所述预设指令为统一诊断服务uds指令。
[0062]
可选的,可选的,所述更新模块在用于擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述引导装载程序的软件代码迁移到预设存储区时,具体用于:
[0063]
对所述引导装载程序的软件代码进行循环移位校验,若校验通过,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移
到预设存储区。
[0064]
可选的,所述装置还包括:
[0065]
运行模块,在下载模块51在用于在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中之前,用于:
[0066]
车辆电子控制单元ecu上电过程中,运行所述预设存储区中存储的旧版本的引导装载程序的软件代码后,运行所述ecu的软件代码存储区中的ecu的软件代码。
[0067]
需要说明的是,该装置是与上述方法对应的装置,上述方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
[0068]
本发明的实施例还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
[0069]
本发明的实施例还提供一种计算机可读存储介质,存储有指令,所述指令在计算机上运行时,使得计算机执行如上述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
[0070]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0071]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0072]
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0073]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0074]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0075]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0076]
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0077]
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0078]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种车辆电子控制单元的引导装载程序更新方法,其特征在于,包括:在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中;检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ecu的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ecu的软件代码存储区的开始地址。2.根据权利要求1所述的车辆电子控制单元的引导装载程序更新方法,其特征在于,在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中,包括:将新版本的引导装载程序的软件代码下载到ecu的第一软件代码存储区中,同时将需要更新的ecu的软件代码下载到ecu的第二软件代码存储区,所述第一软件代码存储区与所述第二软件代码存储区的存储地址连续,且所述第二软件代码存储区与所述预设存储区的存储地址连续。3.根据权利要求2所述的车辆电子控制单元的引导装载程序更新方法,其特征在于,所述第一软件代码存储区的开始地址大于所述第二软件代码存储区的结束地址,所述第一软件代码存储区的结束地址小于电子控制单元ecu芯片的存储空间的最大地址。4.根据权利要求1所述的车辆电子控制单元的引导装载程序更新方法,其特征在于,检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,将所述新版本的引导装载程序的软件代码迁移到预设存储区,包括:检测到预设指令后,调用非易失存储器的擦除接口,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移到预设存储区。5.根据权利要求4所述的车辆电子控制单元的引导装载程序更新方法,其特征在于,所述预设指令为统一诊断服务uds指令。6.根据权利要求1或4所述的车辆电子控制单元的引导装载程序更新方法,其特征在于,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述引导装载程序的软件代码迁移到预设存储区,包括:对所述引导装载程序的软件代码进行循环移位校验,若校验通过,擦除所述预设存储区中存储的旧版本的引导装载程序的软件代码,将所述引导装载程序的软件代码迁移到预设存储区。7.根据权利要求1所述的车辆电子控制单元的引导装载程序更新方法,其特征在于,在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的软件代码存储区中之前,还包括:车辆电子控制单元ecu上电过程中,运行所述预设存储区中存储的旧版本的引导装载程序的软件代码后,运行所述ecu的软件代码存储区中的ecu的软件代码。8.一种车辆电子控制单元的引导装载程序更新装置,其特征在于,包括:下载模块,用于在车辆电子控制单元ecu的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ecu的软件代码同时下载到ecu的存储空间中;更新模块,用于检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序
的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ecu的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ecu的软件代码存储区的开始地址。9.一种计算设备,其特征在于,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如权利要求1至7任一项所述的方法。10.一种计算机可读存储介质,其特征在于,存储指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至7任一项所述的方法。
技术总结
本发明提供一种车辆电子控制单元的引导装载程序更新方法、装置及设备,所述方法包括:在车辆电子控制单元ECU的软件代码更新的过程中,将新版本的引导装载程序的软件代码和需要更新的ECU的软件代码同时下载到ECU的软件代码存储区中;检测到预设指令后,擦除预设存储区中存储的旧版本的引导装载程序的软件代码,并将所述新版本的引导装载程序的软件代码迁移到预设存储区,所述预设存储区与所述ECU的软件代码存储区地址连续,且所述预设存储区的结束地址小于所述ECU的软件代码存储区的开始地址;本发明的方案减少软件开发工作量,操作简单,还便于ECU软件维护,降低软件开发成本,提高项目开发效率。提高项目开发效率。提高项目开发效率。
技术研发人员:李健 熊善海
受保护的技术使用者:北京新能源汽车股份有限公司
技术研发日:2023.03.22
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
