• 1546查看
  • 0回复

[VCU] 一文搞懂UDS的各种时间参数

[复制链接]


该用户从未签到

发表于 7-1-2024 16:40:52 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是UDS的各种时间参数介绍,希望能对你有所帮助

一、应用层时间参数

在一开始做诊断的时候,看到这么多时间参数,真是头大,很多还长得很像,N_As,N_Bs, N_Cs等,这些到底代表啥含义呢?刚开始确实很头疼,我也是直接忽略,做其他任务开发,等基本功能都开发完了,后面发现升级的时候,出问题了,定位到和这些时间参数有问题,这才去研究这些参数的含义。接下来介绍一下这些参数。



a)P2 Client:诊断工具成功发送诊断报文请求之后,等待ECU回复诊断响应的时间间隔

b)P2* Client:诊断工具接收到 NRC 0x78 之后继续等待 ECU 响应的时间间隔

c)P2Server_max :ECU 在收到请求和给出响应之间的这个时间间隔,它描述了ECU 的反应速度,通常最大值为50ms

d)P2* Server_max:ECU 发送 NRC 0x78 之后继续发送 下帧诊断响应报文的时间间隔

e)P3 Client Phys:诊断工具成功发送 物理寻址诊断请求之后,且无需ECU 回复继续发送下次物理寻址诊断请求的最小时间间隔       

f)P3 Client Func:诊断工具成功发送功能寻址之后再次发送功能寻址的最小时间间隔



示例图:



最后说一下P2Server_max和P2* Server_max,这两个在10服务中会体现出来

我们可以看到10服务正响应的格式为:

[SID +0X40] + [sub-function] + [sessionParameterRecord]



而sessionParameterRecord又为P2Server_max和P2* Server_max,官方规范ISO14229-1中有说明这两个的含义和取值范围,如下:

其中resolution是表示分辨率的意思



看个例子,P2Server_max:0x0032,转换为十进制就是50;分辨率为1ms,那P2* Server_max的值就是50ms;

P2* Server_max:0x01F4,转换为十进制就是500,分辨率为10ms,那么,P2* Server_max的值就是5000ms



二、会话层时间参数

这两个时间参数主要用在保持在某一个会话模式下,因为某些服务必须在特定的服务下才能执行,这个时候就要用到3E服务了,就会涉及到这两个参数

a)S3 Client:诊断工具为了保持非默认会话模式而发送 $3E 服务请求报文的时间间隔,最小值2000ms

b)S3 Server:有时也称为S3Timeout,表示ECU未接收到任意诊断报文时维持在非默认会话下的时间间隔



发送的示例图:



三、传输层时间参数

a)BS:Block Size,该参数与STmin一般同时出现。这两个参数主要用于诊断报文传输多帧(首帧FF,流控帧FC,连续帧CF)时会使用到;

表示接收方在发送流控帧之后,发送方被允许连续发送的最大流控帧数目。特殊情况下,如果该值为0,则表示发送连续帧没有限制,如果值为5,表示发送方最多能连续发送5帧CF就会继续收到接收方的流控帧;

b)STmin :在接收方发送流控帧之后,发送方发送的连续帧之间的最小时间间隔。如果值为0,表示对于发送方发送CF的最小时间没有要求。

多帧的传输过程:



发送报文的长度过长时,一帧发不完,就会用到多帧,BS与Stmin的大小可用来评估接收方的接收能力,如果都为0,表示接收方接收能力最强
四、网络层时间参数

a)N_As:发送方 任意帧类型 从请求发送到发送完成 (接收到对应的ACK) 的时间间隔

b)N_Ar:接收方 任意帧类型 从请求发送到发送完成 (接收到对应的ACK) 的时间间隔

c)N_Bs:发送方收到流控帧 的时间。分为3种情况,分别为:

发送端 从 发送完首帧(FF)到 收到流控帧(FC) 的时间;

发送端 从 发送完连续帧(CF)到 收到流控帧 (FC)的时间;

发送端从收到流控帧(FC)(状态为Wait)到 收到下一个流控帧(FC) 的时间

d)N_Br:接收方请求发送流控帧 的时间。分为3种情况,分别为:

接收端从收到首帧(FF)到 请求发送流控帧 (FC)的时间;

接收端从收到连续帧(CF)到 请求发送流控帧(FC) 的时间;

接收端从 发送完流控帧(FC)(状态为Wait) 到 请求发送下一个流控帧 (FC)的时间;

e)N_Cs:发送方请求发送连续帧(CF) 的时间。分为2种情况:

发送端从收到流控帧(FC)到 请求发送连续帧(CF)的时间;

发送端从 发送完连续帧(CF)到 请求发送下一帧连续帧(CF) 的时间

f)N_Cr:接收方收到下一个连续帧(CF) 的时间。分为2种情况:

接收端 从 发送完流控帧(FC)到 收到连续帧(CF) 的时间;

接收端从 收到连续帧(CF)到 收到下一帧连续帧(CF) 的时间

详细的过程如下:

下图圈出了N_Bs,N_Br的3种情况,N_Cs,N_Cr的2种情况



各个时间参数的描述和值的定义如下:

想更深入的学习请自行翻阅ISO15765-2



最后,如果觉得有帮助,希望你能一键三连(分享,点赞,在看),你们的认可是我持续输出的动力,感激不尽








欢迎大家骚扰,请备注“公众号”



该用户从未签到

发表于 15-3-2025 23:33:00 | 显示全部楼层
您好,我是一名汽车工程师,对UDS(统一诊断服务)的时间参数深有研究。关于您提到的应用层时间参数,如NAs、NBs和NCs等,它们是诊断过程中的重要参数,涉及诊断会话的建立、维护和结束。具体含义如下:

NAs系列参数主要用于建立通信会话;
NBs系列与时间触发相关,确保诊断通信的实时性;
NCs系列涉及诊断会话的结束及一些其他操作的时间要求。

正确理解和应用这些时间参数对确保诊断过程的安全性、稳定性和效率至关重要。在实际开发中遇到与时间参数相关的问题时,需要详细查阅相关文档和标准,进行针对性的调试和修正。希望以上内容对您有所帮助。如有更详细的问题或需要进一步的解释,请随时提问。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 10:47 , Processed in 0.371071 second(s), 34 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.