软件更新方法、装置、车辆及计算机可读存储介质与流程

文档序号:18463607发布日期:2019-08-17 02:15阅读:254来源:国知局
软件更新方法、装置、车辆及计算机可读存储介质与流程

本公开的实施例涉及车辆技术领域,尤其涉及一种软件更新方法、装置、车辆及计算机可读存储介质。



背景技术:

目前,车辆在实施can节点软件在线升级时,大多是直接通过obd(on-boarddiagnostic,车载诊断系统)进行在线刷写。这样,容易造成车辆接收到非法下载源的升级操作,或下载错误的升级软件应用到ecu(electroniccontrolunit,电子控制单元),导致软件不兼容,不利于车辆的正常使用,也给行车安全带来了隐患。



技术实现要素:

本公开的实施例提供了一种软件更新方法、装置、车辆及计算机可读存储介质,以解决现有车辆容易接收到非法下载源的升级操作、或下载错误的升级软件的问题。

第一方面,本公开的实施例提供了一种软件更新方法,应用于车辆,包括:

检测所述车辆是否满足预设升级条件;

在所述车辆满足预设升级条件的情况下,获取升级文件,并对所述升级文件进行完整性验证;

在所述升级文件通过完整性验证的情况下,对所述升级文件进行有效性验证;

在所述升级文件通过有效性验证的情况下,则根据所述升级文件执行升级操作。

可选地,所述检测所述车辆是否满足预设升级条件,包括:

检测所述车辆是否处于未启动状态;

若所述车辆处于未启动状态,则判定所述车辆满足预设升级条件。

可选地,所述预设升级条件包括:

电源处于关闭模式、车门关闭且中控锁关闭、蓄电池电压处于预设电压范围、手刹信号有效且手刹处于拉起状态、车速小于预设车速以及行车档位为停车档。

可选地,所述对所述升级文件进行完整性验证,包括:

计算所述升级文件的数据字节的第一验证值;

比对所述第一验证值是否与外部终端发送的第一预设验证值相匹配;

若所述第一验证值与外部终端发送的第一预设验证值相匹配,则判定所述升级文件通过完整性验证。

可选地,所述对所述升级文件进行有效性验证,包括:

获取所述升级文件中被加密处理的第一摘要;

通过预设算法提取所述升级文件的第二摘要,并对加密处理的所述第一摘要进行解密;

比对解密后的第一摘要是否与所述第二摘要相匹配;

若解密后的第一摘要与所述第二摘要相匹配,则判定所述升级文件通过有效性验证。

可选地,在所述升级文件通过有效性验证的情况下,则根据所述升级文件执行升级操作之后,还包括:

在所述升级操作的执行过程中,若检测到所述车辆发生异常断电而所述升级操作停止,确定停止所述升级操作的电子控制单元;

在检测到所述车辆电源处于启动模式的情况下,控制所述电子控制单元继续执行所述升级操作或重新执行所述升级操作。

可选地,在所述升级文件通过有效性验证的情况下,则根据所述升级文件执行升级操作之后,还包括:

在所述升级操作的执行过程中,若检测到预设指令,输出提示信息;

其中,所述预设指令至少包括以下一项:车门开启指令、中控锁开启指令、手刹放下指令、换挡指令。

第二方面,本公开的实施例还提供了一种软件更新装置,应用于车辆,包括:

检测模块,用于检测所述车辆是否满足预设升级条件;

第一验证模块,用于在所述车辆满足预设升级条件的情况下,获取升级文件,并对所述升级文件进行完整性验证;

第二验证模块,用于在所述升级文件通过完整性验证的情况下,对所述升级文件进行有效性验证;

执行模块,用于在所述升级文件通过有效性验证的情况下,则根据所述升级文件执行升级操作。

可选地,所述检测模块还用于:

检测所述车辆是否处于未启动状态;

若所述车辆处于未启动状态,则判定所述车辆满足预设升级条件。

可选地,所述预设升级条件包括:

电源处于关闭模式、车门关闭且中控锁关闭、蓄电池电压处于预设电压范围、手刹信号有效且手刹处于拉起状态、车速小于预设车速以及行车档位为停车档。

可选地,所述第一验证模块还用于:

计算所述升级文件的数据字节的第一验证值;

比对所述第一验证值是否与外部终端发送的第一预设验证值相匹配;

若所述第一验证值与外部终端发送的第一预设验证值相匹配,则判定所述升级文件通过完整性验证。

可选地,所述第二验证模块还用于:

获取所述升级文件中被加密处理的第一摘要;

通过预设算法提取所述升级文件的第二摘要,并对加密处理的所述第一摘要进行解密;

比对解密后的第一摘要是否与所述第二摘要相匹配;

若解密后的第一摘要与所述第二摘要相匹配,则判定所述升级文件通过有效性验证。

可选地,所述装置还包括控制模块,所述控制模块用于:

在所述升级操作的执行过程中,若检测到所述车辆发生异常断电而所述升级操作停止,确定停止所述升级操作的电子控制单元;

在检测到所述车辆电源处于启动模式的情况下,控制所述电子控制单元继续执行所述升级操作或重新执行所述升级操作。

可选地,所述装置还包括输出模块,所述输出模块用于:

在所述升级操作的执行过程中,若检测到预设指令,输出提示信息;

其中,所述预设指令至少包括以下一项:车门开启指令、中控锁开启指令、手刹放下指令、换挡指令。

第三方面,本公开的实施例还提供了一种车辆,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面中所述的软件更新方法的步骤。

第四方面,本公开的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中所述的软件更新方法的步骤。

本公开的实施例中,在检测到车辆满足预设升级条件的情况下,车辆获取升级文件,并对所述升级文件进行完整性验证,若所述升级文件通过完整性验证,则对所述升级文件进行有效性验证,并在所述升级文件通过有效性验证的情况下,根据所述升级文件执行升级操作。由于对升级文件进行完整性验证,因此,能够避免车辆接收到不完整的升级文件,避免升级过程中出现中断、或升级错误等情况,保障了升级的顺畅性;另外,通过对升级文件进行有效性验证,也就能够避免车辆获取到错误的或者不兼容的文件,进一步保障升级的顺畅性,也能避免车辆被恶意升级,提高了车辆的安全性。

附图说明

为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本公开的实施例提供的一种软件更新方法的流程图;

图1a是图1提供的软件更新方法中对升级文件进行完整性验证的流程图;

图1b是图1提供的软件更新方法中对升级文件进行有效性验证的流程图;

图2是本公开的实施例提供的一种软件更新装置的结构图。

具体实施方式

下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

请参见图1,图1是本公开的实施例提供的一种应用于车辆的软件更新方法的流程图,如图1所示,包括以下步骤:

步骤101、检测车辆是否满足预设升级条件。

需要说明的是,所述检测车辆是否满足预设升级条件的触发可以是有多种情况。例如,在一种情况中,可以是在车辆接收到软件升级指令的情况下,比如可以是车辆在与云端服务器建立连接的情况下,例如云端服务器向车辆发送软件升级指令,进而车辆在接收到该软件升级指令后,可以是车辆检测自身是否满足预设升级条件,或者也可以是云端服务器来检测车辆是否满足预设升级条件;当然也可以是移动终端向车辆发送软件升级指令,或者还可以是其他外部终端,如上位机向车辆发送软件升级指令。

或者,在另一种情况中,可以是在检测到车辆进入特定的软件升级程序时,则检测所述车辆是否满足预设升级条件。

本发明实施例中,所述预设升级条件包括:电源处于关闭模式、车门关闭且中控锁关闭、蓄电池电压处于预设电压范围、手刹信号有效且手刹处于拉起状态、车速小于预设车速以及行车档位为停车档。

其中,预设电压范围为10~14v,预设车速为2km/h。

检测所述车辆是否满足预设升级条件,也就是要对车辆的电源模式、车门状态、中控锁状态、蓄电池电压、手刹状态、车速以及行车档位进行检测,只有在上述预设条件全部满足的情况下,也就是当检测到电源处于关闭模式、车门关闭且中控锁关闭、蓄电池电压处于10~14v的范围内、手刹信号有效且手刹处于拉起状态、车速小于2km/h且行车档位为停车档,则判定车辆满足预设升级条件。

或者,所述步骤101可以包括:

检测所述车辆是否处于未启动状态。

其中,在检测到车辆处于未启动状态,则判定所述车辆满足预设升级条件;若检测到车辆处于启动状态,则判定所述车辆不满足预设升级条件。可以理解地,车辆处于未启动状态,包括车辆的发动机未启动、车速处于0、车辆的电源处于关闭模式中的至少一项。

另外,在检测到车辆满足预设升级条件的情况下,车辆可以是输出提示指令,例如可以是在车辆的中控显示屏上显示特定的文字信息,以提示用户车辆当前满足预设升级条件,可以进行下一步的操作。

步骤102、在所述车辆满足预设升级条件的情况下,获取升级文件,并对所述升级文件进行完整性验证。

在车辆满足预设升级条件的情况下,则获取升级文件。例如,在车辆与云端服务器建立连接的情况下,则车辆可以是获取云端服务器发送的升级文件;或者,车辆在与其他外部终端(如上位机)建立有线连接的情况下,则车辆可以是获取外部终端发送的升级文件。

在车辆获取到所述升级文件后,可以是将所述升级文件存储在车辆的存储器中,并对所述升级文件进行完整性验证。

请参照图1a,所述对所述升级文件进行完整性验证,可以是包括如下步骤:

步骤1021、计算所述升级文件的数据字节的第一验证值;

步骤1022、比对所述第一验证值是否与外部终端发送的第一预设验证值相匹配;

步骤1023、若所述第一验证值与外部终端发送的第一预设验证值相匹配,则判定所述升级文件通过完整性验证。

具体地,当车辆获取所述升级文件后,车辆可以是通过一个“检查编程完整性”例程控制来激活ecu完整性验证,当ecu接收到此服务请求时,bootloader将计算升级文件的数据字节的第一验证值,并比对所述第一验证值是否与外部终端发送的第一预设验证值相匹配,若匹配,则判定所述升级文件的完整性验证通过。

可选地,车辆可以是通过crc32算法来验证所述升级文件的所有数据字节是否被正确传输和写入,也就是说,bootloader将计算升级文件的数据字节的crc32值,并将计算的所述crc32值与上位机发送的请求报文中的预设crc32值进行比较,若计算的所述crc32值与上位机发送的预设crc32值一致,则判定所述升级文件的完整性验证通过。

步骤103、在所述升级文件通过完整性验证的情况下,对所述升级文件进行有效性验证。

可以理解地,在所述升级文件的完整性验证通过的情况下,也即所述升级文件包括完整的数据字节,则对所述升级文件进行有效性验证,以判断所述升级文件是否有效。

请参照图1b,本公开的实施例中,所述对所述升级文件进行有效性验证,可以是包括如下步骤:

步骤1031、获取所述升级文件中被加密处理的第一摘要;

步骤1032、通过预设算法提取所述升级文件的第二摘要,并对加密处理的所述第一摘要进行解密;

步骤1033、比对解密后的第一摘要是否与所述第二摘要相匹配;

步骤1034、若解密后的第一摘要与所述第二摘要相匹配,则判定所述升级文件通过有效性验证。

其中,所述预设算法为md5算法。具体地,车辆在获取到所述升级文件,并在所述升级文件通过完整性验证的情况下,通过md5算法提取所述升级文件的第二摘要,同时获取所述升级文件中被加密的第一摘要,并通过相应的算法对所述第一摘要进行解密,将所述第二摘要是否与解密后的第一摘要进行比对,若比对结果一致,则判定所述升级文件有效,所述升级文件的有效性验证通过;若比对结果不一致,则判定所述升级文件为无效,车辆可以停止进行后续的升级操作。

需要说明的是,所述升级文件在被发送至车辆之前,可以是先通过外部终端对源升级文件进行预处理,如先对源升级文件使用md5算法提取第一摘要,并对所述第一摘要进行加密处理,将加密后的第一摘要写入源升级文件末尾,生成所述升级文件,这样,所述升级文件中也就包括被加密的第一摘要。外部终端可以是在与车辆建立连接的情况下,将所述升级文件发送至车辆。

步骤104、在所述升级文件通过有效性验证的情况下,则根据所述升级文件执行升级操作。

可以理解地,当判定所述升级文件为有效的升级文件,则车辆根据所述升级文件执行升级操作。

本公开的实施例中,在检测到车辆满足预设升级条件的情况下,车辆获取升级文件,并对所述升级文件进行完整性验证,若所述升级文件通过完整性验证,则对所述升级文件进行有效性验证,并在所述升级文件通过有效性验证的情况下,根据所述升级文件执行升级操作。进而,通过对升级文件进行完整性验证,也就能够避免车辆接收到不完整的升级文件,避免升级过程中出现中断、或升级错误等情况,保障了升级的顺畅性;另外,通过对升级文件进行有效性验证,也就能够避免车辆获取到错误的或者不兼容的文件,进一步保障升级的顺畅性,也能避免车辆被恶意升级,提高了车辆的安全性。

可选地,在所述104之后,还可以包括:

在所述升级操作的执行过程中,若检测到所述车辆发生异常断电而所述升级操作停止,确定停止所述升级操作的电子控制单元;在检测到所述车辆电源处于启动模式的情况下,控制所述电子控制单元继续执行所述升级操作或重新执行所述升级操作。

可以理解地,车辆在升级过程中可能会发生异常断电的情况,若车辆发生异常断电,则所述升级操作停止,确定停止所述升级操作的ecu,并控制所述ecu记忆异常断电前所述升级操作的升级节点;当检测到车辆恢复供电,也就是在检测到车辆电源处于启动模式的情况下,则根据所述ecu记忆的升级节点,控制所述ecu从所述升级节点开始执行所述升级操作中未完成的后续升级节点。这样,也就节省了升级流程,也提高了升级操作的效率。

或者,当检测到车辆恢复供电,也就是检测到车辆电源处于启动模式的情况下,则控制所述ecu重新执行所述升级操作,也就是控制断电之前进行升级操作的ecu,重新进行升级操作。可以理解地,车辆在断电前执行的升级操作,所依据的升级文件已经通过完整性验证和有效性验证,因此,在车辆恢复供电重新执行升级操作时,车辆也就无需再对升级文件进行完整性验证和有效性验证,简化了车辆的升级流程。

另外,在所述步骤104之后,还可以包括:

在所述升级操作的执行过程中,若检测到预设指令,输出提示信息。

其中,所述预设指令至少包括以下一项:车门开启指令、中控锁开启指令、手刹放下指令、换挡指令。例如,车辆在所述升级操作的执行过程中,若车辆的车门锁被触发,如用户拉动车门锁,此时车辆会检测到车门开启指令,则车辆输出提示信息,所述提示信息可以是显示在车辆中控显示屏上、或者是与车辆建立无线连接的移动终端上的文字信息,以显示当前为升级状态,提示用户停止车门开启动作,以避免对车辆的升级操作造成干扰,确保升级操作的顺利执行。

当然,所述提示指令还可以是其他的形式,例如可以是车辆中控室发出的语音指令或警报声,或者是车辆上预设的灯光闪烁,以告知用户车辆当前处于升级状态,避免对车辆的升级操作造成干扰。

需要说明的是,所述预设指令为用户在执行某一预设操作前的触发指令,例如,所述车门开启指令是用户执行车门开启动作前的触发指令,当用户拉动车门锁时,车辆会检测到车门开启指令,但此时车门还未开启,车辆可以是控制车门锁闭,以禁止车门开启,进而能够避免用户进入车内开启动车辆,确保升级操作的顺畅性。同样原理地,当车辆检测到中控锁开启指令、手刹放下指令、换挡指令,则车辆输出对应的禁止指令,以禁止中控锁被开启、禁止手刹被放下以及禁止执行换挡,进而避免用户启动车辆,保障车辆升级操作的顺畅性。

本发明实施例中,在车辆完成升级操作后,车辆还可以进行对升级完成的软件进行功能性验证,所述功能性验证可以是对升级完成的软件进行测试,例如运行升级完成的软件,并监控该软件在运行过程中是否出现异常;若未出现异常,也就说明软件升级成功,且能正常运行。

进一步地,车辆可以在完成功能性验证后,向外部终端,如云端服务器或者上位机等,发送用以指示功能性验证结果的指示信息,也就使得外部终端及用户能够及时获知车辆上软件升级的结果。例如,在功能性验证成功的情况下,车辆可以是发送第一指示信息,该第一指示信息用以表示车辆上软件升级成功,且能正常运行;在功能性验证失败的情况下,车辆可以是发送第二指示信息,该第二指示信息用以表示车辆上软件升级后不能正常运行,进而也就能够对用户起到指示作用,方便用户及时采取针对性措施,例如对车辆重新进行软件升级更新的操作。

请参照图2,图2是本公开的实施例提供的一种软件更新装置的结构图,如图2所示,所述软件更新装置200包括:

检测模块201,用于检测所述车辆是否满足预设升级条件;

第一验证模块202,用于在所述车辆满足预设升级条件的情况下,获取升级文件,并对所述升级文件进行完整性验证;

第二验证模块203,用于在所述升级文件通过完整性验证的情况下,对所述升级文件进行有效性验证;

执行模块204,用于在所述升级文件通过有效性验证的情况下,则根据所述升级文件执行升级操作。

可选地,所述检测模块201还用于:

检测所述车辆是否处于未启动状态;

若所述车辆处于未启动状态,则判定所述车辆满足预设升级条件。

可选地,所述预设升级条件包括:

电源处于关闭模式、车门关闭且中控锁关闭、蓄电池电压处于预设电压范围、手刹信号有效且手刹处于拉起状态、车速小于预设车速以及行车档位为停车档。

可选地,所述第一验证模块202还用于:

计算所述升级文件的数据字节的第一验证值;

比对所述第一验证值是否与外部终端发送的第一预设验证值相匹配;

若所述第一验证值与外部终端发送的第一预设验证值相匹配,则判定所述升级文件通过完整性验证。

可选地,所述第二验证模块203还用于:

获取所述升级文件中被加密处理的第一摘要;

通过预设算法提取所述升级文件的第二摘要,并对加密处理的所述第一摘要进行解密;

比对解密后的第一摘要是否与所述第二摘要相匹配;

若解密后的第一摘要与所述第二摘要相匹配,则判定所述升级文件通过有效性验证。

可选地,所述软件更新装置200还包括控制模块,所述控制模块用于:

在所述升级操作的执行过程中,若检测到所述车辆发生异常断电而所述升级操作停止,确定停止所述升级操作的电子控制单元;

在检测到所述车辆电源处于启动模式的情况下,控制所述电子控制单元继续执行所述升级操作或重新执行所述升级操作。

可选地,所述软件更新装置200还包括输出模块,所述输出模块用于:

在所述升级操作的执行过程中,若检测到预设指令,输出提示信息;

其中,所述预设指令至少包括以下一项:车门开启指令、中控锁开启指令、手刹放下指令、换挡指令。

本公开的实施例提供的应用于车辆的软件更新装置200可以用以执行上述软件更新方法实施例的各个过程,并能达到相同的技术效果,其中的相关概念以及具体实现方式可以参照上述软件更新方法实施例中的描述,在此不再赘述。

本公开的实施例中,软件更新装置200在检测到车辆满足预设升级条件的情况下,获取升级文件,并对所述升级文件进行完整性验证,若所述升级文件通过完整性验证,则对所述升级文件进行有效性验证,并在所述升级文件通过有效性验证的情况下,根据所述升级文件执行升级操作。进而,通过软件更新装置200对升级文件进行完整性验证,也就能够避免车辆接收到不完整的升级文件,避免升级过程中出现中断、或升级错误等情况,保障了升级的顺畅性;另外,通过对升级文件进行有效性验证,也就能够避免车辆获取到错误的或者不兼容的文件,进一步保障升级的顺畅性,也能避免车辆被恶意升级,提高了车辆的安全性。

本公开的实施例还提供一种车辆,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述软件更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本公开的实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述软件更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1