UDS诊断-10服务及P2、P2*时间

本文详细描述了10种服务中的会话控制机制,包括默认会话、编程会话和扩展会话的顺序规定,以及否定和肯定响应的格式。特别强调了不同会话间的跳转限制和时间参数如P2Server、P2Client及P2*Server和P2*Client的设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10服务:会话控制

请求格式 :10+子功能ID

子功能:
01 - 默认会话
02 - 编程会话
03 - 扩展会话

在这里插入图片描述

注意:
1、默认会话不能直接跳转编程会话,需先进入扩展会话再进编程会话;
2、编程会话不能跳转回扩展会话,可直接跳回默认会话

否定响应格式:7F + 10(SID)+ NRC(否定响应码)

在这里插入图片描述

肯定响应格式:50 + 子功能ID + P2时间 + P2*时间

在这里插入图片描述

NRC 78:诊断请求已经收到,并且是有效的,服务器正在执行请求的服务,无法继续接收新的服务请求时,回复此代码。当正在执行的服务完成后,仍需给出最终的肯定或否定响应。

时间参数:

  • P2Server: 表示从ECU接收到请求消息到开始发送响应消息之间的定时器性能要求数值,通常取50ms。
  • P2Client: Tester在成功发送完请求消息后等待服务器发送的响应时的超时设置,略大于P2Server。
  • P2*Server: 表示从ECU发送了NRC为0x78的否定响应消息到开始发送下一个响应消息之间的additional max.time,通常取5000ms。
  • P2*Client: 当客户端在接收到否定响应码为0x78的否定响应后等待服务器发送响应时的additional timeout。

在这里插入图片描述

在这里插入图片描述

### UDS协议中的P2和P2*参数详解 在网络通信中,特别是在汽车电子领域内的统一诊断服务UDS),P2和P2*参数用于规定客户端等待服务器响应的最大超时时间。这些参数对于确保网络通信稳定性和可靠性至关重要。 #### P2 参数说明 P2参数表示的是当ECU接收到请求后,在正常情况下应该返回应答的时间长度。如果在这个时间内没有得到回应,则认为此次通讯失败[^1]。此参数的具体数值取决于车辆制造商的要求以及具体的硬件性能等因素决定。 #### P2* 参数说明 不同于标准的P2,P2*则是在更复杂场景下的应用——即当某个特定条件满足时才会生效的最大允许延迟值。例如,在执行某些耗时较长的操作期间(如刷新编程或擦除内存),可能会触发使用P2*而不是普通的P2作为超时期限。 #### 配置建议 针对不同应用场景下对实时性的要求差异较大,因此合理设置这两个参数非常重要: - 对于一般查询类指令可以采用较短的P2来提高效率; - 而涉及到写入操作或其他可能引起长时间处理过程的任务,则应当适当延长至P2*,以防止因误判而中断必要的工作流程。 ```python # Python伪代码展示如何根据不同情况调整P2/P2* def set_timeout(operation_type): if operation_type == "read": timeout = p2_standard # 使用常规P2值 elif operation_type in ["write", "erase"]: timeout = p2_star # 切换到更为宽松的P2*限制 return timeout ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值