掌桥专利:专业的专利平台
掌桥专利
首页

车辆的OTA升级方法、计算机可读存储介质和电子设备

文献发布时间:2023-06-19 09:38:30


车辆的OTA升级方法、计算机可读存储介质和电子设备

技术领域

本发明涉及车辆技术领域,尤其涉及一种车辆的OTA升级方法、计算机可读存储介质和电子设备。

背景技术

随着软件定义汽车时代的到来,现代汽车的软件更新越来越频繁。当汽车软件升级更新时,汽车的ECU(Electronic Control Unit,电子控制单元)处于升级模式,此时ECU无法工作,进而导致车辆在升级时会被限制行驶,并且由于现代汽车ECU系统软件较多且系统软件较大,升级耗时较长,在车辆升级期间用户无法使用汽车且等待时间较长,给用户用车带来不便。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种车辆的OTA升级方法,能够使得车辆在升级期间正常行驶。

本发明的第二个目的在于提出一种计算机可读存储介质。

本发明的第三个目的在于提出一种电子设备。

为达到上述目的,本发明第一方面实施例提出一种车辆的OTA升级方法,车辆的ECU中存放第一系统软件和第二系统软件,其中,方法包括以下步骤:确定第一系统软件和第二系统软件中的一个启动;在确定第一系统软件启动时,通过第一系统软件创建升级任务,以对第二系统软件进行升级,并在第二系统软件升级完成后,且车辆再次启动时,确定第二系统软件启动,以及通过第二系统软件创建升级任务,以对第一系统软件进行升级。

根据本发明实施例的车辆的OTA升级方法,通过在车辆的ECU中存放第一系统软件和第二系统软件,并确定第一系统软件和第二系统软件中的一个启动,以及在确定第一系统软件启动时,通过第一系统软件创建升级任务,以对第二系统软件进行升级,并在第二系统软件升级完成后,且车辆再次启动时,确定第二系统软件启动,以及通过第二系统软件创建升级任务,以对第一系统软件进行升级。其中,在系统升级过程中,由于至少一个系统软件处于启动运行状态,使得车辆通过该系统能够正常行驶,因而能够使得车辆在升级期间正常行驶而不影响用户用车。

根据本发明的一个实施例,确定第一系统软件和第二系统软件中的一个启动,包括:分别获取第一系统软件的状态数据和第二系统软件的状态数据;根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件中的一个启动。

根据本发明的一个实施例,根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件中的一个启动,包括:根据第一系统软件的状态数据确定第一系统软件出现损坏时,确定第二系统软件启动;根据第二系统软件的状态数据确定第二系统软件出现损坏时,确定第一系统软件启动。

根据本发明的一个实施例,根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件中的一个启动,还包括:根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件均完好时,根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件的版本号与第二系统软件的版本号是否一致;在第一系统软件的版本号与第二系统软件的版本号不一致时,确定版本号高的系统软件启动。

根据本发明的一个实施例,根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件中的一个启动,还包括:在第一系统软件的版本号与第二系统软件的版本号一致时,确定第一系统软件启动。

根据本发明的一个实施例,在第一系统软件启动后,如果确定第二系统软件出现损坏,则对第二系统软件进行修复。

根据本发明的一个实施例,在第二系统软件启动后,如果确定第一系统软件出现损坏,则对第一系统软件进行修复。

根据本发明的一个实施例,在第一系统软件或第二系统软件启动后,如果第一系统软件的版本号与第二系统软件的版本号一致,保持第一系统软件或第二系统软件正常运行。

为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有车辆的OTA升级程序,该车辆的OTA升级程序被处理器执行时实现前述车辆的OTA升级方法。

根据本发明实施例的计算机可读存储介质,通过前述车辆的OTA升级方法,在系统升级过程中,由于至少一个系统软件处于启动运行状态,使得车辆通过该系统能够正常行驶,因而能够使得车辆在升级期间正常行驶而不影响用户用车。

为达到上述目的,本发明第三方面实施例提出的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的车辆的OTA升级程序,处理器执行OTA升级程序时,实现前述车辆的OTA升级方法。

根据本发明实施例的电子设备,通过前述车辆的OTA升级方法,在系统升级过程中,由于至少一个系统软件处于启动运行状态,使得车辆通过该系统能够正常行驶,因而能够使得车辆在升级期间正常行驶而不影响用户用车。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1为根据本发明一个实施例的车辆的OAT升级ECU软件架构图;

图2为根据本发明一个实施例的车辆的OTA升级方法的流程图;

图3a-图3b为根据本发明一个具体示例的车辆的OTA升级方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例提出的车辆的OTA升级方法、计算机可读存储介质和电子设备。

在本申请中,参考图1所示,车辆的ECU中存放有第一系统软件和第二系统软件,第一系统软件和第二系统软件均可以运行ECU的系统功能,使得ECU通过第一系统软件或第二系统软件控制车辆正常运行。

图2为根据本发明一个实施例的车辆的OTA升级方法的流程图,参考图2所示,该车辆的OTA升级方法的方法可包括以下步骤:

步骤S102,确定第一系统软件和第二系统软件中的一个启动。

在其中一个实施例中,确定第一系统软件和第二系统软件中的一个启动可包括:分别获取第一系统软件的状态数据和第二系统软件的状态数据;根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件中的一个启动。其中,状态数据可存储至ECU中,状态数据可包括第一系统软件和第二系统软件的系统版本号、以及系统状态(可包括完好和损坏两种状态)等。

作为一个实施例,根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件中的一个启动,包括:根据第一系统软件的状态数据确定第一系统软件出现损坏时,确定第二系统软件启动;根据第二系统软件的状态数据确定第二系统软件出现损坏时,确定第一系统软件启动。即言,当第一系统软件和第二系统软件中的一个系统状态为损坏时,则启动另一个系统状态完好的系统软件。

作为另一个实施例,根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件中的一个启动,还包括:根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件和第二系统软件均完好时,根据第一系统软件的状态数据和第二系统软件的状态数据确定第一系统软件的版本号与第二系统软件的版本号是否一致;在第一系统软件的版本号与第二系统软件的版本号不一致时,确定版本号高的系统软件启动;在第一系统软件的版本号与第二系统软件的版本号一致时,确定第一系统软件启动。

即言,当第一系统软件和第二系统软件的系统状态均完好时,根据第一系统软件的版本号和第二系统软件的版本号确定其中一个系统软件启动,其中当第一系统软件的版本号与第二系统软件的版本号不一致时,确定版本号高的系统软件启动;在第一系统软件的版本号与第二系统软件的版本号一致时,可以确定第一系统软件启动,当然,也可确定第二系统软件启动。

步骤S104,在确定第一系统软件启动时,通过第一系统软件创建升级任务,以对第二系统软件进行升级,并在第二系统软件升级完成后且车辆再次启动时,确定第二系统软件启动,并通过第二系统软件创建升级任务,以对第一系统软件进行升级。

具体地,在确定第一系统软件启动时,可先启动运行第一系统软件,并通过第一系统软件创建一个升级任务对第二系统软件进行升级,而后,当车辆再次启动时,可启动运行第二系统软件,并通过第二系统软件创建一个升级任务对第一系统软件进行升级,从而在不影响用车的情况下对ECU软件进行升级更新操作,有效解决了车辆升级期间无法行驶的问题。

类似地,若确定第二系统软件启动时,则先通过第二系统软件创建升级任务,以对第一系统软件进行升级,并在第一系统软件升级完成后且车辆再次启动时,确定第一系统软件启动,以及通过第一系统软件创建升级任务,以对第二系统软件进行升级,具体参考前述,这里不再赘述。

上述实施例提供的车辆的OTA升级方法中,由于车辆的ECU内设置有两个系统软件,在车辆启动时,选择其中一个系统软件启动来保证车辆的正常运行,同时利用正在运行的系统软件对另一个系统软件创建升级任务,使得车辆运行时另一个系统软件可以进行升级,当车辆再次启动时,优先启动已经完成升级的系统软件来控制车辆的运行,并利用已经完成升级的系统软件对另一系统软件创建升级任务,使另一系统软件进行升级,从而实现了在系统软件升级过程中车辆的正常运行,不影响用户正常用车。另外,即使系统软件升级失败或出现错误,由于另一系统可以正常运行,因此不会影响车辆正常使用。

在本发明的一个实施例中,在第一系统软件启动后,如果确定第二系统软件出现损坏,则对第二系统软件进行修复;在第二系统软件启动后,如果确定第一系统软件出现损坏,则对第一系统软件进行修复。

也就是说,在第一系统软件或第二系统软件启动后,可根据第一系统软件和第二系统软件的系统状态和版本号确定是否需要修复或升级另一个系统,例如,当根据系统状态确定另一系统出现损坏时,可对另一系统进行修复;当根据版本号确定另一系统版本较低时,可对另一系统进行升级;而如果第一系统软件的版本号与第二系统软件的版本号一致,保持第一系统软件或第二系统软件正常运行,且不进行升级操作。

进一步地,为使本领域技术人员能够更清楚的了解本申请,下面结合图3a-图3b所示具体示例来对本申请做进一步详细说明。

在车辆启动后,车辆ECU中的系统引导程序首先启动运行,然后由系统引导程序读取ECU中存储的状态数据,状态数据可包括第一系统软件(即A系统)和第二系统软件(即B系统)的版本号、第一系统软件和第二系统软件的系统状态、当前启动分区、第一系统软件和第二系统软件的开始启动时间、以及第一系统软件和第二系统软件加载失败的次数,然后按照图3a所示流程确定是第一系统软件启动还是第二系统软件启动。

具体地,参考图3a所示,正常情况下,车辆启动后,系统引导程序启动运行,并确定状态数据中的第一系统软件和第二系统软件的加载失败次数是否小于预设次数如3次,由于系统引导程序初次运行,显然系统软件的加载失败次数小于预设次数,即未连续预设次数加载系统失败。此时,系统引导程序读取状态数据中的第一系统软件和第二系统软件的系统状态和版本号,并根据系统状态确定第一系统软件和第二系统软件是否完好,如果第一系统软件和第二系统软件均完好,则进一步判断第一系统软件和第二系统软件的版本号是否一致,如果一致,则可先启动第一系统软件。参考图3b所示,当第一系统软件成功启动后,由第一系统软件读取状态数据中第一系统软件和第二系统软件的系统状态和版本号,并根据系统状态确定第一系统软件和第二系统软件是否均完好,显然两者均完好,此时第一系统软件进一步确定第一系统软件和第二系统软件的版本号是否一致,显然两者一致,此时第一系统软件正常运行。

参考图3a所示,如果系统引导程序根据系统状态确定第一系统软件完好而第二系统软件损坏(如前次升级时未成功升级等),则确定启动第一系统软件,参考图3b所示,当第一系统软件成功启动后,由第一系统软件读取状态数据中第一系统软件和第二系统软件的系统状态和版本号,并根据系统状态确定第一系统软件和第二系统软件是否均完好,显然第二系统软件损坏,此时第一系统软件对第二系统软件进行修复。相反的,如果系统引导程序根据系统状态确定第二系统软件完好而第一系统软件损坏(如前次升级时未成功升级等),则确定启动第二系统软件,参考图3b所示,当第二系统软件成功启动后,由第二系统软件读取状态数据中第一系统软件和第二系统软件的系统状态和版本号,并根据系统状态确定第一系统软件和第二系统软件是否均完好,显然第一系统软件损坏,此时第二系统软件对第一系统软件进行修复。

参考图3a所示,如果系统引导程序根据系统状态确定第一系统软件和第二系统软件均完好,但根据版本号确定第一系统软件的版本高于第二系统软件的版本,则确定启动第一系统软件,参考图3b所示,当第一系统软件成功启动后,由第一系统软件读取状态数据中第一系统软件和第二系统软件的系统状态和版本号,并根据系统状态确定第一系统软件和第二系统软件是否均完好,显然两者均完好,此时第一系统软件进一步确定第一系统软件和第二系统软件的版本号是否一致,显然第一系统软件的版本高于第二系统软件的版本,此时第一系统软件对第二系统软件进行升级。相反的,参考图3a所示,如果系统引导程序根据系统状态确定第一系统软件和第二系统软件均完好,但根据版本号确定第二系统软件的版本高于第一系统软件的版本,则确定启动第二系统软件,参考图3b所示,当第二系统软件成功启动后,由第二系统软件读取状态数据中第一系统软件和第二系统软件的系统状态和版本号,并根据系统状态确定第一系统软件和第二系统软件是否均完好,显然两者均完好,此时第二系统软件进一步确定第一系统软件和第二系统软件的版本号是否一致,显然第二系统软件的版本高于第一系统软件的版本,此时第二系统软件对第一系统软件进行升级。

需要说明的是,在系统引导程序根据系统状态和版本号确定出需要启动第一系统软件或第二系统软件时,系统引导程序将加载运行第一系统软件或第二系统软件,但是由于某些原因可能导致第一系统软件或第二系统软件无法成功加载,如第一系统软件或第二系统软件所在启动分区损坏等(需要说明的是,为避免第一系统软件和第二系统软件相互影响,在存储时,可将第一系统软件和第二系统软件存储至不同的启动分区中,以保证一个分区损坏不会对另一个分区造成影响,提高系统的可靠性),因此可在ECU中设置WDT(WatchDog Timer,看门狗定时器)和RTC(Real_Time Clock,实时时钟),其作用是为系统引导程序判断系统软件是否启动成功提供依据,以便系统引导程序在启动第一系统软件或第二系统软件后,能够根据这些依据来确定第一系统软件或第二系统软件是否启动成功。

在此基础上,异常情况下,参考图3a所示,假设系统引导程序根据状态数据确定出当前需要启动第一系统软件时,系统引导程序将加载运行第一系统软件,如果第一系统软件未加载运行成功,则必然导致WDT复位,此时ECU重新运行系统引导程序,当系统引导程序再次运行时,系统引导程序将从RTC中读取当前时间,并从ECU中读取记录的第一系统软件的开始启动时间,若当前时间减去记录的第一系统软件的开始启动时间小于ECU启动的正常时间,则判定第一系统软件第一次加载运行失败。由于当前失败次数小于预设次数如3次,则系统引导程序再次根据状态数据确定是要启动第一系统软件和第二系统软件,显然最终确定需要启动第一系统软件。然后,系统引导程序再次加载运行第一系统软件,依次类推,直至第一系统软件加载运行成功或者第一系统软件加载运行失败次数等于预设次数如3次。其中,如果第一系统软件加载运行失败次数等于预设次数如3次,则标记当前启动分区即第一系统软件所在启动分区为损坏状态,此时系统引导程序直接启动另一启动分区的系统软件即第二系统软件。需要说明的是,对于第二系统软件的启动判断可参考前述,这里不再赘述。

简单来说,就是可以先通过系统引导程序按照图3a所示步骤确定是要启动第一系统软件还是第二系统软件,然后加载运行需要启动的系统软件,如果该系统软件启动成功,则由其按照图3b所示步骤确定是需要对另一系统软件进行修复还是升级;如果该系统软件未启动成功,则直接启动另一系统软件,如果另一系统软件启动成功,则由其按照图3b所示步骤确定是需要对另一系统软件进行修复还是升级。

上述实施例提供的车辆的OTA升级方法,在对车辆ECU软件升级时,通过设置两个系统软件,并在车辆启动时,选择其中一个系统软件启动以保证车辆正常运行,同时通过该系统软件对另一系统软件进行升级或修复,当车辆再次启动时,启动另一系统软件,通过另一系统软件来控制车辆正常运行,同时通过另一系统软件对之前运行的系统软件进行升级或修复,从而在系统软件升级过程中保证车辆可以正常运行,不影响用户正常用车。而且,若出现系统软件升级失败或错误,通过上述方式也可以在保证车辆正常运行的情况下对升级失败的系统进行修复或重新升级。

另外,本申请的又一实施例提供一种计算机可读存储介质,其上存储有车辆的OTA升级程序,该车辆的OTA升级程序被处理器执行时实现前述的车辆的OTA升级方法,关于本申请中OTA升级程序运行的描述,请参考本申请中关于车辆的OTA升级方法的描述,具体这里不再赘述。

根据本发明实施例的计算机可读存储介质,通过前述车辆的OTA升级方法,在系统升级过程中,由于至少一个系统软件处于启动运行状态,使得车辆通过该系统能够正常行驶,因而能够使得车辆在升级期间正常行驶而不影响用户用车。

此外,本申请的又一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的车辆的OTA升级程序,处理器执行OTA升级程序时,实现前述的车辆的OTA升级方法,具体这里不再赘述。

根据本发明实施例的电子设备,通过前述车辆的OTA升级方法,在系统升级过程中,由于至少一个系统软件处于启动运行状态,使得车辆通过该系统能够正常行驶,因而能够使得车辆在升级期间正常行驶而不影响用户用车。

需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 车辆的OTA升级方法、计算机可读存储介质和电子设备
  • OTA升级方法、装置、车辆以及计算机可读存储介质
技术分类

06120112242819