诊断服务作为应用层的服务功能,实现逻辑很简单,请求-响应,一来一回之间,需要对每个阶段进行时间设置。UDS诊断时间参数来源于行业标准的协议文档:ISO15765和ISO14229
P2 Server
指的是服务器在接收到上位机请求报文后,到处理完成发出响应的时间间隔。这个时间间隔的典型值被设定为0.05秒。这个是对服务器在接收到请求报文(通过 T_Data.ind 指示)后开始处理响应报文的性能要求。
P2*Server
服务器发送负响应代码为 0x78(增强响应定时)的负响应信息)到开始发送下一个响应消息之间的的最大附加时间,通常取5000ms(5秒)。这个参数通常用于处理服务器在接收到诊断请求后,如果无法立即完成服务,会发送一个NRC 0x78的响应,表示请求已经收到并正在处理,但暂时无法继续接收新的服务请求,以便于诊断仪可能采取进一步的措施,如重试请求或报告错误。
P2 Client
诊断仪在成功发出请求之后,等待Server响应的时间。如果在指定的时间内没有收到响应,诊断仪会认为超时。这个时间范围由几个因素决定,包括P2Server_max(ECU响应的最大时间)和▲P2(诊断指令发送和接收之间的额外时间消耗),P2Client = P2Server_max + ∆P2max。这个时间范围的设定是为了确保诊断请求能够在合理的时间内得到响应,避免因超时导致的操作失败。
P2 *Client
诊断仪接收到具有负响应代码0x78的负响应消息后等待传入响应消息开始的超时时间。因为在收到NRC 0X78之后,诊断仪不再发请求,而只是等待ECU的下一次响应,所以P2Client = P2Server_max + ∆P2response。
S3 Server
也称为S3Timeout,这个时间参数规定了ECU处于非默认会话模式的最大时间。如果在设定的最大时间内没有接收到任何来自诊断仪的请求服务,ECU将自动从非默认会话跳转到默认会话。
S3 Client
这个时间参数规定了诊断仪连续发送特定服务(如0x3E服务)的时间间隔。
P3 Client_Phys
客户机在成功传输物理地址请求报文(通过 T_Data.con)且无需服务器响应后,继续发送下一次物理寻址诊断请求的最小时间间隔。
P3 Client_Func:客户机在成功传输功能地址请求报文(通过 T_Data.con)且无需服务器响应后,继续发送下一次功能寻址诊断请求的最小时间间隔。前提是不需要响应或所请求的数据仅受部分功能寻址服务器的支持。
P4 Server
服务器端在接收到诊断请求后到最终的诊断肯定响应或否定响应的时间间隔。P4 Server的概念不仅限于UDSonIP,在UDSonCAN中也可能使用,尽管使用频率较低。它是对ECU性能的要求,旨在防止ECU长时间返回否定响应代码NRC 0x78。当P4Server_max等于P2Server_max时,不允许ECU返回NRC 0x78的否定响应。而当P4Server_max大于P2Server_max时,ECU被允许返回NRC 0x78的否定响应。ISO 14229-2标准还规定了连续返回NRC 0x78时,时间间隔不能小于0.3 * P2*Server_max,以避免网络中存在过多的否定响应。
P2 Server: 指的是服务器在接收到上位机请求报文后,到处理完成发出响应的时间间隔。这个时间间隔的典型值被设定为0.05秒。这个是对服务器在接收到请求报文(通过 T_Data.ind 指示)后开始处理响应报文的性能要求。
P2*Server: 服务器发送负响应代码为 0x78(增强响应定时)的负响应信息)到开始发送下一个响应消息之间的的最大附加时间,通常取5000ms(5秒)。这个参数通常用于处理服务器在接收到诊断请求后,如果无法立即完成服务,会发送一个NRC 0x78的响应,表示请求已经收到并正在处理,但暂时无法继续接收新的服务请求,以便于诊断仪可能采取进一步的措施,如重试请求或报告错误。