诊断基础:NRC0x78(Pending)问题知多少?

这篇具有很好参考价值的文章主要介绍了诊断基础:NRC0x78(Pending)问题知多少?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、P4Server_max与NRC0x78关系

先看一个数据流,如下所示:
诊断基础:NRC0x78(Pending)问题知多少?

如上的数据流中,上位机使用功能寻址(0x7FF)发送了$10 82的诊断请求,Server端给了一个NRC0x78响应,并且没有最终响应。
(一)需求解读
如果单纯的看这个数据流,大家可能比较迷茫,不知这个问题是对还是错。我们先看一下需求,如下所示:
诊断基础:NRC0x78(Pending)问题知多少?

解释:

对于Diagnostic Session Control($10)服务,P4Server_max = P2Server_max。P4Server_max = P2Server_max又会有怎样的约束呢?答:Server不能回复NRC0x78。此约束出自14229-2的约束,如下所示:
诊断基础:NRC0x78(Pending)问题知多少?

项目中,一般会约束P2Server_max = 50ms,也就意味着P4Server_max = P2Server_max = 50ms。如上的解释中,P4时间表示接收到诊断请求到最终给出响应的时间,这里的最终响应是指正响应或者否定响应。当P4Server_max = P2Server_max时,P2和P4实质就是一个时间约束,如下所示:

诊断基础:NRC0x78(Pending)问题知多少?

结论:上述的数据流中,并未有按照需求开发,即:当P4Server_max = P2Server_max时,Server仍然回复了NRC0x78。

2、NRC0x78与正响应抑制位的关系

问题数据流中,还有一个值得我们关注的点:功能寻址的正响应抑制位置位,即:suppressPosRspMsgIndicationBit = TRUE。什么意思呢?14229-1的解释如下:
诊断基础:NRC0x78(Pending)问题知多少?

意思是说,诊断服务的正响应抑制位置位的时候,正响应可以不用回复。那么,否定响应需要回复吗?答:需要回复。正响应抑制位只是约束了正响应可以不用回复,但是,诊断请求的正响应抑制位置位碰到了否定响应的时候,需要给出否定响应,否定响应属于最终响应。
再进一步思考:"功能寻址的所有否定响应否需要回复吗?"答:不是。怎么理解呢?14229-1给出的解释如下所示:
诊断基础:NRC0x78(Pending)问题知多少?

功能寻址中,如果碰到了NRC0x11(serviceNotSupported)、NRC0x7F(

serviceNotSupportedInActiveSession)、NRC0x12(sub-functionNotSupported)、NRC0x7E(sub-functionNotSupportedInActiveSession)以及NRC0x31(requestOutOfRange)时,可以不用回复。

这就完了吗?上述的两个需求中,我们注意到:Annex A.1的约束除外,Annex A.1约束又是什么呢?如下所示:

诊断基础:NRC0x78(Pending)问题知多少?

解释:

当诊断服务请求中,Server如果先响应了NRC0x78,那么,不管诊断服务是否正响应抑制位置位还是功能寻址碰到NRC0x11、NRC0x7F、NRC0x12、NRC0x7E、NRC0x31,均需要给出最终的响应,即:正响应或者否定响应。
所以,上述数据流的第二个问题:在Server响应了NRC0x78以后,没有给出最终响应。文章来源地址https://www.toymoban.com/news/detail-421353.html

到了这里,关于诊断基础:NRC0x78(Pending)问题知多少?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【车载开发系列】UDS诊断---动态定义DID($0x2C)

    动态定义数据标识符 DynamicallyDefineDataIdentifier(2Ch) 此服务允许诊断工具在ECU的内部动态定义一个数据标识符,一个临时的DID,可以通过这个DID读取一段内存的数据,也可以通过改DID一次性读取多个原有DID的数据。 该数据标识符还可以被读取数据服务22h或读取数据(周期标识

    2024年02月02日
    浏览(69)
  • 【车载开发系列】UDS诊断---读取DTC信息($0x19)

    UDS可以简单理解为一套完整的通讯协议框架,其目的在于规范各种行车电脑和ECU之间的通讯。0x19服务其实是读取DTC信息的服务。 1)DTC概念 故障存储相关的0x19和0x14服务。 当系统检测到了一个错误或者是一个故障发生的时候,会将相对应的数值故障码进行存储,那么这个对应

    2024年01月15日
    浏览(57)
  • 汽车诊断之UDS入门-0x27(SecurityAccess)安全访问

    安全访问服务 0x27 用来解锁 ECU 对应的安全等级 , 一般处在非默认会话 下 进行解锁,这个服务解锁的是 处在某个安全等级下的服务 。 服务格式   安全等级解闭锁   需要注意的是: 1.P owerOn 或者 R eset 后, ECU 处在 locked 状态; 2.同一时刻只有 1 个安全等级是 active ,与这个

    2024年02月08日
    浏览(76)
  • UDS统一诊断服务【三】安全访问0X27服务

    今天分享的是UDS的安全访问服务,希望能对你有所帮助 SecurityAccess 安全访问,27服务,用来保护某些诊断服务的,提供一种保护机制。例如对于重要数据的上传或者下载过程不做任何限制,可能会对整车的安全造成极大的威胁,尤其是针对底盘域的控制器更是要在这方面做好

    2024年02月16日
    浏览(55)
  • 如何解决Pod一直处于Pending状态的问题

    在Kubernetes集群中,当我们创建一个新的Pod或更新一个Pod时,可能会遇到Pod一直处于Pending状态的问题。本文将介绍解决这个问题的几种方法。 检查Node节点的状态 Pod在Kubernetes中必须运行在Node节点上。因此,如果没有可用的Node节点或者Node节点不可用,Pod就会被挂起。可以使用

    2024年02月06日
    浏览(48)
  • springboot基础(78):Freemarker模板生成word文档

    利用Freemarker模板生成word文档。示例,将左侧的模板生成为右侧的文档并下载。 1.编辑一份addr.docx文档 2. 另存为addr.xml文档 3. 打开addr.xml文件,修改内容,由于table表格,需要遍历list集合,需要添加 将addr.xml后缀更改为addr.ftl文件,存放到resources/templates下 导入依赖 编写contr

    2024年02月11日
    浏览(39)
  • 0基础学习VR全景平台篇 第78篇:全景相机-拍摄VR全景

    新手入门 圆周率科技,成立于2012年,是中国最早投身嵌入式全景算法研发的团队之一,亦是全球市场占有率最大的全景算法供应商。相继推出一体化智能屏、支持一键高清全景直播的智慧全景相机--Pilot Era和Pilot One,为用户带来实时畅享8K的高清沉浸式直播体验。 这里以Pi

    2024年02月14日
    浏览(40)
  • NRC定义(Negative Response Code)

    诊断协议那些事儿专栏系列文章,在诊断仪发送请求后,ECU除了肯定响应外,也会反馈否定响应,其NRC包含了否定响应的具体原因。本文将系统介绍各NRC(否定响应码)的具体含义。

    2024年02月09日
    浏览(33)
  • Java问题诊断工具——JVisualVM

    这篇文章源自一次加班改bug的惨痛经历=[,,_,,]:3 负责的一个项目占用不断增加,差点搞崩服务器(╥﹏╥)…… 一下子有点懵,不能立刻确定是哪里导致的问题,所以决定好好研究下这个之前一直被我忽视的问题诊断工具🔧——JVisualVM 嘿嘿我们开始吧(。・ω・。)ノ JVisualVM是一

    2023年04月22日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包