诊断知识:NRC78(Response Pending)的回复时刻

前言

在项目开发过程中,客户变更需求,是关于NRC78的回复时间点的,该需求在Autosar Dem中也有对应的参数,DcmTimStrP2ServerAdjust(针对于P2Server),DcmTimStrP2StarServerAdjust(针对于P2 *Serverr),本文结合需求来学习下这两个参数的使用。

NRC78的使用场景

谈到NRC78,就必须要了解UDS中的时间参数P2Server和P2 *Server(Server即针对于ECU端),14229中定义如下:
在这里插入图片描述
带有0x78回复的数据流如下:
在这里插入图片描述
所以NRC78的使用场景为:当ECU在P2Server_max(非编程会话一般为50ms)时间内无法处理完成,需要额外的时间才能正确响应诊断仪的请求时,发送一次0x78可以多争取P2 *Server_max的时间(一般为5000ms

客户需求解读

需求1:连续的0x78负响应,发送时间应该在 0.3 * P2* Server_max 到 0.8 * P2* Server_max,目的是为了尽可能少的发送0x78。
需求2:对于第一次0x78负响应的发送时机应尽可能的靠近P2Server_max,如果发送的太快,可能会导致网关在转发过程中丢失而导致刷写失败

Autosar Dcm中的定义

在这里插入图片描述
DcmTimStrP2ServerAdjust正好针对于需求2,但需要清楚的是,实际的响应时间为P2Server_max - DcmTimStrP2ServerAdjust,如果需要满足需求2,则DcmTimStrP2ServerAdjust应该尽可能的小

DcmTimStrP2StarServerAdjust正好针对于需求1,同样的道理,实际的响应时间为P2* Server_max - DcmTimStrP2StarServerAdjust,所以按需求,DcmTimStrP2StarServerAdjust应该配置为0.2-0.7倍的P2* Server_max

Autosar Dcm中定义如下:
在这里插入图片描述
DcmTimStrP2ServerAdjust单位为,且需要为DcmTaskTime的整数倍
在这里插入图片描述
DcmTimStrP2StarServerAdjust单位为,且需要为DcmTaskTime的整数倍

工具链中的配置

以ETAS软件为例:配置这两个参数在DcmDslProtocolRow
在这里插入图片描述
当P2Server_max为50ms时,实际第一次响应0x78的时间为40ms,当P2* Server_max为5000ms时,实际连续响应0x78的时间为3000ms

总结

理清需求很重要,希望大家在开发过程中少做无用功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赞哥哥s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值