UDS协议中的时间参数详细解读

admin 2024年5月19日22:54:31评论25 views字数 4127阅读13分45秒阅读模式

UDS(统一诊断服务)协议中的时间参数对于确保诊断通信的稳定性和效率至关重要。
UDS协议中的时间参数详细解读
这些参数在不同的协议层级中发挥作用,包括网络层、会话层和应用层
从上到下,它分为应用层、会话层、传输层和网络层,每层都包含了特定的组件或参数。以下是UDS中一些重要的时间参数及其作用:
01
应用层的时间参数
UDS协议中的时间参数详细解读
UDS协议中的时间参数详细解读
- P2 ServerP 和 P2* Server
UDS(统一诊断服务)中的P2 Server是一个应用层的时间参数,它定义了电子控制单元(ECU)在接收到诊断请求后,开始发送响应消息之前的最大允许时间。
这个参数是UDS协议中用于确保通信性能的关键时间限制之一。
具体来说,P2 Server参数有两个变种:
**P2Server_max**:
这是在ECU正常处理诊断请求时,从接收到请求消息到开始发送响应消息之间的性能要求数值。通常情况下,P2Server_max的值为50毫秒(ms)。
**P2*Server_max**:
这个参数在ECU给出NRC(Negative Response Code)0x78(Pending)之后生效。
如果ECU在P2Server_max时间内无法完成对诊断请求的处理,它可以发送一个NRC 0x78的响应来请求更多的时间。
P2*Server_max通常取值为5000毫秒(ms),表示ECU在发送了NRC 0x78之后,可以额外争取最长5000ms的时间来处理请求。
在实际应用中,Tester(诊断测试器)会使用P2Client参数来设置它在发送完请求消息后等待ECU响应的超时时间,这个值通常会略大于P2Server_max,以确保有足够的时间让ECU处理并响应请求。
需要注意的是,P2 Server参数的具体值可能会根据不同的应用场景和需求有所变化。例如,在编程会话下,P2Server_max可能会被设置为较短的时间,如25ms,以便更快地处理关键的编程请求。
而在非编程会话下,P2Server_max可能会设置为较长的时间,如50ms或更长,以适应不同的诊断服务需求。
正确理解和应用P2 Server参数对于确保UDS通信的可靠性和效率至关重要。
开发人员需要根据具体的ECU功能和性能要求,以及诊断协议的规定,合理配置P2 Server参数。
02
P2 Client 和P2* Client
UDS协议中的时间参数详细解读
UDS(统一诊断服务)中的P2 Client是一个与客户端(Tester)相关的时间参数,它定义了在客户端成功发送完请求消息之后,等待服务器(ECU)发送响应消息的超时设置。
这个参数确保了客户端在没有收到响应的情况下,不会无限期地等待,从而避免通信过程的停滞。
具体来说,P2 Client参数的设置通常略大于P2 Server_max参数的值,后者是ECU处理请求并发送响应的最大允许时间。
例如,如果P2 Server_max设置为50毫秒(ms),那么P2 Client可能会设置为50ms稍多一些,以适应可能的延迟情况。
在UDS通信过程中,如果客户端在P2 Client超时时间内没有收到来自ECU的响应,它将认为请求已经超时。这种情况下,客户端可能需要重新发送请求或采取其他错误恢复措施。
此外,UDS还定义了P2* Client参数,它与P2 Client类似,但用于客户端在接收到NRC(Negative Response Code)0x78(请求正确接收,响应挂起)这种特定否定响应后,继续等待ECU响应的时间间隔
P2* Client的值通常等于P2* Server_max加上一定的额外时间(∆P2response),这是因为在收到NRC 0x78之后,客户端不再发送请求,而是等待ECU的下一次响应。
确配置P2 Client参数对于确保UDS通信的效率和可靠性至关重要,它有助于避免不必要的延迟,并确保客户端能够及时检测到通信问题并采取相应的措施。
03
会话层的时间参数
UDS协议中的时间参数详细解读
- S3 Server
S3 Server(有时也称为S3Timeout)是ECU(电子控制单元)端的一个定时器参数,它规定了ECU在未接收到任何诊断服务请求时,能够保持在非默认会话状态的时间长度。
如果在这个时间间隔内ECU没有接收到任何请求,它将自动退回到默认会话状态。S3 Server的典型值通常设置为5000毫秒(5秒)。
这个时间参数对于确保诊断会话的持续性至关重要,特别是在执行一些需要较长时间完成的服务时,例如刷写固件或进行复杂的诊断测试。
通过维持非默认会话状态,可以保证这些操作不会因为会话超时而中断。
在实际应用中,S3 Server参数的设置需要根据具体的ECU和诊断需求来确定,以确保既不会因为设置过长而浪费资源,也不会因为设置过短而导致不必要的会话中断。
- S3 Client
UDS(Unified Diagnostic Services)协议中的S3 Client是一个与会话管理相关的时间参数,它定义了诊断工具(Tester)为了保持一个或多个电子控制单元(ECU)处于非默认会话状态而发送TesterPresent(0x3E)服务请求报文的时间间隔。
S3 Client的典型设置值为4000毫秒(4秒)。这个时间参数确保了在执行某些需要ECU保持在特定会话状态(如编程、安全访问等)的操作时,会话不会因为缺少通信而意外结束。
通过定期发送TesterPresent请求,诊断工具可以刷新ECU的S3 Server定时器,从而维持会话状态。
S3 Client的应用场景包括但不限于:
- 在刷写ECU软件过程中保持会话,以防止因超时而中断刷写过程。

- 在进行复杂诊断测试时,保持特定的会话状态以访问特定的服务或数据。

正确设置S3 Client的时间间隔对于避免不必要的会话中断和确保诊断过程的连续性至关重要。
如果S3 Client的时间间隔设置得太短,可能会导致不必要的频繁通信,增加网络负载;
如果设置得太长,则可能会导致会话超时,从而中断正在进行的诊断或编程操作。
04
传输层的时间参数
UDS协议中的时间参数详细解读
- BS(block size)
Block Size是一个由接收实体指定的单字节值,它告知发送方在一整块数据包中可以连续发送多少个连续帧(Consecutive Frames,CF)。
这个参数的作用是帮助协调发送方和接收方之间的数据传输速率,确保接收方能够有效地处理接收到的数据,避免因数据流量过大而导致的溢出或丢失。
在UDS的多帧传输中,数据被分成多个连续帧进行传输。
每个连续帧通常包含除了首帧(First Frame,FF)之外的后续数据。
Block Size参数允许接收方告知发送方在收到流控帧(Flow Control Frame,FC)之后的连续帧传输中,能够接受多少个连续帧。这样,发送方就可以根据这个信息来调整其发送速率,以匹配接收方的处理能力。
在ISO 15765-2协议中,Block Size参数与STmin(Separation Time Minimum)参数一起使用,以确保连续帧之间的最小时间间隔,从而为接收方提供足够的时间来处理每个连续帧。
在实际应用中,Block Size的选择会根据网络条件、ECU(电子控制单元)的处理能力以及所需的传输效率来确定。正确的Block Size设置可以提高网络的吞吐量,减少传输延迟,并提升整体的通信效率。
- STmin(Separation Time Minimum)
UDS(统一诊断服务)中的STmin(Separation Time Minimum)是一个网络层的时间参数,它指定了在连续帧(Consecutive Frames,简称CF)传输过程中,发送方发送连续帧之间的最小时间间隔。
这个参数由接收方设置,并在流控帧(Flow Control Frame,简称FC)中通知发送方。
STmin的作用是为接收方提供足够的处理时间,以确保它能够处理接收到的数据帧,特别是当数据帧的流量较大时。
STmin的值由接收方根据自身的处理能力和需求来设定,并通过FC帧中的相应字段告知发送方。
STmin的取值范围如下:
- 当STmin的值在0x00到0x7F之间时,表示最小间隔时间为0到127毫秒(ms)。

- 当STmin的值在0xF1到0xF9之间时,表示最小间隔时间为100到900微秒(μs)。

在实际应用中,STmin参数的设置对整个UDS通信过程的稳定性和效率至关重要。
例如,如果STmin设置得太小,可能会导致接收方处理不过来,从而引发数据丢失或通信错误;
如果STmin设置得过大,则可能会降低通信的效率,增加诊断过程的总耗时。
在UDS的多帧传输过程中,发送方在发送完一个连续帧后,需要启动一个定时器来实现STmin的延时,待定时器超时后才能发送下一个连续帧。这种机制确保了连续帧的传输不会过快,从而保证了数据传输的可靠性。
此外,STmin参数与Block Size(BS)参数一起使用,BS参数指定了在接收到流控帧之后,发送方可以连续发送的连续帧的最大数量。这两个参数共同协调了发送方的发送行为,以适应接收方的处理能力。
05
网络层的时间参数
UDS协议中的时间参数详细解读
**N_As**:
CAN数据帧从请求数据链路层发送至接收到对应的ACK的最大时间间隔。
**N_Bs**:
发送方数据链路层接受到流控帧的最大时间间隔。
**N_Ar**:
接收方从请求数据链路层发送流控帧至接收到对应的ACK的最大时间间隔。
**N_Br**:
接收方请求数据链路层发送流控帧的内在最大时间间隔。
**N_Cs**:
发送方请求数据链路层发送流控帧的内在最大时间间隔。
**N_Cr**:
接收方接收到流控帧的最大等待时间间隔。
06
总结
这些时间参数的设置对于诊断工具和ECU之间的通信至关重要,它们确保了诊断过程的顺利进行,并允许诊断工具根据这些参数设置合适的超时预期,评估ECU的响应是否及时。
在实际应用中,这些时间参数可能会根据具体的网络条件、ECU的处理能力以及特定的应用需求进行调整。例如,P2Server_max在不同的诊断会话中可能会有不同的值,以适应不同会话下ECU可能需要的不同响应时间。这些参数的配置和使用对于优化UDS通信的性能和可靠性非常关键。
来源:AutomotiveSoftwareEngineer

原文始发于微信公众号(谈思实验室):UDS协议中的时间参数详细解读

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月19日22:54:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   UDS协议中的时间参数详细解读https://cn-sec.com/archives/2756248.html

发表评论

匿名网友 填写信息