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

embedded/2024/10/21 6:52:47/

文章目录

    • 前言
    • NRC78的使用场景
    • 客户需求解读
    • Autosar Dcm中的定义
    • 工具链中的配置
    • 总结

前言

在项目开发过程中,客户变更需求,是关于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

总结

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


http://www.ppmy.cn/embedded/129199.html

相关文章

软件开发的项目管理的风险有哪些?

软件开发项目管理中可能面临的风险: 序号风险类型描述1需求不明确项目需求没有被清晰定义或频繁变更,导致开发方向不明确或需要重做工作。2技术风险采用的技术可能存在缺陷或不兼容,或者团队缺乏必要的技术技能。3资源不足项目可能因为人力…

Git的认识及基本操作

目录 一:Git的基本认识 二:Git的安装 三:Git的基本操作 1.创建本地仓库 2.配置Git 3.⼯作区、暂存区、版本库 4. 修改文件 5.版本回退 6.撤销修改 7.删除文件 一:Git的基本认识 1.实例引入 在日常当中我们常常会遇到这样的事,就是在做实验报告或者课设…

RTMP协议分析

理论 总体介绍 RTMP协议是应⽤层协议,是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的。在基于传输层协议的链接建⽴完成后,RTMP协议也要客户端和服务器通过“握⼿”来建⽴基于传输层链接之上的RTMP Connection链…

如何将LiDAR坐标系下的3D点投影到相机2D图像上

将激光雷达点云投影到相机图像上做数据层的前融合,或者把激光雷达坐标系下标注的物体点云的3d bbox投影到相机图像上画出来,都需要做点云3D点坐标到图像像素坐标的转换计算,也就是LiDAR 3D坐标转像素坐标。 看了网上一些文章都存在有错误或者…

【微信小程序_17_生命周期】

摘要:本文介绍了小程序的生命周期,包括生命周期的定义、分类、生命周期函数等内容。生命周期分为应用生命周期和页面生命周期,生命周期函数由小程序框架提供,会按次序自动执行,开发人员可利用这些函数在特定时间点执行操作,如在页面加载时初始化数据。 微信小程序_17_生命…

Centos7升级到openssh9.9

openssh9.9 是2024.9.20出的最新版ssh。因为客户扫描出一大堆centos7的漏洞,全是这个openssh的,好多补丁,所以索性升级到最新版。 需要自己制作rpm包,这个我是不懂,照这个来: Linux服务器升级openssh9.9最…

Lua变量

软考鸭微信小程序 过软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 Lua是一种轻量级的脚本语言,以其简单、高效和易于嵌入的特性而广受欢迎。在Lua中,变量是存储数据的容器,可以存储不同类型…

深入理解C语言中的时间统计

1. 引言 在计算机科学中,理解和测量程序的运行时间对于优化性能至关重要。C语言提供了多种工具来帮助开发者进行时间统计。本文旨在提供一个全面而深入的理解框架,使读者能够有效地利用这些工具。 2. 时间表示与获取 C语言中使用time_t类型来表示时间…