远程升级方法、装置、系统及设备端接头与流程

文档序号:31052396发布日期:2022-08-06 08:09阅读:111来源:国知局
远程升级方法、装置、系统及设备端接头与流程

1.本技术属于车辆技术领域,尤其涉及一种车辆电子控制单元的远程升级方法、远程升级装置、远程升级系统、设备端接头及计算机可读存储介质。


背景技术:

2.车辆电子控制单元(electronic control unit,ecu)的远程升级技术,可以使得车主无需再将车辆开往维修点,汽修人员通过诊断设备与车辆远程通信,即可实现对车辆ecu程序的升级。然而,在远程升级过程中,常常会因为网络延时波动和/或网络阻塞等原因造成车辆对诊断设备的命令应答超时,从而导致远程升级失败。


技术实现要素:

3.有鉴于此,本技术提供了一种车辆电子控制单元的远程升级方法、远程升级装置、设备端接头及远程升级系统,可以在网络不佳的情况下,有效降低对ecu程序远程升级失败的风险。
4.第一方面,本技术提供了一种车辆电子控制单元的远程升级方法,应用于设备端接头,包括:
5.当接收到诊断设备发送的前n条数据传输命令中第i条数据传输命令对应的数据包时,将上述第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;
6.接收上述车辆端接头发送的第i条第一应答命令,上述第i条第一应答命令为上述车辆针对上述第i条数据传输命令对应的数据包而反馈的命令;
7.在接收到的前n条第一应答命令相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第一应答命令发送至上述诊断设备,j>n;以及
8.将上述第j条数据传输命令对应的数据包发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述第j条数据传输命令对应的数据包,上述数据包用于实现对上述电子控制单元的远程升级。
9.可选地,上述远程升级方法还包括:
10.对未处理完的数据包的数量进行计数,其中,上述设备端接头每当接收到上述诊断设备发送的一个数据包时,上述未处理完的数据包的数量加一,每当接收到上述车辆端接头发送的一条第一应答命令时,上述未处理完的数据包的数量减一;
11.基于上述未处理完的数据包的数量确定目标时长;
12.从接收到上述第j条数据传输命令对应的数据包的时刻起,延时上述目标时长后将上述第一应答命令发送至上述诊断设备。
13.可选地,若上述目标时长大于预设的时长阈值,则上述远程升级方法还包括:
14.向上述诊断设备发送第一超时延长命令,上述第一超时延长命令用于指示上述诊断设备将等待第一应答命令的时间延长,上述时长阈值小于延长前的上述等待第一应答命令的时间。
15.可选地,上述远程升级方法还包括:
16.在接收到的前n条第一应答命令不相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第j条数据传输命令对应的数据包发送至上述车辆端接头;
17.当从上述车辆端接头接收到由上述车辆反馈的第一应答命令时,将上述车辆反馈的第一应答命令发送至上述诊断设备。
18.可选地,在上述将上述第j条数据传输命令对应的数据包发送至上述车辆端接头之后,上述远程升级方法还包括:
19.当从上述车辆端接头接收到由上述车辆反馈的第一应答命令时,将上述车辆反馈的第一应答命令丢弃。
20.可选地,上述远程升级方法还包括:
21.当接收到上述诊断设备发送的校验命令时,将上述校验命令发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述校验命令,上述校验命令用于指示上述车辆校验用于本次远程升级的数据包是否接收完整;以及
22.向上述诊断设备发送第二超时延长命令,上述第二超时延长命令用于指示上述诊断设备将等待第二应答命令的时间延长,上述第二应答命令为上述车辆在接收到校验命令时需要反馈的应答命令。
23.可选地,在上述将上述校验命令发送至上述车辆端接头之后,上述远程升级方法还包括:
24.当从上述车辆端接头接收到由上述车辆基于上述校验命令反馈的第二应答命令时,将上述第二应答命令发送至上述诊断设备。
25.第二方面,本技术提供了一种车辆电子控制单元的远程升级装置,应用于设备端接头,包括:
26.第一发送单元,用于当接收到诊断设备发送的前n条数据传输命令中第i条数据传输命令对应的数据包时,将上述第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;
27.第一接收单元,用于接收上述车辆端接头发送的第i条第一应答命令,上述第i条第一应答命令为上述车辆针对上述第i条数据传输命令对应的数据包而反馈的命令;
28.第二发送单元,用于在接收到的前n条第一应答命令相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第一应答命令发送至上述诊断设备,j>n;
29.第三发送单元,用于将上述第j条数据传输命令对应的数据包发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述第j条数据传输命令对应的数据包,上述数据包用于实现对上述电子控制单元的远程升级。
30.可选地,上述远程升级装置还包括:
31.计数单元,用于对未处理完的数据包的数量进行计数,其中,上述设备端接头每当接收到上述诊断设备发送的一个数据包时,上述未处理完的数据包的数量加一,每当接收到上述车辆端接头发送的一条第一应答命令时,上述未处理完的数据包的数量减一;
32.时长确定单元,用于基于上述未处理完的数据包的数量确定目标时长;
33.第四发送单元,用于从接收到上述第j条数据传输命令对应的数据包的时刻起,延时上述目标时长后将上述第一应答命令发送至上述诊断设备。
34.可选地,若上述目标时长大于预设的时长阈值,则上述远程升级装置还包括:
35.第五发送单元,用于向上述诊断设备发送第一超时延长命令,上述第一超时延长命令用于指示上述诊断设备将等待第一应答命令的时间延长,上述时长阈值小于延长前的上述等待第一应答命令的时间。
36.可选地,上述远程升级装置还包括:
37.第六发送单元,用于在接收到的前n条第一应答命令不相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第j条数据传输命令对应的数据包发送至上述车辆端接头;
38.第七发送单元,用于当从上述车辆端接头接收到由上述车辆反馈的第一应答命令时,将上述车辆反馈的第一应答命令发送至上述诊断设备。
39.可选地,上述远程升级装置还包括:
40.命令丢弃单元,用于当从上述车辆端接头接收到由上述车辆反馈的第一应答命令时,将上述车辆反馈的第一应答命令丢弃。
41.可选地,上述远程升级装置还包括:
42.第八发送单元,用于当接收到上述诊断设备发送的校验命令时,将上述校验命令发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述校验命令,上述校验命令用于指示上述车辆校验用于本次远程升级的数据包是否接收完整;以及
43.第九发送单元,用于向上述诊断设备发送第二超时延长命令,上述第二超时延长命令用于指示上述诊断设备将等待第二应答命令的时间延长,上述第二应答命令为上述车辆在接收到校验命令时需要反馈的应答命令。
44.可选地,上述远程升级装置还包括:
45.第十发送单元,用于当从上述车辆端接头接收到由上述车辆基于上述校验命令反馈的第二应答命令时,将上述第二应答命令发送至上述诊断设备。
46.第三方面,本技术提供了一种设备端接头,上述设备端接头包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法。
47.第四方面,本技术提供了一种车辆电子控制单元的远程升级系统,包括:
48.如上述第三方面的设备端接头,上述设备端接头与诊断设备连接;
49.车辆端接头,上述车辆端接头与车辆连接,用于实现上述车辆与上述设备端接头之间的数据转发。
50.第五方面,本技术提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法。
51.第六方面,本技术提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法。
52.由上可见,本技术方案中,设备端接头当接收到诊断设备发送的数据传输命令的前n条数据传输命令中第i条数据传输命令对应的数据包时,将第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;接收车辆端接头发送的第i条第一应答命令;在
接收到的前n条第一应答命令相同的情况下,当接收到诊断设备发送的第j条数据传输命令对应的数据包时,将第一应答命令发送至诊断设备;以及将第j条数据传输命令对应的数据包发送至车辆端接头,以指示车辆端接头向车辆发送第j条数据传输命令对应的数据包,数据包用于实现对电子控制单元的远程升级,j>n。与现有技术中设备端接头需要等待车辆反馈的第一应答命令,然后将该第一应答命令发送至诊断设备相比,本技术方案设备端接头可以收发前n条数据传输命令对应的数据包,接收车辆针对该前n个数据包反馈的第一应答命令,从而学习到车辆针对数据传输命令的数据包的应答方式(即回复一个第一应答命令),此后,当再次接收到诊断设备发送数据传输命令的数据包时,设备端接头可以代替车辆向诊断设备反馈第一应答命令,因此,即使设备端接头与车辆端接头之间的网络不佳,诊断设备也能及时接收到第一应答命令,从而有效降低了对ecu程序远程升级失败的风险。
53.可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
54.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
55.图1是本技术实施例提供的车辆电子控制单元的远程升级方法的实施环境示意图;
56.图2是本技术实施例提供的车辆电子控制单元的远程升级方法的流程示意图;
57.图3是本技术实施例提供的交互流程示意图;
58.图4是本技术实施例提供的车辆电子控制单元的远程升级装置的结构框图;
59.图5是本技术实施例提供的设备端接头的结构示意图。
具体实施方式
60.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
61.在现有的远程升级技术中,诊断设备向车辆发送一个用于传输ecu升级数据的数据包后,需要在规定时间内收到车辆反馈的应答命令,确认车辆已正确接收到该数据包后,才会发送下一个数据包。如果诊断设备未在规定时间内接收到车辆反馈的应答命令,则确认升级失败。然而,尽管现如今网络技术已经非常发达,但是在诊断设备与车辆进行无线通信的过程中依然难免会出现网络延时波动和/或网络阻塞,导致诊断设备接收应答命令的时间超时,从而使得远程升级失败。尤其是在对车辆进行ecu编程的过程中,诊断设备需要频繁地向车辆发送数据包,这加大了遭遇网络延时波动和/或网络阻塞的概率。基于此,本技术实施例提出了一种车辆电子控制单元的远程升级方法、远程升级装置、远程升级系统、设备端接头及计算机可读存储介质,设备端接头当接收到诊断设备发送的数据传输命令的
前n条数据传输命令中第i条数据传输命令对应的数据包时,将第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;接收车辆端接头发送的第i条第一应答命令;在接收到的前n条第一应答命令相同的情况下,当接收到诊断设备发送的第j条数据传输命令对应的数据包时,将第一应答命令发送至诊断设备;以及将第j条数据传输命令对应的数据包发送至车辆端接头,以指示车辆端接头向车辆发送第j条数据传输命令对应的数据包,数据包用于实现对电子控制单元的远程升级,j>n。与现有技术中设备端接头需要等待车辆反馈的第一应答命令,然后将该第一应答命令发送至诊断设备相比,本技术方案设备端接头可以收发前n条数据传输命令对应的数据包,接收车辆针对该前n个数据包反馈的第一应答命令,从而学习到车辆针对数据传输命令的数据包的应答方式(即回复一个第一应答命令),此后,当再次接收到诊断设备发送数据传输命令的数据包时,设备端接头可以代替车辆向诊断设备反馈第一应答命令,因此,即使设备端接头与车辆端接头之间的网络不佳,诊断设备也能及时接收到第一应答命令,从而有效降低了对ecu程序远程升级失败的风险。为了说明本技术实施例所提出的技术方案,下面通过具体实施例来进行说明。
62.下面结合图1对本技术实施例提供的车辆电子控制单元的远程升级方法的一种实施环境进行介绍。
63.在图1中,车辆端接头与车辆有线连接,设备端接头与诊断设备也是有线连接,例如,车辆端接头与车辆通过控制器局域网(controller area network,,can)线连接,设备端接头与诊断设备也通过can线连接。同时,车辆端接头和设备端接头均与云平台无线连接,例如,车辆端接头和设备端接头均通过互联网与云平台连接。
64.车辆端接头可通过can线与车辆进行交互,采集车辆的数据,并可通过云平台将数据透传到设备端接头。设备端接头可通过can线与诊断设备进行交互,将从云平台接收到的数据还原为can数据,然后将can数据传送给诊断设备。并且,设备端接头还可将诊断设备发送的数据通过云平台透传给车辆端接头,再由车辆端接头将从云平台接收到的数据还原为can数据后转发给车辆,从而实现远程升级。
65.下面对本技术实施例提供的一种车辆电子控制单元的远程升级方法进行描述。该车辆电子控制单元的远程升级方法可以应用于图1中的设备端接头,请参阅图2,该车辆电子控制单元的远程升级方法包括:
66.步骤201,当接收到诊断设备发送的前n条数据传输命令中第i条数据传输命令对应的数据包时,将第i条数据传输命令对应的数据包发送至车辆端接头。
67.步骤202,接收车辆端接头发送的第i条第一应答命令。
68.步骤203,在接收到的前n条第一应答命令相同的情况下,当接收到诊断设备发送的第j条数据传输命令对应的数据包时,将第一应答命令发送至诊断设备。
69.步骤204,将第j条数据传输命令对应的数据包发送至车辆端接头,以指示车辆端接头向车辆发送第j条数据传输命令对应的数据包。
70.在本技术实施例中,n为大于等于2的整数,i为大于0且小于等于n的整数。远程升级开始后,诊断设备可向设备端接头发出数据包,该数据包用于实现对电子控制单元的远程升级。具体地,诊断设备可以先发出一个诊断开始请求,该诊断开始请求经由设备端接头、云平台和车辆端接头到达车辆。然后,车辆针对该诊断开始请求返回一个应答,诊断设备收到该应答后,开始向设备端接头发出数据包。
71.需要注意的是,诊断设备发出的数据包有的可能是用于扫描ecu的系统,而本技术实施例中上述的数据包都是数据传输命令对应的数据包,用于对车辆进行远程升级,也即本技术实施例的远程升级方法只针对于数据传输命令对应的数据包。
72.设备端接头在本次远程升级的过程中,接收到前n条数据传输命令对应的数据中的任一个数据包时,均可以将该数据包发送至车辆端接头。然后,由车辆端接头将该数据包发送至车辆。最后,车辆在接收到该数据包时将反馈第一应答命令。如此一来,设备端接头可以接收到车辆端接头依次发送的前n条第一应答命令,该前n条第一应答命令中的第i条第一应答命令为车辆针对第i条数据传输命令对应的数据包而反馈的命令。
73.设备端接头在接收到上述n个第一应答命令时,可以判断n个第一应答命令是否相同(即相同的命令)。如果n个第一应答命令相同,则将第一应答命令存储在本地。以车辆与诊断设备之间使用统一诊断服务(unified diagnostic services,uds)协议进行通信为例,诊断设备在该协议下,可以通过数据传输命令0x36发出数据包。uds协议规定,车辆在接收到数据传输命令0x36的数据包时,需要反馈应答命令0x76。因此,本技术实施例中的第一应答命令可以是应答命令0x76。如果设备端接头接收到的n个第一应答命令均为应答命令0x76,则可以将应答命令0x76存储在本地。
74.设备端接头在接收到诊断设备发送的第j条数据传输命令对应的数据包后,可以将存储的第一应答命令发送至诊断设备,以及将第j条数据传输命令对应的数据包发送至车辆端接头。这样一来,诊断设备接收到设备端接头发送的第一应答命令时,就会认为该第一应答命令是车辆发出的,确定车辆已经正确接收到数据包,从而,诊断设备将会继续进行远程升级的后续流程,即发送下一个数据包,其中,j为大于n的整数。而另一边,车辆端接头在接收到设备端接头发送的第j条数据传输命令对应的数据包时,可以将该数据包发送至车辆。应理解,车辆在接收到该第j条数据传输命令对应的数据包时,按照车辆与诊断设备之间使用的通信协议的规定,会向车辆端接头反馈第一应答命令,然后车辆端接头可以将该第一应答命令发送至设备端接头。
75.在一些实施例中,由于设备端接头先前已经代替车辆向诊断设备发送过第一应答命令,因此,当设备端接头从车辆端接头接收到由车辆反馈的第一应答命令时,设备端接头可以直接将车辆端接头发送的第一应答命令丢弃。通过此种方式,即使车辆与诊断设备之间出现网络延时波动和/或网络阻塞,诊断设备依然能及时接收到设备端接头发送的第一应答命令,从而降低了远程升级失败的风险。
76.应理解,本技术中各个实施例上述的数据传输命令,均可以是uds协议中的数据传输命令0x36,而车辆针对数据传输命令0x36的数据包的第一应答命令均可以是uds协议中的应答命令0x76。
77.在一些实施例中,如果接收到的前n个第一应答命令不相同,为了保证远程诊断不出错,设备端接头接收到诊断设备发送的第j条数据传输命令对应的数据包时,可以不代替车辆向诊断设备反馈第一应答命令,只将第j条数据传输命令对应的数据包发送至车辆端接头。车辆端接头可以将该第j条数据传输命令对应的数据包发送至车辆,由车辆反馈针对该第j条数据传输命令对应的数据包的第一应答命令。设备端接头从车辆端接头接收到该第一应答命令时,可以将该第一应答命令发送至诊断设备。
78.在一些实施例中,上述车辆电子控制单元的远程升级方法还包括:
79.对未处理完的数据包的数量进行计数。
80.基于未处理完的数据包的数量确定目标时长。
81.从接收到第j条数据传输命令对应的数据包的时刻起,延时目标时长后将第一应答命令发送至诊断设备。
82.其中,未处理完的数据包的定义可以是:如果设备端接头接收到诊断设备发送的一个数据包,并将该数据包发送至车辆端接头,但是还未接收到车辆反馈的针对该数据包的第一应答命令,则该数据包为未处理完的数据包。具体地,设备端接头每当接收到诊断设备发送的一个数据包时,未处理完的数据包的数量加一,相应地,设备端接头每当接收到车辆反馈的一条第一应答命令时,未处理完的数据包的数量减一。
83.举例来说,假设当前时刻,未处理完的数据包的数量为3。此时,设备端接头接收到诊断设备发送的数据包,因此将未处理完的数据包的数量更新为4,并将该数据包发送至车辆端接头。车辆端接头将该数据包发送至车辆后,车辆反馈第一应答命令,该第一应答命令经由车辆端接头发送至设备端接头。设备端接头接收到该第一应答命令时,将未处理完的数据包的数量更新为3。本技术实施例中,由于设备端接头接收到诊断设备发送的数据包后,会立即将数据包发送至车辆端接头(车辆端接头将数据包添加到缓存中),且车辆端接头接收到车辆反馈的第一应答命令后,会立即将该第一应答命令发送至设备端接头(代表车辆端接头已经将对应的数据包从缓存中删除),因此,在不考虑通信延迟的情况下,未处理完的数据包的数量可以理解为车辆端接头缓存的数据包的数量。
84.通过对未处理完的数据包的数量进行计数,可以使设备端接头获取到车辆端接头的内存占用情况。考虑到设备端接头向车辆端接头发送数据包的速度通常高于车辆端接头向车辆发送数据包的速度(因为设备端接头收到诊断设备发送的数据包后,可以立即向诊断设备应答,并接收诊断设备发送的下一数据包,而车辆端接头向车辆发送数据包后,车辆需要保存该数据包,此过程是需要消耗时间的),因此诊断过程中,车辆端接头通常会缓存一定量的数据包,这些数据包将占用一定大小的内存。基于此,通过对未处理完的数据包的数量进行计数,确定车辆端接头的内存占用情况后,设备端接头可以控制发送数据包的速度,从而避免车辆端接头出现数据包占用内存过多的情况。
85.其中,目标时长基于未处理完的数据包的数量来确定。具体地,当设备端接头接收到诊断设备发送的第j条数据传输命令对应的数据包时,设备端接头首先获取当前时刻(即接收到第j条数据传输命令对应的数据包的时刻)的未处理完的数据包的数量,然后根据未处理完的数据包的数量确定目标时长,并从接收到数据包的时刻起算,延时目标时长后再将存储的第一应答命令发送至诊断设备。由于在诊断设备有多个数据包需要发送的情况下,诊断设备发送一个数据包后,需要接收到第一应答命令才会发送下一个数据包,因此,通过对设备端接头发送第一应答命令的时间进行延时,可以使得诊断设备发送数据包的频率变低,从而解决车辆端接头缓存数据包过多,占用内存多的问题。
86.可选地,上述基于未处理完的数据包的数量确定目标时长,包括:
87.若未处理完的数据包的数量小于等于预设的第一阈值,则将预设的第一时长确定为目标时长。
88.若未处理完的数据包的数量大于第一阈值且小于等于预设的第二阈值,则将预设的第二时长确定为目标时长。
89.若未处理完的数据包的数量大于第二阈值,则将预设的第三时长确定为目标时长。
90.在本技术实施例中,当设备端接头接收到诊断设备发送数据传输命令的第j个数据包时,设备端接头首先获取当前时刻(即接收到第j个数据包的时刻)的未处理完的数据包的数量。如果未处理完的数据包的数量小于预设的第一阈值,则将预设的第一时长确定为目标时长。如果未处理完的数据包的数量大于第一阈值且小于等于预设的第二阈值,则将预设的第二时长确定为目标时长。如果未处理完的数据包的数量大于第二阈值,则将预设的第三时长确定为目标时长。其中,第一阈值小于第二阈值,第一时长小于第二时长,第二时长小于第三时长。
91.以诊断设备与车辆之间使用的通信协议为uds协议为例,uds协议规定如果诊断设备发出一个服务请求后,55毫秒内未接收到应答,则确定应答超时,从而导致升级失败。基于此,作为一个示例,可以将第一时长确定为0,第二时长确定为45毫秒,第三时长确定为1秒。
92.在一些实施例中,考虑到目标时长可能会大于超时时长,为了防止诊断设备接收到第一应答命令的时间超时,如果目标时长大于预设的时长阈值,则上述车辆电子控制单元的远程升级方法还包括:向诊断设备发送第一超时延长命令。
93.其中,第一超时延长命令用于指示诊断设备将等待第一应答命令的时间延长。具体地,诊断设备在发出数据包后,如果在等待第一应答命令的时间内未接收到第一应答命令,则认为针对该数据包的第一应答命令已接收超时,比如在uds协议中,等待第一应答命令的时间为55毫秒。其中,时长阈值可以小于延长前的等待第一应答命令的时间,这是考虑到设备端接头向诊断设备传输第一应答命令也需消耗时间,如果时长阈值大于等于延长前的等待第一应答命令的时间,则当目标时长等于时长阈值(不满足发送第一超时延长命令的条件)时,目标时长加上第一应答命令的传输时长将会超过延长前的等待第一应答命令的时间,导致诊断设备针对第一应答命令的接收超时。需要说明的是,延长后的等待第一应答命令的时间只对本次发出的数据包有效,当诊断设备发出下一个数据包时,将会恢复使用延长前的等待第一应答命令的时间来判断针对该下一个数据包的第一应答命令是否接收超时。
94.例如,假设预设的等待第一应答命令的时间为55毫秒。诊断设备发出数据包1,然后接收到设备端接头发送的第一超时延长命令,于是将等待第一应答命令的时间延长至5秒,只要诊断设备在发出数据包后的5秒内能接收到数据包1对应的第一应答命令,则判定接收到第一应答命令的时间不超时。诊断设备在5秒内接收到数据包1对应的第一应答命令后,接着发送数据包2,那么,针对数据包2,诊断设备将依然根据延长前的等待第一应答命令的时间(即55毫秒)来判断接收到数据包2对应的第一应答命令的时间是否超时。
95.在一些实施例中,数据包包括首帧和连续帧。以车辆与诊断设备之间使用uds协议进行通信为例,首帧里面包含了数据包中数据的总长度、sid(service identity document,服务请求id)以及数据部分。每个连续帧的第一字节标识了帧序号,以指示该连续帧是数据包中的第几个连续帧。基于此,上述车辆电子控制单元的远程升级方法还包括:
96.当接收到诊断设备发送的数据包中的首帧时,向诊断设备发送流控帧。
97.若接收到数据包中所有的连续帧,则确定接收到诊断设备发送的数据包。
98.其中,设备端接头如果接收到诊断设备发送的数据包中的首帧,则设备端接头可以向诊断设备发送流控帧,该流控帧用于指示诊断设备发送该数据包中的连续帧。也即是说,诊断设备在发出首帧后,只有接收到流控帧,才会发送数据包中剩余的连续帧,直到数据包中的所有连续帧均发送完毕。在设备端接头接收到首帧,并向诊断设备发送流控帧后,若接收到数据包中所有的连续帧,则设备端接头确定数据帧已收齐,即已经接收到诊断设备发送的数据包,应理解,本技术实施例中的数据包可以是任意一个数据传输命令对应的数据包,例如前n条数据传输命令对应的数据包中的一个,或者是第j条数据传输命令对应的数据包。
99.可选地,上述车辆电子控制单元的远程升级方法还包括:
100.当接收到诊断设备发送的校验命令时,将校验命令发送至车辆端接头,以及向诊断设备发送第二超时延长命令。
101.在本技术实施例中,校验命令用于指示车辆校验用于本次远程升级的数据包是否接收完整。由于网络不佳或其它一些原因,车辆在远程升级过程中接收到的数据包常常会出现丢包的情况,因此,诊断设备在每次远程升级,将用于本次远程升级的所有数据包发送至设备端接头后,可以向设备端接头发送一条校验命令,设备端接头可以将该校验命令直接发送至车辆端接头,然后由车辆端接头将校验命令发送至车辆。车辆根据校验命令对数据包进行校验之后,可反馈第二应答命令,该第二应答命令经由车辆端接头和设备端接头发送至诊断设备。其中,诊断设备可以根据等待第二应答命令的时间判断接收到第二应答命令的时间是否超时,也即,如果诊断设备发出校验命令后,在等待第二应答命令的时间内未接收到第二应答命令,则确定针对该校验命令的第二应答命令的接收超时。考虑到车辆对数据包进行校验需要花费较多的时间,为了避免诊断设备接收到第二应答命令的时间超时,设备端接头在接收到校验命令时,还可以向诊断设备发送第二超时延长命令,该第二超时延长命令用于指示诊断设备将等待第二应答命令的时间延长。
102.在一些实施例中,设备端接头如果接收到车辆端接头发送的第二应答命令,可以将该第二应答命令发送至诊断设备。其中,该第二应答命令是车辆基于校验命令对数据包进行校验之后反馈的。
103.为了便于理解,下面结合图3对本技术实施例中车辆、车辆端接头、设备端接头以及诊断设备之间的交互流程进行介绍。
104.步骤301,设备端接头向车辆端接头发送前n条数据传输命令中第i条数据传输命令对应的数据包。
105.步骤302,车辆端接头向车辆发送该第i条数据传输命令对应的数据包。
106.步骤303,车辆接收上述第i条数据传输命令对应的数据包,并向车辆端接头反馈第i条第一应答命令。
107.步骤304,车辆端接头将车辆反馈的第i条第一应答命令发送至设备端接头。
108.步骤305,设备端接头接收到车辆端接头发送的前n个第一应答命令后,确定前n个第一应答命令相同,于是存储该第一应答命令。
109.步骤306,诊断设备确定远程升级已经开始。
110.步骤307,诊断设备发送第j条数据传输命令对应的数据包中的首帧。
111.步骤308,设备端接头接收到第j条数据传输命令对应的数据包中的首帧后,向诊
断设备发送流控帧。
112.步骤309,诊断设备接收到流控帧后,将第j条数据传输命令对应的数据包中的连续帧发送至设备端接头。
113.步骤310,设备端接头收齐第j条数据传输命令对应的数据包中的所有连续帧后,确定接收到第j条数据传输命令对应的数据包。
114.步骤311,设备端接头确定接收到第j条数据传输命令对应的数据包时,获取存储的第一应答命令。
115.步骤312,设备端接头确定接收到第j条数据传输命令对应的数据包时,将第j条数据传输命令对应的数据包发送至车辆端接头。
116.步骤313,设备端接头将第一应答命令发送至诊断设备。
117.步骤314,车辆端接头接收到第j条数据传输命令对应的数据包后,将第j条数据传输命令对应的数据包中的首帧发送至车辆。
118.步骤315,车辆接收到第j条数据传输命令对应的数据包中的首帧后,向车辆端接头发送流控帧。
119.步骤316,车辆端接头接收到流控帧后,将第j条数据传输命令对应的数据包中的连续帧发送至车辆。
120.步骤317,车辆收齐第j条数据传输命令对应的数据包中的所有连续帧后,确定接收到第j条数据传输命令对应的数据包。
121.步骤318,车辆确定接收到第j条数据传输命令对应的数据包时,向车辆端接头反馈第一应答命令。
122.步骤319,车辆端接头接收到第一应答命令时,将第一应答命令发送至设备端接头。
123.步骤320,设备端接头将从车辆端接头接收到的第一应答命令丢弃。
124.步骤321,诊断设备确定接收到第一应答命令后,向设备端接头发送校验命令。
125.步骤322,设备端接头确定用于本次远程升级的所有数据包发送完毕,将校验命令发送至车辆端接头。
126.步骤323,车辆端接头将校验命令发送至车辆。
127.步骤324,车辆接收到校验命令后,根据校验命令对用于本次远程升级的数据包进行校验,以确定用于本次远程升级的数据包是否接收完整。
128.步骤325,车辆对数据包校验完毕后,向车辆端接头反馈第二应答命令。
129.步骤326,车辆端接头将第二应答命令发送至设备端接头。
130.步骤327,设备端接头将第二应答命令发送至诊断设备。
131.由上可见,本技术方案中,设备端接头当接收到诊断设备发送的数据传输命令的前n条数据传输命令中第i条数据传输命令对应的数据包时,将第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;接收车辆端接头发送的第i条第一应答命令;在接收到的前n条第一应答命令相同的情况下,当接收到诊断设备发送的第j条数据传输命令对应的数据包时,将第一应答命令发送至诊断设备;以及将第j条数据传输命令对应的数据包发送至车辆端接头,以指示车辆端接头向车辆发送第j条数据传输命令对应的数据包,数据包用于实现对电子控制单元的远程升级,j>n。与现有技术中设备端接头需要等待车辆
反馈的第一应答命令,然后将该第一应答命令发送至诊断设备相比,本技术方案设备端接头可以收发前n条数据传输命令对应的数据包,接收车辆针对该前n个数据包反馈的第一应答命令,从而学习到车辆针对数据传输命令的数据包的应答方式(即回复一个第一应答命令),此后,当再次接收到诊断设备发送数据传输命令的数据包时,设备端接头可以代替车辆向诊断设备反馈第一应答命令,因此,即使设备端接头与车辆端接头之间的网络不佳,诊断设备也能及时接收到第一应答命令,从而有效降低了对ecu程序远程升级失败的风险。
132.对应于上文所提供的车辆电子控制单元的远程升级方法,本技术实施例还提供了一种车辆电子控制单元的远程升级装置。如图4所示,本技术实施例中的远程升级装置400,应用于设备端接头,包括:
133.第一发送单元401,用于当接收到诊断设备发送的前n条数据传输命令中第i条数据传输命令对应的数据包时,将上述第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;
134.第一接收单元402,用于接收上述车辆端接头发送的第i条第一应答命令,上述第i条第一应答命令为上述车辆针对上述第i条数据传输命令对应的数据包而反馈的命令;
135.第二发送单元403,用于在接收到的前n条第一应答命令相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第一应答命令发送至上述诊断设备,j>n;
136.第三发送单元404,用于将上述第j条数据传输命令对应的数据包发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述第j条数据传输命令对应的数据包,上述数据包用于实现对上述电子控制单元的远程升级。
137.可选地,上述远程升级装置400还包括:
138.计数单元,用于对未处理完的数据包的数量进行计数,其中,上述设备端接头每当接收到上述诊断设备发送的一个数据包时,上述未处理完的数据包的数量加一,每当接收到上述车辆端接头发送的一条第一应答命令时,上述未处理完的数据包的数量减一;
139.时长确定单元,用于基于上述未处理完的数据包的数量确定目标时长;
140.第四发送单元,用于从接收到上述第j条数据传输命令对应的数据包的时刻起,延时上述目标时长后将上述第一应答命令发送至上述诊断设备。
141.可选地,若上述目标时长大于预设的时长阈值,则上述远程升级装置400还包括:
142.第五发送单元,用于向上述诊断设备发送第一超时延长命令,上述第一超时延长命令用于指示上述诊断设备将等待第一应答命令的时间延长,上述时长阈值小于延长前的上述等待第一应答命令的时间。
143.可选地,上述远程升级装置400还包括:
144.第六发送单元,用于在接收到的前n条第一应答命令不相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第j条数据传输命令对应的数据包发送至上述车辆端接头;
145.第七发送单元,用于当从上述车辆端接头接收到由上述车辆反馈的第一应答命令时,将上述车辆反馈的第一应答命令发送至上述诊断设备。
146.可选地,上述远程升级装置400还包括:
147.命令丢弃单元,用于当从上述车辆端接头接收到由上述车辆反馈的第一应答命令
时,将上述车辆反馈的第一应答命令丢弃。
148.可选地,上述远程升级装置400还包括:
149.第八发送单元,用于当接收到上述诊断设备发送的校验命令时,将上述校验命令发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述校验命令,上述校验命令用于指示上述车辆校验用于本次远程升级的数据包是否接收完整;以及
150.第九发送单元,用于向上述诊断设备发送第二超时延长命令,上述第二超时延长命令用于指示上述诊断设备将等待第二应答命令的时间延长,上述第二应答命令为上述车辆在接收到校验命令时需要反馈的应答命令。
151.可选地,上述远程升级装置400还包括:
152.第十发送单元,用于当从上述车辆端接头接收到由上述车辆基于上述校验命令反馈的第二应答命令时,将上述第二应答命令发送至上述诊断设备。
153.由上可见,本技术方案中,设备端接头当接收到诊断设备发送的数据传输命令的前n条数据传输命令中第i条数据传输命令对应的数据包时,将第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;接收车辆端接头发送的第i条第一应答命令;在接收到的前n条第一应答命令相同的情况下,当接收到诊断设备发送的第j条数据传输命令对应的数据包时,将第一应答命令发送至诊断设备;以及将第j条数据传输命令对应的数据包发送至车辆端接头,以指示车辆端接头向车辆发送第j条数据传输命令对应的数据包,数据包用于实现对电子控制单元的远程升级,j>n。与现有技术中设备端接头需要等待车辆反馈的第一应答命令,然后将该第一应答命令发送至诊断设备相比,本技术方案设备端接头可以收发前n条数据传输命令对应的数据包,接收车辆针对该前n个数据包反馈的第一应答命令,从而学习到车辆针对数据传输命令的数据包的应答方式(即回复一个第一应答命令),此后,当再次接收到诊断设备发送数据传输命令的数据包时,设备端接头可以代替车辆向诊断设备反馈第一应答命令,因此,即使设备端接头与车辆端接头之间的网络不佳,诊断设备也能及时接收到第一应答命令,从而有效降低了对ecu程序远程升级失败的风险。
154.对应于上文所提供的车辆电子控制单元的远程升级方法,本技术实施例还提供了一种设备端接头,请参阅图5,本技术实施例中的设备端接头5包括:存储器501,一个或多个处理器502(图5中仅示出一个)及存储在存储器501上并可在处理器上运行的计算机程序。其中:存储器501用于存储软件程序以及单元,处理器502通过运行存储在存储器501的软件程序以及单元,从而执行各种功能应用以及数据处理。具体地,处理器502通过运行存储在存储器501的上述计算机程序时实现以下步骤:
155.当接收到诊断设备发送的前n条数据传输命令中第i条数据传输命令对应的数据包时,将上述第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;
156.接收上述车辆端接头发送的第i条第一应答命令,上述第i条第一应答命令为上述车辆针对上述第i条数据传输命令对应的数据包而反馈的命令;
157.在接收到的前n条第一应答命令相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第一应答命令发送至上述诊断设备,j>n;以及
158.将上述第j条数据传输命令对应的数据包发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述第j条数据传输命令对应的数据包,上述数据包用于实现对上述电子控制单元的远程升级。
159.在上述第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
160.对未处理完的数据包的数量进行计数,其中,上述设备端接头每当接收到上述诊断设备发送的一个数据包时,上述未处理完的数据包的数量加一,每当接收到上述车辆端接头发送的一条第一应答命令时,上述未处理完的数据包的数量减一;
161.基于上述未处理完的数据包的数量确定目标时长;
162.从接收到上述第j条数据传输命令对应的数据包的时刻起,延时上述目标时长后将上述第一应答命令发送至上述诊断设备。
163.在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,若上述目标时长大于预设的时长阈值,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
164.向上述诊断设备发送第一超时延长命令,上述第一超时延长命令用于指示上述诊断设备将等待第一应答命令的时间延长,上述时长阈值小于延长前的上述等待第一应答命令的时间。
165.在上述第一种可能的实施方式作为基础而提供的第四种可能的实施方式中,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
166.在接收到的前n条第一应答命令不相同的情况下,当接收到上述诊断设备发送的第j条数据传输命令对应的数据包时,将上述第j条数据传输命令对应的数据包发送至上述车辆端接头;
167.当从上述车辆端接头接收到由上述车辆反馈的第一应答命令时,将上述车辆反馈的第一应答命令发送至上述诊断设备。
168.在上述第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,在上述将上述第j条数据传输命令对应的数据包发送至上述车辆端接头之后,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
169.当从上述车辆端接头接收到由上述车辆反馈的第一应答命令时,将上述车辆反馈的第一应答命令丢弃。
170.在上述第一至第五种可能的实施方式中的任一种实施方式作为基础而提供的第六种可能的实施方式中,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
171.当接收到上述诊断设备发送的校验命令时,将上述校验命令发送至上述车辆端接头,以指示上述车辆端接头向上述车辆发送上述校验命令,上述校验命令用于指示上述车辆校验用于本次远程升级的数据包是否接收完整;以及
172.向上述诊断设备发送第二超时延长命令,上述第二超时延长命令用于指示上述诊断设备将等待第二应答命令的时间延长,上述第二应答命令为上述车辆在接收到校验命令时需要反馈的应答命令。
173.在上述第六种可能的实施方式作为基础而提供的第七种可能的实施方式中,在上述将上述校验命令发送至上述车辆端接头之后,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
174.当从上述车辆端接头接收到由上述车辆基于上述校验命令反馈的第二应答命令
时,将上述第二应答命令发送至上述诊断设备。
175.应当理解,在本技术实施例中,所称处理器502可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
176.存储器501可以包括只读存储器和随机存取存储器,并向处理器502提供指令和数据。存储器501的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器501还可以存储设备类别的信息。
177.由上可见,本技术方案中,设备端接头当接收到诊断设备发送的数据传输命令的前n条数据传输命令中第i条数据传输命令对应的数据包时,将第i条数据传输命令对应的数据包发送至车辆端接头,n≥2,0<i≤n;接收车辆端接头发送的第i条第一应答命令;在接收到的前n条第一应答命令相同的情况下,当接收到诊断设备发送的第j条数据传输命令对应的数据包时,将第一应答命令发送至诊断设备;以及将第j条数据传输命令对应的数据包发送至车辆端接头,以指示车辆端接头向车辆发送第j条数据传输命令对应的数据包,数据包用于实现对电子控制单元的远程升级,j>n。与现有技术中设备端接头需要等待车辆反馈的第一应答命令,然后将该第一应答命令发送至诊断设备相比,本技术方案设备端接头可以收发前n条数据传输命令对应的数据包,接收车辆针对该前n个数据包反馈的第一应答命令,从而学习到车辆针对数据传输命令的数据包的应答方式(即回复一个第一应答命令),此后,当再次接收到诊断设备发送数据传输命令的数据包时,设备端接头可以代替车辆向诊断设备反馈第一应答命令,因此,即使设备端接头与车辆端接头之间的网络不佳,诊断设备也能及时接收到第一应答命令,从而有效降低了对ecu程序远程升级失败的风险。
178.对应于上文所提供的车辆电子控制单元的远程升级方法,本技术实施例还提供了一种车辆电子控制单元的远程升级系统,包括:
179.如上述任一实施例上述的设备端接头,上述设备端接头与诊断设备连接;
180.如上述任一实施例上述的车辆端接头,上述车辆端接头与车辆连接,用于实现上述车辆与上述设备端接头之间的数据转发。
181.需要说明的是,本技术实施例中的诊断设备可以是上述任一实施例中提及的诊断设备,车辆可以是上述任一实施例中提及的车辆。
182.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
183.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记
载的部分,可以参见其它实施例的相关描述。
184.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
185.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
186.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
187.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
188.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1