一种ECU嵌入式软件刷新和下载编程的方法及系统转让专利

申请号 : CN201010609193.2

文献号 : CN102043680B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 雷辉殷庆傅雪骄罗文明蒋鑫

申请人 : 重庆恩菲斯软件有限公司

摘要 :

本发明公开了一种ECU嵌入式软件刷新和下载编程的方法及系统。该系统包括测试节点Tester、标准通讯线路和测试端。该系统的测试端中具有只读程序存储器和动态程序存储器,测试节点Tester中具有动态程序存储器。本发明所提供的软件刷新和下载编程的方法,让升级软件与测试端分离,只有当测试端进行软件刷新时才将升级软件从测试节点Tester下载到测试端动态程序存储器中运行,从而达到测试端软件刷新的目的。因升级软件下载存放于测试端的动态程序存储器中,而未固化在测试端中,测试端重启后测试端中升级软件丢失,当测试端程序出现异常时,可更加有效的防止对车辆ECU的误擦除写入操作,从而提高系统数据安全性。

权利要求 :

1.一种ECU嵌入式软件刷新和下载编程的方法,在所述方法中,将汽车的各电控单元作为测试端,测试节点Tester通过标准通讯线路对测试端进行诊断,并根据诊断结果进行软件刷新和下载编程,其特征在于,包括如下步骤:A1, 测试端启动,进入bootloader,初始化必要的硬件资源;

A2,测试节点Tester发送指令使测试端进入默认诊断模式;

A3,测试端进入更新程序,此时测试端先读取测试端相关产品信息和刷新日志,并和测试节点Tester中更新软件进行对比,判断是否需要进行刷新,若不需要刷新,系统进入用户其他操作流程,若需要刷新,执行步骤A4;

A4,测试节点Tester发送指令使测试端进入下载刷新诊断模式;

A5,测试端通过标准通讯线路从测试节点Tester下载升级软件到测试端动态存储器中;

A6,当升级软件下载完毕后,测试端运行其动态程序存储器中的升级软件,擦除测试端只读存储器中相关程序;

A7,测试端继续运行升级软件,通过标准通讯线路从测试节点Tester下载所需的更新软件程序到测试端只读存储器的指定区域,完成后更新刷新日志;

A8,当下载更新完毕后,测试端自动重启,此时动态存储器中的升级软件丢失;

A9,测试端启动,进入bootloader,初始化必要的硬件资源;

A10,测试节点Tester发送指令使测试端进入默认诊断模式;

A11,再次进入更新程序,测试端先读取测试端相关产品信息和刷新日志,判断是否需要进行刷新;若需要刷新,执行步骤A4-A11;

A12,如果判断无需刷新,系统进入用户其他操作流程。

2.如权利要求1所述的一种ECU嵌入式软件刷新和下载编程的方法,其特征在于:所述更新软件是测试端从测试节点Tester下载的刷新替换软件。

3.如权利要求1所述的一种ECU嵌入式软件刷新和下载编程的方法,其特征在于:所述升级软件是测试端只读程序存储器操作程序。

4.一种ECU嵌入式软件刷新和下载编程的系统,所述ECU嵌入式软件刷新和下载编程的系统应用于汽车诊断中,所述系统包括标准通讯线路、至少一个测试端和测试节点Tester,所述标准通讯线路分别与所述测试节点Tester和所述测试端相连接,用于所述测试节点Tester和所述测试端之间进行数据交换;所述测试端与所述标准通讯线路相连接,通过所述标准通讯线路接收所述测试节点的刷新命令、升级软件、相关产品信息和刷新日志;所述测试节点 Tester通过所述标准通讯线路与所述测试端相连接,向所述测试端发送测试端所需的升级软件及刷新信息;

其特征在于:

所述测试端中具有只读程序存储器和测试端动态程序存储器,所述测试节点Tester中具有测试节点动态程序存储器;所述测试端的只读程序存储器与所述测试端动态程序存储器和所述测试节点动态程序存储器相连,能够进行信息交互,所述测试节点动态程序存储器与所述测试端动态程序存储器相连,能够进行信息交互;

所述测试端的只读程序存储器用于存储所述测试端的相关产品信息、刷新软件和刷新日志;所述测试端动态程序存储器用于存储从所述测试节点动态程序存储器下载的测试端升级软件,所述测试节点动态程序存储器用于存储所述测试端升级程序和所述测试端的更新软件。

5.如权利要求4所述的一种ECU嵌入式软件刷新和下载编程的系统,其特征在于:所述更新软件是测试端从测试节点Tester下载的刷新替换软件。

6.如权利要求4所述的一种ECU嵌入式软件刷新和下载编程的系统,其特征在于:所述升级软件是测试端只读程序存储器操作程序。

7.如权利要求4所述的ECU嵌入式软件刷新和下载编程的系统,其特征在于,所述标准通讯线路为CAN总线LIN总线之一。

8.如权利要求4所述的ECU嵌入式软件刷新和下载编程的系统,其特征在于,所述测试端为ECU控制器。

9.如权利要求8所述的ECU嵌入式软件刷新和下载编程的系统,其特征在于,所述测试端是发动机控制模块、仪表、气囊、胎压控制模块、变速箱、刹车系统、电动助力转向系统、空调、车身控制器之一或两个以上。

说明书 :

一种ECU嵌入式软件刷新和下载编程的方法及系统

技术领域

[0001] 本发明涉及一种汽车诊断方法及诊断系统,具体而言是涉及一种基于汽车总线技术的ECU(Electronic Control Unit,电子控制单元)嵌入式软件刷新和下载编程的方法及系统,特别是引入了一种对ECU数据进行保护的安全策略。

背景技术

[0002] 随着汽车技术的发展,人们对整车安全性和舒适性的要求越来越高,车载电控单元的数量也越来越多,机构日益复杂,功能逐步增强,对汽车诊断的要求也就愈高;现今很多车载控制模块都增加了随车诊断功能,实时检测汽车行驶状态;一旦发现故障,会根据故障的重要程度,选择是否立即通过指示灯通知驾驶者,并存储故障代码和相关数据;从而提高了汽车行驶的安全性和诊断的准确性;同时在生产匹配和售后维修保养时,通过外部诊断设备与控制模块建立通讯连接,就可实现读故障代码、检测执行器的好坏、传感器标定等功能,提供了极大的便利。
[0003] 目前,整车诊断网络按物理层分通常有三种,即LIN(Local Interconnect Network,局域互联网络)总线、高速CAN(Controller Arae Network,控制器局域网)、低速CAN;以上三种目前在整车中应用最广泛的是CAN总线,是汽车上应用最广泛的控制器通讯总线之一。现存的一些诊断测试系统对目标ECU的刷新主要有直接刷新,这种方法对于ECU上数据的安全性极差,很容易发生对数据的误操作;还有一种方法是在当对ECU上数据进行刷新时,需要某些口令验证的方法,如奇瑞公司的一种实现方法(专利申请号:200910172930公开号:CN101692017),但是这种方法增加了操作的复杂度,需要进行口令的验证等工作增加了系统负担,并且任然将对ECU进行擦写操作的程序固化在目标ECU上,这样当程序出现异常情况时,就很有可能去执行了对ECU的擦写操作程序,这将导致严重错误。

发明内容

[0004] 为了克服上述现有技术中存在的缺陷,本发明的第一个目的是提供一种ECU嵌入式软件刷新和下载编程的方法,该方法让升级软件与测试端分离,不仅能够实现对测试端软件刷新,而且能够在测试端程序出现异常时,有效地防止对车辆ECU的误擦除写入操作,从而提高系统数据安全性。
[0005] 为了克服上述现有技术中存在的缺陷,本发明的第二个目的是提供一种ECU嵌入式软件刷新和下载编程的系统,该系统未将测试端升级软件固化到测试端中,而是在需要使用时从测试节点Tester中将其下载到测试端动态程序存储器中运行,以避免系统故障时因误执行升级软件而对测试端进行误操作,从而提高了系统对测试端数据的安全性保护。
[0006] 为实现上述目的,根据本发明的第一个方面,本发明提供了一种ECU嵌入式软件刷新和下载编程的方法,在该方法中,将汽车的各电控单元作为测试端,测试节点Tester通过标准通讯线路对测试端进行诊断,并根据诊断结果进行软件刷新和下载编程,其包括如下步骤:
[0007] A1, 测试端启动,进入bootloader,初始化必要的硬件资源;
[0008] A2,测试节点Tester发送指令使测试端进入默认诊断模式;
[0009] A3,测试端进入更新程序,此时测试端先读取测试端相关产品信息和刷新日志,并和测试节点Tester中更新软件进行对比,判断是否需要进行刷新,若不需要刷新,系统进入用户其他操作流程,若需要刷新,执行步骤A4;
[0010] A4,测试节点Tester发送指令使测试端进入下载刷新诊断模式;
[0011] A5,测试端通过标准通讯线路从测试节点Tester下载升级软件到测试端动态存储器中;
[0012] A6,当升级软件下载完毕后,测试端运行其动态程序存储器中的升级软件,擦除测试端只读存储器中相关程序;
[0013] A7,测试端继续运行升级软件,通过标准通讯线路从测试节点Tester下载所需的更新软件程序到测试端只读存储器的指定区域,完成后更新刷新日志;
[0014] A8,当下载更新完毕后,测试端自动重启,此时动态存储器中的升级软件丢失;
[0015] A9,测试端启动,进入bootloader,初始化必要的硬件资源;
[0016] A10,测试节点Tester发送指令使测试端进入默认诊断模式;
[0017] A11,再次进入更新程序,测试端先读取测试端相关产品信息和刷新日志,判断是否需要进行刷新;若需要刷新,执行步骤A4-A11;
[0018] A12,如果判断无需刷新,系统进入用户其他操作流程。
[0019] 为实现上述目的,根据本发明的第二个方面,本发明提供了一种ECU嵌入式软件刷新和下载编程的系统。该ECU嵌入式软件刷新和下载编程的系统应用于汽车诊断中,其包括标准通讯线路、至少一个测试端和测试节点Tester。标准通讯线路分别与测试节点Tester和测试端相连接,用于测试节点Tester和测试端之间进行数据交换。测试端与标准通讯线路相连接,通过标准通讯线路接收测试节点的刷新命令、存储器驱动程序、相关产品信息和刷新日志。测试节点 Tester通过标准通讯线路与测试端相连接,并向测试端发送测试端所需的存储器驱动程序及刷新信息。
[0020] 测试端中具有只读程序存储器和测试端动态程序存储器,测试节点Tester中具有测试节点动态程序存储器。测试端的只读程序存储器与测试端动态程序存储器和测试节点动态程序存储器相连,能够进行信息交互;测试节点动态程序存储器与测试端动态程序存储器相连,能够进行信息交互。测试端的只读程序存储器用于存储测试端的相关产品信息、刷新软件和刷新日志;测试端动态程序存储器用于存储从测试节点动态程序存储器下载的测试端升级软件,测试节点动态程序存储器用于存储测试端升级程序和测试端的更新软件。
[0021] 本发明具有的有益效果:
[0022] 首先,本发明的软件刷新和下载编程的系统,实现了测试端ECU的软件刷新,相比其它软件刷新过程,此系统在安全保障刷新的基础上更加方便。无论是擦除测试端内部程序还是下载数据,都必须下载测试端程序存储器操作程序,这由系统自动执行,以提高方便性。
[0023] 另外,本发明所提供的软件刷新和下载编程的方法,让升级软件与测试端分离,只有在进行对测试端软件刷新时才将测试端升级软件从测试节点Tester下载到测试端动态程序存储器中运行,从而达到测试端软件刷新的目的。因测试端的升级软件存放于测试端的动态程序存储器中,在测试端掉电后升级软件丢失,即对测试端只读程序存储器的擦写操作程序未固化在测试端中,这样当测试端程序出现异常时,可更加有效的防止对车辆ECU的误擦除写入操作,从而提高对系统数据安全性。同时,升级软件非固化在测试端,有效减少了测试端存储器的占用,增强了对测试端系统的保护。
[0024] 此外,本发明还能够提供刷新验证,测试端控制器在刷新前读取测试端中相关信息如控制器软件、硬件版本号、产品更新日期、控制器供应商相关信息及日志;在刷新过程结束后,测试端将再次读取测试端相关信息及日志,用于刷新前后比较,验证程序刷新具体实现情况。

附图说明

[0025] 图1是本发明通信系统的结构示意图;
[0026] 图2是本发明实现软件刷新和下载编程的步骤流程图;
[0027] 图3是本发明实现软件刷新和下载编程示意图。

具体实施方式

[0028] 为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图对本发明进一步详细说明。
[0029] 如图1所示,这个系统包括测试节点Tester、至少一个测试端和标准通讯线路。标准通讯线路是指可用于汽车电子通讯的标准化通信线路,用于测试节点Tester与测试端建立物理链接,可以是但不限于基于CAN总线或LIN总线技术的汽车通讯网络。在本实施方式中,标准通讯线路分别与试节点Tester和测试端相连接,用于测试节点Tester和测试端之间进行数据交换。
[0030] 测试端是指某种ECU控制器,可以是但不限于发动机控制模块、仪表、气囊、胎压控制模块、变速箱、刹车系统、电动助力转向系统、空调,车身控制器。在本实施方式中,测试端与标准通讯线路相连接,通过标准通讯线路接收测试节点的刷新命令、存储器驱动程序、相关产品信息和刷新日志。
[0031] 测试节点 Tester通过标准通讯线路与测试端相连接,在测试节点Tester内部具有测试分析软件,该测试节点 Tester主要用于运行测试分析软件,执行测试软件相关的命令和操作,并向测试端发送测试端所需的升级软件及刷新信息。
[0032] 其中,测试端包括用于启动的模块、用于初始化的模块、用于进行默认诊断的模块、用于更新的模块、用于下载程序的模块、用于自动启动的模块、用于进行下载刷新诊断的模块。测试节点Tester包括控制测试端选择诊断模式的模块。
[0033] 另外,测试端中具有只读程序存储器和测试端动态程序存储器,测试节点Tester中具有测试节点动态程序存储器。测试端的只读程序存储器与测试端动态程序存储器和测试节点动态程序存储器相连,能够进行信息交互;测试节点动态程序存储器与测试端动态程序存储器相连,能够进行信息交互。测试端的只读程序存储器用于存储测试端的相关产品信息、刷新软件和刷新日志;测试端动态程序存储器用于存储从测试节点动态程序存储器下载的测试端升级软件,测试节点动态程序存储器用于存储测试端升级程序和测试端的更新软件。
[0034] 结合2、3图,对测试节点Tester对测试端进行软件刷新步骤进行具体描述如下:
[0035] 步骤S301,测试端的启动模块启动测试端,进入bootloader,测试端初始化模块初始化必要的硬件资源,之后,测试节点Tester控制测试端诊断模式的模块发送指令使测试端的用于进行默认诊断的模块工作,测试端进入默认诊断模式,在刷新前读取测试端相关产品信息,例如可以是但不限于控制器软件、硬件版本号、产品更新日期、控制器供应商相关信息及日志等信息。
[0036] 步骤S302,测试端中用于更新的模块工作,使测试端进入更新程序,此时测试端先读取测试端相关产品信息和刷新日志,并和测试节点Tester中更新软件进行对比,判断是否需要进行刷新,若不需要刷新,系统进入用户其他操作流程,若需要刷新,继续执行步骤S303;
[0037] 步骤S303,测试节点Tester控制测试端诊断模式的模块向测试端发出命令,使测试端的用于进行下载刷新诊断的模块工作,测试端进入下载刷新诊断模式,测试端中下载程序的模块通过标准通讯线路从测试节点Tester下载测试端升级软件到测试端动态存储器中;
[0038] 步骤S304,当测试端升级软件下载完毕后,测试端运行升级软件,通过标准通讯线路从测试节点Tester下载所需的更新软件到测试端只读存储器的指定区域,完成后更新刷新日志;
[0039] 步骤S305,当下载更新完毕后,用于测试端自动启动的模块工作,测试端自动重启,此时动态存储器中的升级软件丢失;测试端启动,进入bootloader,初始化必要的硬件资源,之后测试节点Tester发送指令使测试端进入默认诊断模式,测试端再次进入更新程序,测试端先读取测试端相关产品信息和刷新日志,判断是否需要进行刷新;若需要刷新,执行步骤S302- S305;如果判断无需刷新,系统进入用户其他操作流程。在本实施方式中,更新软件是测试端需要从测试节点Tester下载替换的软件,升级软件是测试端只读程序存储器操作程序。
[0040] 本发明是对目前一些汽车诊断系统和方法的改进,本发明的软件刷新和下载编程的系统,实现了测试端ECU的软件刷新,相比其它软件刷新过程,此系统在安全保障刷新的基础上更加方便。无论是擦除测试端内部程序还是下载数据,都必须下载测试端程序存储器操作程序,这由系统自动执行,以提高方便性。
[0041] 本发明所提供的软件刷新和下载编程的方法,让升级软件与测试端分离,只有在进行对测试端软件刷新时才将测试端升级软件从测试节点Tester下载到测试端动态程序存储器中运行,从而达到测试端软件刷新的目的。因测试端的升级软件存放于测试端的动态程序存储器中,在测试端掉电后其升级软件丢失,即对测试端只读程序存储器的擦写操作程序未固化在测试端中,这样当测试端程序出现异常时,可更加有效的防止对车辆ECU的误擦除写入操作,从而提高系统数据保护性和安全性。同时,测试端程序存储器操作程序非固化在测试端,有效减少了测试端存储器的占用,增强了对测试端系统的保护。
[0042] 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。