车辆ecu升级的方法、装置、电子设备及存储介质
技术领域
1.本技术涉及汽车领域,尤其涉及一种车辆ecu升级的方法、装置、电子设备及存储介质。
背景技术:2.随着汽车电子技术的快速发展,车内电子产品越来越多,从而导致控制电子产品的电子控制单元(electronic control unit,ecu)越来越多。目前汽车内部的ecu少则十几个,多则上百个。在ecu使用过程中,为了进一步优化ecu的功能,需要对每个ecu中的软件进行升级(即ecu升级)。当某个ecu中的软件需要升级时,该ecu需要去云端服务器查询是否有可升级的最新软件版本。若有最新软件版本,则云端服务器将该最新软件升级包发送给该ecu,以便于该ecu根据最新软件升级包执行升级操作。当有多个ecu需要升级时,上述ecu升级的效率显然无法满足用户需求。
3.因此,如何提高ecu升级的效率是当前急需解决的问题。
技术实现要素:4.本技术提供了一种车辆ecu升级的方法、装置、电子设备及存储介质,能够提高ecu升级的效率。
5.第一方面,提供了车辆ecu升级的方法,应用于服务器,所述方法包括:接收诊断设备发送的目标车辆的车辆标识以及ecu信息;所述ecu信息包括n个ecu标识以及每个所述ecu标识对应的当前软件版本号;根据所述车辆标识获取所述n个ecu标识对应的最新软件版本号;当所述n个ecu标识中存在至少一个目标ecu标识对应的当前软件版本号与所述最新软件版本号不同时,向所述诊断设备下发软件更新包;所述软件更新包包括所述至少一个目标ecu标识对应的升级文件,以使所述诊断设备根据所述软件更新包对所述目标车辆进行ecu升级;所述n为大于1的正整数。
6.可选地,在所述根据所述车辆标识获取所述n个ecu标识对应的最新软件版本号之前,还包括:根据所述车辆标识获取所述目标车辆的m个最新ecu标识;将所述m个最新ecu标识与所述n个ecu标识进行比对;若所述m个最新ecu标识与所述n个ecu标识完全一致,则执行所述根据所述车辆标识获取所述n个ecu标识对应的最新软件版本号及之后的步骤;若所述m个最新ecu标识与所述n个ecu标识不完全一致,则向所述诊断设备发送第一报错提示信息,所述m为大于1的正整数。
7.可选地,所述ecu信息还包括所述n个ecu标识中每个ecu标识对应的当前硬件版本号;若所述m个最新ecu标识与所述n个ecu标识完全一致,在所述根据所述车辆标识获取所述n个ecu标识对应的最新软件版本号之前,还包括:针对每个ecu标识,查找对应的硬件版本号,并将所述硬件版本号与所述当前硬件版本号进行比对;若所述硬件版本号与所述当前硬件版本号完全一致,则执行所述根据所述车辆标识获取所述n个ecu标识对应的最新软件版本号及之后的步骤;若所述硬件版本号与所述当前硬件版本号不完全一致,则向所述
诊断设备发送第二报错提示信息。
8.可选地,所述软件更新包还包括配置文件;所述配置文件包括至少一个目标ecu标识以及对应的升级文件的文件名称;所述升级文件按照所述文件名称进行命名。
9.可选地,所述配置文件为xml文件、txt文件和ini文件中的一种。
10.第二方面,提供了车辆ecu升级的方法,应用于诊断设备,所述方法包括:获取目标车辆的车辆标识以及对应的ecu信息;所述ecu信息包括n个ecu标识以及每个所述ecu标识对应的当前软件版本号;将所述车辆标识以及所述ecu信息发送至服务器;接收所述服务器返回的软件更新包,所述软件更新包包括至少一个目标ecu标识对应的升级文件,所述目标ecu标识为待升级的ecu的标识;根据所述软件更新包对所述目标车辆进行ecu升级;所述n为大于1的正整数。
11.可选地,所述软件更新包还包括配置文件;所述配置文件包括至少一个目标ecu标识以及对应的升级文件的文件名称;所述升级文件按照所述文件名称进行命名;所述根据所述软件更新包对所述目标车辆进行ecu升级,包括:对所述配置文件进行解析,得到所述至少一个目标ecu标识对应的升级文件的文件名称;对所述至少一个目标ecu标识中每个目标ecu标识,根据所述每个目标ecu标识对应的升级文件的文件名称确定对应的升级文件,根据所述确定的升级文件对所述每个目标ecu标识对应的ecu进行升级。
12.第三方面,提供了一种车辆ecu升级的装置,应用于服务器,所述装置包括:
13.接收模块,用于接收诊断设备发送的目标车辆的车辆标识以及ecu信息;所述ecu信息包括n个ecu标识以及每个所述ecu标识对应的的当前软件版本号;
14.获取模块,用于根据所述车辆标识获取所述n个ecu标识对应的最新软件版本号;
15.下发模块,用于当所述n个ecu标识中存在至少一个目标ecu标识对应的当前软件版本号与所述最新软件版本号不同时,向所述诊断设备下发软件更新包;所述软件更新包包括所述至少一个目标ecu标识对应的升级文件,以使所述诊断设备根据所述软件更新包对所述目标车辆进行ecu升级;所述n为大于1的正整数。
16.第四方面,提供了一种车辆ecu升级的装置,应用于诊断设备,所述装置包括:
17.获取模块,用于获取目标车辆的车辆标识以及对应的ecu信息;所述ecu信息包括n个ecu标识以及每个所述ecu标识对应的当前软件版本号;
18.发送模块,用于将所述车辆标识以及所述ecu信息发送至服务器;
19.接收模块,用于接收所述服务器返回的软件更新包,所述软件更新包包括至少一个目标ecu标识对应的升级文件,所述目标ecu标识为待升级的ecu的标识;
20.升级模块,用于根据所述软件更新包对所述目标车辆进行ecu升级;所述n为大于1的正整数。
21.第五方面,提供了一种电子设备,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述电子设备执行第一方面中任一项或第二方面中任一项所述的方法。
22.第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行第一方面中任一项或第二方面中任一项所述的方法。
23.本技术提出的上述技术方案与现有技术相比存在的有益效果是:
24.在本技术的第一方面中,上述服务器能够一次性接收诊断设备发送的目标车辆的车辆标识以及ecu信息,ecu信息包括n个ecu标识以及每个所述ecu标识对应的的当前软件版本号,并根据车辆标识查找服务器上与该车辆标识对应的ecu各自的最新软件版本号,然后判断是否存在至少一个ecu需要升级,若有,则将待升级的ecu标识(即目标ecu标识)对应的升级文件以及相关升级信息以软件更新包的形式一次性下发给诊断设备。由此可见,相比现有技术中服务器每次只接收该车辆内部单个ecu的信息并在该ecu需要升级的时候读该ecu进行升级,本技术的方法能够一次性接收车辆多个ecu的信息,并一次性将需要进行软件升级的ecu对应的升级文件打包发送给诊断设备,这样不仅减少了诊断设备与服务器频繁交互的次数而且提高了ecu升级的效率。
25.在本技术的第二方面、第三方面、第四方面、第五方面和第六方面中的有益效果参见第一方面的有益效果。
附图说明
26.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
27.图1为本发明实施例中车辆ecu升级的方法的流程示意图;
28.图2为本发明实施例中车辆ecu升级的方法的又一流程示意图;
29.图3为本发明实施例中车辆ecu升级的流程步骤示意图;
30.图4为本发明实施例中车辆ecu升级的装置结构示意图;
31.图5为本发明实施例中又一车辆ecu升级的装置结构示意图;
32.图6为本发明实施例中电子设备的结构示意图。
具体实施方式
33.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
34.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
35.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
36.另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
37.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。因此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
38.由于目前汽车内部的ecu少则十几个,多则上百个。在ecu使用过程中,为了进一步优化ecu的功能,需要对每个ecu中的软件进行升级。通常对每个ecu中的软件进行升级都需要从云端服务器下载ecu升级包,升级完汽车内部所有ecu需要多次访问云端服务器以下载各个ecu的升级包,这种ecu升级方法不仅需要频繁与云端服务器进行交互而且升级效率低。因此,如何提高ecu升级的效率是当前急需解决的问题。
39.下面结合附图和具体实施例对本技术做进一步详细说明。
40.图1是本技术实施例中车辆ecu升级的方法的流程示意图,本技术实施例提供的车辆ecu升级的方法,应用于服务器,该方法包括:
41.s101,接收诊断设备发送的目标车辆的车辆标识以及ecu信息;ecu信息包括n个ecu标识以及每个ecu标识对应的当前软件版本号。
42.示例性地,每个汽车生产厂家在生产汽车的过程中,都会建立一套完整的车辆信息数据库,各个厂家的车辆信息数据库包括车辆识别代码(vehicle identification number,vin码)、每个车辆识别代码对应的多个ecu标识(即ecu的id)、软件版本号、升级文件、升级时间、升级次数等,其中,上述vin码通常由17位字符组成,又称17位车架号,该vin码是每个车辆对外的唯一标识。上述服务器包括云端服务器。每个汽车生产厂家会将各自的车辆信息数据库上传至云端服务器上,当有某个ecu的软件有升级时,厂家会上传该ecu的软件升级文件,并更新该ecu的软件版本号,以方便买家用户根据自身需求及时更新车辆内部的各种软件。
43.例如,用户可以借助车辆内部的诊断设备通过无线或者有线网络(比如,wifi、4g网线和5g网线)与云端服务器建立连接。当诊断设备与云端服务器建立好连接后,云端服务器可以接收诊断设备发送的软件更新请求信息,该软件更新请求信息包括目标车辆的车辆标识以及ecu信息。上述目标车辆是指需要升级车辆内部各个ecu的车辆。上述ecu信息包括n个ecu标识以及每个所述ecu标识对应的当前软件版本号。比如,n=3,目标车辆为x1,该x1车辆的车辆标识(可以是上述vin码)为p1,该车辆内部有3个ecu,诊断设备通过车载自动诊断系统(on-board diagnostics,obd)获取上述3个ecu标识以及对应的当前软件版本号,其中,第一个ecu标识为y1且当前软件版本号v1.0,第二个ecu标识为y2且当前软件版本号v3.0,第三个ecu标识为y3且当前软件版本号v2.0;诊断设备将上述车辆标识为p1、3个ecu标识以及对应的当前软件版本号打包成软件更新请求信息,并发送给云端服务器;云端服务器接收并响应诊断设备发送的软件更新请求信息。此外,云端服务器也可以同时接收和响应多个不同诊断设备发送的软件更新请求信息,并为该多个不同诊断设备下发各自对应的软件更新包。
44.s102,根据车辆标识获取n个ecu标识对应的最新软件版本号。
45.示例性地,云端服务器接收到诊断设备发送的软件更新请求信息。云端服务器解析该软件更新请求信息,得到目标车辆的车辆标识以及ecu信息。云端服务器根据车辆标识查找目标车辆所在厂家的车辆信息数据库,并根据车辆标识查找该n个ecu标识对应的最新软件版本号。比如,n=3,目标车辆为x1,该x1车辆的车辆标识为p1,第一个ecu标识为y1且
当前软件版本号v1.0,第二个ecu标识为y2且当前软件版本号v3.0,第三个ecu标识为y3且当前软件版本号v2.0;服务器根据车辆标识p1查找到车辆标识p1对应的a厂家的车辆信息数据库,之后,根据3个ecu标识y1、y2和y3分别查找ecu标识y1、y2和y3分别对应的最新软件版本号,比如,ecu标识y1对应的最新软件版本号v2.0,ecu标识y2对应的最新软件版本号v3.0,ecu标识y3对应的最新软件版本号v3.0。
46.s103,当n个ecu标识中存在至少一个目标ecu标识对应的当前软件版本号与最新软件版本号不同时,向诊断设备下发软件更新包;软件更新包包括所述至少一个目标ecu标识对应的升级文件,以使所述诊断设备根据所述软件更新包对所述目标车辆进行ecu升级;所述n为大于1的正整数。
47.示例性地,当n个ecu标识对应的当前软件版本号中存在至少一个ecu标识对应的软件版本号与服务器上述ecu标识对应的最新软件版本号不同时,服务器会将上述至少一个ecu标识(即该目标ecu标识)对应的升级文件以及相关升级信息(比如,部分ecu名称、升级文件名称)打包成软件更新包,并将该软件更新包一次性下发给诊断设备,诊断设备解析该软件更新包,并根据解析出的每个目标ecu标识定位到对应的每个ecu,再根据每个目标ecu标识对应的升级文件对每个目标ecu标识对应的ecu进行升级操作。
48.例如,n=3,目标车辆为x1,该x1车辆的车辆标识为p1,第一个ecu标识为y1且当前软件版本号v1.0,第二个ecu标识为y2且当前软件版本号v3.0,第三个ecu标识为y3且当前软件版本号v2.0;服务器根据车辆标识p1查找到车辆标识p1对应的a厂家的车辆信息数据库,之后,根据3个ecu标识y1、y2和y3分别查找到:ecu标识y1对应的最新软件版本号v2.0,ecu标识y2对应的最新软件版本号v3.0,ecu标识y3对应的最新软件版本号v3.0;服务器将ecu标识y1的当前软件版本号v1.0与服务器上ecu标识y1对应的最新软件版本号v2.0进行比较,并确定ecu标识y1的当前软件版本号v1.0小于对应服务器上的最新软件版本号v2.0,说明ecu标识y1(即目标ecu标识)对应的ecu需要进行升级;同理,服务器判断ecu标识y2的当前软件版本号v3.0等于对应服务器上的最新软件版本号v3.0,说明ecu标识y2的当前软件版本号v3.0已经是最新的软件版本号而ecu标识y2对应的ecu无需升级;同样地,服务器判断ecu标识y3的当前软件版本号v2.0等于对应服务器上的最新软件版本号v3.0,说明ecu标识y3(即目标ecu标识)对应的ecu需要进行升级;此时,服务器会将ecu标识y1以及对应的升级文件和ecu标识y2以及对应的升级文件等相关升级信息打包成软件更新包一次性下发给诊断设备。
49.上述服务器能够一次性接收诊断设备发送的目标车辆的车辆标识以及ecu信息,ecu信息包括n个ecu标识以及每个所述ecu标识对应的当前软件版本号,并根据车辆标识查找服务器上与该车辆标识对应的ecu各自的最新软件版本号,然后判断是否存在至少一个ecu需要升级,若有,则将待升级的ecu标识(即目标ecu标识)对应的升级文件以及相关升级信息以软件更新包的形式一次性下发给诊断设备。由此可见,相比现有技术中服务器每次只接收该车辆内部单个ecu的信息并在该ecu需要升级的时候读该ecu进行升级,本技术的方法能够一次性接收车辆多个ecu的信息,并一次性将需要进行软件升级的ecu对应的升级文件打包发送给诊断设备,这样不仅减少了诊断设备与服务器频繁交互的次数而且提高了ecu升级的效率。
50.作为上述实施例中的另一种可能的实现方式,在根据车辆标识获取n个ecu标识对
应的最新软件版本号的步骤s102之前,还包括:根据车辆标识获取目标车辆的m个最新ecu标识;将m个最新ecu标识与n个ecu标识进行比对;若m个最新ecu标识与n个ecu标识完全一致,则执行根据车辆标识获取n个ecu标识对应的最新软件版本号及之后的步骤;若m个最新ecu标识与n个ecu标识不完全一致,则向诊断设备发送第一报错提示信息。
51.服务器接收到诊断设备发送的车辆标识,并根据车辆标识在车辆信息数据库中查找属于该车辆标识的m个最新ecu标识;服务器将这m个最新ecu标识与诊断设备发送的n个ecu标识进行比对;若这m个最新ecu标识与n个ecu标识完全一致,则说明服务器已经定位到上述n个ecu标识;接下来,可以获取这n个ecu标识对应的最新软件版本号。若上述m个最新ecu标识与上述n个ecu标识不完全一致,则说明上述n个ecu标识可能存在至少一个ecu标识是错误的情况,或者该车辆现有的ecu配置与最新的ecu配置不一样,此时,服务器需要向诊断设备发送第一报错提示信息;该第一报错提示信息用于提示用户当前服务器上未查找到对应的ecu标识,以避免用户进行毫无意义的等待。
52.例如,n=3,m=3,目标车辆为x2,该x2车辆的车辆标识为p2,第一个ecu标识为z1且当前软件版本号v4.0,第二个ecu标识为z2且当前软件版本号v3.0,第三个ecu标识为z3且当前软件版本号v6.0;若服务器根据车辆标识p2查找到该车辆对应的3个最新ecu标识分别为z11、z22和z33,其中,z11=z1,z22=z2和z33=z3,则说明服务器上存在诊断设备发送的n=3个ecu标识对应的软件版本相关信息,该软件版本相关信息包括:ecu标识、ecu标识对应的软件版本号、ecu标识对应ecu的升级次数和升级时间、ecu标识对应的升级文件;若服务器根据车辆标识p2查找到该车辆对应的3个最新ecu标识分别为z11、z22和z33,其中,z11≠z1,z22≠z2和z33=z3,即服务器上的3个最新ecu标识与诊断设备发送的3个ecu标识不完全一致,则说明服务器上不存在诊断设备发送的ecu标识为z1和z2对应的软件版本相关信息,此时,服务器会向诊断设备发送第一报错提示信息,以提醒用户服务器上未查找到诊断设备发送的ecu标识为z1和z2对应的软件版本相关信息,以避免用户进行毫无意义的等待。文中出现的“=”表示等于,上述“≠”表示不等于。
53.再例如,n=3,m=4,目标车辆为x2,该x2车辆的车辆标识为p2,第一个ecu标识为z1且当前软件版本号v4.0,第二个ecu标识为z2且当前软件版本号v3.0,第三个ecu标识为z3且当前软件版本号v6.0;若服务器根据车辆标识p2查找到该车辆对应的4个最新ecu标识分别为z11、z22、z33和z44,其中,z11=z1,z22=z2和z33=z3,则说明服务器上存在诊断设备发送的n=3个ecu标识对应的软件版本相关信息,该软件版本相关信息包括:ecu标识、ecu标识对应的软件版本号、ecu标识对应ecu的升级次数和升级时间、ecu标识对应的升级文件;若服务器根据车辆标识p2查找到该车辆对应的4个最新ecu标识分别为z11、z22、z33和z44,其中,z11、z22、z33和z44中没有任何一个最新ecu标识与诊断设备发送的3个ecu标识中的任何一个ecu标识一致,即服务器上的4个最新ecu标识与诊断设备发送的3个ecu标识完全不一致,则说明服务器上不存在诊断设备发送的n=3个ecu标识对应的软件版本相关信息,此时,服务器会向诊断设备发送第一报错提示信息,以提醒用户服务器上未查找到诊断设备发送的n=3个ecu标识对应的软件版本相关信息,以避免用户进行毫无意义的等待。
54.在一些实施例中,服务器也可以只针对m个最新ecu标识与n个ecu标识之间重复的ecu标识是否需要软件升级进行检查判断,并在至少一个ecu标识对应的软件需要升级时,
一次性给诊断设备打包下发软件更新包。
55.作为上述实施例中的另一种可能的实现方式,ecu信息还包括n个ecu标识中每个ecu标识对应的当前硬件版本号;若m个最新ecu标识与n个ecu标识完全一致,在根据车辆标识获取n个ecu标识对应的最新软件版本号之前,且在服务器将所述n个ecu标识与获取的m个最新ecu标识比对结果为完全一致之后,该方法还包括:
56.针对每个ecu标识,查找服务器上这n个ecu标识对应的硬件版本号,并将硬件版本号与当前硬件版本号进行比对;若硬件版本号与当前硬件版本号完全一致,则执行根据车辆标识获取n个ecu标识对应的最新软件版本号及之后的步骤;若硬件版本号与当前硬件版本号不完全一致,则向诊断设备发送第二报错提示信息。
57.针对车辆配置的ecu,不同批次的ecu硬件存在差异,且对应的软件不一致。当车辆当前配置的ecu硬件是旧批次的,或者是一些其他的情况,那么当车辆存在一个ecu的硬件配置与车辆信息数据库记录的该车辆标识对应的该ecu的硬件配置不一致时,该车辆该ecu使用的软件也与车辆信息数据库记录的不一样,无法根据该车辆信息数据库进行软件更新。因此,在本技术实施例中,在针对每个ecu进行软件版本比对前,需要检查该ecu的当前硬件版本号与车辆信息数据库记录的硬件版本号是否一致,只有一致时,才进行软件版本的比对。
58.上述诊断设备在向服务器发送ecu信息时,该ecu信息还包括上述n个ecu标识中每个ecu标识对应的当前硬件版本号。诊断设备在获取n个ecu标识中每个ecu标识对应的当前软件版本号时也获取了上述每个ecu标识对应的当前硬件版本号;再从车辆信息数据库中查找每个ecu标识记录的硬件版本号。当存在一个ecu标识对应的当前硬件版本号与车辆信息数据库记录的硬件版本号不一致时,则服务器向诊断设备发送第二报错提示信息,该第二报错提示信息用于提示用户前往就近的汽车4s店,更换ecu硬件。
59.例如,n=3,目标车辆为x3,该x3车辆的车辆标识为p3,诊断设备发送的第一个ecu标识为w1且当前硬件版本号为v2.0,第二个ecu标识为w2且当前硬件版本号为v4.0,以及第三个ecu标识为w3且当前硬件版本号为v5.0;服务器根据车辆标识p2去查找上述3个ecu标识对应的硬件版本号,当服务器查找的结果分别为ecu标识为w1的硬件版本号为v2.0、ecu标识为w2的硬件版本号为v4.0和ecu标识为w3的硬件版本号为v5.0时,说明当前车辆发送的ecu标识对应的硬件配置与车辆信息数据库记录的硬件配置完全一致,可进行软件版本的比对。当服务器查找的结果分别为ecu标识为w1的硬件版本号为v3.0、ecu标识为w2的硬件版本号为v6.0和ecu标识为w3的硬件版本号为v7.0时,由此可见,当前车辆发送的ecu标识对应的硬件配置与车辆信息数据库记录的硬件配置完全不一致,服务器会向诊断设备发送第二报错提示信息,以提示用户前往就近的汽车4s店,更换ecu硬件。。
60.特此说明,上述“不完全一致”是指一部分一致且另一部分不一致,或者全部不一致。
61.在一些实施例中,服务器也可以只针对当前硬件版本号与车辆信息数据库中的硬件版本号一致的ecu标识进行版本比对,判断进行是否需要进行软件升级的检测,并在至少一个ecu标识对应的软件需要升级时,一次性给诊断设备打包下发软件更新包。
62.作为上述实施例中的另一种可能的实现方式,软件更新包还包括配置文件;配置文件包括至少一个目标ecu标识以及对应的升级文件的文件名称;升级文件按照文件名称
进行命名。该配置文件用于记录至少一个目标ecu标识以及对应的相关升级信息,该相关升级信息包括:车辆类型(即cartype)、车辆识别代码(即vin)、至少一个ecu的硬件版本号(hardwareversion)、至少一个ecu的最新软件版本号(softwareversion)、至少一个ecu名称(比如,防抱死制动系统、安全气囊等)和至少一个ecu的升级文件的文件名称(filename);至少一个升级文件按照各自的文件名称进行命名,用于升级至少一个ecu的软件。例如,以配置文件记录两个ecu标识以及对应的相关升级信息为例,第一个ecu(即ecu1)标识为t1,第一个ecu名称为防抱死制动系统(anti-lockbraking system,abs),硬件版本号(即hardwareversion)为1.1,最新软件版本号(即softwareversion)为1.2,升级文件的文件名称(即filename)为flashfile1.s19;第二个ecu(即ecu2)标识为t2,第二个ecu名称为安全气囊(electroniccontrol of safety airbag,srs),硬件版本号(即hardwareversion)为1.0,最新软件版本号(即softwareversion)为1.0,升级文件的文件名称(即filename)为flashfile2.s19。
63.作为上述实施例中的另一种可能的实现方式,配置文件为xml文件、txt文件和ini文件中的一种。例如,配置文件使用xml文件格式301来记录至少一个目标ecu标识对应的ecu的相关升级信息,其中,cartype=xxx表示车辆类型为xxx(比如,xxx为奔驰);vin=yyy表示车辆的车架号(即车辆识别代码);ecu1代码标签中abs表示ecu1名称为abs;hardwareversion=1.1表示abs对应的当前硬件版本号;softwareversion=1.2表示abs对应的最新软件版本号;filename=flashfile1.s19表示abs对应的升级文件的文件名称;ecu2代码标签中srs表示ecu名称为srs;hardwareversion=1.0表示srs对应的当前硬件版本号;softwareversion=1.0表示srs对应的最新软件版本号;filename=flashfile2.s19表示srs对应的升级文件的文件名称。
64.再例如,配置文件使用txt文件格式401来记录n个ecu相关升级信息,其中,cartype=xxx表示车辆类型为xxx(比如,xxx为奔驰);vin=yyy表示车辆的车架号(即车辆识别代码);ecu=abs表示ecu名称为abs;hardwareversion=1.0表示abs对应的当前硬件版本号;softwareversion=1.0表示abs对应的最新软件版本号;filename=flashfile1.s19表示abs对应的升级文件的文件名称;ecu=srs表示ecu名称为srs;hardwareversion=2.0表示srs对应的当前硬件版本号;softwareversion=2.0表示srs对应的最新软件版本号;filename=flashfile2.s19表示srs对应的升级文件的文件名称。
65.图2是本技术实施例中车辆ecu升级的方法的又一流程示意图,该车辆ecu升级的方法,应用于诊断设备,该方法包括:
66.s201,获取目标车辆的车辆标识以及对应的ecu信息;ecu信息包括n个ecu标识以及每个ecu标识对应的当前软件版本号。
67.示例性地,该车辆标识包括:车辆识别代码vin码;上述目标车辆是指需要升级车辆内部各个ecu的车辆。上述ecu信息包括n个ecu标识以及每个所述ecu标识对应的当前软件版本号。例如,n=3,目标车辆为x1,该x1车辆的车辆标识为p1,该车辆内部有3个ecu,诊断设备通过车载自动诊断系统(on-board diagnostics,obd)获取上述3个ecu标识以及对应的当前软件版本号,其中,第一个ecu标识为y1且当前软件版本号v1.0,第二个ecu标识为y2且当前软件版本号v3.0,第三个ecu标识为y3且当前软件版本号v2.0。
68.s202,将车辆标识以及ecu信息发送至服务器。
69.示例性地,诊断设备将上述车辆标识为p1、3个ecu标识以及对应的当前软件版本号打包成软件更新请求信息,并发送给服务器(比如,云端服务器)。服务器接收并响应诊断设备发送的软件更新请求信息。
70.s203,接收服务器返回的软件更新包,软件更新包包括至少一个目标ecu标识对应的升级文件,目标ecu标识为待升级的ecu的标识。
71.示例性地,服务器将至少一个待升级的目标ecu标识和对应的升级文件以及相关升级信息(比如,配置文件)以软件更新包的形式一次性下发给诊断设备。比如,若服务器判断出需要升级两个ecu,这两个ecu分别是防抱死制动系统和安全气囊,则服务器会将这两个ecu的ecu标识和对应的升级文件以及相关升级信息打包成软件更新包并一次性发送给诊断设备;上述两个ecu相关升级信息包括:车辆类型、车辆识别代码(即vin)、两个ecu的硬件版本号、两个ecu的最新软件版本号、两个ecu名称和两个ecu的升级文件的文件名称。
72.s204,根据软件更新包对目标车辆进行ecu升级;n为大于1的正整数。
73.示例性地,诊断设备接收并解析服务器返回的软件更新包,该软件更新包包括至少一个目标ecu标识以及对应的升级文件;诊断设备对该软件更新包进行解析并定位每个目标ecu标识对应的ecu,之后,根据每个目标ecu标识对应的升级文件对每个目标ecu标识对应的ecu进行升级操作。例如,诊断设备解析出其中一个目标ecu标识为u1,诊断设备根据目标ecu标识u1定位对应的ecu(比如,该ecu为abs),并通过该目标ecu标识u1对应的升级文件的文件名称定位到该目标ecu标识u1对应的升级文件;目标ecu标识u1对应的ecu根据该升级文件进行ecu内部软件的升级操作。
74.上述诊断设备将车辆标识以及ecu信息发给服务器,服务器根据诊断设备发送的ecu信息以及车辆标识为该车辆查找待升级的多个目标ecu;并将该待升级的多个目标ecu的相关升级信息以及升级文件打包成软件更新包后再一次性下发给诊断设备,诊断设备接收服务器下发的软件更新包,并根据软件更新包中的相关升级信息(比如,目标ecu标识和升级文件)对多个目标ecu进行升级。由此可见,相比现有技术中诊断设备每次只接收一个目标ecu的软件更新包,本技术的诊断设备可以一次接收包含多个目标ecu的相关升级信息以及升级文件的软件更新包,并根据该软件更新包为多个目标ecu进行升级,这样不仅减少了服务器与诊断设备频繁交互的次数而且提高了ecu升级的效率。
75.作为上述实施例中的一种可能的实现方式,软件更新包还包括配置文件;配置文件包括至少一个目标ecu标识以及对应的升级文件的文件名称;升级文件按照文件名称进行命名;根据软件更新包对目标车辆进行ecu升级,包括:对配置文件进行解析,得到至少一个目标ecu标识对应的升级文件的文件名称;对至少一个目标ecu标识中每个目标ecu标识,根据每个目标ecu标识对应的升级文件的文件名称确定对应的升级文件,根据确定的升级文件对每个目标ecu标识对应的ecu进行升级。
76.该配置文件用于记录至少一个目标ecu标识以及对应的相关升级信息。该配置文件可以是xml文件、txt文件和ini文件中的一种。例如,配置文件使用xml文件格式来记录xxx车辆内部的两个目标ecu标识对应的ecu的相关升级信息,其中,cartype=xxx表示车辆类型为xxx(比如,xxx为奔驰);vin=yyy表示车辆的车架号(即车辆识别代码);第一ecu标识为hhh,该第一ecu标识hhh对应的ecu名称为abs;该第一ecu标识hhh对应的ecu的当前硬件版本号为1.2;该第一ecu标识hhh对应的ecu的最新软件版本号为1.4;该第一ecu标识hhh
对应的ecu的第一升级文件的文件名称为flashfile1.s19;第二ecu标识为mmm,该第二ecu标识mmm对应的ecu名称为srs;该第二ecu标识mmm对应的ecu的当前硬件版本号为1.3;该第二ecu标识mmm对应的ecu的最新软件版本号为1.5;该第二ecu标识mmm对应的ecu的第二升级文件的文件名称为flashfile2.s19;诊断设备根据配置文件中的第一ecu标识hhh定位到对应的待升级ecu(即abs),之后根据第一ecu标识hhh对应的ecu的第一升级文件的文件名称flashfile1.s19定位到对应的第一升级文件,最后,第一ecu标识hhh对应的ecu(即abs)根据第一升级文件进行升级操作;同理,诊断设备根据配置文件中的第二ecu标识mmm定位到对应的待升级ecu(即srs),之后根据第一ecu标识mmm对应的ecu的第一升级文件的文件名称flashfile2.s19定位到对应的第二升级文件,最后,第二ecu标识mmm对应的ecu(即srs)根据第二升级文件进行升级操作。
77.特此说明,若图2所述方法的名词与图1所述方法的名词为同一名词,则图2所述方法的名词解释适用于图1所述方法的名词解释。因此,对于图2所述方法与图1所述方法的同一名词的解释在此不再赘述。
78.为了便于理解,下面结合图3对本技术提供的车辆ecu升级的整体流程步骤进行示例性说明。
79.步骤1:各个汽车生产厂家在云端服务器上建立各自的车辆信息数据库。每个汽车生产厂家在生产汽车的过程中,都会建立一套完整的车辆信息数据库,各个厂家的车辆信息数据库包括车辆识别代码(即vin码)、ecu标识(即ecu的id)、硬件版本号、软件版本号、升级文件、升级时间、升级次数等。
80.步骤2:启动诊断设备。诊断设备通过wifi或4g或5g或网线连接存储ecu相关升级信息和升级文件的云端服务器(即云端服务器存储各个汽车生产厂家建立的车辆信息数据库)。
81.步骤3:诊断设备通过obd诊断座连接目标车辆并与目标车辆建立通讯,读取目标车辆当前所有ecu信息,包括ecu标识(即ecu的id)、当前硬件版本号、当前软件版本号,以及vin码,并所有ecu信息一起打包发送给云端服务器。
82.步骤4:云端服务器根据诊断设备发送的vin码获取服务器上属于该vin码的车辆的所有ecu最新信息(比如,ecu的最新软件版本号),并与诊断设备发送的所有ecu信息进行比对,比如,先检查诊断设备发送的每个ecu标识与云端服务器上属于该vin码的车辆的每个ecu标识是否一致,若一致,则继续执行步骤5;若不一致,则云端服务器向诊断设备发送报错信息(比如,第一报错提示信息)。
83.步骤5:检查检查诊断设备发送的每个ecu标识对应的当前硬件版本号与云端服务器上属于该vin码的车辆的每个ecu标识对应的硬件版本号是否一致;若一致,则继续执行步骤6;若不一致,则云端服务器向诊断设备发送报错信息(比如,第二报错提示信息)并结束。通常用户根据该提示会前往汽车4s店更换ecu硬件。
84.步骤6:在确保每个ecu标识和每个ecu标识对应的当前硬件版本号一致的情况下,最后检查云端服务器上每个ecu标识对应的最新软件版本号是否大于诊断设备发送每个ecu标识对应的当前软件版本号;若云端服务器检查到第一ecu标识对应的最新软件版本号大于诊断设备发送第一ecu标识对应的当前软件版本号;则说明诊断设备发送给的第一ecu标识对应的ecu内部的软件需要升级,继续执行步骤7;若云端服务器检查到第一ecu标识对
应的最新软件版本号小于或者等于诊断设备发送第一ecu标识对应的当前软件版本号;则说明诊断设备发送给的第一ecu标识对应的ecu内部的软件无需要升级。
85.步骤7:云端服务器会将诊断设备发送的所有ecu信息均按照步骤4,5,6的方法进行比对。
86.步骤8:云端服务器根据步骤7的比对结果,将所有需要升级的ecu标识对应的ecu名称、对应的升级文件的文件名称全部放在一个配置文件(比如,xml文件、或者.txt文件或者.ini文件)中,并所有需要升级的ecu标识对应的升级文件一起打包成软件更新包;最后将该软件更新包一次性下发给诊断设备。
87.步骤9:诊断设备解析配置文件,找到需要升级的ecu名称以及对应的升级文件,对需要升级的ecu进行升级操作。
88.步骤10:检查升级结果。诊断设备再次读取目标车辆升级完后的所有ecu信息,并将升级完后的所有ecu信息发送给服务器;云端服务器重复步骤3,4,5,6对诊断设备发送的升级完后的所有ecu信息与云端服务器上属于该vin码的车辆的所有ecu最新信息进行比对;若一致,则代表属于该vin码的车辆的所有ecu升级成功,至此,该vin码对应的车辆的所有ecu升级操作结束。
89.图4是本技术提供的车辆ecu升级的装置结构示意图。该装置400包括接收模块401、获取模块402和下发模块404;该装置400应用于服务器。
90.接收模块401,用于接收诊断设备发送的目标车辆的车辆标识以及ecu信息;ecu信息包括n个ecu标识以及每个ecu标识对应的的当前软件版本号;
91.获取模块402,用于根据车辆标识获取n个ecu标识对应的最新软件版本号;
92.下发模块404,用于当n个ecu标识中存在至少一个目标ecu标识对应的当前软件版本号与最新软件版本号不同时,向诊断设备下发软件更新包;软件更新包包括至少一个目标ecu标识对应的升级文件,以使诊断设备根据软件更新包对目标车辆进行ecu升级;n为大于1的正整数。
93.装置400执行车辆ecu升级的方法的具体方式以及产生的有益效果可以参见图1所示的方法实施例中的相关描述。
94.在图4所示装置中,装置400还包括:比对模块403;其中获取模块402还用于根据车辆标识获取目标车辆的m个最新ecu标识;比对模块403,用于将m个最新ecu标识与n个ecu标识进行比对;若m个最新ecu标识与n个ecu标识完全一致,则执行根据车辆标识获取n个ecu标识对应的最新软件版本号及之后的步骤;若m个最新ecu标识与n个ecu标识不完全一致,则向诊断设备发送第一报错提示信息,m为大于1的正整数。获取模块402和比对模块403执行上述步骤的有益效果可以参见上述实施例。
95.在图4所示装置中,比对模块403,还用于针对每个ecu标识,查找对应的硬件版本号,并将所述硬件版本号与所述当前硬件版本号进行比对;若硬件版本号与当前硬件版本号完全一致,则执行根据车辆标识获取n个ecu标识对应的最新软件版本号及之后的步骤;若硬件版本号与当前硬件版本号不完全一致,则向诊断设备发送第二报错提示信息。比对模块403执行上述步骤的有益效果可以参见上述实施例。
96.上述实施例中,软件更新包还包括配置文件;配置文件包括至少一个目标ecu标识以及对应的升级文件的文件名称;升级文件按照文件名称进行命名。
processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件,例如,分立门、晶体管逻辑器件或分立硬件组件。
113.本技术还提供了一种计算机程序产品,该计算机程序产品被处理器601执行时实现本技术中任一方法实施例所述的方法。
114.该计算机程序产品可以存储在存储器602中,例如是程序604,程序604经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器601执行的可执行目标文件。
115.本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本技术中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
116.该计算机可读存储介质例如是存储器602。存储器602可以是易失性存储器或非易失性存储器,或者,存储器602可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。
117.本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
118.在本技术所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它方式实现。例如,以上描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
119.以上所述实施例仅用以说明本技术的技术方案,而非对其限制。尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。