一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种车辆诊断方法及相关装置与流程

2022-02-19 05:13:39 来源:中国专利 TAG:


1.本技术涉及车辆诊断技术领域,尤其涉及一种车辆诊断方法及相关装置。


背景技术:

2.电子控制器单元(electronic control unit,ecu)又被称为汽车的“行车电脑”,它们的用途就是控制汽车的行驶状态以及实现其各种功能。主要是利用各种传感器、总线的数据采集与交换,来判断车辆状态以及司机的意图并通过执行器来操控汽车。当售后或者修理厂需要对车辆进行相关的诊断时,就需要开发相应的诊断软件来对车辆各ecu进行通讯数据交互,对ecu通讯就需要获取到所有ecu的各诊断功能详细的诊断协议内容。
3.现在ecu车厂开发一套诊断设备,要实现诊断功能就必须要提供全部ecu的诊断协议信息,包括所有ecu的功能、算法、一些命令等,诊断设备将所有的协议信息通过硬件发送给车辆。
4.对于ecu车厂来说,提供全部的ecu协议信息容易造成车辆参数、算法等信息的泄露,导致车辆的安全风险增大。


技术实现要素:

5.本技术实施例提供一种车辆诊断方法及相关装置,能够大大增强车辆ecu的信息数据的安全性。
6.第一方面,本技术实施例提供了一种车辆诊断方法,应用于诊断设备,所述诊断设备内置诊断软件,该方法包括:
7.所述诊断软件获取用户选择的目标操作指令;
8.所述诊断软件根据所述目标操作指令调用中间模块的目标通讯接口;所述中间模块封装了目标车辆的车型对应的ecu通讯协议列表,并与所述目标车辆实现通讯;所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个;
9.所述诊断软件接收所述中间模块返回的与所述目标通讯接口对应的诊断信息。
10.在本技术实施例中,通过这个中间模块提供至少n种车型可用的统一通讯接口,同时这个中间模块封装了某一个车型的各个ecu的通讯协议信息。通过增加中间模块来封装ecu通讯协议可以减少车辆信息对外界的暴露,显著提升了车辆诊断过程中的安全性。
11.在第一方面的一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
12.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
13.第二方面,本技术实施例提供了一种车辆诊断方法,应用于诊断设备,所述诊断设备内置中间件,所述方法包括:
14.所述中间模块获取诊断软件调用目标通讯接口的调用信息,所述中间模块封装了目标车辆的车型对应的ecu通讯协议列表,并与所述目标车辆实现通讯;
15.所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个;
16.所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息。
17.在第二方面的一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
18.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
19.在第二方面的另一种可选的方案中,所述目标通讯接口包括第一接口,所述第一接口用于获取目标车辆的ecu列表;
20.当所述中间模块获取到诊断软件调用所述第一接口的调用信息时,所述中间件向所述诊断软件发送与所述目标通讯接口对应的诊断信息,包括:
21.所述中间模块根据封装的ecu通讯协议列表对所述目标车辆进行ecu扫描;
22.所述中间模块根据扫描结果生成目标车辆的ecu列表;
23.所述中间模块向所述诊断软件返回所述目标车辆的ecu列表。
24.在第二方面的另一种可选的方案中,所述通用通讯接口还包括第二接口,所述第二接口用于获取目标ecu的诊断功能列表;
25.当所述中间模块获取到诊断软件调用所述第二接口的调用信息时,所述调用信息包括目标ecu的标识信息,所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息,包括:
26.所述中间模块根据所述标识信息,向所述诊断软件返回所述目标ecu的诊断功能列表。
27.在第二方面的又一种可选的方案中,所述车型通讯接口为诊断功能接口;当所述中间模块获取到诊断软件调用其中一个所述诊断功能接口的调用信息时,所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息,包括:
28.所述中间模块根据被调用的所述诊断功能接口,确定待通讯的目标ecu以及对应的目标诊断功能;
29.所述中间模块查找与所述目标ecu对应的目标ecu通讯协议;
30.所述中间模块根据所述目标ecu通讯协议,与所述目标ecu建立通信连接;
31.所述中间模块向所述目标ecu发送与所述目标诊断功能对应的诊断指令;
32.所述中间模块接收所述目标ecu根据所述诊断指令返回的诊断结果数据;
33.所述中间模块向所述诊断软件发送所述诊断结果数据。
34.在第二方面的又一种可选的方案中,所述中间模块与目标车辆通过使用国际标准的通讯接口进行通讯。
35.第三方面,本技术实施例提供了一种车辆诊断设备,所述设备包括处理器、存储器,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,执行如下操作:
36.通过所述诊断软件获取用户选择的目标操作指令;
37.通过所述诊断软件根据所述目标操作指令调用中间模块的目标通讯接口;所述中间模块封装了目标车辆的车型对应的ecu通讯协议列表,并与所述目标车辆实现通讯;
38.所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n
种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个;
39.通过所述诊断软件接收所述中间模块返回的与所述目标通讯接口对应的诊断信息。
40.在第三方面的一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
41.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
42.第四方面,本技术实施例提供了一种车辆诊断设备,所述设备包括处理器、存储器,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,执行如下操作:
43.通过所述中间模块获取诊断软件调用目标通讯接口的调用信息,所述中间模块封装了目标车辆的车型对应的ecu通讯协议列表,并与所述目标车辆实现通讯;所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个;
44.通过所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息。
45.在第四方面的一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
46.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
47.在第四方面的另一种可选的方案中,所述目标通讯接口包括第一接口,所述第一接口用于获取目标车辆的ecu列表;
48.当所述中间模块获取到诊断软件调用所述第一接口的调用信息时,所述中间件向所述诊断软件发送与所述目标通讯接口对应的诊断信息,包括:
49.通过所述中间模块根据封装的ecu通讯协议列表对所述目标车辆进行ecu扫描;
50.通过所述中间模块根据扫描结果生成目标车辆的ecu列表;
51.通过所述中间模块向所述诊断软件返回所述目标车辆的ecu列表。
52.在第四方面的又一种可选的方案中,所述通用通讯接口还包括第二接口,所述第二接口用于获取目标ecu的诊断功能列表;
53.当所述中间模块获取到诊断软件调用所述第二接口的调用信息时,所述调用信息包括目标ecu的标识信息,所述中间件向所述诊断软件发送与所述目标通讯接口对应的诊断信息,包括:
54.所述中间模块根据所述标识信息,向所述诊断软件返回所述目标ecu的诊断功能列表。
55.在第四方面的又一种可选的方案中,所述车型通讯接口为诊断功能接口;当所述中间模块获取到诊断软件调用其中一个所述诊断功能接口的调用信息时,所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息,包括:
56.所述中间模块根据被调用的所述诊断功能接口,确定待通讯的目标ecu以及对应的目标诊断功能;
57.通过所述中间模块查找与所述目标ecu对应的目标ecu通讯协议;
58.所述中间模块根据所述目标ecu通讯协议,与所述目标ecu建立通信连接;
59.通过所述中间模块向所述目标ecu发送与所述目标诊断功能对应的诊断指令;
60.通过所述中间模块接收所述目标ecu根据所述诊断指令返回的诊断结果数据;
61.通过所述中间模块向所述诊断软件发送所述诊断结果数据。
62.在第四方面的又一种可选的方案中,所述中间模块与目标车辆通过使用国际标准的通讯接口进行通讯。
63.第五方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现第一方面、第二方面中任意一方面或者任意一方面的可选的方案所描述的方法。
附图说明
64.以下对本技术实施例用到的附图进行介绍。
65.图1是本技术实施例提供的一种车辆诊断系统的架构示意图;
66.图2a是本技术实施例提供的一种车辆诊断方法的流程示意框图;
67.图2b是本技术实施例提供的一种车辆诊断方法的具体流程步骤示意框图;
68.图3是本技术实施例提供的一种中间模块各接口的示意图;
69.图4是本技术实施例提供的一种从ecu列表中选择第一ecu的示意图;
70.图5是本技术实施例提供的一种部署中间模块接口统一的示意图;
71.图6是本技术实施例提供的一种从功能列表中选择第一功能的示意图;
72.图7是本技术实施例提供的一种从数据项列表中选择第一数据项的示意图;
73.图8是本技术实施例提供的一种诊断装置80的结构示意图;
74.图9是本技术实施例提供的一种诊断装置90的结构示意图;
75.图10是本技术实施例提供的一种诊断设备100的结构示意图;
76.图11是本技术实施例提供的一种诊断设备110的结构示意图。
具体实施方式
77.下面结合本技术实施例中的附图对本技术实施例进行描述。
78.请参见图1,图1是本技术实施例提供的一种车辆诊断系统的架构示意图,该系统包括诊断设备101,硬件车辆通讯接口(vehicle communication interface,vci)104和待诊断车辆105,其中:
79.待诊断车辆105可以为载货汽车、家用轿车、客车、越野汽车等。其中,待诊断车辆105内部包括很多电子控制器单元(electronic control unit,ecu),比如发动机ecu、空调ecu和波箱ecu等ecu。举例来说,ecu又称为汽车的“行车电脑”,它们的用途就是控制汽车的行驶状态以及实现其各种功能。主要是利用各种传感器、总线的数据采集与交换,来判断汽车状态以及司机的意图并控制汽车。
80.诊断设备101可以是配置了“专门的诊断环境”的电脑,也可以称之为上位机,该诊断设备101至少可以有两种部署情况,具体如下:
81.情况一,诊断设备101包括诊断软件102和中间模块103,在这种情况下,诊断软件102和中间模块103可以是由程序代码组成的能够实现诊断功能的两个软件模块,比如两款应用程序(application,app)。
82.情况二,诊断设备101包括诊断软件102但不包括中间模块103,其中,中间模块103
可以是独立于诊断设备101的硬件,该中间模块103可以通过配置在该中间模块103上的接口与该诊断软件102进行通讯。
83.在情况二下,诊断软件102可以为一个用于执行诊断功能的器件,或者为由程序代码组成的能够实现诊断功能的软件模块,比如实现诊断功能的一款app;由该诊断软件依次调用中间模块的各接口,通过一系列操作来实现对待诊断车辆的诊断,一系列操作可以是获取车辆ecu的各信息或者执行各诊断功能等操作。
84.中间模块103用于封装车厂提供的一种或多种车型ecu的各诊断功能协议。
85.中间模块103上述部署有许多接口,可以称之为通用通讯接口以及车型通讯接口,其中,通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,通用通讯接口中包括第一接口和第二接口;车型通讯接口为与目标车辆的车型对应的通讯接口,车型通讯接口中包括第三接口和第四接口,举例来说,比如第一接口为获取待诊断车辆ecu列表的接口,第二接口为读取第一ecu的诊断功能列表的接口,其中,假设某车辆有15种ecu,该15种ecu中可能包括发动机ecu、空调ecu以及波箱ecu等,这些ecu可以组成一个ecu列表;从该ecu列表中选取第一ecu,该第一ecu的诊断功能列表可以是发动机的诊断功能列表、空调的诊断功能列表或者波箱的诊断功能列表;第三接口为读取所述第一诊断功能涉及的数据项列表的接口,其中,该第一诊断功能涉及的数据项列表可以有发动机的诊断功能列表中的读取数据流功能,该功能的数据项列表中的数据项有:车速、温度、节气门开关和氧传感器等;第四接口为读取所述第一数据项的参数值的接口,比如选择车速或者温度的参数值进行读取,参数值可能是字节位置、算法等,同样支持多项数据项的参数值进行读取。
86.硬件vci104用于实现中间模块103与待诊断车辆105之间的通讯交互。
87.请参见图2a,图2a是本技术实施例提供的一种车辆诊断方法的流程示意图,该方法可以基于图1所示的系统的架构来实现,该方法包括但不限于如下步骤:
88.步骤s201:诊断软件获取用户选择的目标操作指令。
89.具体地,目标操作指令可以以触控、声控等方式来输入,比如,诊断设备运行诊断软件时通过触摸显示屏输出该诊断软件的ui界面,该ui界面中可以包括一个功能按钮,当工作人员触控该功能按钮时,该诊断设备相应地获取到了目标操作指令,该目标操作指令用于启动对目标车辆的诊断。还可以通过其他方式输入目标操作指令,其他方式此处不一一举例。
90.步骤s202:诊断软件根据所述目标操作指令调用中间模块的目标通讯接口。
91.步骤s203:中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息。
92.步骤s204:诊断软件接收所述中间模块返回的与所述目标通讯接口对应的诊断信息。
93.其中,所述中间模块封装了目标车辆的车型对应的ecu通讯协议,并与所述目标车辆实现通讯;所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个;n为大于或等于1的正整数。可选的,所述目标通讯接口包括第一接口、第二接口、第三接口和第四接口,在这种情况下,诊断软件根据所述目标操作指令调用中间模块的目标通讯接口、所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息、所述诊断软件接收所述中间模块返回的与所述目标通讯接口对应的诊断信息,这三个环节可以具体通过如
下流程(如图2b)来实现:
94.步骤1:诊断软件向中间模块的第一接口发送ecu请求。
95.诊断软件在进行诊断的过程中需要执行一系列操作,为了准确、高效地执行每个操作,如图3所示,本技术实施例针对每个操作配置了对应的接口,比如:
96.第一接口,用于读取所述目标车辆ecu列表;
97.第二接口,用于读取所述第一ecu的功能列表;
98.第三接口,用于读取所述第一功能涉及的数据项列表;
99.第四接口,用于读取所述第一数据项的参数值。
100.当特定接口被调用时,就会触发执行该接口对应的操作。
101.ecu请求用于请求获取ecu列表,具体来说,该ecu请求中携带了某一车型的信息(比如车型标识、名称等),这种情况下,该ecu请求具体用于请求某一车型的车辆的ecu列表。
102.所述ecu列表包括多个ecu;不同车型的ecu列表可能相同,也可能不同,例如,一汽大
103.众汽车的ecu列表中包括发动机ecu、波箱ecu和空调ecu等,东风本田的ecu列表也
104.包括发动机ecu、波箱ecu和空调ecu等,这两种不同车型的ecu列表是相同的。再如,一汽大众汽车的ecu列表中包括发动机ecu、波箱ecu和空调ecu等,而新能源汽车的ecu列表包括的是整车控制器ecu、交流充电机ecu、电机ecu等,那么这两种车型的汽车包括的ecu列表就不相同。
105.表1
106.车型车型名称一汽大众volkswagen东风本田dongfeng honda新能源汽车singulato
107.如表1所示,如果该ecu请求包括“volkswagen”,则表明该诊断软件向中间模块请求的是一汽大众的ecu列表;如果该ecu请求包括“dongfeng honda”,则表明该诊断软件向中间模块请求的是东风本田的ecu列表,其余依次类推。
108.步骤2:中间模块通过第一接口接收诊断软件发送的ecu请求。
109.具体地,中间模块可以对该ecu请求进行解析,从而获知该诊断软件需要获取ecu列表。在获知该诊断软件需要获取ecu列表的情况下,中间模块会根据所有ecu的协议依次向车辆发送各ecu的激活指令(比如,发送的激活指令为0x1001)来自动扫描全车的ecu,如果哪个ecu正常回复了中间模块发送的激活指令(比如,正常回复的激活指令为0x5001),则确定当前车辆已经配置了该ecu,在确定车辆配置了该ecu的情况下,中间模块再继续向车辆发送读取请求,以获取ecu的版本信息,不同版本的ecu中可能包含不同的故障,比如版本1.0的ecu包含的是转速的故障,而版本2.0的ecu包含的是温度故障。当车辆的全部ecu扫描完成后,中间模块将当前汽车配置的所有ecu和对应ecu的版本信息存储在数组中返回给诊断软件,比如包含发动机ecu,波箱ecu,空调ecu等,发动机ecu的版本信息为{mb:0123456789,supplier:siemens,hardware status:06/06,software status:08/14,diagnosis identifer:146/09}。从上述可以看出,需要根据车辆最终回复的激活指令的情
况才可以真正地确定诊断软件获取的ecu列表。
110.步骤3:中间模块向诊断软件发送ecu列表。
111.具体地,本技术实施例中,不同车型对应有自己的ecu列表,不同的车型对应的ecu列表可能相同也可能不同。
112.情况一,不同的车型对应的ecu列表可能相同。比如,一汽大众汽车中包含的ecu为发动机ecu、空调ecu、波箱ecu等;而东风本田汽车也可能包含的是发动机ecu、空调ecu、波箱ecu等ecu。
113.情况二,不同的车型对应的ecu列表可能不同。比如,一汽大众汽车中包含的ecu为发动机ecu、空调ecu、波箱ecu等;而新能源汽车包含的可能是整车控制器ecu、交流充电机ecu、电机ecu等ecu。
114.该中间模块接收到诊断软件发送的ecu请求后,根据该ecu请求可以确定该车型的信息,并进一步确定该车型对应的ecu列表。同样以表1为例,如果该ecu请求中携带的车型的名称为“volkswagen”,那么,可以确定该车型为一汽大众,进而获取该一汽大众红对应的ecu列表,其余以此类推。另外,不同车型对应的ecu列表可以如表2所示。
115.表2
116.车型ecu列表一汽大众发动机ecu、空调ecu、波箱ecu东风本田发动机ecu、空调ecu、波箱ecu新能源汽车整车控制器ecu、交流充电机ecu、电机ecu
117.如表2所示,该中间模块可以在确定出该车型的ecu列表之后自动向诊断软件发送该ecu列表,也可以通过显示器向检测人员输出该ecu列表,检测人员可以对该ecu列表进行操作,比如,确认发送操作、取消操作等,其中,如果该中间模块接收到检测人员输入的确认发送操作,则向诊断软件发送该ecu列表,如果该中间模块接收到检测人员输入的取消发送操作,则不发送该ecu列表。其中,ecu请求中携带的车型的信息不一样,查询出来的ecu列表可能不一样,因此本步骤中发送的ecu列表也不一样。为了便于理解,下面进行举例说明。举例来说,如果上述ecu请求中携带的车型的信息为一汽大众汽车的车型名称,那么中间模块发送的ecu列表中包括发动机ecu、波箱ecu和空调ecu等,如果上述ecu请求中携带的车型的信息为新能源汽车的车型名称,那么中间模块发送的ecu列表中包括整车控制器ecu、交流充电机ecu、电机ecu等。
118.步骤4:诊断软件接收中间模块发送的ecu列表。
119.步骤5:诊断软件从ecu列表中选择第一ecu。
120.该诊断软件接收到ecu列表后可以向检测人员输出该ecu列表,比如,通过显示器显示该ecu列表,相应地,检测人员在该诊断软件或者该诊断软件所在的诊断设备上执行针对该ecu列表中的第一ecu的选择操作,相应地,该诊断软件就从所述ecu列表中选择所述第一ecu,以上述表2为例,如果该ecu列表具体为上述一汽大众汽车的ecu列表,那么这里就是从“一汽大众的ecu列表”中选择第一ecu,如图4所示,如果检测人员在显示器上显示的ecu列表中点击(即选择)了发动机ecu,则该第一ecu为发动机ecu。该第一ecu可以为发动机ecu,还可以为空调ecu。
121.对于现有技术来说,若想从ecu列表中选择某一个ecu,则需要提供全部协议信息
给诊断软件(比如将不同车型的ecu列表提供出来)举例来说,若需要的是大众汽车的ecu列表,则需要将大众汽车、新能源汽车、奔驰汽车等车型的ecu列表均暴露出来,提供给诊断软件从中选择某一ecu;而本技术是通过中间模块来选择某一车型对应的ecu列表之后,再从中选择某一ecu(比如直接通过中间模块从大众汽车的ecu列表中选择发动机ecu),与现有技术相比较而言,本技术大大提高了诊断过程的效率且相对来说精简了许多。
122.步骤6:诊断软件向中间模块的第二接口发送第一ecu的信息。
123.其中,第一ecu的信息可以包括第一ecu的名称、编号或者标识等信息。
124.表3
125.ecuecu标识ecu名称发动机ecuadfadfadfdems空调ecufdfdfdaac波箱ecubxshbdilat
126.如表3所示,如果以上选择的第一ecu为发动机ecu,则该第一ecu的信息可以包括“adfadfadfd”和/或“ems”;如果以上选择的第一ecu为空调ecu,则该第一ecu的信息可以包括“fdfdfd”和/或“aac”,其余依次类推。
127.步骤7:中间模块的第二接口接收诊断软件发送的第一ecu的信息。
128.其中,所述第二接口为预设的用于读取所述第一ecu的诊断功能列表的接口。
129.步骤8:中间模块向诊断软件发送第一ecu的诊断功能列表。
130.具体地,本技术实施例中,不同的ecu对应有自己的诊断功能列表,不同的ecu对应的诊断功能列表可能相同也可能不同。
131.情况一,不同的ecu对应的诊断功能列表可能相同。比如,发动机ecu中包含的诊断功能为读取数据流、读取故障码和清除故障码等;而空调ecu包含的也可能是读取数据流、读取故障码和清除故障码等功能。
132.情况二,不同的ecu对应的诊断功能列表可能不同。比如,发动机ecu中包含的诊断功能为读取故障码、清除故障码和读取数据流等;而空调ecu包含的可能是执行动作测试等功能。
133.该中间模块接收到第一ecu的信息后,根据该第一ecu的信息可以确定该第一ecu,并进一步确定该第一ecu对应的功能列表。同样以表3为例,如果该第一ecu的信息为“adfadfadfd”,那么,可以确定该第一ecu为发动机ecu,进而获取该发动机对应的诊断功能列表,不同发动机对应的诊断功能列表可以如表4所示。
134.表4
135.ecu诊断功能列表发动机ecu读取数据流、读取故障码、清除故障码空调ecu执行动作测试波箱ecu执行编码
136.该中间模块可以在确定出第一ecu的诊断功能列表之后自动向诊断软件发送该诊断功
137.能列表,也可以通过显示器向检测人员输出该诊断功能列表,检测人员可以对该诊断功能列表进行操作,比如,确认发送操作、取消操作等,其中,如果该中间模块接收到检
测人员输入的确认发送操作,则向诊断软件发送该诊断功能列表,如果该中间模块接收到检测人员输入的取消发送操作,则不发送该诊断功能列表。
138.如表4所示,如果根据该第一ecu的信息确定出的ecu为发动机ecu,则发送的诊断功能列表包括读取数据流、读取故障码、清除故障码等功能,如果根据该第一ecu的信息确定出的ecu为空调ecu,则发送的诊断功能列表包括执行动作测试等功能。
139.步骤9:诊断软件接收中间模块发送的第一ecu的诊断功能列表。
140.步骤10:诊断软件从第一ecu的诊断功能列表中选择第一功能。
141.具体地,该诊断软件接收到第一ecu的诊断功能列表后可以向检测人员输出该第一ecu的诊断功能列表,比如,通过显示器显示该诊断功能列表,相应地,检测人员在该诊断软件或者该诊断软件所在的诊断设备上执行针对该第一ecu的诊断功能列表中的第一功能的选择操作,相应地,该诊断软件就从该第一ecu的诊断功能列表中选择所述第一功能。以上述表4为例,如果该第一ecu为发动机ecu,那么这里就是从“发动机ecu的诊断功能列表”中选择第一功能,例如,如图6所示,该第一功能可以为读取数据流,还可以为读取故障码。
142.步骤11:诊断软件向中间模块的第二接口发送第一功能的信息。
143.其中,第一功能的信息可以包括第一功能的名称、标识或者编号等信息。
144.表5
145.诊断功能诊断功能标识诊断功能名称读取数据流tjhgjmread did读取故障码bbytjuread dtc清除故障码nhyntyclear dtc执行动作测试nhtrtfefio test
146.如表5所示,如果以上选择的第一功能为读取数据流,则该第一功能的信息可以包括“tjhgim”和/或“read did”;如果以上选择的第一功能为读取故障码,则该第一功能的信息可以包括“bbytju”和/或“read dtc”,其余依次类推。
147.步骤12:中间模块的第三接口接收诊断软件发送的第一功能的信息。
148.其中,第三接口为预设的用于读取所述第一功能涉及的数据项列表的接口。
149.步骤13:中间模块向诊断软件发送第一功能的数据项列表。
150.具体地,本技术实施例中,不同的诊断功能对应有自己的数据项列表,不同的诊断功能对应的数据项列表可能相同也可能不同。
151.情况一,不同的诊断功能对应的数据项列表可能相同。比如,读取故障码功能包含的数据项为进气温度、进气压力、引擎水温等;而清除故障码功能包含的也可能是进气温度、进气压力、引擎水温等。
152.情况二,不同的诊断功能对应的数据项列表可能不同。比如,读取数据流中包含的数据项为车速、温度、气节门开关、氧传感器等;而执行动作测试功能包含的数据项可能是转速、燃油量等。
153.该中间模块接收到第一功能的信息后,根据该第一功能的信息可以确定该第一功能,并进一步确定该第一功能对应的数据项列表。同样以表5为例,如果该第一功能的信息为“tjhgjm”,那么,可以确定该第一功能为读取数据流功能,进而获取该功能对应的数据项列表,不同功能对应的数据项列表可以如表6所示。
154.表6
155.诊断功能数据项列表读取数据流车速、温度、气节门开关、氧传感器读取故障码进气温度、进气压力、引擎水温清除故障码进气温度、进气压力、引擎水温执行动作测试转速、燃油量
156.该中间模块可以在确定出第一功能的数据项列表之后自动向诊断软件发送该数据项列表,也可以通过显示器向检测人员输出该数据项列表,检测人员可以对该数据项列表进行操作,比如,确认发送操作、取消操作等,其中,如果该中间模块接收到检测人员输入的确认发送操作,则向诊断软件发送该数据项列表,如果该中间模块接收到检测人员输入的取消发送操作,则不发送该数据项列表。如表6所示,如果根据该第一功能的信息确定出的诊断功能为读取数据流,则发送的数据项列表包括车速、温度、气节门开关、氧传感器等数据项,如果根据该第一功能的信息确定出的诊断功能为读取故障码,则发送的数据项列表包括进气温度、进气压力、引擎水温等数据项。
157.步骤14:诊断软件接收中间模块发送的数据项列表。
158.步骤15:诊断软件从数据项列表中选择第一数据项。
159.具体地,该诊断软件接收到第一功能的数据项列表后可以向检测人员输出该第一功能的数据项列表,比如,通过显示器显示该数据项列表,相应地,检测人员在该诊断软件或者该诊断软件所在的诊断设备上执行针对该数据项列表中的第一数据项的选择操作,相应地,该诊断软件就从该数据项列表中选择所述第一数据项。以上述表6为例,如果该第一功能为读取数据流,那么这里就是从“读取数据流的数据项列表”中选择第一数据项,如图7所示,
160.该第一数据项可以为车速,还可以为温度。
161.步骤16:诊断软件向中间模块的第四接口发送第一数据项的信息。
162.其中,第一数据项的信息可以包括第一数据项的名称、标识或者编号等信息。
163.表7
164.数据项数据项标识数据项名称车速gfgdfspeed温度dsvcdtemperature转速hjhmhrotational speed进气压力sdeduymanifold absolute pressure
165.如表7所示,如果以上选择的第一数据项为车速,则该第一数据项的信息可以包括“gfgdf”和/或“speed”;如果以上选择的第一数据项为温度,则该第一数据项的信息可以包括“dsvcd”和/或“temperature”,其余依次类推。
166.步骤17:中间模块的第四接口接收诊断软件发送的第一数据项的信息。
167.其中,所述第四接口为预设的用于读取所述第一数据项的参数值的接口。
168.步骤18:中间模块确定第一数据项关联的读取指令、位置及算法。
169.具体地,举例来说,首先中间模块在其内部存储的诊断协议中查找车辆ecu列表,确定发动机ecu,然后对发动机ecu的功能列表进行扫描,查找到想要的的某一功能,比如想
要读取数据流,那么就继续查找车速和温度等数据项的信息,找到它们的指令、位置、算法等关联信息,比如在诊断协议中查找到了车速的读取指令为0x220801,字节位置为发动机回复数据的第3,4字节。
170.步骤19:中间模块通过硬件vci向车辆发送所述读取指令。
171.具体地,所述中间模块根据所述目标ecu通讯协议,与所述待诊断车辆中的目标ecu建立通信连接,硬件vci用于实现中间模块与待诊断车辆之间的通讯交互。所述指令用于请求读取所述第一ecu的目标部件的运行参数,举例来说,该运行参数可以为待诊断车辆的车速的初始参数值。
172.步骤20:中间模块通过硬件vci接收运行参数。
173.具体地,中间模块获取车速和温度的读取指令之后传给硬件vci,硬件vci会将指令转换成为汽车总线格式比如can协议格式,然后发送给发动机ecu,然后车辆会通过硬件vci向中间模块返回运行参数。中间模块与硬件vci之间的通信可以使用国际标准的统一通讯接口比如saej2534或者isod

pdu通讯接口,这样一来只要是符合这些国际标准的vci都可以使用,并不局限于只能使用某一硬件vci。若局限于只能使用某一硬件vci,当遇到提供硬件的生产厂家无法提供这一种硬件vci,而其他系列的硬件vci又无法使用的情况时,中间模块与硬件vci之间的通信就无法完成,不局限于某一种硬件vci的话可以扩大硬件vci的适用范围,并且保证了通讯交互过程的稳定性。
174.步骤21:中间模块根据所述位置、所述算法对所述运行参数进行处理,得到诊断结果。
175.该中间模块接收到硬件vci返回的运行参数后,通过车速和温度的位置和算法来计算出实际值并返回给诊断软件,比如一帧信息里面会包含多个数据,比如温度和车速,存放的多个数据会有不同的字节,假如一帧是8个数据,1、2代表的是温度,3、4代表车速,我们就可以从中取想要的数据,具体地,假如我们在诊断协议中查找到车速的读取指令为0x220801,字节位置为发动机回复数据的第3,4字节,x1表示第3字节,x2表示第四字节,那么就可以通过计算算法y=x1*256 x2就可以将实际值y计算出来为80km/h,同理,温度的实际值也可以通过相关公式计算出来,这样中间模块就可以得到这两项数据项的诊断结果。
176.步骤22:该中间模块可以在确定出诊断结果之后自动向诊断软件发送该诊断结果,也可以通过显示器向检测人员输出该诊断结果,检测人员可以对该诊断结果进行操作,比如,确认发送操作、取消操作等,其中,如果该中间模块接收到检测人员输入的确认发送操作,则向诊断软件发送该诊断结果,如果该中间模块接收到检测人员输入的取消发送操作,则不发送该诊断结果。
177.步骤23:诊断软件接收中间模块发送的诊断结果。
178.本技术实施例中,该诊断软件接收到最后的诊断结果后可以向检测人员输出该诊断结果,比如,通过显示器显示。
179.本技术实施例中,还可以继续对其他的ecu做类似操作,直至车辆的全部ecu被检测完毕;检测完成后,该诊断软件还可以生成报告单,通过显示器显示给检测人员。相应的,检测人员读取到该报告单后,就可以对报告单中的车辆问题进行检修。比如,如果检测人员从报告单中获知发动机的转速存在故障,就可以对发动机进行维修。
180.在一种可选的方案中,中间模块接口包括但不限于如下两种情况:
181.情况一,该中间模块中包括预先设定好的通用通讯接口,对不同车型的同类信息进行调用时所用到的所述通用通讯接口相同,其中,该通用通讯接口包括第一接口、第二接口中的一项或者多项,如图5所示,可以看出针对不同的车型需要对应不同的中间模块,举例来说,a车型对应的就是a车型的中间模块,b车型对应的就是b车型的中间模块,c车型对应的就是c车型的中间模块,以此类推。
182.尽管中间模块不同,但是中间模块共用的是一套对外接口,因此在对诊断软件的诊断代码进行开发时只需要开发一套代码,节省了开发成本。举例来说,假设大众汽车和东风本田这两种车型想要调用的通用通讯接口相同,比如,调用的大众汽车对应的第一接口与调用的东风本田对应的第一接口为同一个第一接口,再如,调用的大众汽车对应的第二接口与调用的东风本田对应的第二接口为同一个第二接口,其余以此类推。另外,不同车型的同类信息包括车辆的ecu列表和单个ecu的诊断功能,针对同类信息举例来说,大众汽车和东风本田都有ecu列表,那么ecu列表就属于它们的同类信息中的一种,只不过它们是不同的车型,因此它们的ecu列表是不同的;同类信息的另一种情况是如果大众汽车和东风本田这两种车型都可以读取发动机ecu的数据项,那么读取发动机ecu的数据项(即执行单个ecu的诊断功能)也属于它们的同类信息的一种。
183.情况二,该中间模块包括预先设定好的目标通讯接口,对不同车型的同类信息进行调用时所用到的所述目标通讯接口不同,可以理解,针对不同的车型需要对应不同的中间模块,不同的中间模块返回的ecu列表以及不同ecu对应的诊断功能列表不同,并且不同的中间模块各自对应一套对外接口,由于每个中间模块分别对应有自己的对外接口,因此在对诊断软件进行代码开发时,可以针对每个中间模块及其对应的对外接口进行正对性的开发,避免因为考虑兼容而导致开发出的代码出现较多冗余,提升了代码的简洁性和运行效率。并且,由于每个中间模块及其对外接口是正对性地进行开发,因此开发出的代码能够更好的适应相应车型的诊断需求。举例来说,假设大众汽车和东风本田这两种车型想要调用的目标通讯接口不同,比如,调用的大众汽车对应的第一接口与调用的东风本田对应的第一接口不为同一个第一接口,再如,调用的大众汽车对应的第二接口与调用的东风本田对应的第二接口为不同一个第二接口,其余以此类推。
184.上述目标通讯接口为该通用通讯接口。
185.在另一种可选的方案中,所述中间模块还部署在诊断设备上。
186.在本技术实施例中,通过这个中间模块提供至少n种车型可用的统一通讯接口,同时这个中间模块封装了某一个车型的各个ecu的通讯协议信息。通过增加中间模块来封装ecu通讯协议可以减少车辆信息对外界的暴露,显著提升了车辆诊断过程中的安全性。
187.上述详细阐述了本技术实施例的方法,下面提供了本技术实施例的装置。
188.请参见图8,图8是本技术实施例提供的一种诊断装置80的结构示意图,该诊断装置80为上述诊断设备或者上述诊断设备中的器件,该诊断装置80可以包括获取单元801、调用单元802和接收单元803,其中,各个单元的详细描述如下。
189.获取单元801用于获取用户选择的目标操作指令。
190.调用单元802用于根据所述目标操作指令调用中间模块的目标通讯接口;所述中间模块封装了目标车辆的车型对应的ecu通讯协议,并与所述目标车辆实现通讯。所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断
软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个。
191.接收单元803用于接收所述中间模块返回的与所述目标通讯接口对应的诊断信息。
192.在本技术实施例中,通过这个中间模块提供至少n种车型可用的统一通讯接口,同时这个中间模块封装了某一个车型的各个ecu的通讯协议信息。通过增加中间模块来封装ecu通讯协议可以减少车辆信息对外界的暴露,显著提升了车辆诊断过程中的安全性。
193.在一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
194.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
195.可以看出,针对不同的车型对应不同的中间模块,不同的中间模块返回的ecu列表以及不同ecu的诊断功能列表不同,并且不同的中间模块各自对应一套对外的车型通讯接口,由于每个中间模块分别对应有自己的对外车型通讯接口,因此在对诊断软件进行代码开发时,可以针对每个中间模块及其对应的对外接口进行正对性的开发,避免因为考虑兼容而导致开发出的代码出现较多冗余,提升了代码的简洁性和运行效率。并且,由于每个中间模块及其对外接口是正对性地进行开发,因此开发出的代码能够更好的适应相应车型的诊断需求。
196.请参见图9,图9是本技术实施例提供的一种诊断装置90的结构示意图,该诊断装置可以上述中间模块,或者该中间模块所在的诊断设备,该诊断装置90可以包括获取单元901、发送单元902和接收单元903,其中,各个单元的详细描述如下。
197.获取单元901用于获取诊断软件调用目标通讯接口的调用信息,所述中间模块封装了目标车辆的车型对应的ecu通讯协议列表,并与所述目标车辆实现通讯;
198.所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个。
199.发送单元902用于向所述诊断软件发送与所述目标通讯接口对应的诊断信息。
200.在本技术实施例中,中间模块主要是通过调用对应接口来针对性地返回诊断软件需要的局部(比如某一个ecu的功能列表、具体某一个功能的数据项列表等)信息或者执行某个诊断功能,相比于现有技术中在每次诊断过程中诊断设备都要获取全部车型的全部诊断协议信息(比如各车型的ecu列表全部提供出来)而言,本技术减少了车辆信息对外界的暴露,显著提升了车辆诊断过程中的安全性。
201.在另一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
202.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
203.可以看出,针对不同的车型对应不同的中间模块,不同的中间模块返回的ecu列表以及不同ecu的诊断功能列表不同,并且不同的中间模块各自对应一套对外的车型通讯接口,由于每个中间模块分别对应有自己的对外车型通讯接口,因此在对诊断软件进行代码开发时,可以针对每个中间模块及其对应的对外接口进行正对性的开发,避免因为考虑兼容而导致开发出的代码出现较多冗余,提升了代码的简洁性和运行效率。并且,由于每个中间模块及其对外接口是正对性地进行开发,因此开发出的代码能够更好的适应相应车型的诊断需求。
204.在又一种可选的方案中,所述目标通讯接口包括第一接口,所述第一接口用于获取目标车辆的ecu列表;
205.当所述中间模块获取到诊断软件调用所述第一接口的调用信息时,在所述中间件向所述诊断软件发送与所述目标通讯接口对应的诊断信息方面,所述处理单元具体用于:
206.根据封装的ecu通讯协议列表对所述目标车辆进行ecu扫描;
207.根据扫描结果生成目标车辆的ecu列表;
208.向所述诊断软件返回所述目标车辆的ecu列表。
209.在上述方法中,中间模块主要是通过对应接口来针对性地返回诊断软件需要的局部(比如某一个ecu的功能列表)信息,相比于现有技术中在每次诊断过程中诊断设备都要获取全部车型的全部诊断协议信息(比如各车型的ecu列表全部提供出来)而言,本技术减少了车辆信息对外界的暴露,显著提升了车辆诊断过程中的安全性。
210.在又一种可选的方案中,所述通用通讯接口还包括第二接口,所述第二接口用于获取目标ecu的诊断功能列表;
211.当所述中间模块获取到诊断软件调用所述第二接口的调用信息时,所述调用信息包括目标ecu的标识信息,在所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息方面,所述处理单元具体用于:
212.根据所述标识信息,向所述诊断软件返回所述目标ecu的诊断功能列表。
213.本实施例中,诊断软件还向中间模块针对性地获取了ecu列表,以便于诊断软件可以从该ecu列表中诊断性的选择所需要诊断的第一ecu,提高了诊断的灵活性。另外,由于提供单个ecu列表相比于现有技术中提供全部协议信息(一般包括多种车型的车辆的ecu列表)而言,所需暴露给诊断软件的协议信息更少,因此显著提升了车辆诊断过程中的安全性。
214.在另一种可选的方案中,所述车型通讯接口为诊断功能接口;当所述中间模块获取到诊断软件调用其中一个所述诊断功能接口的调用信息时,在所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息方面,所述处理单元用于:
215.根据被调用的所述诊断功能接口,确定待通讯的目标ecu以及对应的目标诊断功能;
216.查找与所述目标ecu对应的目标ecu通讯协议;
217.根据所述目标ecu通讯协议,与所述目标ecu建立通信连接;
218.向所述目标ecu发送与所述目标诊断功能对应的诊断指令;
219.接收所述目标ecu根据所述诊断指令返回的诊断结果数据;
220.向所述诊断软件发送所述诊断结果数据。
221.相比于现有技术在每次诊断过程中将诊断协议文件中的所有数据项的读取指令、位置及算法等信息都暴露出来(比如需要读取车速的相关指令、位置等信息的话,现有技术需要提供该诊断功能的全部数据项,然后由诊断软件选择)而言,查找的数据项过多,时间过长,诊断过程会变得很冗余;而本技术只需要提供对应的数据项的信息(比如需要车速的相关信息,那么就由诊断软件向中间模块发送车速的名称、标识或者编号等信息,表示需要获取的信息主体是车速,从而在中间模块内部查找车速相关的读取指令、位置等信息。不仅有效保护了诊断协议的安全性,也提高了诊断过程的效率。
222.在另一种可选的方案中,所述中间模块与目标车辆通过使用国际标准的通讯接口进行通讯。
223.上述诊断装置90的具体实现及有益效果还可以参照图2a或图2b所示的方法实施例的相应描述。
224.请参见图10,图10是本技术实施例提供的一种诊断设备100,该诊断设备100包括处理器1001和存储器1002,所述处理器1001和存储器1002通过总线相互连接。
225.存储器1002包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read

only memory,rom)、可擦除可编程只读存储器(erasable programmable read

only memory,eprom)、或便携式只读存储器(compact disc read

only memory,cd

rom),该存储器1002用于相关指令及数据。
226.处理器1001可以是一个或多个中央处理器(central processing unit,cpu),在处理器1001是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。
227.该诊断设备100中的处理器1001用于读取所述存储器1002中存储的程序代码,执行以下操作:
228.通过所述诊断软件获取用户选择的目标操作指令;
229.所述诊断软件根据所述目标操作指令调用中间模块的目标通讯接口;所述中间模块封装了目标车辆的车型对应的ecu通讯协议列表,并与所述目标车辆实现通讯;所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个;
230.通过所述诊断软件接收所述中间模块返回的与所述目标通讯接口对应的诊断信息。
231.在本技术实施例中,通过这个中间模块提供至少n种车型可用的统一通讯接口,同时这个中间模块封装了某一个车型的各个ecu的通讯协议信息。通过增加中间模块来封装ecu通讯协议可以减少车辆信息对外界的暴露,显著提升了车辆诊断过程中的安全性。
232.在一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
233.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
234.可以看出,针对不同的车型对应不同的中间模块,不同的中间模块返回的ecu列表以及不同ecu的诊断功能列表不同,并且不同的中间模块各自对应一套对外的车型通讯接口,由于每个中间模块分别对应有自己的对外车型通讯接口,因此在对诊断软件进行代码开发时,可以针对每个中间模块及其对应的对外接口进行正对性的开发,避免因为考虑兼容而导致开发出的代码出现较多冗余,提升了代码的简洁性和运行效率。并且,由于每个中间模块及其对外接口是正对性地进行开发,因此开发出的代码能够更好的适应相应车型的诊断需求。
235.请参见图11,图11是本技术实施例提供的一种诊断设备110,该诊断设备110包括处理器1101和存储器1102,所述处理器1101和存储器1102通过总线相互连接。
236.存储器1102包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read

only memory,rom)、可擦除可编程只读存储器(erasable programmable read

only memory,eprom)、或便携式只读存储器(compact disc read

only memory,cd

rom),该存储器1102用于相关指令及数据。
237.处理器1101可以是一个或多个中央处理器(central processing unit,cpu),在处理器1101是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。
238.该诊断设备110中的处理1101用于读取所述存储器1102中存储的程序代码,执行以下操作:
239.通过所述中间模块获取诊断软件调用目标通讯接口的调用信息,所述中间模块封装了目标车辆的车型对应的ecu通讯协议列表,并与所述目标车辆实现通讯;
240.所述中间模块包括至少一个通用通讯接口,所述通用通讯接口用于实现与至少n种车型对应的诊断软件进行通讯,所述目标通讯接口为所述通用通讯接口中的一个;
241.通过所述中间模块向所述诊断软件发送与所述目标通讯接口对应的诊断信息。
242.在本技术实施例中,通过这个中间模块提供至少n种车型可用的统一通讯接口,同时这个中间模块封装了某一个车型的各个ecu的通讯协议信息。通过增加中间模块来封装ecu通讯协议可以减少车辆信息对外界的暴露,显著提升了车辆诊断过程中的安全性。
243.在一种可选的方案中,所述中间模块还包括至少一个车型通讯接口,所述车型通讯接口为与所述目标车辆的车型对应的通讯接口;
244.所述目标通讯接口为所述通用通讯接口以及所述车型通讯接口中的一个。
245.可以看出,针对不同的车型对应不同的中间模块,不同的中间模块返回的ecu列表以及不同ecu的诊断功能列表不同,并且不同的中间模块各自对应一套对外的车型通讯接口,由于每个中间模块分别对应有自己的对外车型通讯接口,因此在对诊断软件进行代码开发时,可以针对每个中间模块及其对应的对外接口进行正对性的开发,避免因为考虑兼容而导致开发出的代码出现较多冗余,提升了代码的简洁性和运行效率。并且,由于每个中间模块及其对外接口是正对性地进行开发,因此开发出的代码能够更好的适应相应车型的诊断需求。
246.在另一种可选的方案中,所述通用通讯接口还包括第二接口,所述第二接口用于获取目标ecu的诊断功能列表;
247.当所述中间模块获取到诊断软件调用所述第二接口的调用信息时,所述调用信息包括目标ecu的标识信息,所述处理器用于:
248.根据所述标识信息,向所述诊断软件返回所述目标ecu的诊断功能列表。
249.本实施例中,诊断软件还向中间模块针对性地获取了ecu列表,以便于诊断软件可以从该ecu列表中诊断性的选择所需要诊断的第一ecu,提高了诊断的灵活性。另外,由于提供单个ecu列表相比于现有技术中提供全部协议信息(一般包括多种车型的车辆的ecu列表)而言,所需暴露给诊断软件的协议信息更少,因此显著提升了车辆诊断过程中的安全性。
250.在又一种可选的方案中,所述车型通讯接口为诊断功能接口,所述处理器用于:
251.根据被调用的所述诊断功能接口,确定待通讯的目标ecu以及对应的目标诊断功能;
252.查找与所述目标ecu对应的目标ecu通讯协议;
253.根据所述目标ecu通讯协议,与所述目标ecu建立通信连接;
254.向所述目标ecu发送与所述目标诊断功能对应的诊断指令;
255.接收所述目标ecu根据所述诊断指令返回的诊断结果数据;
256.向所述诊断软件发送所述诊断结果数据。
257.相比于现有技术在每次诊断过程中将诊断协议文件中的所有数据项的读取指令、位置及算法等信息都暴露出来(比如需要读取车速的相关指令、位置等信息的话,现有技术需要提供该诊断功能的全部数据项,然后由诊断软件选择)而言,查找的数据项过多,时间过长,诊断过程会变得很冗余;而本技术只需要提供对应的数据项的信息(比如需要车速的相关信息,那么就由诊断软件向中间模块发送车速的名称、标识或者编号等信息,表示需要获取的信息主体是车速,从而在中间模块内部查找车速相关的读取指令、位置等信息。不仅有效保护了诊断协议的安全性,也提高了诊断过程的效率。
258.在又一种可选的方案中,所述中间模块与目标车辆通过使用国际标准的通讯接口进行通讯。
259.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现图1所示实施例中诊断设备和中间模块所执行的操作。
260.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献