一种汽车内MCU的升级方法及装置与流程

文档序号:17159599发布日期:2019-03-20 00:29阅读:955来源:国知局
一种汽车内MCU的升级方法及装置与流程

本发明实施例涉及汽车电子技术领域,更具体的说,涉及一种汽车内mcu的升级方法及装置。



背景技术:

近年来,伴随着人们对汽车功能的不断追求,汽车工业迅速发展。在该过程中,汽车内的数据量爆发式的增长,为适应汽车功能和数据量的增长,每辆汽车所需的mcu(microcontrollerunit,微控制单元)数量也越来越多。同时,在实际使用中,为不断地提升各mcu的性能,经常需要对各mcu进行升级。

目前,汽车内的mcu进行升级时,各mcu分别从上位机获取各自的升级数据进行升级。

发明人在实现本发明的过程中发现:目前的mcu升级方式,在待升级mcu的数量为两个或两个以上时,各mcu分别获取各自的升级数据,无法实现mcu的批量升级。



技术实现要素:

有鉴于此,本发明实施例公开一种汽车内mcu的升级方法及装置,以能够实现mcu的批量升级。

本发明实施例公开一种汽车内mcu的升级方法,应用于汽车内的主mcu,所述方法包括:

接收上位机发送的升级总包,所述升级总包中包括mcu升级包和升级信息文件,所述mcu升级包的数量等于待升级mcu的数量且一一对应,所述升级信息文件包括所述mcu升级包和所述待升级mcu之间的对应关系;

根据所述对应关系确定每个所述待升级mcu对应的所述mcu升级包;

控制每个所述待升级mcu利用其对应的所述mcu升级包进行升级。

可选地,在本发明实施例的一种具体实施方式中,所述方法还包括:

获取通用配置信息,所述通用配置信息包括各mcu的升级优先级;

根据各mcu的升级优先级将所有所述待升级mcu进行升级排序,得到升级顺序列表;

控制每个所述待升级mcu利用其对应的所述mcu升级包进行升级,包括:

控制所有所述待升级mcu利用各自对应的所述mcu升级包按照所述升级顺序列表依次完成升级。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括进行差分升级的所述mcu升级包的差分升级标识和差分升级版本号,所述通用配置信息还包括各mcu的升级前版本号和备份包;控制所有所述待升级mcu利用各自对应的所述mcu升级包按照所述升级顺序列表依次完成升级,包括:

在第k个所述待升级mcu按照所述升级顺序列表进行升级时,如果所述升级信息文件中包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,且第k个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第k个所述待升级mcu的升级前版本号相同,则基于第k个所述待升级mcu对应所述mcu升级包和第k个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第k个所述待升级mcu的升级;如果所述升级信息文件包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,但第k个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第k个所述待升级mcu的升级前版本号不相同,则第k个所述待升级mcu无法完成升级,并向所述上位机发送第k个所述待升级mcu的升级前版本号;

如果所述升级信息文件不包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,则直接基于第k个所述待升级mcu对应所述mcu升级包完成升级;其中,第k个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括每个所述mcu升级包的差分升级标识和差分升级版本号,所述通用配置信息还包括各mcu的升级前版本号和备份包;控制所有所述待升级mcu利用各自对应的所述mcu升级包按照所述升级顺序列表依次完成升级,包括:

在第l个所述待升级mcu按照所述升级顺序列表进行升级时,根据所述升级信息文件确定出第l个所述待升级mcu对应所述mcu升级包的差分升级标识;

根据第l个所述待升级mcu对应所述mcu升级包的差分升级标识确定第l个所述待升级mcu是否进行差分升级;

如果第l个所述待升级mcu进行差分升级,则判断第l个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第l个所述待升级mcu的升级前版本号是否相同;如果相同,则基于第l个所述待升级mcu对应所述mcu升级包和第l个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第l个所述待升级mcu的升级;如果不相同,则第l个所述待升级mcu无法完成升级,并向所述上位机发送第l个所述待升级mcu的升级前版本号;

如果第l个所述待升级mcu不进行差分升级,则直接基于第l个所述待升级mcu对应所述mcu升级包完成升级;其中,第l个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括进行差分升级的所述mcu升级包的差分升级标识和差分升级版本号,所述方法还包括:

获取各mcu的升级前版本号和备份包;

控制每个所述待升级mcu利用其对应的所述mcu升级包进行升级,包括:

在第m个所述待升级mcu进行升级时,如果所述升级信息文件中包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,且第m个所述待升级mcu对应所述mcu升级包的差分升级版本号和第m个所述待升级mcu的升级前版本号相同,则基于第m个所述待升级mcu对应所述mcu升级包和第m个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第m个所述待升级mcu的升级;如果所述升级信息文件中包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,但第m个所述待升级mcu对应所述mcu升级包的差分升级版本号和第m个所述待升级mcu的升级前版本号不相同,则第m个所述待升级mcu无法完成升级,并向所述上位机发送第m个所述待升级mcu的升级前版本号;

如果所述升级信息文件中不包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,则直接基于第m个所述待升级mcu对应所述mcu升级包完成升级;其中,第m个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级文件信息还包括每个所述mcu升级包的初始校验值;所述方法还包括:

分别计算每个所述mcu升级包的验证校验值;

判断每个所述mcu升级包的初始校验值和验证校验值是否相同;

如果每个所述mcu升级包的初始校验值和验证校验值均相同,则根据所述对应关系确定每个所述待升级mcu对应的所述mcu升级包,否则,结束mcu升级流程。

可选地,在本发明实施例的一种具体实施方式中,所述方法还包括:

对升级失败的所述待升级mcu进行重复升级,如果存在重复升级预设次数后升级失败的所述待升级mcu,则对所有所述待升级mcu进行回滚升级;其中,所述主mcu采用双备份分区,对所有所述待升级mcu进行回滚升级时,所述主mcu使用原始备份分区工作,利用预先备份的备份包对除所述主mcu外的其他所述待升级mcu进行回滚升级。

可选地,在本发明实施例的一种具体实施方式中,所述方法还包括:

对于回滚升级失败的除所述主mcu外的其他所述待升级mcu,利用诊断协议传输备份包进行回滚升级。

可选地,在本发明实施例的一种具体实施方式中,所述升级总包是加密的,所述方法还包括:

对所述升级总包进行解密。

可选地,在本发明实施例的一种具体实施方式中,接收上位机发送的升级总包,包括:

接收所述上位机通过wifi、蓝牙或4g发送的所述升级总包。

可选地,在本发明实施例的一种具体实施方式中,所述方法还包括:在所有所述待升级mcu升级完成后,对所述mcu升级包进行备份。

本发明实施例还提供一种汽车内mcu的升级装置,应用于汽车内的主mcu,所述装置包括:

接收模块,用于接收上位机发送的升级总包,所述升级总包中包括mcu升级包和升级信息文件,所述mcu升级包的数量等于待升级mcu的数量且一一对应,所述升级信息文件包括所述mcu升级包和所述待升级mcu之间的对应关系;

确定模块,用于根据所述对应关系确定每个所述待升级mcu对应的所述mcu升级包;

控制模块,用于控制每个所述待升级mcu利用其对应的所述mcu升级包进行升级。

可选地,在本发明实施例的一种具体实施方式中,所述装置还包括:

第一获取模块,用于获取通用配置信息,所述通用配置信息包括各mcu的升级优先级;

排序模块,用于根据各mcu的升级优先级将所有所述待升级mcu进行升级排序,得到升级顺序列表;

所述控制模块具体用于控制所有所述待升级mcu利用各自对应的所述mcu升级包按照所述升级顺序列表依次完成升级。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括进行差分升级的所述mcu升级包的差分升级标识和差分升级版本号,所述通用配置信息还包括各mcu的升级前版本号和备份包;所述控制模块具体用于:

在第k个所述待升级mcu按照所述升级顺序列表进行升级时,如果所述升级信息文件中包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,且第k个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第k个所述待升级mcu的升级前版本号相同,则基于第k个所述待升级mcu对应所述mcu升级包和第k个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第k个所述待升级mcu的升级;如果所述升级信息文件包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,但第k个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第k个所述待升级mcu的升级前版本号不相同,则第k个所述待升级mcu无法完成升级,并向所述上位机发送第k个所述待升级mcu的升级前版本号;

如果所述升级信息文件不包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,则直接基于第k个所述待升级mcu对应所述mcu升级包完成升级;其中,第k个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括每个所述mcu升级包的差分升级标识和差分升级版本号,所述通用配置信息还包括各mcu的升级前版本号和备份包;所述控制模块具体用于:

在第l个所述待升级mcu按照所述升级顺序列表进行升级时,根据所述升级信息文件确定出第l个所述待升级mcu对应所述mcu升级包的差分升级标识;

根据第l个所述待升级mcu对应所述mcu升级包的差分升级标识确定第l个所述待升级mcu是否进行差分升级;

如果第l个所述待升级mcu进行差分升级,则判断第l个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第l个所述待升级mcu的升级前版本号是否相同;如果相同,则基于第l个所述待升级mcu对应所述mcu升级包和第l个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第l个所述待升级mcu的升级;如果不相同,则第l个所述待升级mcu无法完成升级,并向所述上位机发送第l个所述待升级mcu的升级前版本号;

如果第l个所述待升级mcu不进行差分升级,则直接基于第l个所述待升级mcu对应所述mcu升级包完成升级;其中,第l个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括进行差分升级的所述mcu升级包的差分升级标识和差分升级版本号,所述装置还包括:

第二获取模块,用于获取各mcu的升级前版本号和备份包;

所述控制模块具体用于:

在第m个所述待升级mcu进行升级时,如果所述升级信息文件中包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,且第m个所述待升级mcu对应所述mcu升级包的差分升级版本号和第m个所述待升级mcu的升级前版本号相同,则基于第m个所述待升级mcu对应所述mcu升级包和第m个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第m个所述待升级mcu的升级;如果所述升级信息文件中包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,但第m个所述待升级mcu对应所述mcu升级包的差分升级版本号和第m个所述待升级mcu的升级前版本号不相同,则第m个所述待升级mcu无法完成升级,并向所述上位机发送第m个所述待升级mcu的升级前版本号;

如果所述升级信息文件中不包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,则直接基于第m个所述待升级mcu对应所述mcu升级包完成升级;其中,第m个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级文件信息还包括每个所述mcu升级包的初始校验值;所述装置还包括:

计算模块,用于分别计算每个所述mcu升级包的验证校验值;

判断模块,用于判断每个所述mcu升级包的初始校验值和验证校验值是否相同;

所述确定模块具体用于如果每个所述mcu升级包的初始校验值和验证校验值均相同,则根据所述对应关系确定每个所述待升级mcu对应的所述mcu升级包,否则,结束mcu升级流程。

可选地,在本发明实施例的一种具体实施方式中,所述装置还包括:

回滚模块,用于对升级失败的所述待升级mcu进行重复升级,如果存在重复升级预设次数后升级失败的所述待升级mcu,则对所有所述待升级mcu进行回滚升级;其中,所述主mcu采用双备份分区,对所有所述待升级mcu进行回滚升级时,所述主mcu使用原始备份分区工作,利用预先备份的备份包对除所述主mcu外的其他所述待升级mcu进行回滚升级。

可选地,在本发明实施例的一种具体实施方式中,所述回滚模块还用于对于回滚升级失败的除所述主mcu外的其他所述待升级mcu,利用诊断协议传输备份包进行回滚升级。

可选地,在本发明实施例的一种具体实施方式中,所述升级总包是加密的,所述装置还包括:

解密模块,用于对所述升级总包进行解密。

可选地,在本发明实施例的一种具体实施方式中,所述接收模块具体用于接收所述上位机通过wifi、蓝牙或4g发送的所述升级总包。

可选地,在本发明实施例的一种具体实施方式中,所述装置还包括:

备份模块,用于在所有所述待升级mcu升级完成后,对所述mcu升级包进行备份。

本发明实施例所提供的一种汽车内mcu的升级方法及装置,汽车内的主mcu首先接收上位机发送的升级总包。其中,升级总包中包括mcu升级包和升级信息文件,mcu升级包的数量等于待升级mcu的数量且一一对应,升级信息文件包括mcu升级包和待升级mcu之间的对应关系。然后根据对应关系确定每个待升级mcu对应的mcu升级包,并控制每个待升级mcu利用其对应的mcu升级包进行升级。本发明实施例的技术方案,主mcu接收的升级总包中包括有mcu升级包和待升级mcu之间的对应关系,以及与待升级mcu一一对应的mcu升级包。因此,主mcu能够一次获取一批待升级mcu的mcu升级包,然后基于对应关系确定每个待升级mcu对应的mcu升级包并控制每个待升级mcu进行升级,能够实现mcu的批量升级。

附图说明

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

图1为本发明实施例提供的一种应用场景示意图;

图2为本发明实施例提供的一种汽车内mcu的升级方法的流程示意图;

图3为本发明实施例提供的另一种汽车内mcu的升级方法的流程示意图;

图4为本发明实施例提供的一种汽车内mcu的升级装置的结构示意图。

具体实施方式

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

本发明实施例公开一种汽车内mcu的升级方法及装置,以能够实现mcu的批量升级。

为使本发明实施例更易理解,首先对本发明实施例的应用场景做一简单介绍。

如图1所示,为本发明实施例提供的一种应用场景示意图。该应用场景中包括有通信连接关系的上位机1和汽车2。上位机1可以为个人电脑、服务器、手机等具备制作升级总包或存储升级总包的电子设备。汽车2内包括多个mcu,其中部分或全部mcu为提升性能,在必要时需要进行升级。在本文中,我们称汽车2内需要进行升级的mcu为待升级mcu。此外,在汽车内的所有mcu中选择出一个mcu作为主mcu。

在图1中,上位机1负责制作待升级mcu的mcu升级包,并在mcu升级包制作完成后,生成升级总包,或者上位机1负责存储升级总包,升级总包由另外的电子设备制作。所生成或存储的升级总包中包括mcu升级包和升级信息文件。由于mcu升级包是为待升级mcu制作的,所以mcu升级包的数量等于待升级mcu的数量且一一对应,在待升级mcu为两个或两个以上时,mcu升级包的数量也为两个或两个以上。为使汽车2接收到升级总包后能够将待升级mcu和mcu升级包对应起来,升级信息文件中至少应包括mcu升级包和待升级mcu之间的对应关系。汽车2在需要执行mcu升级流程时,汽车2内的主mcu会利用上位机1和汽车2之间建立的通信连接关系获取升级总包,进而执行后续的mcu升级流程。

为使本发明实施例更加容易理解,下面将结合具体实施例对本发明实施例的设计思想做更加详细的解释说明。

参见图2,为本发明实施例提供的一种汽车内mcu的升级方法的流程示意图。该汽车内mcu的升级方法的执行主体为汽车内的主mcu。该汽车内mcu的升级方法可以包括:

在步骤s201中,接收上位机发送的升级总包。

其中,升级总包中包括mcu升级包和升级信息文件,mcu升级包的数量等于待升级mcu的数量且一一对应,升级信息文件包括mcu升级包和待升级mcu之间的对应关系。在实际应用中,可以用待升级mcu的设备名来标识待升级mcu,用mcu升级包的版本号来标识mcu升级包,进而用设备名和版本号的对应关系来表征mcu升级包和待升级mcu之间的对应关系。当然,本发明实施例并不限于此,例如还可以用待升级mcu的唯一识别码来标识待升级mcu,用mcu升级包的软件名称来标识mcu升级包,进而生成mcu升级包和待升级mcu之间的对应关系,等等。

另外,在接收所述上位机发送的升级总包时,主mcu可采用wifi、蓝牙或4g等通信方式接收升级总包。并首选wifi或蓝牙通信方式。

在步骤s202中,根据对应关系确定每个待升级mcu对应的mcu升级包。

由于升级信息文件中所包括的对应关系为待升级mcu和mcu升级包之间的对应关系。所以主mcu能够根据该对应关系确定出每个待升级mcu的mcu升级包。

在步骤s203中,控制每个待升级mcu利用其对应的mcu升级包进行升级。

在步骤s202中确定出每个待升级mcu对应的mcu升级包后,主mcu即可利用每个待升级mcu对应的mcu升级包,完成每个待升级mcu的升级过程。具体的升级过程为已有技术,即先进行擦除操作,然后进行mcu升级包的烧写。

本发明实施例所提供的一种汽车内mcu的升级方法,汽车内的主mcu首先接收上位机发送的升级总包。其中,升级总包中包括mcu升级包和升级信息文件,mcu升级包的数量等于待升级mcu的数量且一一对应,升级信息文件包括mcu升级包和待升级mcu之间的对应关系。然后根据对应关系确定每个待升级mcu对应的mcu升级包,并控制每个待升级mcu利用其对应的mcu升级包进行升级。本发明实施例的技术方案,主mcu接收的升级总包中包括有mcu升级包和待升级mcu之间的对应关系,以及与待升级mcu一一对应的mcu升级包。因此,主mcu能够一次获取一批待升级mcu的mcu升级包,然后基于对应关系确定每个待升级mcu对应的mcu升级包并控制每个待升级mcu进行升级,能够实现mcu的批量升级。

另外,在多个mcu升级时,无论是每个mcu单独升级还是多个mcu批量升级,都可能出现mcu升级顺序不合理,最终导致升级失败或者升级失败后ecu无法恢复的情况。为此,本发明实施例提供了一种能够设定mcu升级优先级的升级方法。参见图3,为本发明实施例提供的另一种汽车内mcu的升级方法的流程示意图。该汽车内mcu的升级方法的执行主体为汽车内的主mcu。该汽车内mcu的升级方法可以包括:

在步骤s301中,接收上位机发送的升级总包。

在步骤s302中,根据对应关系确定每个待升级mcu对应的mcu升级包。

其中,步骤s301对应步骤s201,步骤s302对应步骤s202,此处不再赘述。

在步骤s303中,获取通用配置信息。

其中,通用配置信息包括各mcu的升级优先级。例如,汽车内一共包括10个mcu,则通用配置信息中包括10个mcu的升级优先级,分别为第一优先级、第二优先级、…、第十优先级。需要升级时,优先级靠前的mcu先升级。例如,第一优先级和第三优先级的mcu需要升级,则先升级第一优先级的mcu,后升级第三优先级的mcu。

在步骤s304中,根据各mcu的升级优先级将所有待升级mcu进行升级排序,得到升级顺序列表。

在该步骤中,主mcu将所有待升级mcu依据其各自的升级优先级进行升级排序,得到表征所有待升级mcu升级顺序的升级顺序列表。

在步骤s305中,控制所有待升级mcu利用各自对应的mcu升级包按照升级顺序列表依次完成升级。

在该步骤中,主mcu在得到升级顺序列表后,按照升级顺序列表中的升级顺序依次控制所有待升级mcu利用各自对应的mcu升级包完成升级。步骤s305是待升级mcu按顺序进行升级时步骤s203的一种具体实施方式。

通过图3所示的汽车内mcu的升级方法,待升级mcu能够按照升级优先级所规定的次序完成升级,解决了mcu升级顺序不合理的问题。

在图3所示本发明实施例的基础上,发明人还发现,在升级总包中包括mcu升级包过多时,将会导致升级总包的传输效率较低。为此,在本发明实施例的一种具体实施方式中,升级信息文件还可以包括进行差分升级的mcu升级包的差分升级标识和差分升级版本号,通用配置信息还可以包括各mcu的升级前版本号和备份包。其中,差分升级标识表征对应的mcu升级包是进行差分升级的mcu升级包,差分升级版本号表征进行差分升级的mcu升级包所需基于升级包的版本号。mcu的升级前版本号为mcu当前使用版本的版本号,mcu的备份包为mcu当前使用版本的升级包。在实际使用中,进行差分升级的mcu升级包可以为升级总包中的部分或全部升级包。

此种情形下,步骤s305可以包括:

在第k个待升级mcu按照升级顺序列表进行升级时,如果升级信息文件中包括第k个待升级mcu对应mcu升级包的差分升级标识,且第k个待升级mcu对应mcu升级包的差分升级版本号和通用配置信息所包括第k个待升级mcu的升级前版本号相同,则基于第k个待升级mcu对应mcu升级包和第k个待升级mcu的备份包生成完整升级包,并基于完整升级包完成第k个待升级mcu的升级;如果升级信息文件包括第k个待升级mcu对应mcu升级包的差分升级标识,但第k个待升级mcu对应mcu升级包的差分升级版本号和通用配置信息所包括第k个待升级mcu的升级前版本号不相同,则第k个待升级mcu无法完成升级,并向上位机发送第k个待升级mcu的升级前版本号;

如果升级信息文件不包括第k个待升级mcu对应mcu升级包的差分升级标识,则直接基于第k个待升级mcu对应mcu升级包完成升级。

需要说明的是,第k个待升级mcu为所有待升级mcu中的任意一个。即在每一个待升级mcu进行升级时,均按照上述第k个待升级mcu的升级方式进行升级。

上述具体实施方式中,由于部分或全部mcu升级包进行差分升级,任意一个进行差分升级的mcu升级包和对应的备份包生成完整升级包,而进行差分升级的mcu升级包容量相对较小。因此,该具体实施方式的升级总包也较小,在保证mcu升级顺序的情况下能够提升升级总包的传输效率。还有,该具体实施方式中,在第k个待升级mcu无法完成升级时,主mcu向上位机发送第k个待升级mcu的升级前版本号。这样,可使得上位机得知该待升级mcu的升级前版本号与差分升级的mcu升级包不匹配,进而采取相应的措施。当然,主mcu也可以不向上位机发送第k个待升级mcu的升级前版本号。

另外,上述具体实施方式中,差分升级标识表征对应的mcu升级包是进行差分升级的mcu升级包。在实际应用中,差分升级标识也可以用于表征mcu升级包是否进行差分升级。例如,差分升级标识为1时表示相应的mcu升级包进行差分升级,差分升级标识为0时表示相应的mcu升级包不进行差分升级。此时,升级信息文件中也可以包括每一个mcu升级包的差分升级标识和差分升级版本号。对于不进行差分升级的mcu升级包,相应的差分升级版本号为空即可。相应地,通用配置信息还可以包括各mcu的升级前版本号和备份包。

此种情形下,步骤s305可以包括:

在第l个待升级mcu按照升级顺序列表进行升级时,根据升级信息文件确定出第l个待升级mcu对应mcu升级包的差分升级标识;

根据第l个待升级mcu对应mcu升级包的差分升级标识确定第l个待升级mcu是否进行差分升级;

如果第l个待升级mcu进行差分升级,则判断第l个待升级mcu对应mcu升级包的差分升级版本号和通用配置信息所包括第l个待升级mcu的升级前版本号是否相同;如果相同,则基于第l个待升级mcu对应mcu升级包和第l个待升级mcu的备份包生成完整升级包,并基于完整升级包完成第l个待升级mcu的升级;如果不相同,则第l个待升级mcu无法完成升级,并向上位机发送第l个待升级mcu的升级前版本号;

如果第l个待升级mcu不进行差分升级,则直接基于第l个待升级mcu对应mcu升级包完成升级。

此处的l与前述具体实施方式中的k一样,第l个待升级mcu为所有待升级mcu中的任意一个。即在每一个待升级mcu进行升级时,均按照上述第l个待升级mcu的升级方式进行升级。本实施方式能够达到与前述具体实施方式同样的效果。同时,本实施方式统一了升级信息文件中每个mcu升级包的信息。

可选地,在本发明实施例的一种具体实施方式中,升级信息文件还可以包括进行差分升级的mcu升级包的差分升级标识和差分升级版本号。差分升级标识表征对应的mcu升级包是进行差分升级的mcu升级包。在图2所示实施例的基础上,还可以包括:

获取各mcu的升级前版本号和备份包。

与前述具体实施方式不同的是,该具体实施方式中没有通用配置信息,各mcu的升级前版本号和备份包是主mcu直接获取的。

此种情形下,步骤s203可以包括:

在第m个待升级mcu进行升级时,如果升级信息文件中包括第m个待升级mcu对应mcu升级包的差分升级标识,且第m个待升级mcu对应mcu升级包的差分升级版本号和第m个待升级mcu的升级前版本号相同,则基于第m个待升级mcu对应mcu升级包和第m个待升级mcu的备份包生成完整升级包,并基于完整升级包完成第m个待升级mcu的升级;如果升级信息文件中包括第m个待升级mcu对应mcu升级包的差分升级标识,但第m个待升级mcu对应mcu升级包的差分升级版本号和第m个待升级mcu的升级前版本号不相同,则第m个待升级mcu无法完成升级,并向上位机发送第m个待升级mcu的升级前版本号;

如果升级信息文件中不包括第m个待升级mcu对应mcu升级包的差分升级标识,则直接基于第m个待升级mcu对应mcu升级包完成升级。

此处的m与前述具体实施方式中的k、l一样,第m个待升级mcu为所有待升级mcu中的任意一个。即在每一个待升级mcu进行升级时,均按照上述第m个待升级mcu的升级方式进行升级。本实施方式由于没有设定升级顺序,所以不能保证待升级mcu的升级顺序,但能够提升升级总包的传输效率。

在实际应用中,还会出现升级总包在传输过程中损坏或者恶意替换的情形。该情形下如果升级成功,就会导致整车运行紊乱,出现安全隐患。如果升级不成功,将导致ecu无法正常工作,进而影响到整车的使用。为此,在本发明实施例的一种具体实施方式中,升级文件信息还可以包括每个mcu升级包的初始校验值。每个mcu升级包的初始校验值为对传输前的升级总包中的该mcu升级包利用预设算法计算出来的散列值,预设算法可以是md5消息摘要算法等能够对同一输入数据计算出唯一校验值的算法。

前述实施例中的汽车内mcu的升级方法还可以包括:

分别计算每个mcu升级包的验证校验值;判断每个mcu升级包的初始校验值和验证校验值是否相同;如果每个mcu升级包的初始校验值和验证校验值均相同,则根据对应关系确定每个待升级mcu对应的mcu升级包,否则,结束mcu升级流程。

其中,每个mcu升级包的验证校验值为主mcu接收到的每个mcu升级包利用预设算法计算出来的散列值。如果每个mcu升级包的初始校验值和验证校验值均相同,即所有mcu升级包都没有损坏或者被恶意替换。就可以继续执行根据对应关系确定每个待升级mcu对应的mcu升级包以及后续mcu升级流程,完成所有待升级mcu的升级。如果发现初始校验值和验证校验值均相同的mcu升级包,表明主mcu接收到的升级总包出现了损坏或者恶意替换,结束mcu的升级流程,即不进行后续的根据对应关系确定每个待升级mcu对应的mcu升级包以及后续mcu升级流程。

本具体实施方式,通过校验值验证升级总包是否损坏或者被恶意替换。仅验证通过时,才执行mcu的升级流程。避免整车运行紊乱或者ecu无法工作的情况出现。

在实际应用中,还存在利用mcu升级包进行升级时升级失败的情形。为避免升级失败影响整车的使用,在本发明实施例的一种具体实施方式中,前述实施例中的汽车内mcu的升级方法方法还可以包括:

对升级失败的待升级mcu进行重复升级,如果存在重复升级预设次数后升级失败的待升级mcu,则对所有待升级mcu进行回滚升级;其中,主mcu采用双备份分区,对所有待升级mcu进行回滚升级时,主mcu使用原始备份分区工作,利用预先备份的备份包对除主mcu外的其他待升级mcu进行回滚升级。其中,预设次数可根据实际情况确定,如可以为3次、4次、5次等。

该具体实施方式中,如果待升级mcu升级失败,对其进行重复升级,提高所有待升级mcu升级成功的概率。同时,如果某个待升级mcu升级预设次数后依然升级失败,为避免升级过程一直持续下去,对所有待升级mcu进行回滚升级,即回归到升级前的状态。在回滚升级过程中,为保证回滚升级的进行,主mcu采用双备份分区,即如果所有待升级mcu升级成功,则主mcu切换到升级后的最新分区,如存在未升级成功的待升级mcu,则主mcu使用原始备份分区工作。这样,对所有待升级mcu进行回滚升级时,主mcu能够利用预先备份的备份包对除主mcu外的其他待升级mcu进行回滚升级。当然,在所有待升级mcu升级成功前,需要保留预先备份的各待升级mcu升级前版本的备份包。

同样,在进行回滚升级时,也存在升级失败的可能。为此,如果回滚失败,可先进行特定次数的回滚升级。这里的特定次数也根据实际情况确定。如果仍然没有回滚升级成功,在本发明实施例的一种具体实施方式中,前述实施例中的汽车内mcu的升级方法还可以包括:

对于回滚升级失败的除主mcu外的其他待升级mcu,利用诊断协议传输备份包进行回滚升级。如在实际使用中,可使用can诊断协议传输备份包进行回滚升级。

为避免升级总包被窃取,在本发明实施例的一种具体实施方式中,上位机1可预先用加密算法对升级总包进行加密。此时,前述实施例中的汽车内mcu的升级方法还可以包括:

对升级总包进行解密。可以理解的是,上位机进行加密的算法和主mcu进行解密的算法是同一套加密算法。

为方便后续升级过程中mcu的回滚升级、差分升级等,在本发明实施例的一种具体实施方式中,前述实施例中的汽车内mcu的升级方法还包可以括:在所有待升级mcu升级完成后,对mcu升级包进行备份。

相对于上面的方法实施例,本发明实施例还提供了相应的装置实施例。

参见图4,本发明实施例公开一种汽车内mcu的升级装置,该汽车内mcu的升级装置用于执行前述实施例中的汽车内mcu的升级方法。该汽车内mcu的升级装置应用于汽车内的主mcu,该汽车内mcu的升级装置可以包括接收模块401、确定模块402和控制模块403。

所述接收模块401用于接收上位机发送的升级总包,所述升级总包中包括mcu升级包和升级信息文件,所述mcu升级包的数量等于待升级mcu的数量且一一对应,所述升级信息文件包括所述mcu升级包和所述待升级mcu之间的对应关系;

所述确定模块402用于根据所述对应关系确定每个所述待升级mcu对应的所述mcu升级包;

所述控制模块403用于控制每个所述待升级mcu利用其对应的所述mcu升级包进行升级。

本发明实施例所提供的一种汽车内mcu的升级装置,汽车内的主mcu首先接收上位机发送的升级总包。其中,升级总包中包括mcu升级包和升级信息文件,mcu升级包的数量等于待升级mcu的数量且一一对应,升级信息文件包括mcu升级包和待升级mcu之间的对应关系。然后根据对应关系确定每个待升级mcu对应的mcu升级包,并控制每个待升级mcu利用其对应的mcu升级包进行升级。本发明实施例的技术方案,主mcu接收的升级总包中包括有mcu升级包和待升级mcu之间的对应关系,以及与待升级mcu一一对应的mcu升级包。因此,主mcu能够一次获取一批待升级mcu的mcu升级包,然后基于对应关系确定每个待升级mcu对应的mcu升级包并控制每个待升级mcu进行升级,能够实现mcu的批量升级。

可选地,在本发明实施例的一种具体实施方式中,所述汽车内mcu的升级装置还可以包括:第一获取模块和排序模块。

所述第一获取模块用于获取通用配置信息,所述通用配置信息包括各mcu的升级优先级;

所述排序模块用于根据各mcu的升级优先级将所有所述待升级mcu进行升级排序,得到升级顺序列表;

所述控制模块403具体用于控制所有所述待升级mcu利用各自对应的所述mcu升级包按照所述升级顺序列表依次完成升级。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括进行差分升级的所述mcu升级包的差分升级标识和差分升级版本号,所述通用配置信息还包括各mcu的升级前版本号和备份包;所述控制模块403具体用于:

在第k个所述待升级mcu按照所述升级顺序列表进行升级时,如果所述升级信息文件中包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,且第k个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第k个所述待升级mcu的升级前版本号相同,则基于第k个所述待升级mcu对应所述mcu升级包和第k个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第k个所述待升级mcu的升级;如果所述升级信息文件包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,但第k个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第k个所述待升级mcu的升级前版本号不相同,则第k个所述待升级mcu无法完成升级,并向所述上位机发送第k个所述待升级mcu的升级前版本号;

如果所述升级信息文件不包括第k个所述待升级mcu对应所述mcu升级包的差分升级标识,则直接基于第k个所述待升级mcu对应所述mcu升级包完成升级;其中,第k个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括每个所述mcu升级包的差分升级标识和差分升级版本号,所述通用配置信息还包括各mcu的升级前版本号和备份包;所述控制模块403具体用于:

在第l个所述待升级mcu按照所述升级顺序列表进行升级时,根据所述升级信息文件确定出第l个所述待升级mcu对应所述mcu升级包的差分升级标识;

根据第l个所述待升级mcu对应所述mcu升级包的差分升级标识确定第l个所述待升级mcu是否进行差分升级;

如果第l个所述待升级mcu进行差分升级,则判断第l个所述待升级mcu对应所述mcu升级包的差分升级版本号和所述通用配置信息所包括第l个所述待升级mcu的升级前版本号是否相同;如果相同,则基于第l个所述待升级mcu对应所述mcu升级包和第l个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第l个所述待升级mcu的升级;如果不相同,则第l个所述待升级mcu无法完成升级,并向所述上位机发送第l个所述待升级mcu的升级前版本号;

如果第l个所述待升级mcu不进行差分升级,则直接基于第l个所述待升级mcu对应所述mcu升级包完成升级;其中,第l个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级信息文件还包括进行差分升级的所述mcu升级包的差分升级标识和差分升级版本号,所述汽车内mcu的升级装置还可以包括:第二获取模块。

所述第二获取模块用于获取各mcu的升级前版本号和备份包;

所述控制模块403具体用于:

在第m个所述待升级mcu进行升级时,如果所述升级信息文件中包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,且第m个所述待升级mcu对应所述mcu升级包的差分升级版本号和第m个所述待升级mcu的升级前版本号相同,则基于第m个所述待升级mcu对应所述mcu升级包和第m个所述待升级mcu的备份包生成完整升级包,并基于所述完整升级包完成第m个所述待升级mcu的升级;如果所述升级信息文件中包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,但第m个所述待升级mcu对应所述mcu升级包的差分升级版本号和第m个所述待升级mcu的升级前版本号不相同,则第m个所述待升级mcu无法完成升级,并向所述上位机发送第m个所述待升级mcu的升级前版本号;

如果所述升级信息文件中不包括第m个所述待升级mcu对应所述mcu升级包的差分升级标识,则直接基于第m个所述待升级mcu对应所述mcu升级包完成升级;其中,第m个所述待升级mcu为所有待升级mcu中的任意一个。

可选地,在本发明实施例的一种具体实施方式中,所述升级文件信息还包括每个所述mcu升级包的初始校验值;所述汽车内mcu的升级装置还可以包括:计算模块和判断模块。

所述计算模块用于分别计算每个所述mcu升级包的验证校验值;

所述判断模块用于判断每个所述mcu升级包的初始校验值和验证校验值是否相同;

所述确定模块402具体用于如果每个所述mcu升级包的初始校验值和验证校验值均相同,则根据所述对应关系确定每个所述待升级mcu对应的所述mcu升级包,否则,结束mcu升级流程。

可选地,在本发明实施例的一种具体实施方式中,所述汽车内mcu的升级装置还可以包括:回滚模块。

所述回滚模块用于对升级失败的所述待升级mcu进行重复升级,如果存在重复升级预设次数后升级失败的所述待升级mcu,则对所有所述待升级mcu进行回滚升级;其中,所述主mcu采用双备份分区,对所有所述待升级mcu进行回滚升级时,所述主mcu使用原始备份分区工作,利用预先备份的备份包对除所述主mcu外的其他所述待升级mcu进行回滚升级。

可选地,在本发明实施例的一种具体实施方式中,所述回滚模块还用于对于回滚升级失败的除所述主mcu外的其他所述待升级mcu,利用诊断协议传输备份包进行回滚升级。

可选地,在本发明实施例的一种具体实施方式中,所述升级总包是加密的,所述汽车内mcu的升级装置还可以包括:解密模块。

所述解密模块用于对所述升级总包进行解密。

可选地,在本发明实施例的一种具体实施方式中,所述接收模块401具体用于接收所述上位机通过wifi、蓝牙或4g发送的所述升级总包。

可选地,在本发明实施例的一种具体实施方式中,所述汽车内mcu的升级装置还可以包括:备份模块。

所述备份模块用于在所有所述待升级mcu升级完成后,对所述mcu升级包进行备份。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

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

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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