UDS之时间参数介绍


一些关于UDS时间参数学习笔记
简单罗列
应用层时间参数:
P2Client:从tester发送请求开始到tester收到响应截至时间(50ms)
P2Server:从ECU收到请求开始到ECU给出响应终止(100ms)
P2*Client:从Testers收到NRC 0x78开始计时到Tester收到下一个多帧或单帧的时间段(5000ms)
P2*Server:当ECU发送NRC 0x78(pending)开始计时到ECU发送下一响应需要的时间;
P3client_Pyh:这个时间是Tester成功发送物理寻址开始计时到下一次发送物理寻址的时间段。
P3client_Func:这个时间是Testerc成功发送功能寻址开始计时到下一次发送功能寻址的时间段。
网络层时间参数:
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: 表示接收方接收到流控帧的最大等待时间间隔;

一、P2Server和P2*Server_max

在ECU的软件中,需要设置P2Server这个timer,而这个timer应该被赋P2Server_max或P2Server_max这两值。定性地来说,P2Server_max指的是ECU在收到请求和给出响应之间的这个时间间隔,它描述了ECU的反应速度。定量地来说,它指的是T_Data.ind(ECU收到请求)和T_Data.req(ECU给出响应)这两个函数被调用之间的时间。P2Server_max与P2Server_max的含义类似,区别在于,P2Server_max这个时间参数是在ECU给出NRC 0X78之后生效的,ECU返回NRC 0X78,说明ECU当前处理能量不足,所以需要更长的反应时间,即P2Server_max。所以P2Server_max通常比P2Server_max大很多。在讲0x10这个诊断命令的时候, 50 01 xx xx yy yy这种, xx xx就表示P2Server_max,yy yy 就表示P2Server_max。诊断仪收到这两个参数之后,就对ECU的响应速度有了认知,可以据此来判断ECU的响应是否及时。

二、∆P2:

∆P2定义了最恶劣情况下的信息传输延时,比如由网关、总线负载等因此引入的延时等。∆P2和P2Server_max或P2*Server_max加在一起就是诊断仪期望的最晚接收到响应的时间。∆P2 = ∆P2request + ∆P2response,即请求和响应在总线上的传输延时之和。

三、P2Client:

诊断仪在成功发出请求之后,会期望在一定的时间内收到响应,这个时间就是P2Client,这个时间的开始点是T_Data.con,结束点是T_Data.ind。根据前面的描述,容易知道,P2Client = P2Server_max + ∆P2max (P2 UDS推荐置50ms)

四、P2*Client:

P2*Client与P2Client类似,当诊断仪在没有超时的情况下收到NRC 0X78后,就会启动这个时间参数,从Testers收到NRC 0x78开始计时到Tester收到下一个多帧或单帧的时间段。有一点需要注意的是,P2Client = P2Server_max + ∆P2response,因为在收到NRC 0X78之后,诊断仪不再发请求,而只是等待ECU的下一次响应,所以不是加上 ∆P2max,而是加上 ∆P2response。 (P2* UDS推荐置5000ms)

五、P2、P2*关系图

P2Client和P2Server P2Server和P2*Server

六、P3Client_Phys和P3Client_Func:

这两个参数定义诊断仪在发送完一条UDS命令之后,下次再发送命令的最小时间间隔,分别适用于物理寻址和功能寻址的情况。在ISO24229中,它俩的值与P2Client相同。

七、S3 Server:

在讲UDS服务的时候,说过ECU需要收到诊断服务才能维持在某个非default session中,或者收到诊断仪持续发送的3E服务,testerpresent。S3Server定义的是ECU多长时间收不到任何诊断服务会回退到default session中。(UDS建议S3时间5000 ms)

八、S3Client:

S3Client与S3Server相对应,它定义的是诊断仪发送3E服务(testerpresent)的循环周期。

九、14229—2原文附图

(14229资料下载https://download..net/download/LOVE135149/14983307?spm=1001.2014.3001.5503)

十、一些TP层参数介绍

这里针对TP层时间参数做一个简要概述: 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: 表示接收方接收到流控帧的最大等待时间间隔;

官方文件解释:

经验分享 程序员 微信小程序 职场和发展