UDS中的定时器与时间参数

返回UDS系列讲解总目录

服务层定时器参数

P2定时器:

P2定时器是在服务会话下工作的,如果ECU无法在规定时间内完成对诊断服务的判断,服务器便向诊断仪发送延迟的负响应。

P2CAN_Server:表示从ECU接收到请求消息到开始发送响应消息之间的定时器性能要求数值。ECU必须确保一个单帧响应消息或者多帧响应消息的第一帧消息在P2CAN_ECU 时间内完成。通常取50ms。

P2CAN_Client:客户端在成功发送完请求消息后等待服务器发送的响应时的超时设置(FF或SF)

P2*CAN_Server:表示从ECU发送了NRC为0x78的否定响应消息到开始发送下一个响应消息之间的增强型定时器性能要求数值,通常取5000ms。

P2*CAN_Client:当客户端在接收到否定响应码为0x78的否定响应后等待服务器发送响应时的增强型超时设置(FF或SF)

S3定时器:

S3server:服务器的定时参数,仅用于非默认会话模式,该定时器具体是在系统通过功能寻址检测器将原先的默认会话模式切换为非默认会话模式时使用。在S3Server 时间内,如果服务器没有接收到任何诊断请求报文,则退出非默认会话模式,返回默认会话模式。通常取5000ms。

S3client:客户端的定时参数:客户端为保持非默认会话自动化连接,两个连续的TesterPresent请求报文的间隔时间。通常取4000ms。

网络层定时器参数

网络层的时间管理是为了保证发送端和接收端不会因为等待而永久的挂起,从而失去了通信的能力。因此在每次通话的过程中设置了超时的时间参数。以多帧传输为例:

(1)N_As和N_Ar

  N_As是发送端将数据传送到接收端的最大时间,N_Ar是接收端将流控制传送到发送端的最大时间。  N_As和N_Ar这两个时间参数可以认为是相同的,实际上在代码设计中通常也是大小相同的值。这两个参数都是发送者本地的定时器,从网络层发出request(网络层调用CAN消息发送函数)开始,到网络层收到confirm(CAN消息发送成功或失败)结束,主要目的是为了规避本地CAN消息阻塞。如果超时就丢弃消息,并调用N_USData.confirm 服务,with N_TIMEOUT_A。如果系统中不会出现阻塞或者出现阻塞也不会影响到后续消息发送,则不需要实现。

(2)N_Bs和N_Br

    N_Bs是发送者用来监控对端的定时器,N_Bs是指到首帧发送成功后到流控帧发送成功的最大时间。N_Br是接收者本地的时间参数,N_Br是指接收到首帧后到开始发送下一个流控帧的时间。N_Bs=N_Br+N_Ar,在网络测试的时候,无法直接测试N_Br的值,但由于N_Ar极小,是微秒级,因此可以假定N_Br=N_Bs,通过测试N_Bs来测试N_Br。

(3)N_Cs和N_Cr

    N_Cs是发送者本地的时间参数,指接收端在发送成功流控制后到收到连续帧的最大时间,同样,实际代码中,我没有显式的实现这一参数,但是却满足该参数的要求,我收到FC之后立即发送一个CF,而发送完成一个CF之后,我等待STmin时间后立即发送下一个CF,并未做其他特殊延时。

    N_Cr是接收者用来监控对端的定时器,指接收端在成功发送流控帧后到收到连续帧的最大时间。

(4)STmin和Ttan

    STmin是连续帧之间的最小发送时间间隔。STmin是协议栈需要实现的一个定时器,不同于前面几个定时参数限制最大时间,这个定时器是限制最小时间间隔的,当发送完一个CF后,发送者需要延时STmin才能发送下一帧CF,具体实现方式如下:发送者发送完一个CF之后,如果连续发送的CF数量没有达到BS个,则立即启动定时器TIMER_STmin,在网络层主循环中运行TIMER_STmin,当定时器超时后,立即发送下一个CF。Ttan是连续帧每帧传输的时间。

根据这个传输流程我们可以得到诊断报文的传输延迟的公式:

T=N_As+N_Bs+N_Cr-Tan+(Ttan+STmin)N-STmin

可以归纳得出以下结论:

N_As超时:发送方没有及时发送N_PDU,通常是流控帧报文。

N_Ar超时:接收方没有及时发送N_PDU。

N_Bs超时:发送方没有接收到流控帧。

N_Cr超时:接收方没有收到连续帧。

N_Br超时:接收方没有发出流控帧。

N_Cs:即STmin,发送两个连续帧需要等待的最短时间。

s表示发送者的时间参数,r表示接收者的定时参数

返回UDS系列讲解总目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值