CN114895947A - 车载控制器的软件升级方法、装置、设备和存储介质 - Google Patents
车载控制器的软件升级方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114895947A CN114895947A CN202210669229.9A CN202210669229A CN114895947A CN 114895947 A CN114895947 A CN 114895947A CN 202210669229 A CN202210669229 A CN 202210669229A CN 114895947 A CN114895947 A CN 114895947A
- Authority
- CN
- China
- Prior art keywords
- storage partition
- data
- target
- vehicle
- software package
- 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
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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种车载控制器的软件升级方法、装置、设备、存储介质及系统,通过接收升级软件包的目标数据包,将目标数据包的数据写入到当前为非激活状态的目标存储分区中,确定目标存储分区中升级软件包的数据是否写入完毕,若写入完毕,则校验目标存储分区中升级软件包的数据完整性,若校验通过,则将目标存储分区的状态变更为激活状态,并基于目标存储分区中升级软件包的数据,控制车载控制器运行,不仅减少了车载通信设备的存储开销,节约了车载通信设备硬件成本,降低了单车成本,还降低了目标车载控制器功能失效的风险,提升了用户的使用体验。
Description
技术领域
本申请实施例涉及车辆技术领域,尤其涉及一种车载控制器的软件升级方法、装置、设备、存储介质及系统。
背景技术
为了加快车型产品迭代速度,目前众多汽车厂商通过空中下载技术(over-the-air technology,OTA)来实现汽车功能的分阶段体现,较为常见的做法是:在车辆上市时只提供基础驾驶功能,在几个月以后通过OTA为用户车辆推送具备智能驾驶功能的软件,从而通过该软件对车辆的功能进行远程升级。
但是,远程升级存在升级失败的风险,为保证在升级失败时相关功能或车辆依然可用,现有技术中,在云端下发升级软件包时,通过增加备份区对上一版本的升级软件包进行存储,一旦升级失败,则基于备份区通过回滚操作将软件恢复到升级前的版本状态。
然而,现有技术实质上是采用上一版本的升级软件包对车内相应的控制器重新进行刷写,而根据升级软件包大小,该过程一般需要几分钟到几十分钟不等,而在该过程中用户依然无法使用相关功能或车辆,即版本回退成功后用户才可以使用相关功能或车辆,从而浪费用户时间,影响用户的使用体验。
发明内容
本申请实施例提供一种车载控制器的软件升级方法、装置、设备、存储介质及系统,以解决软件升级失败时,软件版本回退造成的相关功能或车辆不可用的问题。
第一方面,本申请实施例提供一种车载控制器的软件升级方法,应用于车载控制器,所述车载控制器的存储器中设置有第一存储分区和第二存储分区,所述方法包括:
接收升级软件包的目标数据包,所述目标数据包中包括所述升级软件包的一部分数据;
将所述目标数据包的数据写入到目标存储分区中,所述目标存储分区是指当前为非激活状态的存储分区,所述目标存储分区为所述第一存储分区或所述第二存储分区;
确定所述目标存储分区中所述升级软件包的数据是否写入完毕;
若写入完毕,则校验所述目标存储分区中所述升级软件包的数据完整性;
若校验通过,则将所述目标存储分区的状态变更为激活状态;
基于所述目标存储分区中升级软件包的数据,控制所述车载控制器运行。
第二方面,本申请实施例提供一种车载控制器的软件升级装置,集成于车载控制器,所述车载控制器的存储器中设置有第一存储分区和第二存储分区,所述装置包括:
通信模块,用于接收升级软件包的目标数据包,所述目标数据包中包括所述升级软件包的一部分数据;
处理模块,用于将所述目标数据包的数据写入到目标存储分区中,所述目标存储分区是指当前为非激活状态的存储分区,所述目标存储分区为所述第一存储分区或所述第二存储分区;确定所述目标存储分区中所述升级软件包的数据是否写入完毕;若写入完毕,则校验所述目标存储分区中所述升级软件包的数据完整性;若校验通过,则将所述目标存储分区的状态变更为激活状态;
控制模块,用于基于所述目标存储分区中升级软件包的数据,控制所述车载控制器运行。
第三方面,本申请实施例提供一种车载控制器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述存储器中包括第一存储分区和第二存储分区,所述处理器执行所述程序时实现如上述第一方面所述的车载控制器的软件升级方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的车载控制器的软件升级方法。
第五方面,本申请实施例提供一种车载控制器的软件升级系统,包括:云端、车载通信设备和至少一个如权利要求8所述的车载控制器;所述云端与所述车载通信设备通过无线网络连接,所述车载通信设备与各车载控制器通过车内通信链路连接。
本申请实施例提供的车载控制器的软件升级方法、装置、设备、存储介质及系统,通过接收升级软件包的目标数据包,目标数据包中包括升级软件包的一部分数据,将目标数据包的数据写入到当前为非激活状态的目标存储分区中,目标存储分区为述第一存储分区或第二存储分区,确定目标存储分区中升级软件包的数据是否写入完毕,若写入完毕,则校验目标存储分区中升级软件包的数据完整性,若校验通过,则将目标存储分区的状态变更为激活状态,并基于目标存储分区中升级软件包的数据,控制车载控制器运行,从而实现边下载边将升级软件包的数据刷写到目标车载控制器的非激活分区中,不仅减少了车载通信设备的存储开销,节约了车载通信设备硬件成本,降低了单车成本,还解决了现有技术中软件升级失败时,软件版本回退造成的相关功能或车辆不可用的问题,降低目标车载控制器功能失效的风险,提升了用户的使用体验。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种车载控制器的软件升级系统的结构示意图;
图2为本申请实施例二提供的一种车载控制器的软件升级方法的流程示意图;
图3为本申请实施例三提供的一种车载控制器的软件升级方法的流程示意图;
图4为本申请实施例四提供的一种车载控制器的软件升级装置的结构示意图;
图5为本申请实施例五提供的一种车载控制器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前已有的OTA升级方案为:当车载通信设备接收到OTA升级任务时,会从云端获取任务相关信息,并从云端将升级软件包文件下载到其存储器中,在对升级软件包进行完整性校验后,通过车内通信链路(如CAN或以太网)将升级软件包下发给待升级的目标车载控制器进行软件刷写。为了防止目标车载控制器升级失败,导致相关功能或车辆不可用,在车载通信设备的存储器中会存储各控制器上一版本的升级软件包。当此次OTA升级失败时,车载通信设备会继续向目标车载控制器刷写上一版本的软件,从而将软件回退到此次升级前的版本状态,保证相关功能或车辆可用。
然而,现有技术的方案中存在以下问题:(1)现在技术中,车载通信设备需要预留大量的存储空间来保存各控制器的新升级软件包和上一版本的升级软件包;(2)现有技术中,当升级失败时,需要一段时间(根据升级软件包大小而定,一般几分钟或几十分钟不等)重新刷写,进行版本回退后用户才可以使用车辆,用户体验不好。
本申请技术方案的主要思路:基于现有技术中存在的技术问题,本申请实施例提供一种车载控制器的软件升级方案,基于流式数据传输技术和AB分区(即双分区)技术,实现将升级软件包的数据边下载边刷写到待升级控制器(即目标车载控制器)的非激活分区中。一方面,本申请实施例中,以数据流的形式对升级软件包的数据进行边下载边刷写,使得车载通信设备不需要预留较大的存储空间来保存各车载控制器的整个升级软件包,从而解决了现有技术车载通信设备的存储空间开销大的问题,节约了车载通信设备硬件成本,从而降低单车成本。另一方面,本申请实施例中,通过AB分区技术交替采用AB分区中的非激活分区进行升级软件包数据的刷写,实现刷写失败时不需额外版本回退操作,从而解决了现有技术中软件版本回退造成的相关功能或车辆不可用的问题,降低待升级目标车载控制器功能失效风险,有利于提升用户的使用体验。
实施例一
示例性地,图1为本申请实施例一提供的一种车载控制器的软件升级系统的结构示意图,如图1所示,车载控制器的软件升级系统100中包括:
云端110、车载通信设备120及至少一个车载控制器130。车载通信设备120与云端110及各车载控制器130分别连接,车载通信设备120通过无线网络与云端110进行通信和数据交互,车载通信设备120与各车载控制器130通过车内通信链路进行通信和数据交互。
其中,云端110,即OTA云平台,该OTA云平台可以由一个或多个服务器构成。OTA云平台负责各种车载控制器的升级软件包的存储和发布。
车载通信设备120,是指车上可以与云端110进行通信的设备,示例性地,可以为远程通信盒(telematics box,T-Box)或网关(即Gateway)等。车载通信设备120与云端110之间的通信网络可以为4G网络或5G网络等。
车载控制器130,是指车内相关电子设备的控制单元,可以为各种电子控制单元(electronic control unit,ECU)、远程信息控制单元(transmission control unit,TCU)或车身控制单元(body control management,BCM)等。车载控制器130与车载通信设备120之间使用的车内通信链路可以为控制器域网(controller area network,CAN)总线或以太网等。
可以理解的是,图1中的车载通信设备120和至少一个车载控制器130均位于车端。
本实施例中,各车载控制器130中均设置有第一存储分区和第二存储分区,其中,一个存储分区的激活存储分区,另一个存储分区为非激活存储分区。其中,激活存储分区是指当前为激活状态的存储分区,也即当前处于工作状态的存储分区,非激活存储分区是指当前为非激活状态的存储分区,也即当前处于非工作状态的存储分区。示例性地,若第一存储分区为激活存储分区,则第二存储分区为非激活存储分区;若第一存储分区为非激活存储分区,则第二存储分区为激活存储分区。
在一种可能的实施方式中,本实施例中,云端110负责新的OTA升级任务的推送,当用户确定需要对车辆进行软件升级时,由车载通信设备120向云端110发送软件升级请求,云端110基于接收到软件升级请求开始以数据流的形式发送升级软件包的数据,即将升级软件的数据以多个数据包的形式分次发送到位于车端的车载通信设备120。
以其中一个车载控制器130的软件升级过程为例,假设将当前传输的数据包叫做目标数据包,示例性地,本实施例中,当车载通信设备120接收到目标数据包后,会将目标数据包转发给需要进行软件升级的车载控制器130,为便于区分,将需要进行软件升级的车载控制器,叫做目标车载控制器,目标车载控制器接收到目标数据包后,按照预设的软件升级流程对目标数据包进行处理。
在一种可能的实施方式中,目标车载控制器在接收到的目标数据包后,确定当前为非激活状态的存储分区,为便于区分,将当前为非激活状态的存储分区,叫做目标存储分区,并将目标数据包中的数据写入到目标存储分区中。在将目标数据包的数据写入完毕之后,确定目标存储分区中升级软件包的数据是否写入完毕,即判断目标数据包是否为升级软件包的最后一个数据包,若是,则进一步校验目标存储分区中升级软件包的数据完整性,即判断目标存储分区中升级软件包的数据是否为云端110发送的数据,也即判断升级软件包的数据在传输过程中是否被篡改,若校验通过,说明软件升级成功,则对第一存储分区和第二存储分区进行状态切换,以使原来的非激活存储分区转换为激活存储分区,原来的激活存储分区转换为非激活存储分区。若校验不通过,说明软件升级失败,则保持第一存储分区和第二存储分区的状态不变,从而保证了激活存储分区始终为存储有已刷写成功最新版本的软件数据的分区。由于本实施例在每次软件升级成功时,才会进行存储分区的切换,使目标车载控制器采用该存储分区中的数据运行软件,在软件升级失败时,不进行存储分区的切换,使目标车载控制器仍采用原存储分区中的数据运行软件,避免了软件升级失败对用户造成的影响,提升了用户的使用体验。
示例性地,若目标存储分区为第一存储分区,本实施方式中,在软件升级成功时,将第一存储分区转换为激活存储分区,将第二存储分区转换为非激活存储分区。在软件升级失败时,仍保持第一存储分区为非激活存储分区,第二存储分区为激活存储分区。
可选地,本实施例中,通过更改第一存储分区和第二存储分区的状态标识,从而实现第一存储分区和第二存储分区进行状态切换。在一种可能的实施方式中,可以预先定义激活状态和非激活状态的标识,示例性地,用数字“1”表示激活状态,用数字“0”表示非激活状态,若目标存储分区为第一存储分区,则可以确定第一存储分区当前的状态标识为“0”,第二存储分区当前的状态标识为“1”。在进行状态切换时,将第一存储分区当前的状态标识改为“1”,将第二存储分区当前的状态标识改为“0”即可。
由于本实施例中目标车载控制器的两个存储分区只有一个为激活状态,而另一个为非激活状态,为此,本实施例中,可以只读取其中一个存储分区的状态标识就可以确定目标存储分区(为非激活状态的存储分区)。在一种可能的实施方式中,根据第一存储分区的状态标识,确定第一存储分区是否为目标存储分区,若第一存储分区为目标存储分区,则将目标数据包的数据写入到第一存储分区中;否则,将目标数据包的数据写入到所述第二存储分区中。类似地,也可以根据第二存储分区的状态标识,确定第二存储分区是否为目标存储分区,若第二存储分区为目标存储分区,则将目标数据包的数据写入到第二存储分区中;否则,将目标数据包的数据写入到所述第一存储分区中。
可选地,在开始升级之前,云端110还可以先将升级任务信息发送给车载通信设备120,升级任务信息中可以包括升级软件包的名称、版本号、数据长度值和校验值等信息。车载通信设备120在接收到升级任务信息后,可以先根据升级软件的名称和版本号等基本信息以及各车载控制器130中当前运行软件的名称和版本号等基本信息,确定是否需要对车辆进行软件升级,并在确定需要对车辆进行软件升级时,确定需要进行软件升级的目标车载控制器等操作。此过程中可能涉及与用户(驾驶人员)的人机交互过程,由用户最终选择是否要进行升级,也可能不涉及,在目标车载控制器完成软件刷写之后,再与用户进行人机交互,具体可根据实际情况或场景进行设定,此处不做限制。
在一种可能的实施方式中,在确定需要对目标车载控制器进行软件升级时,车载通信设备120向云端110发送升级请求的同时,将升级任务信息中的升级软件包的数据长度值和校验值等信息发送给目标车载控制器。在进行软件升级的过程中,目标车载控制器根据升级任务信息中数据长度值,确定目标存储分区中升级软件包的数据是否写入完毕,根据升级任务信息中校验值信息,校验目标存储分区中升级软件包的数据完整性。
为便于区分,本实施例中,将升级任务信息中数据长度值和校验值,分别叫做第一长度值和第一校验值。
在一种可能的实施方式中,目标车载控制器通过计算目标存储分区中已写入数据的长度值,记为第二长度值,并判断第二长度值与第一长度值是否一致,确定升级软件包的数据是否已写入完毕。具体地,若第二长度值等于第一长度值,说明目标存储分区中升级软件包的数据已写入完毕;若第二长度值小于第一长度值,说明目标存储分区中升级软件包的数据未写入完毕,需要继续进行升级软件包的数据的接收和刷写。
可选地,升级任务信息中的第一校验值为循环冗余校验(cyclic redundancycheck,CRC)值,在一种可能的实施方式中,目标车载控制器根据目标存储分区中已写入的数据,通过CRC算法,计算升级软件包的校验值,记为第二校验值,并判断第二校验值与第一校验值是否一致,校验目标存储分区中升级软件包的数据完整性。若第二校验值与第一校验值一致,说明目标存储分区中升级软件包的数据在传输过程中没有被篡改,即已写入的数据是可信的,则校验通过;若第二校验值与第一校验值不一致,说明目标存储分区中升级软件包在传输过程中数据被篡改了,即已写入的数据是不可信的,则校验不通过,需要删除已写入的升级软件包的数据,并重新进行升级软件包的获取和刷写。
本实施例中,通过云端将升级软件包拆分成多个数据包的形式逐一发送,车载通信设备在接收到数据包后,直接将数据包发送给目标车载控制器,由目标车载控制器将数据包中的数据刷写到其存储器中的非激活存储分区中,目标车载控制器在接收并完成升级软件包的所有数据的刷写之后,通过校验升级软件包的完整性,确定是否升级成功,在确定升级成功时,由目标车载控制器对其激活存储分区与非激活存储进行切换,在升级不成功时,目标车载控制器不进行激活存储分区与非激活存储分区的切换,并设置目标车载控制器始终采用激活分区中的数据运行。一方面,由于车载通信设备只需要预留出足以存储单个数据包的大小的空间即可,而不需要预留较大的存储空间来保存各个车载控制器的整个升级软件包,解决了现有技术车载通信设备的存储空间开销大的问题,节约了车载通信设备硬件成本,从而降低单车成本,另一方面,基于存储分区的状态(激活状态或非激活状态),确定运行目标车载控制器的软件数据的存储分区,由于刷写失败时,不需要进行版本回退操作,解决了现有技术中软件版本回退造成的相关功能或车辆不可用的问题,降低待升级目标车载控制器功能失效风险,有利于提升用户的使用体验。
实施例二
示例性地,图2为本申请实施例二提供的一种车载控制器的软件升级方法的流程示意图,本实施例的方法可以由本申请实施例所提供的车载控制器的软件升级装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于如图1所示的各个车载控制器中。以目标车载控制器的软件升级为例,如图2所示,本实施例的车载控制器的软件升级方法,包括:
S201、接收升级软件包的目标数据包。
本实施例中,在开始进行软件升级时,云端以数据流的形式通过车载通信设备向目标车载控制器发送的升级软件包的数据包,相应地,目标控制器接收云端通过车载通信设备发送的升级软件包的数据包。
其中,目标数据包为目标车载控制器当前接收到的数据包,目标数据包中包括升级软件包的一部分数据。目标数据包可为升级软件包可以是升级软件包的第一个数据包,也可以是升级软件包的最后一个数据包,还可以是第一数据包与最后一个数据包之间的数据包。
S202、将目标数据包的数据写入到目标存储分区中。
本实施例中,目标车载控制器在接收到的目标数据包后,确定当前为非激活状态的存储分区,为便于区分,将当前为非激活状态的存储分区,叫做目标存储分区,并将目标数据包中的数据写入到目标存储分区中。
本实施例中,根据第一存储分区和第二存储分区的状态(激活状态或非激活状态),目标存储分区为可以是第一存储分区,也可以是第二存储分区。
可选地,本实施例中,根据第一存储分区或第二存储分区的状态标识,确定当前为非激活状态的存储分区。
在一种可能的实施方式中,本实施例中,根据第一存储分区的状态标识,确定第一存储分区是否为目标存储分区,若第一存储分区为目标存储分区,则将目标数据包的数据写入到第一存储分区中;否则,将目标数据包的数据写入到所述第二存储分区中。
在另一种可能实施方式中,本实施例中,根据第二存储分区的状态标识,确定第二存储分区是否为目标存储分区,若第二存储分区为目标存储分区,则将目标数据包的数据写入到第二存储分区中;否则,将目标数据包的数据写入到所述第一存储分区中。
S203、确定目标存储分区中升级软件包的数据是否写入完毕。
通过S202将目标数据包中的数据定入到目标存储分区以后,本步骤中,需要确定目标存储分区中升级软件包的数据是否写入完毕,即判断目标数据包是否为升级软件包的最后一个数据包,若是,则执行S204,否则,继续进行升级软件包的数据的接收和刷写。
在一种可能的实施方式中,本步骤中,目标车载控制器通过计算目标存储分区中已写入数据的第二长度值,并判断第二长度值与接收到的升级任务信息中的第一长度值是否一致,确定升级软件包的数据是否已写入完毕。具体地,若第二长度值等于第一长度值,说明目标存储分区中升级软件包的数据已写入完毕;若第二长度值小于第一长度值,说明目标存储分区中升级软件包的数据未写入完毕。
S204、若写入完毕,则校验目标存储分区中升级软件包的数据完整性。
若根据S203确定升级软件包的数据已写入完毕,本步骤中,需要进一步校验目标存储分区中升级软件包的数据完整性,即判断目标存储分区中升级软件包的数据是否为云端110发送的数据,也即判断升级软件包的数据在传输过程中是否被篡改,从而确定已写入的升级软件包的数据是否可信。若校验通过,则执行S205,否则,继续保持原来的运行状态不变,并删除目标存储分区中已写入的升级软件包的数据,同时,重新进行升级软件包的获取和刷写。
在一种可能的实施方式中,目标车载控制器根据目标存储分区中已写入的数据,计算升级软件包的第二校验值,并判断第二校验值与第一校验值是否一致,以校验目标存储分区中升级软件包的数据完整性。具体地,若第二校验值与第一校验值一致,说明目标存储分区中升级软件包的数据在传输过程中没有被篡改,即已写入的数据是可信的,则校验通过;若第二校验值与第一校验值不一致,说明目标存储分区中升级软件包在传输过程中数据被篡改了,即已写入的数据是不可信的,则校验不通过。
其中,第一校验值和第二校验值是采用相同的算法计算得到的,区别在于,第一校验值是云端基于待发送的升级软件包的数据计算得到的,第二校验值是目标车载控制器基于接收到的升级软件包的数据计算得到的。因此,通过比较第二校验值与第一校验值是否一致,就能确定升级软件包的数据在传输过程中有没有被篡改。
可选地,本实施例中,第一校验值和第二校验值为采用相同的CRC算法计算得到的CRC值。
S205、若校验通过,则将目标存储分区的状态变更为激活状态。
若S204中对目标存储分区中升级软件包数据的校验结果为通过,说明软件升级成功,则本步骤中,对第一存储分区和第二存储分区进行状态切换,即将目标存储分区(即原来的非激活存储分区)变为激活存储分区,将非目标存储分区(即原来的激活存储分区)变为非激活存储分区。示例性地,若目标存储分区为第一存储分区,则本步骤中,将第一存储分区转换为激活存储分区,将第二存储分区转换为非激活存储分区。
可选地,本实施例中,通过更改第一存储分区和第二存储分区的状态标识,从而实现第一存储分区和第二存储分区进行状态切换。在一种可能的实施方式中,可以预先定义激活状态和非激活状态的标识,示例性地,用数字“1”表示激活状态,用数字“0”表示非激活状态,若目标存储分区为第一存储分区,则可以确定第一存储分区当前的状态标识为“0”,第二存储分区当前的状态标识为“1”。在进行状态切换时,将第一存储分区当前的状态标识改为“1”,将第二存储分区当前的状态标识改为“0”即可。
S206、基于目标存储分区中升级软件包的数据,控制车载控制器运行。
在通过S205完成两个存储分区的状态切换以后,本步骤中,通过基于目标存储分区中的升级软件包的数据运行,控制目标车载控制器运行,从而使目标车载控制器能够切换到升级后的软件为用户提供服务。
本实施例中,若S204中对目标存储分区中升级软件包数据的校验结果为不通过,说明软件升级失败,则继续使基于非目标存储分区中升级软件包的数据,控制目标车载控制器运行。该情况下,不对第一存储分区和第二存储分区进行切换,使第一存储分区和第二存储分区保持原来的状态即可,即继续保持目标存储分区为非激活状态,保持非目标存储分区为激活状态。示例性地,若目标存储分区为第一存储分区,则在校验失败时,继续保持第一存储分区为非激活存储分区不变,同时,保持第二存储分区为激活存储分区不变,从而保证目标车载控制器始终基于存储有已刷写成功最新版本的软件数据的存储分区运行。
可选地,在S202之前,本实施例的方法还包括:
接收升级任务信息,升级任务信息是由云端发送给车载通信设备,并由车载通信设备发送给目标车载控制器的。可选地,升级任务信息中包括升级软件包数据长度值(即第一长度值)和校验值(即第一校验值)等信息,以便后续确定升级软件包的数据是否写入完毕以及校验升级软件包的数据完整性时使用。
本实施例中,通过接收升级软件包的目标数据包,目标数据包中包括升级软件包的一部分数据,将目标数据包的数据写入到当前为非激活状态的目标存储分区中,目标存储分区为述第一存储分区或第二存储分区,确定目标存储分区中升级软件包的数据是否写入完毕,若写入完毕,则校验目标存储分区中升级软件包的数据完整性,若校验通过,则将目标存储分区的状态变更为激活状态,并基于目标存储分区中升级软件包的数据,控制车载控制器运行,从而实现边下载边将升级软件包的数据刷写到目标车载控制器的非激活分区中,不仅减少了车载通信设备的存储开销,节约了车载通信设备硬件成本,降低了单车成本,还解决了现有技术中软件升级失败时,软件版本回退造成的相关功能或车辆不可用的问题,降低目标车载控制器功能失效的风险,提升了用户的使用体验。
实施例三
下面将一个具体的实施例对车载控制器的软件升级流程加以说明。示例性地,图3为本申请实施例三提供的一种车载控制器的软件升级方法的流程示意图,本实施例的方法可以由车载通信设备和车载控制器共同执行。以目标车载控制器的软件升级为例,如图3所示,本实施例的车载控制器的软件升级方法主要包括以下步骤:
(1)车载通信设备周期性检测云端是否有新的OTA升级任务,在检测到有新的OTA升级任务时,车载通信设备从云端获取升级任务信息;
(2)车载通信设备以数据流的形式从云端下载升级文件(即升级软件包)的数据,并且,边下载边将升级文件的数据传输给目标车载控制器;
(3)目标车载控制器在接收到升级文件的数据,判断当前激活分区是否为A分区,若是,则将升级文件的数据写入到B分区,若否,则将升级文件的数据写入到A分区;
(4)目标车载控制器判断升级文件的数据是否写入完毕,若是,则进行升级文件的数据完整性校验,否则,返回继续执行步骤(2)-(3);
(5)目标车载控制器确定升级文件的数据完整性校验是否通过,若通过,则升级成功,交换AB分区的激活标志,若不通过,则升级失败,保持AB分区的激活标志不变,结束本次升级任务。
(6)目标车载控制器在升级成功时进行重启,并在重启完成后,切换到新激活分区运行,结束本次升级任务。
需要说明的是,本实施例中,A分区可对应实施例二中第一存储分区,B分区可对应实施例二中的第二存储分区。
实施例四
图4为本申请实施例四提供的一种车载控制器的软件升级装置的结构示意图,该装置可以由软件和/或硬件的方式来实现,并可集成于图1所示的各车载控制器中。如图4所示,本实施例中车载控制器的软件升级装置400包括:
通信模块410、处理模块420和控制模块430。
通信模块410,用于接收升级软件包的目标数据包,目标数据包中包括升级软件包的一部分数据;
处理模块420,用于将目标数据包的数据写入到目标存储分区中,目标存储分区是指当前为非激活状态的存储分区,目标存储分区为第一存储分区或第二存储分区;确定目标存储分区中升级软件包的数据是否写入完毕;若写入完毕,则校验目标存储分区中升级软件包的数据完整性;若校验通过,则将目标存储分区的状态变更为激活状态;
控制模块430,用于基于目标存储分区中升级软件包的数据,控制车载控制器运行。
可选地,处理模块420具体用于:
根据第一存储分区的状态标识,确定第一存储分区是否为目标存储分区,状态标识包括激活状态标识和非激活状态标识;
若第一存储分区为目标存储分区,则将目标数据包的数据写入到第一存储分区中;
否则,将目标数据包的数据写入到第二存储分区中。
可选地,处理模块420具体用于:
将目标存储分区的状态标识变更为激活状态标识。
可选地,通信模块410还用于:
接收升级任务信息,升级任务信息中包括升级软件包的第一长度值;
可选地,处理模块420具体用于:
计算目标存储分区中已写入数据的第二长度值;
若第二长度值等于第一长度值,则确定目标存储分区中升级软件包的数据已写入完毕。
可选地,处理模块420具体用于:
根据目标存储分区中已写入的数据,计算升级软件包的第二校验值;
若第二校验值与第一校验值一致,则确定校验通过。
可选地,控制模块430还用于:
若校验不通过,则基于非目标存储分区中升级软件包的数据,控制车载控制器运行。
本实施例所提供的车载控制器的软件升级装置可执行上述方法实施例所提供的车载控制器的软件升级方法,具备执行方法相应的功能模块和有益效果。本实施例的实现原理和技术效果与上述方法实施例类似,此处不再一一赘述。
实施例五
图5为本申请实施例五提供的一种车载控制器的结构示意图,如图5所示,该车载控制器130包括存储器131、处理器132及存储在存储器上并可在处理器上运行的计算机程序,车载控制器130中处理器132的数量可以是一个或多个,图5中以一个处理器132为例;车载控制器130中的处理器132、存储器131可以通过总线或其他方式连接,图5中以通过总线连接为例。
本实施例中,在存储器131中设置两个存储分区,分别为第一存储区和第二存储区,以备软件升级时使用,第一存储区和第二存储区均存储实现本方案的软件升级流程的计算机程序。
存储器131作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的通信模块410、处理模块420和控制模块430对应的程序指令/模块。处理器132通过运行存储在存储器131中的软件程序、指令以及模块,从而执行车载控制器的各种功能应用以及数据处理,即实现上述的车载控制器的软件升级方法。
存储器131可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器131可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器131可进一步包括相对于处理器132远程设置的存储器,这些远程存储器可以通过网格连接至车载控制器。上述网格的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例六
本申请实施例六还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在由计算机处理器执行时用于执行一种车载控制器的软件升级方法,该方法包括:
接收升级软件包的目标数据包,目标数据包中包括升级软件包的一部分数据;
将目标数据包的数据写入到目标存储分区中,目标存储分区是指当前为非激活状态的存储分区,目标存储分区为第一存储分区或第二存储分区;
确定目标存储分区中升级软件包的数据是否写入完毕;
若写入完毕,则校验目标存储分区中升级软件包的数据完整性;
若校验通过,则将目标存储分区的状态变更为激活状态;
基于目标存储分区中升级软件包的数据,控制车载控制器运行。
当然,本申请实施例所提供的一种包计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本申请任意实施例所提供的车载控制器的软件升级方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述车载控制器的软件升级装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种车载控制器的软件升级方法,其特征在于,应用于车载控制器,所述车载控制器的存储器中设置有第一存储分区和第二存储分区,所述方法包括:
接收升级软件包的目标数据包,所述目标数据包中包括所述升级软件包的一部分数据;
将所述目标数据包的数据写入到目标存储分区中,所述目标存储分区是指当前为非激活状态的存储分区,所述目标存储分区为所述第一存储分区或所述第二存储分区;
确定所述目标存储分区中所述升级软件包的数据是否写入完毕;
若写入完毕,则校验所述目标存储分区中所述升级软件包的数据完整性;
若校验通过,则将所述目标存储分区的状态变更为激活状态;
基于所述目标存储分区中升级软件包的数据,控制所述车载控制器运行。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标数据包的数据写入到非激活状态的目标存储分区中,包括:
根据所述第一存储分区的状态标识,确定所述第一存储分区是否为目标存储分区,所述状态标识包括激活状态标识和非激活状态标识;
若所述第一存储分区为目标存储分区,则将所述目标数据包的数据写入到所述第一存储分区中;
否则,将所述目标数据包的数据写入到所述第二存储分区中。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标存储分区的状态变更为激活状态,包括:
将所述目标存储分区的状态标识变更为激活状态标识。
4.根据权利要求1所述的方法,其特征在于,所述接收升级软件包的目标数据包之前,所述方法还包括:
接收升级任务信息,所述升级任务信息中包括所述升级软件包的第一长度值;
所述确定所述目标存储分区中所述升级软件包的数据是否写入完毕,包括:
计算目标存储分区中已写入数据的第二长度值;
若所述第二长度值等于所述第一长度值,则确定所述目标存储分区中所述升级软件包的数据已写入完毕。
5.根据权利要求4所述的方法,其特征在于,所述升级任务信息中还包括所述升级软件包的第一校验值,所述校验所述目标存储分区中所述升级软件包的数据完整性,包括:
根据所述目标存储分区中已写入的数据,计算所述升级软件包的第二校验值;
若所述第二校验值与所述第一校验值一致,则确定校验通过。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若校验不通过,则基于非目标存储分区中升级软件包的数据,控制所述车载控制器运行。
7.一种车载控制器的软件升级装置,其特征在于,集成于车载控制器,所述车载控制器的存储器中设置有第一存储分区和第二存储分区,所述装置包括:
通信模块,用于接收升级软件包的目标数据包,所述目标数据包中包括所述升级软件包的一部分数据;
处理模块,用于将所述目标数据包的数据写入到目标存储分区中,所述目标存储分区是指当前为非激活状态的存储分区,所述目标存储分区为所述第一存储分区或所述第二存储分区;确定所述目标存储分区中所述升级软件包的数据是否写入完毕;若写入完毕,则校验所述目标存储分区中所述升级软件包的数据完整性;若校验通过,则将所述目标存储分区的状态变更为激活状态;
控制模块,用于基于所述目标存储分区中升级软件包的数据,控制所述车载控制器运行。
8.一种车载控制器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述存储器中包括第一存储分区和第二存储分区,所述处理器执行所述程序时实现如权利要求1-6中任一所述的车载控制器的软件升级方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的车载控制器的软件升级方法。
10.一种车载控制器的软件升级系统,其特征在于,包括:云端、车载通信设备和至少一个如权利要求8所述的车载控制器;所述云端与所述车载通信设备通过无线网络连接,所述车载通信设备与各车载控制器通过车内通信链路连接。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669229.9A CN114895947A (zh) | 2022-06-14 | 2022-06-14 | 车载控制器的软件升级方法、装置、设备和存储介质 |
PCT/CN2023/099216 WO2023241458A1 (zh) | 2022-06-14 | 2023-06-08 | 车载控制器的软件升级方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669229.9A CN114895947A (zh) | 2022-06-14 | 2022-06-14 | 车载控制器的软件升级方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114895947A true CN114895947A (zh) | 2022-08-12 |
Family
ID=82727412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210669229.9A Pending CN114895947A (zh) | 2022-06-14 | 2022-06-14 | 车载控制器的软件升级方法、装置、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114895947A (zh) |
WO (1) | WO2023241458A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023241458A1 (zh) * | 2022-06-14 | 2023-12-21 | 中国第一汽车股份有限公司 | 车载控制器的软件升级方法、装置、设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117978853A (zh) * | 2024-03-29 | 2024-05-03 | 成都智邦科技有限公司 | 一种充电桩的远程升级控制方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018160207A (ja) * | 2017-03-24 | 2018-10-11 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
CN111651185B (zh) * | 2020-05-30 | 2022-11-11 | 展讯通信(上海)有限公司 | 一种软件升级方法及装置 |
CN114064095A (zh) * | 2020-08-10 | 2022-02-18 | 威马智慧出行科技(上海)有限公司 | 车载软件的升级方法、车载控制器、车辆及存储介质 |
CN114895947A (zh) * | 2022-06-14 | 2022-08-12 | 中国第一汽车股份有限公司 | 车载控制器的软件升级方法、装置、设备和存储介质 |
-
2022
- 2022-06-14 CN CN202210669229.9A patent/CN114895947A/zh active Pending
-
2023
- 2023-06-08 WO PCT/CN2023/099216 patent/WO2023241458A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023241458A1 (zh) * | 2022-06-14 | 2023-12-21 | 中国第一汽车股份有限公司 | 车载控制器的软件升级方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023241458A1 (zh) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111343064A (zh) | 汽车控制系统软件升级系统及方法 | |
CN114895947A (zh) | 车载控制器的软件升级方法、装置、设备和存储介质 | |
US8655541B2 (en) | Vehicle upgrade system and method thereof | |
CN111399884A (zh) | 一种车辆组件的升级方法、装置及电子设备 | |
WO2021168840A1 (zh) | 一种软件版本回滚方法、装置及系统 | |
CN113497819A (zh) | 一种远程升级安全保障方法、系统及车载Tbox设备 | |
CN112612490A (zh) | 车辆升级方法、车辆及存储介质 | |
EP3920020A1 (en) | Electronic control device and program update method | |
US20220391192A1 (en) | Ota master, center, system, method, non-transitory storage medium, and vehicle | |
US20240069906A1 (en) | Server, software update system, distribution method, and non-transitory storage medium | |
CN115061713A (zh) | 升级电子设备的方法及装置 | |
JP7540394B2 (ja) | Otaマスタ、システム、方法、プログラム、及び車両 | |
CN106095474A (zh) | 用于更新运输工具中的软件的方法和装置 | |
CN114281374A (zh) | 车辆电控单元的远程刷写方法、系统及存储介质 | |
US20220391193A1 (en) | Ota master, system, method, non-transitory storage medium, and vehicle | |
CN116633780A (zh) | 车辆的网关升级方法、装置、车辆及存储介质 | |
CN111722856A (zh) | 车载微控制器中固件的升级方法和装置 | |
CN115904437A (zh) | 一种汽车电子控制单元并行刷写系统及方法 | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 | |
CN114780114A (zh) | 固件升级方法、系统、车辆及存储介质 | |
CN113672258A (zh) | 车辆的系统升级方法、装置、计算机设备和存储介质 | |
CN112732301A (zh) | 一种车辆升级方法和装置 | |
JP7540402B2 (ja) | センタ、otaマスタ、システム、方法、プログラム、及び車両 | |
CN113031981A (zh) | 车辆的软件升级方法、系统及车辆 | |
CN110677466A (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 |