CN116431186A - 一种车载ecu的升级方法、装置及介质 - Google Patents
一种车载ecu的升级方法、装置及介质 Download PDFInfo
- Publication number
- CN116431186A CN116431186A CN202310433282.3A CN202310433282A CN116431186A CN 116431186 A CN116431186 A CN 116431186A CN 202310433282 A CN202310433282 A CN 202310433282A CN 116431186 A CN116431186 A CN 116431186A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- boot
- level
- target
- upgrade
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 230000001680 brushing effect Effects 0.000 claims abstract description 85
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000011010 flushing procedure Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000009191 jumping Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种车载ECU的升级方法、装置及介质,适用于车辆技术领域。获取车载的存储区域内总线编号信息,其中总线编号信息用于区分多级BOOT的级别信息,多级BOOT基于OTA功能预先划分;根据总线编号信息确定多级BOOT的目标升级级别;根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程;根据刷写流程进行对应的升级操作。通过在存储区域基于OTA功能需求划分多级BOOT,通过多级BOOT除完成OTA功能需求之外,还可以利用多级BOOT完成自身BOOT升级,避免现有的通过附加仿真器,拆除机器硬件刷写BOOT造成的刷写成本大的问题,通过软件即可实现刷写升级,提高升级效率。
Description
技术领域
本发明涉及车辆技术领域,特别是涉及一种车载ECU的升级方法、装置及介质。
背景技术
随着汽车的电动化、智能化方向的快速发展,其电子控制单元(ElectronicControl Unit,ECU)越来越多,对于在线升级(Over-the-Air Technology,OTA)和统一诊断服务(Unified Diagnostic Services,UDS)功能普及,ECU实现软件自升级的***引导程序(Bootloader,BOOT)功能成为必备选项。
通常一个ECU搭载的是一个BOOT和一个应用程序(App),BOOT作为引导程序,实现CAN总线完成APP升级功能。由于OTA的普及,其BOOT升级APP软件需要按照原始委托生产(Original Entrusted Manufacture,OEM)提出的需求进行升级,然而每个OEM厂家提出的OTA功能要求均有不同,且OTA的需求不断更新,搭载一个BOOT的ECU无法方便快捷地完成对自身BOOT的升级,对于这种情况,通常会附加仿真器工具,进而拆除机器通过硬件刷写BOOT,导致刷写升级成本较大。
因此,如何根据OTA需求进行BOOT软件升级以提升升级效率是本领域技术人员亟需要解决的。
发明内容
本发明的目的是提供一种车载ECU的升级方法、装置及介质,通过多级BOOT除完成OTA功能需求之外,还可以利用多级BOOT完成自身BOOT升级,避免现有的通过附加仿真器,拆除机器硬件刷写BOOT造成的刷写成本大的问题,通过软件即可实现刷写升级,提高升级效率。
为解决上述技术问题,本发明提供一种车载ECU的升级方法,包括:
获取车载的存储区域内总线编号信息,其中所述总线编号信息用于区分多级BOOT的级别信息,所述多级BOOT基于OTA功能预先划分;
根据所述总线编号信息确定所述多级BOOT的目标升级级别;
根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程;
根据所述刷写流程进行对应的升级操作。
优选地,在所述获取车载的存储区域内总线编号信息之前,还包括:
获取上位机发送的升级请求信息;
判断所述升级请求信息对应的当前状态是否满足升级需求;
若是,则开启预升级模式,并进入至所述获取车载的存储区域内总线编号信息的步骤。
优选地,所述总线编号信息包括多个总线编号,所述多级BOOT对应的所述总线编号不同。
优选地,所述多级BOOT的目标升级级别包括一级BOOT,所述一级BOOT包含一套总线编号信息;
所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程,包括:
当所述目标升级级别为所述一级BOOT时,根据所述目标升级级别和写入所述存储区域的所述标识信息之间的关系,获取所述一级BOOT对应的标识信息,其中,所述标识信息包括所述一级BOOT的各刷写流程对应的擦除地址和长度;
根据所述标识信息确定所述一级BOOT的刷写流程,所述一级BOOT的刷写流程包括APP升级、所述一级BOOT升级至二级BOOT,各所述刷写流程对应的擦除地址和长度均不同。
优选地,所述多级BOOT的目标升级级别包括二级BOOT,所述二级BOOT包含两套总线编号信息;
所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程,包括:
当所述目标升级级别为所述二级BOOT时,根据所述目标升级级别和所述存储区域的所述标识信息的关系,获取所述二级BOOT对应的所述标识信息,其中,所述标识信息包括标识符、所述二级BOOT的各刷写流程对应的擦除地址和长度;
根据所述标识信息确定所述二级BOOT的刷写流程,其中,所述二级BOOT的刷写流程包括自身BOOT升级、所述一级BOOT升级和APP升级,所述自身BOOT升级与所述一级BOOT升级的刷写流程相同;
对应地,所述根据所述标识信息确定所述二级BOOT的刷写流程,包括:
根据所述标识符确定对应的总线编号信息;
根据所述总线编号信息确定对应的升级对象,其中所述升级对象与所述二级BOOT的刷写流程预先建立映射关系;
根据所述升级对象、所述擦除地址和所述长度确定所述二级BOOT的刷写流程。
优选地,在所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程之前,还包括:
根据所述总线编号信息确定对应的所述升级级别的安全认证方式,其中所述一级BOOT的安全认证方式基于供应商自拟的安全算法确定,所述二级BOOT的安全认证方式基于整车厂企业定制的各安全算法确定;
获取所述OTA功能的安全访问以发送随机种子,便于上位机根据所述随机种子利用所述安全认证方式对应的安全算法进行密钥加密;
接收所述上位机发送的密钥信息;
将所述密钥与所述密钥信息对比;
若相同,则解锁以获取升级权限,并进入至所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程的步骤。
优选地,还包括:
在升级所述二级BOOT异常时,利用所述一级BOOT进行升级。
优选地,在所述根据所述刷写流程进行对应的升级操作之后,还包括:
将所述升级操作对应的数据包下载至所述存储区域;
对所述数据包进行校验;
若校验成功,则确定升级成功。
优选地,在所述根据所述刷写流程进行对应的升级操作之前,还包括:
对所述升级操作进行上电时序;
当所述上电时序完成后,进入至所述根据所述刷写流程进行对应的升级操作的步骤进行升级操作。
为解决上述技术问题,本发明还提供一种车载ECU的升级装置,包括:
获取模块,用于获取车载的存储区域内总线编号信息,其中所述总线编号信息用于区分多级BOOT的级别信息,所述多级BOOT基于OTA功能预先划分;
第一确定模块,用于根据所述总线编号信息确定所述多级BOOT的目标升级级别;
第二确定模块,用于根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程;
升级操作模块,用于根据所述刷写流程进行对应的升级操作。
为解决上述技术问题,本发明还提供一种车载ECU的升级装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的车载ECU的升级方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的车载ECU的升级方法的步骤。
本发明提供的一种车载ECU的升级方法,包括获取车载的存储区域内总线编号信息,其中总线编号信息用于区分多级BOOT的级别信息,多级BOOT基于OTA功能预先划分;根据总线编号信息确定多级BOOT的目标升级级别;根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程;根据刷写流程进行对应的升级操作。该方法通过在存储区域基于OTA功能需求划分多级BOOT,通过多级BOOT除完成OTA功能需求之外,还可以利用多级BOOT完成自身BOOT升级,避免现有的通过附加仿真器,拆除机器硬件刷写BOOT造成的刷写成本大的问题,通过软件即可实现刷写升级,提高升级效率。
另外,本发明还提供了一种车载ECU的升级装置及介质,具有如上述车载ECU的升级方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种车载ECU的升级方法的流程图;
图2为本发明实施例提供的一种上电时序流程图;
图3为本发明实施例提供的另一种车载ECU的升级方法的流程图;
图4为本发明另一实施例提供的一种车载ECU的升级示意图;
图5为本发明实施例提供的一种车载ECU的升级装置的结构图;
图6为本发明实施例提供的另一种车载ECU的升级装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种车载ECU的升级方法、装置及介质,通过多级BOOT除完成OTA功能需求之外,还可以利用多级BOOT完成自身BOOT升级,避免现有的通过附加仿真器,拆除机器硬件刷写BOOT造成的刷写成本大的问题,通过软件即可实现刷写升级,提高升级效率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,现有的OTA进行时将APP内容升级至未运行区域,以防止OTA期间车辆无法运行情况,仅能满足OTA需求不变前提下,若OTA方提出新的下载需求,仍需要通过硬件刷写方式进行BOOT升级,以面对新的升级需求;另外一种是将主控处理器单元与从片处理器单元通过USB连接额外的外部存储区域构建分级BOOT,建立BOOT分区,可设置多级BOOT但会增加硬件成本,且调试方式不便利,也不利于企业降本策略。还有一种是将多级BOOT作为备份存储,例如一级BOOT存放BOOT引导区内容,预防单一BOOT损坏后导致程序无法正常运行,仅是于方BOOT损坏提出的预防手段,其BOOT存放的逻辑内容保持一致,以进行程序跳转。本发明提供车载ECU的升级方法以解决上述技术问题。
图1为本发明实施例提供的一种车载ECU的升级方法的流程图,如图1所示,该方法包括:
S11:获取车载的存储区域内总线编号信息,其中总线编号信息用于区分多级BOOT的级别信息,多级BOOT基于OTA功能预先划分;
S12:根据总线编号信息确定多级BOOT的目标升级级别;
S13:根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程;
S14:根据刷写流程进行对应的升级操作。
具体地,获取车载的存储区域内的总线编号信息,可以理解的是,车载的存储区域可以为Flash(芯片存储单元)区域,也可以为其他存储区域,总线编号信息可以为控制器局域网总线(Controller Area Network,CAN)编号信息,也可以为其他总线编号信息,对于该总线编号信息可以是CAN ID,也可以是其他标志信息,由于总线编号信息是区分多级BOOT的级别信息,也就是可以通过总线编号信息确定当前BOOT升级选用哪一种级别进行。
作为一种实施例,总线编号信息包括多个总线编号,多级BOOT对应的总线编号不同。
总线编号针对有不同的组合方式,对于多级BOOT的组合方式,各级BOOT之间不能重复使用,例如CAN ID为1、2、3,其对于多级BOOT包括一级BOOT和二级BOOT,其CAN ID在一级BOOT有1、2,则二级BOOT包括3。多级BOOT均采用UDS统一诊断协议,使用不同的CAN总线编号组合进行升级,其中预设CAN总线编号信息组合加以区分,APP软件根据不同CAN总线编号信息下发的UDS协议的编程模式跳转请求,在存储区域的特定空间写入不同的标识符以此判断当前是何种BOOT的OTA升级需求,以便于进入对应的升级流程。
多级BOOT基于OTA功能预先划分,将DSP的存储区域进行划分,分出多级BOOT和APP区域,例如分为两级BOOT(一级BOOT(Pre-Boot,PBL)和二级BOOT(Sec-Boot,SBL)),一级Boot作为上电指定引导程序,执行跳转二级Boot、App以及升级软件操作;二级Boot作为整车厂企业OTA功能的特定程序,响应OTA请求指令,执行App升级动作,完成App程序跳转功能;App作为整车厂企业定制的逻辑功能程序,在OTA功能中作为下载数据,通过一级/二级Boot刷写至指定位置。
需要说明的是,在步骤S11中获取总线编号信息之前,还需要判断其升级的预编译请求,作为一种实施例,在获取车载的存储区域内总线编号信息之前,还包括:
获取上位机发送的升级请求信息;
判断升级请求信息对应的当前状态是否满足升级需求;
若是,则开启预升级模式,并进入至获取车载的存储区域内总线编号信息的步骤。
具体地,APP在接收到上位机发送的升级请求时,通过UDS协议的0x31服务中检查预编译请求,判断当前状态是否满足升级需求,若满足,则回复积极响应,由此作为后续上位机发送的请求进入编程模式的判断条件,若未收到检查预编译请求,则不允许进入编程模式,禁止OTA升级。
根据总线编号信息确定多级BOOT的目标升级级别,具体地,以上述两种级别BOOT为例,上位机发送0x10服务的请求进入编程模式,根据上位机发送的总线编号信息的不同,在存储区域的特定区域写入标识符,若是OTA升级请求,则写入二级Boot的标识符,由二级Boot读取该标识符;若是普通升级请求,则写入一级Boot的标识符,由一级Boot读取该标识符,一级/二级Boot根据对应标识符进入对应的升级流程。
根据当前对应的升级级别和写入存储区域的标识信息的关系确定其对应刷写流程。需要说明的是,一个级别下BOOT的刷写流程分为多种,需要根据标识信息确定对应的刷写流程进行刷写。确定其刷写流程后进行升级操作。需要说明的是,若利用当前升级操作进行升级过程中,出现异常,则根据以当前级别为基准的前一个级别BOOT进行升级。作为一种实施例,包括一级BOOT和二级BOOT,在升级二级BOOT异常时,利用一级BOOT进行升级。
本实施例采用分级Boot可以在产品调试阶段及批量阶段通过一级Boot升级二级Boot,以满足持续更新的OTA需求,同时在二级Boot出现异常时,仍可使用一级Boot升级App程序,避免宕机,后续重新更新二级Boot即可。
本发明提供的一种车载ECU的升级方法,包括获取车载的存储区域内总线编号信息,其中总线编号信息用于区分多级BOOT的级别信息,多级BOOT基于OTA功能预先划分;根据总线编号信息确定多级BOOT的目标升级级别;根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程;根据刷写流程进行对应的升级操作。该方法通过在存储区域基于OTA功能需求划分多级BOOT,通过多级BOOT除完成OTA功能需求之外,还可以利用多级BOOT完成自身BOOT升级,避免现有的通过附加仿真器,拆除机器硬件刷写BOOT造成的刷写成本大的问题,通过软件即可实现刷写升级,提高升级效率。
在上述实施例的基础上,多级BOOT的设立多少级别根据OTA功能进行设立,作为一种实施例,多级BOOT的目标升级级别包括一级BOOT,一级BOOT包含一套总线编号信息;
根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程,包括:
当目标升级级别为一级BOOT时,根据目标升级级别和写入存储区域的标识信息之间的关系,获取一级BOOT对应的标识信息,其中,标识信息包括一级BOOT的各刷写流程对应的擦除地址和长度;
根据标识信息确定一级BOOT的刷写流程,一级BOOT的刷写流程包括APP升级、一级BOOT升级至二级BOOT,各刷写流程对应的擦除地址和长度均不同。
具体地,一级BOOT包含一套总线编号信息,两套刷写流程,分别实现二级BOOT升级和APP升级。通用的刷写流程为利用0x31预编程请求,0x10进入编程模式,0x27安全算法范围,0x31为Flash地址擦除和长度,0x34、0x36、0x37进行数据传输。
根据标识信息的刷写流程对应的擦除地址和长度确定对应的刷写流程。根据App写入的一级Boot标识符,执行升级流程,不执行二级Boot/App跳转;根据上位机经UDS协议的0x31服务发送的擦除地址和长度,与Boot预设的擦除地址和长度一一对应,进行对应的Flash区域擦除,避免误擦除,导致程序跑飞。
作为另一种实施例,多级BOOT的目标升级级别包括二级BOOT,二级BOOT包含两套总线编号信息;
根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程,包括:
当目标升级级别为二级BOOT时,根据目标升级级别和存储区域的标识信息的关系,获取二级BOOT对应的标识信息,其中,标识信息包括标识符、二级BOOT的各刷写流程对应的擦除地址和长度;
根据标识信息确定二级BOOT的刷写流程,其中,二级BOOT的刷写流程包括自身BOOT升级、一级BOOT升级和APP升级,自身BOOT升级与一级BOOT升级的刷写流程相同;
对应地,根据标识信息确定二级BOOT的刷写流程,包括:
根据标识符确定对应的总线编号信息;
根据总线编号信息确定对应的升级对象,其中升级对象与二级BOOT的刷写流程预先建立映射关系;
根据升级对象、擦除地址和长度确定二级BOOT的刷写流程。
具体地,二级BOOT包含两套总线编号信息,一套用于升级APP和一级BOOT,另一套用于升级自身。由于为两套总线编号信息,需要先确定升级对象(升级APP和一级BOOT、升级自身),两套刷写流程,分别实现升级一级BOOT和升级APP。需要说明的是,升级自身需要下降至一级BOOT,再从一级BOOT升级到二级BOOT。和上述一级BOOT的刷写流程相同,但是刷写流程内的擦除地址和长度、以及对应的标识符信息不同,在此不再赘述。
在上述实施例的基础上,作为一种实施例,在根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程之前,还包括:
根据总线编号信息确定对应的升级级别的安全认证方式,其中一级BOOT的安全认证方式基于供应商自拟的安全算法确定,二级BOOT的安全认证方式基于整车厂企业定制的各安全算法确定;
获取OTA功能的安全访问以发送随机种子,便于上位机根据随机种子利用安全认证方式对应的安全算法进行密钥加密;
接收上位机发送的密钥信息;
将密钥与密钥信息对比;
若相同,则解锁以获取升级权限,并进入至根据目标升级级别和写入存储区域的标识信息之间的关系确定目标升级级别下的刷写流程的步骤。
具体地,一级Boot和二级Boot具有两套不同的安全认证方式,一级Boot由供应商自拟安全算法,用相同的安全算法可升级二级Boot程序及App程序;二级Boot根据不同整车厂企业定制不同的安全算法,以此升级App程序,以实现整车厂的升级协议。获取OTA功能的安全访问,ECU发送随机种子,上位机根据随机种子利用约定好的安全算法进行密钥计算,ECU将上位机发送的密钥进行比对,若比对成功,满足条件即可安全解锁,获取软件升级权限。对应地,安全算法在此不作为限定,可以根据实际情况、供应商和整车厂企业进行设定。
在上述实施例的基础上,作为一种实施例,在根据刷写流程进行对应的升级操作之后,还包括:
将升级操作对应的数据包下载至存储区域;
对数据包进行校验;
若校验成功,则确定升级成功。
具体地,根据UDS的数据传输协议,将升级操作对应的完整数据包下载至该存储区域,下载完成后进行数据完整性校验,验证通过即可认为升级成功,对应的校验过程可以根据写入的标识符,也可以根据其他校验算法进行数据校验,以此作为程序跳转的判断条件。这里对于校验方法可以是一种方法也可以是多种方法,不做限定。
在根据刷写流程进行对应的升级操作之前,还包括:
对升级操作进行上电时序;
当上电时序完成后,进入至根据刷写流程进行对应的升级操作的步骤进行升级操作。
具体地,上电时序和升级过程独立,但是执行APP功能是需要先完成上电时序,才可以进行升级。上电时序是每次芯片上电过程中均会执行的动作,升级过程是上位机发送指令才会执行的动作。以两级BOOT为例,上电时序为进入一级引导Boot,随后判断是否存在App程序,满足即跳转App;判断是否存在二级Boot,满足即跳转二级Boot;均不满足即运行一级Boot。
一级Boot预设两块Flash存储区域地址,实现擦除/下载二级Boot和App内容,根据上位机发送UDS协议的0x31服务和0x34服务中地址开始位置和数据长度不同进行区分,完成二级Boot和App的软件升级。二级Boot程序在地址起始和结尾处写入标识符,作为一级Boot跳转二级Boot的判断条件,该部分完成整车厂企业的OTA升级功能需求,作为OTA的主要执行单元,与上位机进行交互,根据OTA协议进行软件升级;同时预设两块Flash存储区域地址,实现擦除/下载一级Boot和App软件,升级一级Boot设置权限,通过UDS协议的0x2E服务,写入指定数据标识符(Data Identifier,DID)内容,在Flash地址写入特定标识符,才允许升级一级Boot操作,避免刷写人员误刷一级Boot,导致ECU有变砖的风险。
App在保留主要功能逻辑的基础上,增加两套升级CAN ID,满足二级Boot的OTA升级以及一级Boot的自拟协议升级,当收到不同CAN ID下发的请求升级指令,执行相对应的升级流程,在不同的Flash区域写入不同的标识符,以进入一级Boot升级流程还是二级Boot升级流程。
本实施例提供的具体多级BOOT以及刷写流程的升级操作,对软件升级方法进行了冗余设计,既能通过整车厂企业的OTA进行软件升级,同时也能使用供应商企业的自有协议升级,有效提高了软件升级效率,具备复杂工况时单一升级方式出现无法升级的情况下仍有备选方案。二级Boot用于完成整车厂企业的OTA功能开发,有利于在调试过程中便捷更新二级Boot,以实现持续满足整车厂的OTA功能,提升研发效率。二级Boot使用两套CAN ID升级协议,实现升级一级Boot功能,避免升级一级Boot时需要拆机进行硬件刷写的情况发生。
图2为本发明实施例提供的一种上电时序流程图,如图2所示,包括:
S21:判断二级BOOT标识符是否满足二级BOOT升级需求,若是,则进入步骤S22,若否,则进入步骤S23;
S22:跳转至升级二级BOOT,判断APP标识符是否满足要求,若是,则进入步骤S24,若否,则返回步骤S23;
S23:利用一级BOOT进行升级;
S24:跳转至APP层;
S25:判断OTA升级需求是否满足预设要求,若是,则进入步骤S26,若否,则返回步骤S23;
S26:进入升级模式,判断APP标识符是否满足要求,若是,则进入步骤S27,若否,则返回步骤S23;
S27:在APP界面完成功能逻辑。
图3为本发明实施例提供的另一种车载ECU的升级方法的流程图,如图3所示,包括:
S31:获取OTA升级请求;
S32:APP依据对应ID响应请求,根据需求写入指定标识符,芯片复位;
S33:若一级BOOT不响应,则读取标识符进入二级BOOT;
S34:二级BOOT读取标识符,进入编程模式,禁止跳转APP;
S35:二级BOOT完成OTA软件升级,完成升级后复位,跳转至APP。
图4为本发明另一实施例提供的一种车载ECU的升级示意图,如图4所示,多级BOOT包括一级BOOT和二级BOOT,一级BOOT可以升级二级BOOT,二级BOOT可以实现升级一级BOOT,APP界面需要进行升级时,一级BOOT和二级BOOT均可以完成APP界面的升级,但是需要一级BOOT和二级BOOT的写入标识符,才可以跳转至对应的升级级别进行升级操作。
对于本发明提供的一种车载ECU的升级方法、示意图以及上电时序的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述车载ECU的升级方法相同的有益效果。
上述详细描述了车载ECU的升级方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的车载ECU的升级装置,图5为本发明实施例提供的一种车载ECU的升级装置的结构图。如图5所示,车载ECU的升级装置包括:
获取模块11,用于获取车载的Flash区域内CAN总线编号信息,其中CAN总线编号信息用于区分多级BOOT的级别信息,多级BOOT基于OTA功能预先划分;
第一确定模块12,用于根据CAN总线编号信息确定多级BOOT的升级级别;
第二确定模块13,用于根据对应的升级级别以及写入Flash区域的标识信息的关系确定当前级别下的BOOT的刷写流程;
升级操作模块14,用于根据刷写流程进行对应的升级操作。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
对于本发明提供的一种车载ECU的升级装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述车载ECU的升级方法相同的有益效果。
图6为本发明实施例提供的另一种车载ECU的升级装置的结构图,如图6所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现车载ECU的升级方法的步骤。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的车载ECU的升级方法的相关步骤。另外,存储器21所存储的资源还可以包括操作***212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作***212可以包括Windows、Unix、Linux等。数据213可以包括但不限于车载ECU的升级方法所涉及到的数据等等。
在一些实施例中,车载ECU的升级装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图6中示出的结构并不构成对车载ECU的升级装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的车载ECU的升级方法。
对于本发明提供的一种车载ECU的升级装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述车载ECU的升级方法相同的有益效果。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述车载ECU的升级方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述车载ECU的升级方法相同的有益效果。
以上对本发明所提供的一种车载ECU的升级方法、车载ECU的升级装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (12)
1.一种车载ECU的升级方法,其特征在于,包括:
获取车载的存储区域内总线编号信息,其中所述总线编号信息用于区分多级BOOT的级别信息,所述多级BOOT基于OTA功能预先划分;
根据所述总线编号信息确定所述多级BOOT的目标升级级别;
根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程;
根据所述刷写流程进行对应的升级操作。
2.根据权利要求1所述的车载ECU的升级方法,其特征在于,在所述获取车载的存储区域内总线编号信息之前,还包括:
获取上位机发送的升级请求信息;
判断所述升级请求信息对应的当前状态是否满足升级需求;
若是,则开启预升级模式,并进入至所述获取车载的存储区域内总线编号信息的步骤。
3.根据权利要求2所述的车载ECU的升级方法,其特征在于,所述总线编号信息包括多个总线编号,所述多级BOOT对应的所述总线编号不同。
4.根据权利要求3所述的车载ECU的升级方法,其特征在于,所述多级BOOT的目标升级级别包括一级BOOT,所述一级BOOT包含一套总线编号信息;
所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程,包括:
当所述目标升级级别为所述一级BOOT时,根据所述目标升级级别和写入所述存储区域的所述标识信息之间的关系,获取所述一级BOOT对应的标识信息,其中,所述标识信息包括所述一级BOOT的各刷写流程对应的擦除地址和长度;
根据所述标识信息确定所述一级BOOT的刷写流程,所述一级BOOT的刷写流程包括APP升级、所述一级BOOT升级至二级BOOT,各所述刷写流程对应的擦除地址和长度均不同。
5.根据权利要求3所述的车载ECU的升级方法,其特征在于,所述多级BOOT的目标升级级别包括二级BOOT,所述二级BOOT包含两套总线编号信息;
所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程,包括:
当所述目标升级级别为所述二级BOOT时,根据所述目标升级级别和所述存储区域的所述标识信息的关系,获取所述二级BOOT对应的所述标识信息,其中,所述标识信息包括标识符、所述二级BOOT的各刷写流程对应的擦除地址和长度;
根据所述标识信息确定所述二级BOOT的刷写流程,其中,所述二级BOOT的刷写流程包括自身BOOT升级、所述一级BOOT升级和APP升级,所述自身BOOT升级与所述一级BOOT升级的刷写流程相同;
对应地,所述根据所述标识信息确定所述二级BOOT的刷写流程,包括:
根据所述标识符确定对应的总线编号信息;
根据所述总线编号信息确定对应的升级对象,其中所述升级对象与所述二级BOOT的刷写流程预先建立映射关系;
根据所述升级对象、所述擦除地址和所述长度确定所述二级BOOT的刷写流程。
6.根据权利要求4或5所述的车载ECU的升级方法,其特征在于,在所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程之前,还包括:
根据所述总线编号信息确定对应的所述升级级别的安全认证方式,其中所述一级BOOT的安全认证方式基于供应商自拟的安全算法确定,所述二级BOOT的安全认证方式基于整车厂企业定制的各安全算法确定;
获取所述OTA功能的安全访问以发送随机种子,便于上位机根据所述随机种子利用所述安全认证方式对应的安全算法进行密钥加密;
接收所述上位机发送的密钥信息;
将所述密钥与所述密钥信息对比;
若相同,则解锁以获取升级权限,并进入至所述根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程的步骤。
7.根据权利要求6所述的车载ECU的升级方法,其特征在于,还包括:
在升级所述二级BOOT异常时,利用所述一级BOOT进行升级。
8.根据权利要求1所述的车载ECU的升级方法,其特征在于,在所述根据所述刷写流程进行对应的升级操作之后,还包括:
将所述升级操作对应的数据包下载至所述存储区域;
对所述数据包进行校验;
若校验成功,则确定升级成功。
9.根据权利要求1所述的车载ECU的升级方法,其特征在于,在所述根据所述刷写流程进行对应的升级操作之前,还包括:
对所述升级操作进行上电时序;
当所述上电时序完成后,进入至所述根据所述刷写流程进行对应的升级操作的步骤进行升级操作。
10.一种车载ECU的升级装置,其特征在于,包括:
获取模块,用于获取车载的存储区域内总线编号信息,其中所述总线编号信息用于区分多级BOOT的级别信息,所述多级BOOT基于OTA功能预先划分;
第一确定模块,用于根据所述总线编号信息确定所述多级BOOT的目标升级级别;
第二确定模块,用于根据所述目标升级级别和写入所述存储区域的标识信息之间的关系确定所述目标升级级别下的刷写流程;
升级操作模块,用于根据所述刷写流程进行对应的升级操作。
11.一种车载ECU的升级装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述的车载ECU的升级方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的车载ECU的升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310433282.3A CN116431186A (zh) | 2023-04-17 | 2023-04-17 | 一种车载ecu的升级方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310433282.3A CN116431186A (zh) | 2023-04-17 | 2023-04-17 | 一种车载ecu的升级方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431186A true CN116431186A (zh) | 2023-07-14 |
Family
ID=87088865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310433282.3A Pending CN116431186A (zh) | 2023-04-17 | 2023-04-17 | 一种车载ecu的升级方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431186A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775083A (zh) * | 2023-08-21 | 2023-09-19 | 小米汽车科技有限公司 | 车载控制器的刷写方法、装置及电子设备 |
-
2023
- 2023-04-17 CN CN202310433282.3A patent/CN116431186A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775083A (zh) * | 2023-08-21 | 2023-09-19 | 小米汽车科技有限公司 | 车载控制器的刷写方法、装置及电子设备 |
CN116775083B (zh) * | 2023-08-21 | 2023-11-21 | 小米汽车科技有限公司 | 车载控制器的刷写方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108279916B (zh) | 电子控制单元程序更新方法和装置 | |
CN106095480A (zh) | 一种光模块固件升级的方法及装置 | |
US20060248172A1 (en) | Method for updating software of an electronic control device by flash programming via a serial interface and corresponding automatic state machine | |
CN108271150B (zh) | 支持同时对多台手机进行刷机或数据清除的方法及*** | |
CN112000358B (zh) | 充电桩的升级方法与智能充电桩 | |
CN116431186A (zh) | 一种车载ecu的升级方法、装置及介质 | |
US20240069906A1 (en) | Server, software update system, distribution method, and non-transitory storage medium | |
JP2006221274A (ja) | 車両用電子制御装置および制御プログラムの書換え方法 | |
CN115543395A (zh) | 一种车载ecu升级方法、装置、电子设备和存储介质 | |
CN109375953B (zh) | 一种操作***启动方法及装置 | |
CN112579105B (zh) | 一种整车初始化控制器的刷写方法及相关设备 | |
CN113360175A (zh) | 车辆控制器的应用更新方法及车辆控制器 | |
US20220283799A1 (en) | Center, update management method, and non-transitory storage medium | |
CN115129025A (zh) | 一种整车下线配型方法、***、可读存储介质及设备 | |
CN114281374A (zh) | 车辆电控单元的远程刷写方法、***及存储介质 | |
CN113867823A (zh) | 车载终端配置参数的设置方法、装置及电子设备 | |
JP2011134038A (ja) | 制御用プログラムの更新装置および更新方法 | |
CN112599172B (zh) | 电子控制单元的数据写入方法、装置及存储介质 | |
CN111831310B (zh) | 一种软件更新方法及*** | |
CN112783527B (zh) | 一种车辆控制器程序的升级方法及设备 | |
CN112596677B (zh) | 电子控制单元的数据存储方法、装置及存储介质 | |
US20230032451A1 (en) | Center, method, and non-transitory storage medium | |
WO2024108456A1 (zh) | 一种控制器升级方法以及装置 | |
US11954480B2 (en) | Center, OTA master, system, method, non-transitory storage medium, and vehicle | |
US12050903B2 (en) | OTA master, system, method, non-transitory storage medium, and vehicle |
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 |