ECU升级方法及装置与流程

文档序号:23895151发布日期:2021-02-09 11:53阅读:112来源:国知局
ECU升级方法及装置与流程
ecu升级方法及装置
技术领域
[0001]
本发明涉及ecu(electronic control unit,电子控制单元)技术领域,更具体地说,涉及ecu升级方法及装置。


背景技术:

[0002]
ecu又称行车电脑、车载电脑等。目前ecu升级方式包括ota(over-the-air,空中下载)升级和通过诊断仪升级。ota升级又包括ota全量升级和ota差分升级。ota全量升级指的是,服务器向车辆的信息接收装置下发全量升级包;信息接收装置通过物理通道,例如can、canfd、linh或以太网等,把全量升级包发送到相应ecu进行升级。ota差分升级指的是,服务器向车辆的信息接收装置下发差分升级包;信息接收装置使用差分还原工具依据差分升级包和ecu的当前软件版本,还原出全量升级包,然后通过物理通道包全量升级包发送到相应ecu进行升级。
[0003]
通过诊断仪升级指的是,将诊断仪连接到车辆预置诊断接口;诊断仪将全量升级包通过车辆预置诊断接口发送到相应ecu进行升级。目前的ecu升级方式都是将全量升级包通过物理通道发送到ecu进行升级,但是,由于全量升级包的数据量较大,传输过程需要持续较长时间,导致升级效率较低。


技术实现要素:

[0004]
有鉴于此,本发明提出ecu升级方法及装置,欲提高ecu升级效率。
[0005]
为了实现上述目的,现提出的方案如下:
[0006]
第一方面,提供一种ecu升级方法,包括:
[0007]
获取差分升级包;
[0008]
利用差分还原工具,对差分升级包和当前软件版本进行还原处理,得到升级数据;
[0009]
利用所述升级数据进行升级。
[0010]
可选的,所述升级数据,具体为:全量升级包。
[0011]
可选的,当所述ecu为支持流式刷写的ecu时,在还原全量升级包的同时,利用已经还原得到的全量升级包的部分升级包进行升级。
[0012]
可选的,当所述ecu为支持更新差异部分的ecu时,所述升级数据,具体为:
[0013]
需要升级的位置和位置对应的升级数据。
[0014]
可选的,当所述ecu还为支持流式刷写的ecu时,在还原所述需要升级的位置和位置对应的升级数据同时,利用已经还原得到的需要升级的位置和位置对应的升级数据进行升级。
[0015]
第二方面,提供一种ecu升级装置,应用于ecu,所述ecu升级装置,包括:
[0016]
数据获取单元,用于获取差分升级包;
[0017]
还原单元,用于利用差分还原工具,对差分升级包和当前软件版本进行还原处理,得到升级数据;
[0018]
升级单元,用于利用所述升级数据进行升级。
[0019]
可选的,所述升级数据,具体为:全量升级包。
[0020]
可选的,当所述ecu为支持流式刷写的ecu时,所述升级单元,具体用于:
[0021]
在所述还原单元还原全量升级包的同时,利用已经还原得到的全量升级包的部分升级包进行升级。
[0022]
可选的,当所述ecu为支持更新差异部分的ecu时,所述升级数据,具体为:
[0023]
需要升级的位置和位置对应的升级数据。
[0024]
可选的,当所述ecu为支持流式刷写的ecu时,所述升级单元,具体用于:
[0025]
在所述还原单元还原需要升级的位置和位置对应的升级数据同时,利用已经还原得到的需要升级的位置和位置对应的升级数据进行升级。
[0026]
与现有技术相比,本发明的技术方案具有以下优点:
[0027]
上述技术方案提供的一种ecu升级方法及装置,方法包括将差分升级包发送至ecu;在ecu侧利用差分还原工具对差分升级包和ecu当前软件版本进行还原处理,得到升级数据,对ecu进行升级。在ecu侧进行还原处理,只需要将差分升级包发送到ecu即可,相比于将全量升级包发送到ecu,减少了数据传输时间,进而提高了ecu升级效率。
[0028]
进一步的,对于支持更新差异部分的ecu,在ecu侧仅烧写差异部分,减少了烧写时间,进一步提高了ecu升级效率。以及对于支持流式刷写的ecu,边还原边升级,更进一步提高了ecu升级效率。
[0029]
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
[0030]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0031]
图1为本发明实施例提供的一种ecu升级方法的流程图;
[0032]
图2为本发明实施例提供的对bt加载流程改造对比图;
[0033]
图3为本发明实施例提供的一种ecu升级装置的示意图。
具体实施方式
[0034]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]
参见图1,为本实施例提供的一种ecu升级方法,应用于ecu,在ecu侧还原得到升级数据对ecu进行升级,该方法具体可以包括以下步骤:
[0036]
s11:获取差分升级包。
[0037]
ecu获取差分升级包。在一些具体实施例中,服务器向车辆的信息接收装置下发差分升级包;信息接收装置不进行还原操作,而是通过物理通道,例如can、canfd、linh或以太
网等,将差分升级包发送至ecu。在另一些具体实施例中,诊断仪通过车辆预置诊断接口将差分升级包发送至ecu。
[0038]
s12:利用差分还原工具,对差分升级包和当前软件版本进行还原处理,得到升级数据。
[0039]
现有技术中是在服务器侧生成全量升级包或者在车辆的信息接收装置侧还原得到全量升级包,然后将全量升级包发送到相应的ecu进行升级,但是,由于全量升级包的数据量较大,传输过程需要持续较长时间,导致升级效率较低。本实施例中,在ecu内添加差分还原工具,这样在ecu侧可以利用差分还原工具,对差分升级包和当前软件版本进行还原处理,得到升级数据。具体的,得到的升级数据可以是全量升级包;当ecu为支持更新差异部分的ecu时,升级数据具体为需要升级的位置和位置对应的升级数据。
[0040]
在ecu侧还原得到全量升级包时,差分还原公式为target=source+diff,target为全量升级包,source为ecu当前软件版本,diff为差分升级包。例如某个ecu的软件由1、2、3、4和5这五部分组成;ecu当前软件版本是a版本,用a12345表示a版本;ecu需要升级到b版本,用b12345表示b版本;b版本和a版本的差异点仅在4和5这两部分,全量升级包具有b版本b12345的所有内容,差异升级包具有b版本的4和5部分相对于a版本的4和5部分的差异内容。
[0041]
在ecu内添加差分还原工具后,可以直接读取ecu当前软件版本,并结合传输到ecu的差分升级包,进行还原得到全量升级包,对ecu进行升级。本发明通过改造ecu端bt(bootloader,系统加载引导程序)加载流程以及调整内存映射,从而保证了差分还原工具在ecu中可执行。相对于现有ecu端bt加载流程,本发明主要修改了两部分,参见图2,具体修改了向量表加载过程和程序加载过程。
[0042]
修改向量表加载过程:当加载完用户相关向量表以后,转向去加载差分还原的向量表将差分还原加入到向量表中,然后跳转到应用程序入口。差分还原的向量表对应的是差分还原程序,即差分还原工具。用户向量表在此代表ecu自己的一些应用,比如bcm(body control module,车身控制模块)控制大灯的应用,ems(engine management system,发动机管理系统)控制发动机的应用。
[0043]
修改程序加载过程:当加载完相关向量表后,转到加载差分还原程序入口,之后先将差分还原程序下载到内存中,然后再去加载差分还原程序的主体程序,准备进行数据还原。
[0044]
对于仅支持重新安装软件的ecu,仅能通过全量升级包对ecu进行软件升级。对于支持更新差异部分的ecu,即支持片刷的ecu,还可以在ecu侧还原得到ecu需要升级的位置和位置对应的升级数据,在ecu当前软件版本的基础上添加补丁或修改,进而减少了还原时间。例如,某个ecu的软件由1、2、3、4和5这五部分组成;ecu当前软件版本是a版本,用a12345表示a版本;ecu需要升级到b版本,用b12345表示b版本;b版本和a版本的差异点仅在4和5这两部分,差异升级包具有b版本的4和5部分相对于a版本的4和5部分的差异内容;根据差异升级包得到ecu需要升级的位置为4和5部分对应的位置,还原得到位置对应的升级数据为b版本中的4和5这两部分。需要说明的是,对于ecu是否支持片刷,可以由相关设计人员根据ecu的使用说明进行判断得到。
[0045]
s13:利用升级数据进行升级。
[0046]
在升级数据为全量升级包时,由bt将全量升级包烧写到ecu中。在烧写完成后,重启ecu即可达到升级效果。在升级数据具体为需要升级的位置和位置对应的升级数据时,由bt将位置对应的升级数据,烧写到ecu需要升级的相应位置,由于只是对差异点进行升级,不是对ecu的整个软件进行升级,因此,相对于将全量升级包烧写到ecu中,节省了烧写时间。
[0047]
相比于现有技术中将全量升级包发送至ecu,本实施例提供的ecu升级方法仅将差分升级包发送至ecu,在ecu侧采用差分还原工具还原得到升级数据,大大降低了数据传输的时间,进而提高了升级效率。
[0048]
在一些具体实施例中,对于支持流式刷写的ecu,在还原ecu需要升级的位置和位置对应的升级数据同时,将已经还原得到的位置对应的升级数据烧写到ecu需要升级的相应位置。即通过边还原边升级的方式,提高升级效率。例如,在还原出b版本中的部分4后,bt向ecu的相应位置烧写b版本中的部分4,同时差分还原工具还原b版本中的部分5。需要说明的是,对于ecu是否支持流式刷写,也可以由相关设计人员根据ecu的使用说明进行判断得到。
[0049]
在一些具体实施例中,对于支持流式刷写的ecu,在还原全量升级包的同时,将已经还原得到的全量升级包的部分升级包烧写到ecu。即通过边还原边升级的方式,提高升级效率。
[0050]
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
[0051]
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
[0052]
参见图3,为本实施例提供的一种ecu升级装置,该装置可以包括:数据获取单元31、还原单元32和升级单元33。其中,
[0053]
数据获取单元31,用于获取差分升级包。
[0054]
还原单元32,用于利用差分还原工具,对差分升级包和当前软件版本进行还原处理,得到升级数据。
[0055]
升级单元33,用于利用所述升级数据进行升级。
[0056]
在一些具体实施例中,升级数据具体为全量升级包。在另一些具体实施例中,升级数据,具体为需要升级的位置和位置对应的升级数据。
[0057]
在一些具体实施例中,当ecu为支持流式刷写的ecu时,升级单元33,具体用于在还原单元32还原全量升级包的同时,利用已经还原得到的全量升级包的部分升级包进行升级。
[0058]
在一些具体实施例中,当ecu为支持流式刷写的ecu时,升级单元33,具体用于在还原单元32还原需要升级的位置和位置对应的升级数据同时,利用已经还原得到的需要升级的位置和位置对应的升级数据进行升级。
[0059]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其
中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0060]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0061]
本说明书中各个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可,且本说明书中各实施例中记载的特征可以相互替换或者组合。
[0062]
对本发明所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1