title: UDS时间参数总结
date: 2024-07-31 14:36:04
tags:
- “车联网”
- “UDS诊断协议”

传输层时间参数

Addressing Mode(AM)

在发送诊断指令的过程中,存在以下两种寻址方式:

  • 物理寻址: 即该诊断服务只针对符合请求中物理地址的ECU,其他ECU节点不做任何接受处理;
  • 功能寻址: 即该诊断物理请求针对当前网络下所有的ECU节点,所有的ECU均会接收处理该诊断请求
    一般而言,一个ECU节点只会存在1对物理寻址,1对功能寻址;每一对寻址方式根据客户的需求来自行定义.

场景与作用:

  • 当该诊断请求需要发送到特定ECU节点时,就需要使用物理寻址方式,如使用$2E服务写DID或者执行$34,$36,$37执行下载程序时;
  • 当该诊断请求需要发送至当前网络下所有的ECU节点时,就需要使用功能寻址,典型过程如FBL刷写过程中的$28,$85服务等.

Block Size于STmin

Block Size简称BS ,该参数于STmin一般同时出现.此两参数主要用于诊断报文传输多帧时会使用到.在传输多帧诊断报文的过程中, 存在着三种类型的帧:

  • 首帧FF(First Frame): 发送多帧过程中的首帧报文;

  • 流控帧FC(Flow Frame): 发送方发送首帧报文之后,如果有流控,接收方回复的流控帧;

  • 连续帧CF(Consecutive Frame): 流控帧之后发送方能够连续发送的报文帧.
    如下图所示, 较为清晰的表述FF,FC,CF三者之间的交互关系.
    image.png

  • BS: 接收方表示发送流控帧之后,发送方被允许连续发送得最大帧数目.特殊情况下,如果该值为0,则表示发送连续帧没有限制, 如果该值为8,则表示发送方最多能连续发送8帧CF就会继续收到接收方得流控帧.

  • STmin: 接收方发送流控帧之后,发送方发送的连续帧之间得最小时间间隔. 如果值为0,表示对发送方发送CF的最小时间没有要求.

应用场景与作用:

在APP模式下,发送报文长度大于8或者大于64(CANFD)时,就会自动开启流控模式。在Boot模式 下,由于使用到$36下载服务,涉及到大量数据的传输,也必然会使用到流控。 由上可知,BS与Stmin的大小能够用来评估接收方的接收能力,如果都为0,表示接收方接收能力最强; 当然,有些时候,虽然Boot均可以设置为0,但是往往FBL刷写过程中涉及到网关的转发,而网关接收能 力存在限制,因此,此时对应的Boot也必须按照网关的接收能力来设置BS与Stmin.

网络层时间参数

如下图3所示,清楚的表达了各个时间参数的起始时间及终止时间,以上述流控交互过程为例。
image.png
图3 多帧传输过程的时间控制

  • N_As: 表示CAN数据帧从请求数据链路层发送至接收到对应的ACK的最大时间间隔;
  • N_Bs: 表示发送方数据链路层接受到流控帧的最大时间间隔;
  • N_Ar: 表示接收方从请求数据链路层发送流控帧至接收到对应的ACK的最大时间间隔;
  • N_Br: 表示接收方请求数据链路层发送流控帧的内在最大时间间隔 (N_Br + N_Ar)<(0.9倍 N_Bstimeout);
  • N_Cs: 表示发送方请求数据链路层发送流控帧的内在最大时间间隔 (N_Cs + N_As)<(0.9倍N_Cr timeout);
  • N_Cr: 表示接收方接收到流控帧的最大等待时间间隔;

为了便于大家记忆及查询方便,制定相关表格如下图4所示:
image.png

应用场景与作用:

上述时间参数的确定,对于网络层各报文的发送与接收起到了很好的监控作用,能及时发现问题所在。 当然考虑到网络高负载的情形,上述参数不一定能够100%满足要求,但是标准要求一般不能超过允许时 间的50%

会话层时间参数

ISO-15765-3标准中对S3Client与S3Server进行了较为详尽的描述,再次不过多描述,大家可以自行 研究学习。
S3Client: 表示Tester为了保持一个ECU或者多个ECU节点同时保持在非默认会话下的时间间隔;
S3Server:有时也称为S3Timeout,表示ECU未接收到任意诊断报文时维持在非默认会话下的时间间隔;

如下图5所示,描述了这两个时间参数的具体区别。
image.png
图5 会话层时间参数

应用场景与作用:

针对有些诊断服务只能在扩展会话下才能够执行的场景,需要保持在非默认会话下,执行该诊断指令。 比如在刷写过程中(非必须,但一般一直发送比较号,防止意外的超时)或者其他需要一直工作在默认会话下的场景。

应用层时间参数

ISO-15765-3标准中针对Tester以及Server列出了3对P时间参数,分别为*P2Client、P2Server、 P2Client、P2 *Server、P3Client(Phy) 、P3Client(Func)**。

为了较好的比较这六者之间的关系,列表如下图6所示:
image.png
图6 应用层时间参数说明

应用场景与作用:

这些时间参数主要用于上位机在测试UDS的过程中,诊断工具需要设置一些参数来实时掌握诊断报文的 响应状态以及控制相应诊断请求的发送。这对于评估整个UDS的通信是否稳定等性能指标。