一种提高汽车ECU诊断更新安全性的方法与流程

文档序号:31187055发布日期:2022-08-19 22:35阅读:143来源:国知局
一种提高汽车ECU诊断更新安全性的方法与流程
一种提高汽车ecu诊断更新安全性的方法
技术领域
1.本发明涉及汽车ecu更新领域,特别是涉及一种提高汽车ecu诊断更新安全性的方法。


背景技术:

2.21世纪是知识迸发的新时代,科学技术的高速发展,使得汽车电子日益蓬勃,人们对它的节能性、安全性、舒适性以及互联性等方面不断提出新的要求。为了适应这种复杂多变的环境,汽车中不可或缺的一部分
‑‑
ecu,时常需要对其自身进行功能性更新或bug修复。但是升级出现错误时,某些不可控的逻辑错误出现时,会破坏系统,导致ecu无法在使用,只能返厂进行重新刷机。现有技术中,仍然有一种将bootloader(引导加载程序)与application(应用程序)分离的技术被提出,bootloader用于硬件调试或application的更新,application作用是实现ecu的相关功能。但是在升级过程中,如升级失败,bootloader会对升级的程序进行擦除。在有些应用程序如果出现bug,会使得bootloader进行擦除时导致关联的底层程序被删除,最终使得bootloader被破坏,仍然只能返厂进行重新刷机。


技术实现要素:

3.基于现有技术中存在的缺陷,一种提高汽车ecu诊断更新安全性的方法,具体至少包括:
4.对车载网络ecu进行配置,将ecu中非易失性存储器中存储空间至少划分为第一分区和第二分区,其中,第一分区用于存储引导装载程序,第二分区用于存储应用程序;
5.上位机与车载网络建立诊断通信连接;
6.获取车载网络ecu列表,从ecu列表中获取目标ecu,选择驱动文件和应用文件对目标ecu进行升级。
7.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,从引导装载程序分离出底层flash驱动程序,存储于上位机中。
8.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,在需要更新应用程序时,通过上位机将底层flash驱动程序加密后,发送至目标ecu,目标ecu解密并校验底层flash驱动程序后,加载底层flash驱动到bootloader程序中,执行更新应用程序。
9.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,上位机与车载网络的通信基于doip的uds的诊断会话控制和安全访问。
10.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,加载底层flash驱动到bootloader程序中具体包括:
11.上位机发送requestdownload请求,收到reply之后,将底层flash驱动进行加密;
12.上位机分片发送transferdata请求,目标ecu收到flash驱动之后,先将其缓存起来,再对上位机进行reply,重复发送请求,直到底层flash驱动传输完成;
13.pc的上位机发送requesttransferexit,ecu对flash驱动进行解密,然后校验
flash驱动,校验成功则加载底层flash驱动程序到bootloader中,并回应ack_reply;否则回应nack_reply。
14.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,底层flash驱动程序包括:
15.erasesectors函数:擦除扇区函数;
16.waitunbusy函数:等待flash非忙函数;
17.enterpagemode函数:进入页模式函数;
18.load2x32bits函数:加载64bits函数;
19.writepage函数:写flash一页的函数。
20.其中,当调用擦除、写入函数后,调用执行waitunbusy函数;load2x32bits函数被writepage调用。
21.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,应用程序更新过程包括:
22.上位机发送requestdownload请求,等待目标ecu的reply;
23.上位机分片发送transferdata请求,ecu收到应用程序包后,将应用程序包写入到应用程序对应的分区,其中,在数据写入的过程中,根据存储地址占用需要对flash进行擦除、读取、写入,直至应用程序传输完成。
24.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,当应用程序更新完成后,上位机发送requesttransferexit,引导装载程序对底层flash驱动进行后处理;
25.后处理至少包括:从引导装载程序卸载flash驱动,清除之前缓存的flash驱动,然后进行ack_reply。
26.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,上位机安装于智能终端中。
27.一种提高汽车ecu诊断更新安全性的方法,进一步可选的,上位机通过tsn网关接入车载网络,车载网络包括车载以太网总线和或can总线,tsn通过车载以太网总线和或can总线与ecu相连接。
28.有益效果:
29.1、本技术方案通过将底层flash驱动与bootloader分离,由上位机在更新application之前通过诊断命令发送给bootloader,bootloader接收完成之后,将flash驱动加载到自身,然后更新完application时,卸载并清除flash驱动;这样flash驱动不会常驻在bootloader中,可以大大减少程序异常运行时,bootloader擦除自身程序的风险,以致硬件无法正常工作的概率。
30.2、flash驱动在传输前后,会进行加密和解密;加载前会对flash驱动进校验;这样能够保证传输的安全性以及加载的正确性;
31.3、更新完application,bootloader会进行flash驱动进行后处理,使flash驱动不会常驻在ecu中;
附图说明
32.以下附图仅对本发明做示意性说明和解释,并不限定本发明的范围。
33.图1为本发明一实施例中车载ecu非易失性存储器分区设置。
34.图2为本发明一实施例中上位机查找目标ecu升级流程图。
35.图3为本发明一实施例中上位机与目标ecu建立诊断通信流程图。
36.图4为本发明一实施例中上位机加载底层flash驱动给ecu的流程图。
37.图5为本发明一实施例中ecu应用程序更新方法示意图。
具体实施方式
38.为了对本文的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式,在各图中相同的标号表示相同的部分。为使图面简洁,各图中的示意性地表示出了与本发明相关部分,而并不代表其作为产品的实际结构。另外,为使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。
39.关于控制系统,功能模块、应用程序(app)本领域技术人员熟知的是,其可以采用任何适当的形式,既可以是硬件也可以是软件,既可以是离散设置的多个功能模块,也可以是集成到一个硬件上的多个功能单元。作为最简单的形式,所述控制系统可以是控制器,例如组合逻辑控制器、微程序控制器等,只要能够实现本技术描述的操作即可。当然,控制系统也可以作为不同的模块集成到一个物理设备上,这些都不偏离本发明的基本原理和保护范围。
40.本发明中“连接”,即可包括直接连接、也可以包括间接连接、通信连接、电连接,特别说明除外。
41.本文中所使用的术语仅为了描述特定实施方案的目的并且不旨在限制本公开。如本文中所使用地,单数形式“一个”、“一种”、以及“该”旨在也包括复数形式,除非上下文明确地另作规定。还将理解的是,当在说明书中使用时,术语“包括”和/或“包含”是指存在有所陈述的特征、数值、步骤、操作、元件和/或组分,但是并不排除存在有或额外增加一个或多个其它的特征、数值、步骤、操作、元件、组分和/或其组成的群组。作为在本文中所使用的,术语“和/或”包括列举的相关项的一个或多个的任何和全部的组合
42.应当理解,此处所使用的术语“车辆”或“车辆的”或其它类似术语一般包括机动车辆,例如包括运动型多用途车辆(suv)、公共汽车、卡车、各种商用车辆的乘用汽车,包括各种舟艇、船舶的船只,航空器等等,并且包括混合动力车辆、电动车辆、可插式混合动力电动车辆、氢动力车辆以及其它替代性燃料车辆(例如源于非石油的能源的燃料)。正如此处所提到的,混合动力车辆是具有两种或更多动力源的车辆,例如汽油动力和电力动力两者的车辆。
43.此外,本公开的控制器可被具体化为计算机可读介质上的非瞬态计算机可读介质,该计算机可读介质包含由处理器、控制器或类似物执行的可执行程序指令。计算机可读介质的示例包括,但不限于,rom、ram、光盘(cd)-rom、磁带、软盘、闪存驱动器、智能卡和光学数据存储设备。计算机可读记录介质也可分布在通过网络耦合的计算机系统中,使得计算机可读介质例如通过远程信息处理服务器或控制器区域网络(can)以分布式方式存储和执行。
44.本发明提供基于一种提高汽车ecu诊断更新安全性的方法,如图1至图3所示,具体
包括:
45.对车载网络ecu进行配置,将ecu中非易失性存储器中存储空间至少划分为第一分区和第二分区,其中,第一分区用于存储引导装载程序,第二分区用于存储应用程序;
46.具体地,根据实际情况,还可以包括第三分区,第三分区用于安装用于配置信息。
47.第一分区和第二分区可以固化在不同的物理空间;
48.不同分区可以用存储器的物理地址进行区分,非易失性存储器为flash存储器、相变存储器、mram存储器中的一种,本实施例中,选择flash存储器。
49.本发明需要对传统汽车ecu进行改造,使ecu内部的非易失性存储器存在不同分区,将不同类型作用的数据进行隔离;
50.具体地,在第一分区中,从引导装载程序(bootloader程序)分离出底层flash驱动程序,存储于上位机中。
51.基于本实施例配置的ecu,进行ecu升级,本发明ecu的升级的方法仅适配于具有与本发明相同非易失性存储器分区配置的ecu。
52.本实施例中,上位机是用于升级的应用程序,其安装于具有cpu、存储器的智能硬件中,智能硬件可以为pc、手机、平板、soc芯片、单片机。
53.上位机与车载网络建立诊断通信连接;
54.获取车载网络ecu列表,从ecu列表中获取目标ecu,选择驱动文件和应用文件对目标ecu进行升级。
55.具体地,汽车由多个ecu传感器组成,现在汽车的ee架构存在多种方式,本发明车辆采用ee是车内ecu连接在车载网络中,通过网关进行交换数据,其中,ecu种类较多,存在车载以太网ecu、can接口ecu,lin接口ecu,因此,车载以太网接口ecu通过车载以太网总线连接网关、can接口ecu通过can总线接口网关,lin接口ecu通过lin总线连接网关,通过网关进行数据交换;
56.本发明提供的技术方案中,上位机安装于pc(个人电脑、笔记本、工作站)中,当需要对目标ecu进行升级时,查看目标ecu的非易失性存储器配置;
57.若满足本发明提供的技术方案配置,则启动升级方案。
58.引导装载程序(bootloader程序),用于引导操作系统启动的程序,是ecu的核心程序组成部分;
59.当需要升级时,如图2所示,用户通过安装上位机的pc,通过启动上位机,连接车载网络中的ecu,获取连接网络中的ecu;
60.通过查看搜索ecu的ip地址和mac以及对应的标识id,用户选择需要升级的目标ecu,然后与目标ecu建立路由激活,建立诊断连接;
61.用于选择驱动文件和待升级的应用程序包,启动固件升级,执行升级诊断更新流程。
62.底层flash驱动程序包括:
63.erasesectors函数:擦除扇区函数;
64.waitunbusy函数:等待flash非忙函数;
65.enterpagemode函数:进入页模式函数;
66.load2x32bits函数:加载64bits函数;
67.writepage函数:写flash一页的函数。
68.其中,当调用擦除、写入函数后,调用执行waitunbusy函数;load2x32bits函数被writepage调用。
69.如图3所示,本发明在建立通信连接时,采用基于doip或can(基于ip的诊断通信)的uds(统一诊断服务)的诊断会话控制以及安全访问;
70.现有技术中,建立通信连接实在默认会话模式进行的,但ecu的会话模式并不支持uds某些特殊服务调用,如本省及需要用的服务requestdownload

0x34、transferdata

0x36、requesttransferexit

0x37等服务;
71.因此升级进行通信连接时,判断当前的通信模式,若处于默认会话模式,需要进行会话模式切换进行安全访问的控制。
72.具体地,升级时,由于底层flash驱动并不在bootloader中,引导装载程序缺乏底层flash驱动而识别第二分区导致应用程序包无法进行安装在第二分区中,使得升级失败。因此需要在升级前,若底层flash驱动不在引导装载程序中,则需要从上位机中进行加载。
73.本实施例中,由于采用的上位机是安装于pc(个人计算机)中,因此所有的附图1至附图5中,出现的pc表示上位机,在此进行说明。
74.在更新application时,需要提前将flash驱动加载到bootloader中,使bootloader对底层flash区域中的application进行改写。
75.pc的上位机发送requestdownload

0x34请求,收到reply之后,将flash驱动进行加密(提高传输的安全性);
76.pc的上位机分片发送transferdata

0x36请求,ecu收到flash驱动之后,先将其缓存起来,再对pc的上位机进行reply;
77.重复分片数据发送,直到底层flash驱动传输完成;
78.pc的上位机发送requesttransferexit

0x37,ecu对flash驱动进行解密,然后校验flash驱动,校验成功则加载底层flash驱动到bootloader中,并回应ack_reply;否则回应nack_reply。
79.具体地,当确定bootloader程序中存在底层flash驱动程序时,再进行应用程序(application)包的传输,应用程序的升级过程如下:
80.在更新application时,因为flash驱动已加载到booloader中,更新的过程中,需要管理好application的flash的擦除、读取、写入;但本方案中约定flash驱动仅存在于bootloader中,因此application更新完成后bootloader还需要对flash驱动进行后处理。
81.pc的上位机发送requestdownload

0x34请求,等待ecu的reply
82.pc的上位机分片发送transferdata

0x36请求,ecu收到applicaiton之后,将其写入到application对应的flash区域(需要对flash进行擦除、读取、写入)重复

,直到application传输完成
83.ecu对接收到升级程序进行校验,确定完整后在第二分区进行更新。
84.当应用程序更新完成后,上位机发送requesttransferexit,引导装载程序对底层flash驱动进行后处理;
85.后处理至少包括:从引导装载程序卸载flash驱动,清除之前缓存的flash驱动,然后进行ack_reply。
86.以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。本领域的技术人员可以清楚,该实施例中的形式不局限于此,同时可调整方式也不局限于此。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1