一种UDS远程诊断刷写方法及相关装置与流程

文档序号:37227246发布日期:2024-03-05 15:32阅读:19来源:国知局
一种UDS远程诊断刷写方法及相关装置与流程

本发明涉及自动驾驶,尤其涉及一种uds远程诊断刷写方法及相关装置。


背景技术:

1、uds:unified diagnostic services协议,即统一的诊断服务,是面向整车所有ecu的一种诊断通信方式。

2、目前,车内fota刷写,远端fota service通过发送fota报文到tbox网关,由tbox网关把fota报文转成uds报文,通过can消息发送到各个ecu件,主要结构如图1所示。

3、目前的方式存在如下缺点:

4、tbox接收远端fota报文后解成诊断uds报文后直接发送到远端ecu,等待ecu件响应后回复远端fota服务端fotaserver,远端fotaserver在发送下一条uds报文,由于uds报文传输和远端ecu的报文处理都需要时间,这种方式额外增加了等待时间,导致刷写效率低。


技术实现思路

1、有鉴于此,本发明提供了一种uds远程诊断刷写方法及相关装置,用以解决现有技术中tbox接收远端fota报文后解成诊断uds报文后直接发送到远端ecu,等待ecu件响应后回复远端fota server,远端fota server e在发送下一条uds报文,由于uds报文传输和远端ecu的报文处理都需要时间,这种方式额外增加了等待时间,导致刷写效率低的问题。具体方案如下:

2、一种uds远程诊断刷写方法,包括:

3、接收uds报文,判断所述uds报文是否为请求下载数据报文或者数据传输报文;

4、若是,将所述uds报文缓存在预设缓存中,其中,所述预设缓存中包含有至少一条uds报文;

5、判断所述预设缓存中的每个uds报文的报文地址是否为本地地址;

6、若否,将当前uds报文进行分割,将分割后的uds报文发送给目标远端ecu进行刷写。

7、上述的uds远程诊断刷写方法,可选的,判断所述uds报文是否为请求下载数据报文或者数据传输报文,包括:

8、获取所述uds报文中的诊断id;

9、将所述诊断id与预设请求下载数据id和预设数据传输id进行比较;

10、若所述诊断id与所述预设请求下载数据id相同,判定所述uds报文为所述请求下载数据报文,或,若所述诊断id与所述预设数据传输id相同,判定所述uds报文为所述数据传输报文。

11、上述的uds远程诊断刷写方法,可选的,判断所述预设缓存中的每个uds报文的报文地址是否为本地地址,包括:

12、针对当前uds报文,获取所述当前uds报文中的can id;

13、将所述can id与预设本地地址标识进行比较;

14、若所述can id与所述预设本地地址标识相同,判定所述当前uds报文的报文地址为本地地址,反之,判定所述当前uds报文的报文地址为非本地地址。

15、上述的uds远程诊断刷写方法,可选的,将当前uds报文进行分割,将分割后的uds报文发送给目标远端ecu进行刷写,包括:

16、对所述当前uds报文基于预设长度进行分割,得到各个分割后的uds报文;

17、针对每个分割后的uds报文,获取其中包含的ecu标识;

18、在各个远端ecu中选取与所述ecu标识相同的目标远端ecu,将分割后的uds报文发送给所述目标远端ecu进行刷写。

19、上述的uds远程诊断刷写方法,可选的,还包括:

20、若所述uds报文不是为请求下载数据报文或者数据传输报文,判断所述uds报文的报文地址是否为本地地址;

21、若否,将所述uds报文进行分割,将分割后的uds报文发送给目标远端ecu进行刷写;

22、若是,将所述uds报文存储至本地协议栈。

23、上述的uds远程诊断刷写方法,可选的,还包括:

24、在刷写过程中,若接收到所述目标远程ecu发送的负反馈且接收到的下一条uds报文为数据传输报文的情况下,向fota服务端发送负反馈。

25、上述的uds远程诊断刷写方法,可选的,还包括:

26、若接收到的所述uds报文为最后一帧报文,每间隔预设时长向fota服务端发送pending指令;

27、或,

28、若所述预设缓存存储空间已满,向所述fota服务端发送pending指令,待有剩余存储空间后,向所述fota服务端发送正响应。

29、一种uds远程诊断刷写装置,包括:

30、接收和判断模块,用于接收uds报文,判断所述uds报文是否为请求下载数据报文或者数据传输报文;

31、缓存模块,用于若是,将所述uds报文缓存在预设缓存中,其中,所述预设缓存中包含有至少一条uds报文;

32、判断模块,用于判断所述预设缓存中的每个uds报文的报文地址是否为本地地址;

33、分割和刷写模块,用于若否,将当前uds报文进行分割,将分割后的uds报文发送给目标远端ecu进行刷写。

34、上述的uds远程诊断刷写装置,可选的,所述接收和判断模块包括:

35、第一获取单元,用于获取所述uds报文中的诊断id;

36、第一比较单元,用于将所述诊断id与预设请求下载数据id和预设数据传输id进行比较;

37、第一判定单元,用于若所述诊断id与所述预设请求下载数据id相同,判定所述uds报文为所述请求下载数据报文,或,若所述诊断id与所述预设数据传输id相同,判定所述uds报文为所述数据传输报文。

38、上述的uds远程诊断刷写装置,可选的,所述判断模块包括:

39、第二获取单元,用于针对当前uds报文,获取所述当前uds报文中的can id;

40、第二比较单元,用于将所述can id与预设本地地址标识进行比较;

41、第二判定单元,用于若所述can id与所述预设本地地址标识相同,判定所述当前uds报文的报文地址为本地地址,反之,判定所述当前uds报文的报文地址为非本地地址。

42、一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述的uds远程诊断刷写方法。

43、一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的uds远程诊断刷写方法。

44、与现有技术相比,本发明包括以下优点:

45、本发明公开了一种uds远程诊断刷写方法及相关装置,包括:接收uds报文,判断所述uds报文是否为请求下载数据报文或者数据传输报文;若是,将所述uds报文缓存在预设缓存中,其中,所述预设缓存中包含有至少一条uds报文;判断所述预设缓存中的每个uds报文的报文地址是否为本地地址;若否,将当前uds报文进行分割,将分割后的uds报文发送给目标远端ecu进行刷写。上述过程,在刷写之前设置预设缓存,将uds报文预先存储在预设缓存中,在发送下一条uds报文时,不需要等待ecu件响应后回复远端fotaserver,远端fotaserver再发送下一条uds报文,直接在预设缓存中获取即可,通过异步处理减少了等待时间,提高了刷写效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1