引言

统一诊断服务(Unified Diagnostic Services, UDS)协议是汽车行业广泛使用的标准诊断协议,它定义了车辆控制单元(ECU)与外部诊断工具之间的通信规范。在UDS协议中,时间参数的设置对于确保诊断过程的顺利进行、评估ECU的响应速度以及诊断工具的超时预期具有至关重要的作用。本文将从应用层、会话层、传输层和网络层四个层面详细分析UDS中的时间参数,并探讨这些参数在实际应用中的重要性。

打开网易新闻 查看精彩图片

一、应用层时间参数 1. P2 CAN_Client

P2 CAN_Client指的是诊断工具成功发送诊断报文请求之后,等待ECU回复诊断响应的超时时间间隔。这个参数的设置是为了确保诊断工具不会无限期地等待ECU的响应,从而提高诊断过程的效率。一般而言,这个超时时间间隔的默认值设定为50ms,但具体数值可能会根据主机厂的定义而有所不同。

2. P2* CAN_Client

P2* CAN_Client参数描述的是诊断工具在接收到ECU发送的否定响应码NRC 0x78之后,继续等待ECU响应的时间间隔。NRC 0x78通常表示ECU当前正在处理其他任务,暂时无法处理诊断请求。因此,诊断工具需要等待一段时间后再尝试发送请求。这个参数的默认值通常设定为5000ms,以允许ECU有足够的时间完成当前任务并响应诊断请求。

3. P2 Server

P2 Server参数表示ECU从接收到诊断请求报文到开始发送响应报文之间的时间间隔。这个参数描述了ECU的反应速度,是评估ECU性能的重要指标之一。P2 Server的最大值通常设定为50ms,以确保ECU能够及时响应诊断请求。

4. P2* Server

P2* Server参数与P2 Server类似,但它描述的是ECU在发送否定响应码NRC 0x78之后,继续发送下一个诊断响应报文的时间间隔。这个参数的默认值通常也设定为5000ms,以允许ECU有足够的时间处理当前任务并准备发送下一个响应报文。

5. P3 CAN Client Phys 和 P3 CAN Client Func

P3 CAN Client Phys和P3 CAN Client Func分别表示诊断工具在成功发送物理寻址和功能寻址诊断请求之后,再次发送相同类型请求的最小时间间隔。物理寻址是指诊断请求只针对特定ECU,而功能寻址则针对网络中的所有ECU。这两个参数的设置有助于减少网络负载,避免过多的无效请求。

6. P4 Server

P4 Server参数表示ECU从接收到一个请求(T_Data.indication)到最终响应(T_Data.request)开始传输的时间间隔。这个参数是对ECU性能的要求,目的是防止ECU长时间返回否定响应NRC 0x78。当P4 Server_max等于P2 Server_max时,意味着不允许ECU返回NRC 0x78的否定响应。

二、会话层时间参数 1. S3 Client

S3 Client参数指的是诊断工具为了保持ECU在非默认会话模式下,发送3E服务请求报文以保持ECU在非默认会话模式下。S3 Client的默认值通常设定为4000ms。

2. S3 Server

S3 Server参数也称为S3 Timeout,表示ECU在未接收到任何诊断请求报文时,保持在非默认会话模式下的时间间隔。如果在这个时间间隔内ECU没有接收到任何诊断请求报文,它将退出非默认会话模式并返回默认会话模式。S3 Server的默认值通常设定为5000ms。

三、传输层时间参数

在传输层,主要涉及到多帧传输过程中的时间参数,包括首帧(FF)、流控帧(FC)和连续帧(CF)之间的时间关系。

打开网易新闻 查看精彩图片

1. Block Size (BS)

BS参数表示接收方在发送流控帧之后,发送方被允许连续发送的最大帧数目。这个参数与STmin通常一起使用,用于评估接收方的接收能力。如果BS为0,表示发送连续帧没有限制;如果BS为某个具体数值(如8),则表示发送方在收到流控帧后可以连续发送指定数目的CF帧。

2. STmin

STmin参数表示接收方发送流控帧之后,发送方发送的连续帧之间的最小时间间隔。这个参数用于防止发送方发送过快导致接收方无法处理。如果STmin为0,表示对发送方发送CF的最小时间没有要求。

四、网络层时间参数

打开网易新闻 查看精彩图片

网络层时间参数主要定义了发送方和接收方在传输过程中的时间要求,包括N_As、N_Ar、N_Bs、N_Br、N_Cs和N_Cr等。

1. N_As

N_As表示发送方发送一帧报文所需的时间,即从请求发送到发送完成(接收到对应的ACK)的时间间隔。这个参数用于评估发送方的发送效率。

2. N_Ar

N_Ar表示接收方发送一帧报文所需的时间,即从请求发送到发送完成(接收到对应的ACK)的时间间隔。这个参数用于评估接收方的接收效率。

3. N_Bs

N_Bs表示发送方从发送完首帧(FF)或连续帧(CF)到收到流控帧(FC)的时间间隔。这个参数用于监控发送方在发送多帧报文时的效率。

4. N_Br

N_Br表示接收方从收到首帧(FF)或连续帧(CF)到请求发送流控帧(FC)的时间间隔。这个参数用于监控接收方在接收多帧报文时的处理速度。

5. N_Cs

N_Cs表示发送方从收到流控帧(FC)到请求发送连续帧(CF)的时间间隔。这个参数用于评估发送方在接收到流控帧后的响应速度。

6. N_Cr

N_Cr表示接收方从发送完流控帧(FC)到收到连续帧(CF)的时间间隔。这个参数用于评估接收方在发送流控帧后接收连续帧的效率。

五、时间参数的测试方法 1. 估算方法

使用示波器记录ECU接收到诊断命令后回复的时间,然后计算出诊断数据帧的传输时间。这种方法简单易行,但精度受示波器采样速率和通信延迟等因素的影响。

2. 使用专业测试工具

使用如CANoe、CANalyzer等专业的测试工具可以记录诊断通信的时间参数。这些工具能够准确记录发送和接收时间戳,并计算出传输时间、响应时间等关键参数。虽然这种方法需要额外的设备成本,但能够提供更精确和可重复的结果。

六、时间参数的重要性

UDS中的时间参数对于确保诊断过程的顺利进行、评估ECU的性能以及诊断工具的超时预期具有至关重要的作用。合理设置这些参数可以提高诊断效率、减少无效请求并防止网络拥塞。同时,这些参数也是诊断工具和ECU之间通信协议的重要组成部分,对于确保通信的有效性和可靠性至关重要。

七、结论

通过对UDS协议中时间参数的详细分析,我们可以看到这些参数在诊断过程中的重要作用。它们不仅确保了诊断工具和ECU之间的通信效率,还提供了评估ECU性能和诊断工具超时预期的重要依据。在实际应用中,我们需要根据具体需求合理设置这些参数,以确保诊断过程的顺利进行和通信的有效性和可靠性。

未来,随着汽车行业的不断发展和技术的不断进步,UDS协议中的时间参数也将不断优化和完善。我们期待在新技术和新标准的推动下,UDS协议能够更好地满足汽车诊断的需求,为汽车行业的发展贡献更多的力量。