车辆诊断方法、装置、设备、可读存储介质及程序产品与流程

文档序号:32338046发布日期:2022-11-26 08:43阅读:39来源:国知局
车辆诊断方法、装置、设备、可读存储介质及程序产品与流程

1.本技术属于车辆诊断技术领域,尤其涉及一种车辆诊断方法、装置、设备、可读存储介质及程序产品。


背景技术:

2.随着汽车通信技术的发展,在整车网络中出现了新的通信技术:可变速率控制器局域网(controller area network with flexible data rate,canfd)。如图1所示,出现了控制器局域网(controller area network,can)和canfd两种总线通信技术并存的整车网络架构。通常整车厂出于安全考虑,车辆的车载诊断系统(on board diagnostic,obd)诊断接口,仅开放一路诊断can的接口连接外部诊断仪。外部诊断仪通过obd诊断can接口,访问车辆内can网络和canfd网络中的节点。
3.为了支持使用canfd通信协议的诊断仪进行诊断,obd诊断can接口可以兼容can通信协议和canfd通信协议。对于支持canfd通信协议的诊断仪,目前的诊断方案是:在普通诊断场景下,诊断仪访问can节点时,发送can报文,网关执行can-can的数据链路层路由,诊断仪访问canfd节点时,发送canfd报文,网关执行canfd-canfd的数据链路层路由。在诊断刷新的场景下,诊断仪发送canfd报文,如果目标是can节点,网关执传输层的路由,如果目标是canfd节点,网关执行数据链路层的路由。
4.上述诊断方案可以充分利用obd诊断接口的canfd带宽,使诊断刷新效率明显提升。然而,在上述方案中,网关需要区分不同的诊断场景,以对报文执行不同的路由,导致网关的软件复杂度高,研发成本高。


技术实现要素:

5.本技术实施例提供一种在车辆诊断方法、装置、设备、可读存储介质及程序产品,能够解决现有技术中因网关需要区分不同的诊断场景,以对报文执行不同的路由,导致网关的软件复杂度高,研发成本高。
6.第一方面,本技术实施例提供一种车辆诊断方法,应用于车辆,包括:
7.接收诊断仪发送的诊断请求报文,其中,所述诊断请求报文为可变速率控制器局域网canfd诊断请求报文或控制器局域网can诊断请求报文,
8.对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,其中,所述目标节点为can节点或canfd节点,
9.对所述目标节点发送的诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,
10.其中,在所述目标节点为can节点的情况下,所述诊断请求报文的数据长度代码dlc为8,在所述目标节点为可变速率控制器局域网canfd节点的情况下,所述诊断响应报文的dlc为8。
11.在一些实施例中,所述诊断仪和所述目标节点满足以下任一项:
12.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
13.所述诊断仪支持canfd通信协议,所述目标节点为can节点,
14.所述诊断仪支持can通信协议,所述目标节点为can节点,
15.所述诊断仪支持can通信协议,所述目标节点为canfd节点。
16.在一些实施例中,在所述诊断仪支持canfd通信协议的情况下,所述诊断请求报文为canfd诊断请求报文。
17.在一些实施例中,所述将所述诊断请求报文转发至目标节点,包括:
18.在所述目标节点为canfd节点的情况下,将所述canfd诊断请求报文直接发送至所述canfd节点,
19.在所述目标节点为can节点的情况下,将所述canfd诊断请求报文转换为can请求报文发送至所述can节点。
20.在一些实施例中,所述将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,包括:
21.在所述目标节点为canfd节点,所述诊断请求报文为canfd诊断响应报文的情况下,将所述canfd诊断响应报文转换为can诊断请求报文发送至所述诊断仪,
22.在所述目标节点为can节点,所述诊断请求报文为can诊断响应报文的情况下,将所述can诊断响应报文直接发送至所述诊断仪。
23.在一些实施例中,所述对所述诊断响应报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,包括:
24.根据第一先入先出fifo机制,将所述诊断请求报文转发至目标节点,对所述诊断响应报文执行数据链路层的路由,
25.其中,所述第一fifo机制的最小深度基于以下参数确定:所述车辆中各网络的节点数量,所述车辆的网关接收全部canfd诊断响应报文所需的第一时间,所述网关接收全部can诊断响应报文所需的第二时间,can网络发送8个字节所需要的最小时间,以及最大诊断响应消息对应的can报文数量。
26.在一些实施例中,所述根据第一先入先出fifo机制,对所述诊断响应报文执行数据链路层的路由之前,所述方法还包括:
27.通过第一计算公式,计算所述第一fifo机制的最小深度,所述第一计算公式为:
28.d1=p
×
z1-tmax-tcan
29.其中,d1为所述第一fifo机制的最小深度,p为所述车辆中各网络的节点数量的总和,z1为最大诊断响应消息对应的can报文数量,tmax为所述第一时间和所述第二时间的最大值,tcan为can网络发送8个字节所需要的最小时间。
30.在一些实施例中,所述对所述诊断请求报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,包括:
31.根据第二fifo机制,对所述诊断请求报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,
32.其中,在第一诊断场景下,所述第二fifo机制的最小深度为8级,所述第一诊断场景为以下任一项:
33.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
34.所述诊断仪支持can通信协议,所述目标节点为can节点,
35.所述诊断仪支持can通信协议,所述目标节点为canfd节点,
36.在所述诊断仪支持canfd通信协议,所述目标节点为can节点的诊断场景下,所述第二fifo机制的最小深度为333级。
37.在一些实施例中,所述接收诊断仪发送的诊断请求报文之前,所述方法还包括:
38.将所述车辆的obd诊断接口配置为兼容can工作方式和canfd工作方式,其中,所述can工作方式的波特率与整车can的波特率一致,所述canfd工作方式的波特率与整车canfd的波特率一致。
39.在一些实施例中,所述接收诊断仪发送的诊断请求报文之前,所述方法还包括:
40.根据所述车辆中各节点的类型,生成诊断路由表,
41.所述对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,包括:
42.根据所述诊断路由表,对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,
43.所述对所述诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,包括:
44.根据所述诊断路由表,对所述诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪。
45.在一些实施例中,所述接收诊断仪发送的诊断请求报文之前,所述方法还包括:
46.所述诊断仪向所述车辆发送所述诊断请求报文,
47.所述将所述诊断响应报文以can诊断响应报文发送至所述诊断仪之后,所述方法还包括:
48.所述诊断仪接收所述车辆发送的所述can诊断响应报文。
49.第二方面,本技术实施例提供了一种车辆诊断装置,装置包括:
50.第一接收模块,用于接收诊断仪发送的诊断请求报文,其中,所述诊断请求报文为可变速率控制器局域网canfd诊断请求报文或控制器局域网can诊断请求报文,
51.第一发送模块,用于对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,其中,所述目标节点为can节点或canfd节点,
52.第二发送模块,用于对所述目标节点发送的诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,
53.其中,在所述目标节点为can节点的情况下,所述诊断请求报文的数据长度代码dlc为8,在所述目标节点为canfd节点的情况下,所述诊断响应报文的dlc为8。
54.在一些实施例中,所述诊断仪和所述目标节点满足以下任一项:
55.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
56.所述诊断仪支持canfd通信协议,所述目标节点为can节点,
57.所述诊断仪支持can通信协议,所述目标节点为can节点,
58.所述诊断仪支持can通信协议,所述目标节点为canfd节点。
59.在一些实施例中,在所述诊断仪支持canfd通信协议的情况下,所述诊断请求报文为canfd诊断请求报文。
60.在一些实施例中,所述第一发送模块具体用于:
61.在所述目标节点为canfd节点的情况下,将所述canfd诊断请求报文直接发送至所述canfd节点,
62.在所述目标节点为can节点的情况下,将所述canfd诊断请求报文转换为can请求报文发送至所述can节点。
63.在一些实施例中,所述第二发送模块具体用于:
64.在所述目标节点为canfd节点,所述诊断请求报文为canfd诊断响应报文的情况下,将所述canfd诊断响应报文转换为can诊断请求报文发送至所述诊断仪,
65.在所述目标节点为can节点,所述诊断请求报文为can诊断响应报文的情况下,将所述can诊断响应报文直接发送至所述诊断仪。
66.在一些实施例中,所述第一发送模块具体用于:
67.根据第一先入先出fifo机制,将所述诊断请求报文转发至目标节点,对所述诊断响应报文执行数据链路层的路由,
68.其中,所述第一fifo机制的最小深度基于以下参数确定:所述车辆中各网络的节点数量,所述车辆的网关接收全部canfd诊断响应报文所需的第一时间,所述网关接收全部can诊断响应报文所需的第二时间,can网络发送8个字节所需要的最小时间,以及最大诊断响应消息对应的can报文数量。
69.在一些实施例中,所述装置还包括:
70.计算模块,用于通过第一计算公式,计算所述第一fifo机制的最小深度,所述第一计算公式为:
71.d1=p
×
z1-tmax-tcan
72.其中,d1为所述第一fifo机制的最小深度,p为所述车辆中各网络的节点数量的总和,z1为最大诊断响应消息对应的can报文数量,tmax为所述第一时间和所述第二时间的最大值,tcan为can网络发送8个字节所需要的最小时间。
73.在一些实施例中,所述第二发送模块具体用于:
74.根据第二fifo机制,对所述诊断请求报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,
75.其中,在第一诊断场景下,所述第二fifo机制的最小深度为8级,所述第一诊断场景为以下任一项:
76.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
77.所述诊断仪支持can通信协议,所述目标节点为can节点,
78.所述诊断仪支持can通信协议,所述目标节点为canfd节点,
79.在所述诊断仪支持canfd通信协议,所述目标节点为can节点的诊断场景下,所述第二fifo机制的最小深度为333级。
80.在一些实施例中,所述装置还包括:
81.配置模块,用于将所述车辆的obd诊断接口配置为兼容can工作方式和canfd工作方式,其中,所述can工作方式的波特率与整车can的波特率一致,所述canfd工作方式的波特率与整车canfd的波特率一致。
82.在一些实施例中,所述装置还包括:
83.生成模块,用于:根据所述车辆中各节点的类型,生成诊断路由表,
84.所述第一发送模块具体用于:
85.根据所述诊断路由表,对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,
86.所述第二发送模块具体用于:
87.根据所述诊断路由表,对所述诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪。
88.第三方面,本技术实施例提供了一种车辆诊断设备,设备包括:处理器以及存储有计算机程序指令的存储器,所述处理器执行所述计算机程序指令时实现如第一方面所述的车辆诊断方法。
89.第四方面,本技术实施例提供了一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的车辆诊断方法。
90.第五方面,本技术实施例提供了一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面所述的车辆诊断方法。
91.在本技术实施例中,一方面,通过将诊断请求报文和诊断响应报文的dlc限制为8,对于诊断请求报文和诊断响应报文,网关可以均执行数据链路层的路由,无需区分诊断场景,从而可以降低网关的软件复杂度。另一方面,无论目标节点支持何种通信协议,无论发送诊断请求报文的诊断仪支持何种通信协议,网关均将目标节点发送的诊断响应报文以can诊断响应报文发送至诊断仪,从而既可以降低网关的软件复杂度,也可以使得车辆支持使用can通信协议和canfd通信协议中的任一种通信协议的诊断仪进行车辆诊断,拓展性好。可见,本技术实施例的车辆诊断方法的拓展性好,且可以降低网关的软件复杂度,进而降低网关的研发成本。
附图说明
92.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
93.图1是本技术实施例提供的整车网络架构的示意图,
94.图2是本技术实施例提供的车辆诊断方法的流程图之一,
95.图3是本技术实施例提供的车辆诊断方法的流程图之二,
96.图4是本技术实施例提供的车辆诊断装置的结构图,
97.图5是本技术实施例提供的车辆诊断设备的结构图。
具体实施方式
98.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本技术,而不是限定本技术。对于本领
域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
99.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
100.为了方便理解,以下对本技术实施例涉及的一些内容进行说明:
101.一、通信协议。
102.can通信协议:波特率最大支持1兆比特每秒(mbps),一帧数据链路层的can报文最大携带8个字节的数据,即一帧数据链路层的can报文的数据长度代码(data length code,dlc)为8个字节。
103.canfd通信协议:波特率最大支持5mbps,一帧数据链路层的canfd报文最大携带64个字节的数据,即一帧数据链路层的can报文的dlc为64个字节。
104.在诊断过程中,can使用的诊断传输协议和canfd使用的诊断传输协议也存在不同:can的传输协议,单帧、第一帧和连续帧的最大长度是8个字节。canfd的传输协议,单帧、第一帧和连续帧的最大长度是64个字节。
105.在诊断仪通过obd诊断can接口访问canfd网络的节点时,网关需要执行can和canfd的协议转换(波特率转换和数据格式的转换)。这种协议转换需要一定的时间,因此在执行canfd网络节点软件更新时,尽管canfd传输速率高于can,反而更新速度慢于can节点。
106.二、诊断仪(也可以称为诊断设备或检测设备)。
107.本技术实施例的车辆诊断方法可以适用于以下两种类型的诊断仪:
108.a、政府检测设备,目前仅支持can通信协议。
109.b、整车厂的诊断仪,可随着其整车设计发展即时更新,可以支持canfd通信协议。
110.三、诊断场景。
111.在普通的诊断场景,最大的数据流场景是诊断仪发送功能寻址,所有的can和canfd节点给诊断仪发送多帧响应数据。这种情况下,数据量也不大,每个节点发送的数据一般不大于100个字节,即使车上有100个节点,传输数据所需的时间不到0.5s即可完成诊断。
112.在刷新场景下,诊断仪会大量给can和canfd节点传输数据,一个节点少的也有10万个字节的数,多则上千万个字节的数据。因此需要在刷新场景充分发挥obd诊断can接口的canfd带宽性能,以提高刷新效率,缩短刷新时间。
113.四、整车网络设计。
114.如图1所示,车辆可以包括至少一个can网络和至少一个canfd网络。进一步地,各can网络可以包括至少一个can节点,且不同can网络包括的can节点的数量可以相等或不等。各canfd网络可以包括至少一个canfd节点,且不同canfd网络包括的canfd节点的数量可以相等或不等。
115.在一些实施例中,整车网络设计可以表现为:
116.所有can网络的通信速率一样(如500千位节每秒(kbps))。
117.所有canfd网络的通信速率一样,canfd通信协议区分数据域的通信速率(如2mbps)和非数据域的通信速率(500kbps),非数据域的通信速率和传统can的通信速率可以一样。
118.对于该整车网络设计,由于所有can网络的通信速率一样,网关在与各can网络的节点进行通信时无需进行通信速率的转换,同样地,由于所有canfd网络的通信速率一样,网关在与各canfd网络的节点进行通信时无需进行通信速率的转换,从而可以降低网关软件的复杂度,进而降低网关开发成本。
119.当然,可以理解地是,在其他实施例中,也可以对整车网络进行其他适用的设计,本技术对此不进行限定。如:对于不同的can网络,其通信速率可以不一样,或者,对于不同的canfd网络,其通信速率可以设计为不一样。
120.五、报文的传输路径。
121.对于诊断请求报文,其传输路径为:诊断仪

车辆的obd诊断接口

车辆的网关

车辆的节点(can节点或canfd节点),即诊断仪发送诊断请求报文,车辆的obd诊断接口接收到诊断仪发送的诊断请求报文之后,将其传输至车辆的网关,之后,由车辆的网关将其转发至车辆的节点。
122.对于诊断响应报文,其传输路径为:车辆的节点(can节点和canfd节点)

车辆的网关

车辆的obd诊断接口

诊断仪,即车辆的节点响应诊断请求报文发送诊断响应报文,将其传输至车辆的网关,之后,由车辆的网关将其通过车辆的obd诊断接口发送至诊断仪。
123.可见,车辆通过obd诊断接口与诊断仪进行通信。
124.下面结合附图,通过一些实施例及其应用场景对本技术实施例提供的车辆诊断方法进行详细地说明。
125.参见图2,图2是本技术实施例提供的车辆诊断方法的流程图之一。图2所示的车辆诊断方法可以应用于车辆,具体地,图2所示的车辆诊断方法中的各步骤可以由车辆的网关执行。
126.如图2所示,车辆诊断方法可以包括以下步骤:
127.步骤201、接收诊断仪发送的诊断请求报文,其中,所述诊断请求报文为可变速率控制器局域网canfd诊断请求报文或控制器局域网can诊断请求报文。
128.具体实现时,车辆的网关可以通过obd诊断接口接收诊断仪发送的诊断请求报文。
129.可以理解地是,在步骤201之前,诊断仪向车辆发送诊断请求报文。
130.在一些实施例中,诊断仪可为支持can通信协议的诊断仪(以下称为can诊断仪)。can诊断仪发送的诊断请求报文为can诊断请求报文。在此实施例中,步骤201具体表现为:接收can诊断仪发送的can诊断请求报文。
131.在另一些实施例中,诊断仪可为支持canfd通信协议的诊断仪(以下称为canfd诊断仪)。canfd诊断仪发送的诊断请求报文可以为can诊断请求报文或canfd诊断请求报文,具体可根据实际需求决定,本技术实施例对此不作限定。在此实施例中,步骤201具体表现为:接收canfd诊断仪发送的can诊断请求报文或canfd诊断请求报文。
132.一些可选实现方式中,在所述诊断仪支持canfd通信协议的情况下,所述诊断请求
报文为canfd诊断请求报文。在此实现方式中,步骤201具体表现为:接收canfd诊断仪发送的canfd诊断请求报文。
133.在此实现方式中,对于诊断仪,无需关注诊断请求报文的接收节点是can节点还是canfd节点,发送的诊断请求报文始终为canfd诊断请求报文。这样,canfd诊断仪无需区分诊断场景,直接发送canfd诊断请求报文,从而可以降低诊断仪的软件复杂度,降低诊断仪的开发成本。
134.步骤202、对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,其中,所述目标节点为can节点或canfd节点。
135.在本技术实施例中,网关在接收到诊断请求报文之后,可以对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点。
136.在本技术实施例中,在所述目标节点为can节点的情况下,所述诊断请求报文的数据长度代码(data length code,dlc)为8,dlc的单位可以为字节,即将诊断请求报文的dlc限制为8个字节,与can通信协议中一帧数据链路层的can报文的dlc限制相同。
137.对于诊断仪发送的can诊断请求报文,其dlc本身即为8。对于诊断仪发送的canfd诊断请求报文,在目标节点为can节点的情况下,本技术实施例可以限定其dlc为8。
138.这样,在目标节点为can节点的情况下,无论诊断请求报文是canfd诊断请求报文还是can诊断请求报文,由于诊断请求报文的dlc与can通信协议中一帧数据链路层的can报文的dlc相同,网关都可以对诊断请求报文执行数据链路层的路由,将其转发至目标节点,无需做传输层的转换,从而可以提高诊断请求报文的路由效率。
139.可以理解地是,若can通信协议中一帧数据链路层的can报文的dlc变更为其他值,上述对诊断请求报文的dlc限制可以随之发生变更。即在本技术实施例中,在所述目标节点为can节点的情况下,所述诊断请求报文的dlc可以与can通信协议中一帧数据链路层的can报文的dlc相等。
140.另外,在某些实施例中,在所述目标节点为can节点的情况下,所述诊断请求报文的dlc可以小于can通信协议中一帧数据链路层的can报文的dlc。在此实施例中,网关同样可对诊断请求报文执行数据链路层的路由,将其转发至目标节点,但相比于dlc相等的情况,会降低诊断效率。
141.可见,在本技术实施例中,无论诊断请求报文是何种类型的诊断请求报文,目标节点是何种类型的节点,网关均可以对诊断请求报文执行数据链路层的路由,将其转发至目标节点,无需做传输层的转换,从而可以提高诊断请求报文的路由效率。
142.步骤203、对所述目标节点发送的诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪。
143.可以理解地是,在步骤203之后,所述诊断仪接收所述车辆发送的所述can诊断响应报文。
144.具体实现时,目标节点在接收到诊断请求报文之后,可以响应该诊断请求报文,生成诊断响应报文,并向网关发送该诊断响应报文。
145.可以理解地是,目标节点发送的诊断响应报文的类型与目标节点的类型一致。即对于can节点,其发送的诊断响应报文为can诊断响应报文。对于canfd节点,其发送的诊断响应报文为canfd诊断响应报文。
146.在本技术实施例中,在所述目标节点为canfd节点的情况下,所述诊断响应报文的dlc为8,dlc的单位可以为字节,即将诊断响应报文的dlc限制为8个字节,与can通信协议中一帧数据链路层的can报文的dlc限制相同。
147.对于目标节点发送的can诊断响应报文,其dlc本身即为8。对于目标节点发送的canfd诊断响应报文,在目标节点为can节点的情况下,本技术实施例可以限定其dlc为8。
148.这样,在目标节点为can节点的情况下,无论诊断响应报文是canfd诊断响应报文还是can诊断响应报文,由于诊断响应报文的dlc与can通信协议中一帧数据链路层的can报文的dlc相同,网关都可以对诊断响应报文执行数据链路层的路由,将其发送至诊断仪,无需做传输层的转换,从而可以提高诊断响应报文的路由效率。
149.可以理解地是,若can通信协议中一帧数据链路层的can报文的dlc变更为其他值,上述对诊断响应报文的dlc限制可以随之发生变更。即在本技术实施例中,在所述目标节点为can节点的情况下,所述诊断响应报文的dlc可以与can通信协议中一帧数据链路层的can报文的dlc相等。
150.另外,在某些实施例中,在所述目标节点为can节点的情况下,所述诊断响应报文的dlc可以小于can通信协议中一帧数据链路层的can报文的dlc相等。在此实施例中,网关同样可以对诊断响应报文执行数据链路层的路由,将其转发至目标节点,但相比于dlc相等的情况,会降低诊断效率。
151.可见,在本技术实施例中,无论诊断响应报文是何种类型的诊断响应报文,目标节点是何种类型的节点,网关均可以对诊断响应报文执行数据链路层的路由,将其发送至诊断仪,无需做传输层的转换,从而可以提高诊断响应报文的路由效率。
152.另一方面,值得注意地是,在本技术实施例中,网关可以将诊断响应报文以can诊断响应报文发送至诊断仪。这样,既可以保证can诊断仪和canfd诊断仪中的任一种类型的诊断仪,均可以接收诊断响应报文,也可以简化网关软件复杂度,即网关无需关注诊断仪的类型,均发送同样类型的诊断响应报文。如此,可以进一步降低网关的软件复杂图,同时可以使得本技术实施例的车辆诊断方法适用于任意类型的诊断仪,拓展性好。
153.本实施例的车辆诊断方法,一方面,通过将诊断请求报文和诊断响应报文的dlc限制为8,对于诊断请求报文和诊断响应报文,网关可以均执行数据链路层的路由,无需区分诊断场景,从而可以降低网关的软件复杂度。另一方面,无论目标节点支持何种通信协议,无论发送诊断请求报文的诊断仪支持何种通信协议,网关均将目标节点发送的诊断响应报文以can诊断响应报文发送至诊断仪,从而既可以降低网关的软件复杂度,也可以使得车辆支持使用can通信协议和canfd通信协议中的任一种通信协议的诊断仪进行车辆诊断,拓展性好。可见,本技术实施例的车辆诊断方法的拓展性好,且可降低网关的软件复杂度,进而降低网关的研发成本。
154.在本技术实施例中,所述诊断仪和所述目标节点可以满足以下任一项:
155.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
156.所述诊断仪支持canfd通信协议,所述目标节点为can节点,
157.所述诊断仪支持can通信协议,所述目标节点为can节点,
158.所述诊断仪支持can通信协议,所述目标节点为canfd节点。
159.即本技术实施例可以适用于以下任一项诊断场景:
160.诊断场景a:所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,即canfd诊断仪访问canfd节点。
161.诊断场景b:所述诊断仪支持canfd通信协议,所述目标节点为can节点,即canfd诊断仪访问can节点。
162.诊断场景c:所述诊断仪支持can通信协议,所述目标节点为can节点,即can诊断仪访问can节点。
163.诊断场景d:所述诊断仪支持can通信协议,所述目标节点为canfd节点,即can诊断仪访问canfd节点。
164.对于诊断场景a和b,canfd诊断仪可发送canfd诊断请求报文,并限制canfd诊断请求报文为8。在一些实施例中,所述将所述诊断请求报文转发至目标节点,包括:
165.在所述目标节点为canfd节点的情况下,将所述canfd诊断请求报文直接发送至所述canfd节点,
166.在所述目标节点为can节点的情况下,将所述canfd诊断请求报文转换为can请求报文发送至所述can节点。
167.具体实现时,在目标节点为canfd节点的情况下,网关可以直接执行canfd-canfd的数据链层路由,将canfd诊断请求报文直接发送至canfd节点。
168.在目标节点为can节点的情况下,网关可以先执行canfd-can的转换,转换得到can诊断请求报文,之后,执行can-can的数据链层路由,将can诊断请求报文直接发送至can节点。
169.如此,既可以使得网关对诊断请求报文执行数据链层路由,也可以使得目标节点接收到与其类型一致的诊断请求报文,从而可以提高车辆诊断的可靠性。
170.在一些实施例中,所述将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,包括:
171.在所述目标节点为canfd节点,所述诊断请求报文为canfd诊断响应报文的情况下,将所述canfd诊断响应报文转换为can诊断请求报文发送至所述诊断仪,
172.在所述目标节点为can节点,所述诊断请求报文为can诊断响应报文的情况下,将所述can诊断响应报文直接发送至所述诊断仪。
173.对于诊断场景a和断场景d,目标节点为canfd节点,其发送的诊断响应报文为canfd诊断响应报文,限定其dlc为8。由于本技术实施例的网关返回诊断仪的诊断响应报文均为can诊断响应报文,网关可以在对canfd诊断响应报文执行数据链路层的路由之后,执行canfd-can的转换,转换得到can诊断响应报文,之后,将其返回给诊断仪。
174.对于诊断场景b和断场景c,目标节点为can节点,其发送的诊断响应报文为can诊断响应报文。由于本技术实施例的网关返回诊断仪的诊断响应报文均为can诊断响应报文,网关可以在对can诊断响应报文执行数据链路层的路由之后,直接将其返回给诊断仪。
175.如此,可以使得车辆返回给诊断仪的诊断响应报文为can诊断响应报文,既可以简化网关对发送的诊断响应报文的处理机制,也可以使得各种类型的诊断仪均能接收到诊断响应报文,保证车辆诊断的可靠性。
176.在本技术实施例中,为避免网关在对诊断报文执行数据链路层的路由时丢帧,可以引入先入先出(first in first out,fifo)机制,使得网关基于fifo机制,对诊断报文执
行数据链路层的路由。
177.在一些实施例中,所述对所述诊断响应报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,可以包括:
178.根据第一先入先出fifo机制,将所述诊断请求报文转发至目标节点,对所述诊断响应报文执行数据链路层的路由,
179.其中,所述第一fifo机制的最小深度基于以下参数确定:所述车辆中各网络的节点数量,所述车辆的网关接收全部canfd诊断响应报文所需的第一时间,所述网关接收全部can诊断响应报文所需的第二时间,can网络发送8个字节所需要的最小时间,以及最大诊断响应消息对应的can报文数量。
180.在本实施例,第一fifo机制可以理解为网关在obd端的发送fifo机制,用于存储诊断响应报文。
181.由于功能寻址情况下节点响应报文数量最多,可以选用该情况下的信息计算第一fifo机制的最小深度。可以理解地是,在其他实施例中,也可以采用其他情况的信息计算第一fifo机制的最小深度,本技术实施例对此不作限定。
182.假设功能寻址情况下,一个节点最大诊断响应报文的长度为z。可以通过z计算最大诊断响应报文对应的can报文数量。一种可选实现方式中,考虑到统一诊断服务(unified diagnostic services,uds)报文的传输层协议最大可携带7个字节的有效数据,因此,可以将z除以7取整,再加1计算得到最大诊断响应报文对应的can报文数量z1。
183.假设车辆有x个canfd网络,每个canfd网络的节点数量分别为x1、x2

xx,有y个can网络,每个can网络的节点数量分别为y1、y2

yy。xmax为x1、x2

xx中最大的那个数,ymax为y1、y2

yx中最大的那个数。
184.由于各canfd节点可以并行发送canfd诊断响应报文,网关接收全部canfd诊断响应报文所需的第一时间可以通过公式(1)计算得到:
185.tx=xmax
×
tcanfd
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
186.其中,tx为网关接收全部canfd诊断响应报文所需的第一时间,tcanfd为在canfd网络中发送8个字节所需要的最小时间。
187.由于各can节点可以并行发送can诊断响应报文,网关接收全部can诊断响应报文所需的第二时间可以通过公式(2)计算得到:
188.ty=ymax
×
tcan
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
189.其中,ty为网关接收全部can诊断响应报文所需的第二时间,tcan为在can网络中发送8个字节所需要的最小时间。
190.一种可选实现方式中,所述根据第一先入先出fifo机制,对所述诊断响应报文执行数据链路层的路由之前,所述方法还包括:
191.通过第一计算公式,计算所述第一fifo机制的最小深度,所述第一计算公式为:
192.d1=p
×
z1-tmax-tcan
193.其中,d1为所述第一fifo机制的最小深度,p为所述车辆中各网络的节点数量的总和,p=x1+x2+

+xx+y1+y2+

+yy,z1为最大诊断响应消息对应的can报文数量,tmax为所述第一时间和所述第二时间的最大值,tcan为can网络发送8个字节所需要的最小时间。
194.在此实现方式中,可以选择tx和ty中的较大者计算第一fifo机制的最小深度。在
其他实现方式中,可以选择tx和ty中的较小者计算第一fifo机制的最小深度,具体可根据实际需求决定,本技术实施例对此不作限定。
195.可以理解地是,d1为第一fifo机制的最小深度,在实际应用中,第一fifo机制的深度可以大于或等于d1。fifo机制的深度的单位可以为集,进一步地,每级至少需要13个字节的缓存。
196.具体实现时,网关在根据fifo机制执行数据链路层的路由时,在上一个发送中断中,发送存储在fifo队列最近要发送的数据,直到fifo队列的数据为空。
197.通过上述方式计算得到的第一fifo机制的最小深度,可以使得网关在对诊断响应报文执行数据链路层的路由时不会丢帧,从而可以提高车辆诊断的可靠性。
198.在一些实施例中,所述对所述诊断请求报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,包括:
199.根据第二fifo机制,对所述诊断请求报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,
200.其中,在第一诊断场景下,所述第二fifo机制的最小深度为8级,所述第一诊断场景为以下任一项:
201.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
202.所述诊断仪支持can通信协议,所述目标节点为can节点,
203.所述诊断仪支持can通信协议,所述目标节点为canfd节点,
204.在所述诊断仪支持canfd通信协议,所述目标节点为can节点的诊断场景下,所述第二fifo机制的最小深度为333级。
205.在本实施例中,第二fifo机制可以理解为网关在网络端的发送fifo机制,用于存储诊断请求报文。
206.具体地,在目标节点为canfd节点的情况下,第二fifo机制可以理解为网关在canfd网络的发送fifo机制。在目标节点为can节点的情况下,第二fifo机制可以理解为网关在can网络的发送fifo机制。
207.在本实施例中,考虑到网关电子控制单元(electronic control unit,ecu)在系统负载比较高的情况下,还未转发上一条报文时,下一条报文需要转发的报文已经接收,因此,可以通过设置一定深度的第二fifo机制避免在这种情况下丢帧,从而导致诊断通信失败。
208.具体地,针对前述的诊断场景a、c和d,限定第二fifo机制的最小深度为8,针对前述的诊断场景b,限定第二fifo机制的最小深度为333。进一步地,每级至少需要13个字节的缓存。如此,可以使得网关在对诊断请求报文执行数据链路层的路由时不会丢帧,从而可以提高车辆诊断的可靠性。
209.对于诊断场景a、c和d,第二fifo机制的最小深度为经验值。
210.对于诊断场景b,第二fifo机制的最小深度的确定原理如下:
211.假设can通信速率为500kbps,canfd的通信波特率为2mbps。因为can的传输层,传输的一个请求报文长度最长为4095个字节,将4095除以7取整,加1,可以算出一个请求报文需要586条报文才能传输完成。canfd传输586条报文,需要的时间为75ms;而75ms,can(500bps)只能传输约253条报文,还剩余586-253=333条报文未发送。因此需要设置至少
333的fifo深度。
212.在本技术的一些实施例中,所述接收诊断仪发送的诊断请求报文之前,所述方法还可以包括:
213.将所述车辆的obd诊断接口配置为兼容can工作方式和canfd工作方式,其中,所述can工作方式的波特率与整车can的波特率一致,所述canfd工作方式的波特率与整车canfd的波特率一致。
214.即配置obd诊断接口可以兼容can通信协议和canfd通信协议,如此,可以使得车辆支持can诊断仪和canfd诊断仪对车辆进行诊断,从而可以提高车辆诊断的扩展性。
215.在本技术的一些实施例中,所述接收诊断仪发送的诊断请求报文之前,所述方法还包括:
216.根据所述车辆中各节点的类型,生成诊断路由表,
217.所述对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,包括:
218.根据所述诊断路由表,对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,
219.所述对所述诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,包括:
220.根据所述诊断路由表,对所述诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪。
221.具体实现时,可以先确定网关哪些网络是工作在传统can方式,哪些是工作在canfd方式,以及哪些节点是工作在can方式,哪些是工作在canfd方式,从而可以生成诊断路由表。具体地,可以生成canfd-canfd之间路由表、can-can之间路由表和can-canfd之间路由表。
222.诊断仪和canfd节点存在四种路由关系:canfd(诊断仪)

canfd(节点),can(诊断仪)

canfd(节点),canfd(节点)

can(诊断仪),canfd(节点)

canfd(诊断仪)。
223.诊断仪和can节点存在四种路由关系:canfd(诊断仪)

can(节点),can(诊断仪)

can(节点),can(节点)

can(诊断仪),can(节点)

canfd(诊断仪)。
224.可以利用上述路由关系生成诊断路由表,之后,可以基于诊断路由表执行数据链路层的路由,从而可以提高路由效率。
225.需要说明的是,本技术实施例中介绍的多种可选的实施方式,在彼此不冲突的情况下可以相互结合实现,也可以单独实现,对此本技术实施例不作限定。
226.为方便理解,以下结合一个具体实施场景进行示例说明:
227.一、区分四种诊断场景:
228.a、诊断仪支持canfd通信协议,访问canfd的节点。
229.b、诊断仪支持canfd通信协议,访问can的节点。
230.c、诊断仪支持can通信协议,访问can节点。
231.d、诊断仪支持can通信协议,访问canfd节点。
232.二、限制整车网络设计(推荐是这样的,如果不用这个设计,也是可以的,但是需要在网关中增加一些网络适配的功能。会增加网关软件的复杂度,增加开发周期和成本):
233.1、所有can网络的通信速率一样(如500kbps)。
234.2、所有canfd网络的通信速率一样,canfd协议区分数据域的通信速率(如2mbps)和非数据域的通信速率(500kbps),非数据域的通信速率和传统can的通信速率一样。
235.三、限制obd诊断can接口,支持canfd通信协议。
236.四、关键技术说明
237.1、canfd通信接口为canfd网络连接网络的接口。canfd通信接口可以兼容传统can通信接口,如此,canfd通信接口能够接收和发送传统can报文,在目标节点为canfd节点时,诊断仪可以发送can诊断请求报文。
238.2、考虑四种诊断场景:
239.a、诊断仪支持canfd通信协议,访问canfd的节点,限制节点仅发送dlc为8的诊断响应报文。诊断仪的canfd报文,网关执行数据链路层的报文路由,将诊断仪的请求报文直接转发至canfd网络,且将canfd网络中节点的canfd诊断响应报文,网关执行数据链路层的报文路由,将canfd报文转为传统can报文发至obd诊断接口。
240.网关在obd端的发送fifo机制,fifo的深度计算:假设有x个canfd网络,每个网络的节点数量为x1、x2

xx,y个can网络,每个网络的节点数量为y1、y2

yy。功能寻址情况下,一个节点最大响应报文的长度为z。通过z除以7,再加1计算发送该数据所需的can报文数量为z1。xmax为x1、x2

xx中最大的那个数,ymax为y1、y2

yx中最大的那个数,网关接收全部canfd诊断数据的时间为tx=xmax*tcanfd,网关接收全部can诊断数据的时间为ty=ymax*tcan,其中tcanfd为在canfd网络中发送8个字节所需要的最小时间,tcan为在can网络中发送8个字节所需要的最小时间,tmax为ty和tx中最大的那个数,则fifo的最小深度为(x1+x2+

+xx+y1+y2+

+yy)*z1-trmax/tcan。每级至少需要13个字节的缓存。在上一个发送中断中,发送存储在fifo最近要发送的数据,直到fifo的数据为空。
241.网关在canfd网络的fifo深度不小8级。
242.每级至少需要13个字节的缓存。
243.b、诊断仪支持canfd通信协议,访问can的节点:诊断仪可发送dlc为8的canfd诊断请求报文(实际上诊断仪可以发送dlc大于8的canfd报文,但是需要网关做tp层的转换,路由效率就比较低了,所以本专利中加以限制,以提高效率),网关执行数据链路层的报文路由,将诊断仪的请求报文直接转发至can网络,且将can网络中节点的can诊断响应报文直接转发至obd诊断接口。
244.网关在can网络的发送fifo机制,fifo的深度至少为333级。每级至少需要13个字节的缓存。在上一个发送中断中,发送存储在fifo最近要发送的数据,直到fifo的数据为空。
245.网关在obd端的发送fifo复用场景a的fifo。
246.c、诊断仪支持can通信协议,访问can节点:诊断仪发送传统can诊断请求报文,网关执行数据链路层的报文路由,将诊断仪的请求报文直接转发至can网络,且将can网络中节点的can诊断响应报文直接转发至obd诊断接口。
247.网关在obd端的发送fifo复用场景a的fifo。网关在can网络的发送fifo深度不小8级。每级至少需要13个字节的缓存。
248.d、诊断仪支持can通信协议,访问canfd节点,限制节点仅发送dlc为8的诊断响应
报文。诊断仪发送传统can诊断请求报文,网关执行数据链路层的路由,将接收的报文转为canfd报文发送至目标网络,且将canfd网络中节点的canfd诊断响应报,网关执行数据链路层的报文路由,将canfd报文转为传统can报文发至obd诊断接口。
249.网关在obd端的发送fifo复用场景a的fifo,网关在canfd网络的fifo深度不小8级。每级至少需要13个字节的缓存。
250.如图3所示:
251.步骤301、根据整车网络设计,预置canfd-canfd之间路由表、can-can之间路由表和can-canfd之间路由表。
252.具体实现时,确定网关哪些网络是工作在传统can方式,哪些是工作在canfd方式,及哪些节点(对应的诊断请求报文、响应报文)是工作在can方式,哪些是工作在canfd方式,从而确认网关的诊断路由表:
253.诊断接口和canfd网络之间的路由表。诊断仪和canfd节点存在四种路由关系:canfd(诊断仪)

canfd(节点),can(诊断仪)

canfd(节点),canfd(节点)

can(诊断仪),canfd(节点)

canfd(诊断仪)。
254.诊断接口和can网络之间的路由表。诊断仪和can节点存在四种路由关系:canfd(诊断仪)

can(节点),can(诊断仪)

can(节点),can(节点)

can(诊断仪),can(节点)

canfd(诊断仪)。
255.步骤302、根据整车网络设计,配置网关obd诊断can接口。
256.具体实现时,可以根据整车网络设计的can的波特率和canfd的波特率,配置网关obd诊断can接口的工作方式兼容can和canfd,其波特率和整车的can和canfd的波特率一样。
257.步骤303、诊断仪,发送的请求报文全都为canfd报文,如果目标节点为can节点,限制dlc为8,接收的响应报文为can报文。
258.步骤303中的诊断仪为整车诊断仪,支持canfd通信协议,发送诊断请求时,目标无论是can节点还是canfd节点,均发送canfd报文。目标节点为can节点时,请求报文的dlc限制为8。
259.步骤304、目标节点,如果是canfd的节点,诊断响应报文的dlc限制为8。
260.步骤305、网关结合fifo机制,对于诊断报文,执行数据链路层的路由。
261.具体实现时,网关接收的诊断报文(请求和响应),根据s001中的路由表,搭配fifo机制,执行数据链路层的路由。
262.本场景实施例具有如下有益效果:
263.系统扩展性好,适应新的整车通信技术canfd。
264.兼容传统整车通信技术can。
265.提高整车软件更新的效率。在刷新场景下,充分利用obd的can的canfd波特率传输更新数据,支持并行刷写,在不降低canfd节点更新效率的情况下,提高更新can节点效率,从而提高整车软件刷新的效率。
266.节约研发成本。车内其他节点的软件无需变更,仅需要canfd节点配置其发送的响应报文的dlc限制为8即可,降低网关、诊断仪的软件复杂度,缩短研发周期,从而降低研发成本。
267.基于上述实施例提供的车辆诊断方法,相应地,本技术还提供了车辆诊断装置的具体实现方式。请参见以下实施例。
268.参见图4,本技术实施例提供的车辆诊断装置可以包括:
269.第一接收模块401,用于接收诊断仪发送的诊断请求报文,其中,所述诊断请求报文为可变速率控制器局域网canfd诊断请求报文或控制器局域网can诊断请求报文,
270.第一发送模块402,用于对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,其中,所述目标节点为can节点或canfd节点,
271.第二发送模块403,用于对所述目标节点发送的诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,
272.其中,在所述目标节点为can节点的情况下,所述诊断请求报文的数据长度代码dlc为8,在所述目标节点为可变速率控制器局域网canfd节点的情况下,所述诊断响应报文的dlc为8。
273.在一些实施例中,所述诊断仪和所述目标节点满足以下任一项:
274.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
275.所述诊断仪支持canfd通信协议,所述目标节点为can节点,
276.所述诊断仪支持can通信协议,所述目标节点为can节点,
277.所述诊断仪支持can通信协议,所述目标节点为canfd节点。
278.在一些实施例中,在所述诊断仪支持canfd通信协议的情况下,所述诊断请求报文为canfd诊断请求报文。
279.在一些实施例中,所述第一发送模块具体用于:
280.在所述目标节点为canfd节点的情况下,将所述canfd诊断请求报文直接发送至所述canfd节点,
281.在所述目标节点为can节点的情况下,将所述canfd诊断请求报文转换为can请求报文发送至所述can节点。
282.在一些实施例中,所述第二发送模块具体用于:
283.在所述目标节点为canfd节点,所述诊断请求报文为canfd诊断响应报文的情况下,将所述canfd诊断响应报文转换为can诊断请求报文发送至所述诊断仪,
284.在所述目标节点为can节点,所述诊断请求报文为can诊断响应报文的情况下,将所述can诊断响应报文直接发送至所述诊断仪。
285.在一些实施例中,所述第一发送模块具体用于:
286.根据第一先入先出fifo机制,将所述诊断请求报文转发至目标节点,对所述诊断响应报文执行数据链路层的路由,
287.其中,所述第一fifo机制的最小深度基于以下参数确定:所述车辆中各网络的节点数量,所述车辆的网关接收全部canfd诊断响应报文所需的第一时间,所述网关接收全部can诊断响应报文所需的第二时间,can网络发送8个字节所需要的最小时间,以及最大诊断响应消息对应的can报文数量。
288.在一些实施例中,所述装置还包括:
289.计算模块,用于通过第一计算公式,计算所述第一fifo机制的最小深度,所述第一计算公式为:
290.d1=p
×
z1-tmax-tcan
291.其中,d1为所述第一fifo机制的最小深度,p为所述车辆中各网络的节点数量的总和,z1为最大诊断响应消息对应的can报文数量,tmax为所述第一时间和所述第二时间的最大值,tcan为can网络发送8个字节所需要的最小时间。
292.在一些实施例中,所述第二发送模块具体用于:
293.根据第二fifo机制,对所述诊断请求报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪,
294.其中,在第一诊断场景下,所述第二fifo机制的最小深度为8级,所述第一诊断场景为以下任一项:
295.所述诊断仪支持canfd通信协议,所述目标节点为canfd节点,
296.所述诊断仪支持can通信协议,所述目标节点为can节点,
297.所述诊断仪支持can通信协议,所述目标节点为canfd节点,
298.在所述诊断仪支持canfd通信协议,所述目标节点为can节点的诊断场景下,所述第二fifo机制的最小深度为333级。
299.在一些实施例中,所述装置还包括:
300.配置模块,用于将所述车辆的obd诊断接口配置为兼容can工作方式和canfd工作方式,其中,所述can工作方式的波特率与整车can的波特率一致,所述canfd工作方式的波特率与整车canfd的波特率一致。
301.在一些实施例中,所述装置还包括:
302.生成模块,用于:根据所述车辆中各节点的类型,生成诊断路由表,
303.所述第一发送模块具体用于:
304.根据所述诊断路由表,对所述诊断请求报文执行数据链路层的路由,将所述诊断请求报文转发至目标节点,
305.所述第二发送模块具体用于:
306.根据所述诊断路由表,对所述诊断响应报文执行数据链路层的路由,将所述诊断响应报文以can诊断响应报文发送至所述诊断仪。
307.本技术实施例提供的车辆诊断装置能够实现图2的方法实施例中的各个过程,为避免重复,这里不再赘述。
308.图5示出了本技术实施例提供的车辆诊断的硬件结构图。
309.在车辆诊断设备可以包括处理器501以及存储有计算机程序指令的存储器502。
310.具体地,上述处理器501可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
311.存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。
312.存储器可包括只读存储器(read-only memory,rom),随机存取存储器(random access memory,ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
313.处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种车辆诊断方法。
314.在一个示例中,车辆诊断设备还可包括通信接口505和总线510。其中,如图5所示,处理器501、存储器502、通信接口505通过总线510连接并完成相互间的通信。
315.通信接口505,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
316.总线510包括硬件、软件或两者,将车辆诊断设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
317.另外,结合上述实施例中的车辆诊断方法,本技术实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述实施例中的任意一种车辆诊断方法。
318.需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
319.以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
320.还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
321.上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图
和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
322.以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1