UDS诊断学习(二)---- 否定响应码(NRC)

否定响应码列表

唯一的对通信有影响的否定响应码是78。

10该响应码表示 ECU 拒绝执行请求的动作。

仅当本文档中不存在其它满足实现需求的否定响应码时,该响应码才应在 ECU中实现。这不代表该响应码可作为通用的替换码而替代本文档中定义的其他响应码。

11该响应码表示由于 ECU 不支持请求的服务,所以请求的动作没有被执行。

在诊断工具发送了带有不为 ECU 所知或所支持的服务标识符的请求报文后,
ECU 将发送该响应码。因此,该否定响应码并不会在某个诊断服务支持的否
定响应码列表中显示,因为该否定码不适用于所有支持的服务。

12该响应码表示由于 ECU 不支持请求报文中具体服务的参数,所以请求的动作没有被执行。

在诊断工具发送了请求报文,该报文带有为 ECU 所知且支持的服务标识符,
但是其子功能不为 ECU 所知或所支持, ECU 将发送该响应码。

13 该响应码表示由于接收到的请求报文的长度与具体服务预定义的长度不能匹配或参数的格式与具体服务预定义的格式不能匹配,所以请求的动作没有被执行。

14如果 ECU 生成的响应超过了底下的网络层可用的最大字节数,则 ECU 将报告该响应码。

举例:当在同一时间请求多个 DID 时,在响应中所有 DID 的组合超过了传输
协议的限制。

15 – 20 (ISO 保留)

21该响应码表示 ECU 暂时太忙而暂时不能执行请求的操作。在这种情况下,诊断工具必须将“相同的请求报文”或“其它请求报文”重新发送。请求的重复发送的延迟时间必须在各自的实现文件中规定好。

举例:在多诊断工具环境下,一个诊断工具的诊断请求可能通过 NRC $21 被
暂时封锁,原因是另一个诊断工具刚完成了一项诊断任务。
注意:如果 ECU 能够执行诊断任务但是需要额外的时间才能完成任务并准备
响应,则必须使用 NRC $78 来代替 NRC $21。
通常该响应码为每个诊断服务所支持,并在数据链路具体实现文档中规定,因
此该否定响应码并不会在某个诊断服务可用的否定响应码列表中列出。

22该响应码表示由于 ECU 端先决条件不满足,所以请求的动作不会被执行。

23 (ISO 保留)

24该响应码表示由于诊断工具所发送的请求报文的顺序不符合 ECU 的规定,所以请求的动作没有被执行。当对顺序有要求的请求以错误的顺序被发出时,将用到该响应码。

举例: “安全访问”服务规定了其两种子功能请求报文“请求种子”和“发送密钥”的发送顺序。如果诊断工具的发送顺序与规定不符,则 ECU 将发送否定响应码为 24 的否定响应报文。

25该响应码表示 ECU 已经接收到请求,但是由于提供必需的被请求信息的子网部件未在规定的时间响应,导致请求的动作不能被 ECU 执行。

那些包含子网部件的电子系统,且其子网不能直接响应诊断工具的请求的网关应实现该否定响应码。网关可接收针对子网部件的请求然后向子网部件请求必要的信息,如果子网部件响应失败,则 ECU 必须使用该否定响应码通知诊断工具此种情况的发生。
通常该响应码为每个诊断服务所支持,并在数据链路具体实现文档中规定,因此该否定响应码并不会在某个诊断服务可用的否定响应码列表中列出。

26该响应码表示由于发生故障且该故障禁止 ECU 执行请求的动作,所以请求的动作没有被执行

故障由 DTC 所标识(DTC 的状态位 TestFailed, Pending,Confirmed 或 TestFailedSinceLastClear 中,至少有一位被设置为 1) 。
该否定响应码可引导维修技师去读取 DTC 以识别并定位问题。
注意:这其中隐含的意思是,用于访问 DTC 的诊断服务不能使用该 NRC,因为外部测试工具可能检测 NRC 并在接收到该 NRC 时自动请求读 DTC。
通常该响应码为每个诊断服务(除了上述的服务)所支持,并在数据链路具体实现文档中规定,因此该否定响应码并不会在某个诊断服务可用的否定响应码列表中列出。

27 - 30 (ISO 保留)

31该响应码表示由于 ECU 检测到请求报文中包含的参数值超出了授权范围(如用于替代某数的参数值为 111,而该数据仅定义到 100)或试图访问的数据标识符/例程标识符是不被支持的或在当前会话模式下不被支持,所以请求的动作没有被执行。

那些允许诊断工具读取数据,写数据或校准 ECU 内的数据的服务,必须实现该响应码。

32 (ISO 保留)

33 该响应码表示由于诊断工具未能满足 ECU 的安全策略,所以请求的动作不能被执行。

在以下情况发生时, ECU 必须发送该响应码:
ECU 的测试条件不满足,
要求的报文序列顺序不满足,例如要求先执行“诊断会话控制”服务,才能执行“安全访问”。
诊断工具发送请求报文,而此请求需要 ECU 处于解锁状态。
除了此标准中规定必须使用该响应码的服务外,该否定响应码也可用于任何需
要安全访问而尚未允许执行所需服务的地方。

34 (ISO 保留)

35 该响应码表示由于诊断工具发送的密钥与 ECU 内存中的密钥不能匹配,所以ECU 还不能进行安全访问。这可认为是一次获取安全访问权限的尝试, ECU将保持锁定并将其内部的“安全访问失败(securityAccessFailed) ”计数器递增1。

36该响应码表示由于诊断工具获取安全访问权限的尝试失败次数超过了 ECU 安全策略所允许的次数,所以请求的动作不能被执行。

37 该响应码表示由于诊断工具在 ECU 要求的超时周期未到之前,发送了尝试获取安全访问权限请求报文,所以请求的动作不能被执行。

38 – 4F该范围值为 ISO 15764(扩展数据链路安全)所保留。

50 – 6F (ISO 保留)

70该响应码表示由于存在某些错误情况,尝试向 ECU 的内存上传/下载的操作不能被完成。

71该响应码表示由于存在某些错误,数据传输操作被停止。激活的“数据传输(transferData) ”序列将被废除。

72该响应码表示 ECU 在永久性存储器设备(如 Flash 存储器)上擦除或编程一个存储器单元时检测到了错误。

73该响应码表示 ECU 在检测“块序列计数(blockSequenceCounter) ”值时发现了错误。注意, ECU 必须接受被重复发送的“数据传输”请求报文,该报文所包含的“块序列计数(blockSequenceCounter) ”参数与前一个“数据传输”请求报文的相等。

74 – 77 (ISO 保留)

78该响应码表示请求的报文被正确接收到,请求报文中所有的参数均是有效的,但是所执行的动作还未完成,而 ECU 还未准备好接收另一个请求。请求的服务一被完成, ECU 就会立即发送肯定响应报文或不同于此响应码的否定响应报文。

带有该响应码的否定响应报文可被 ECU 重复发送,直至请求的服务完成且最终的响应报文被发送。该响应码可能会影响应用层的定时参数值。数据链路具体实施文档将包含关于这方面的详细规范。
只有 ECU 在完成请求的诊断服务期间不能再接收任何来自诊断工具的请求报文的条件下,才可使用包含该响应码的否定响应报文。
当使用该响应码时,不管“禁止肯定响应报文指示位(suppressPosRspMsgIndicationBit) ”取何值, ECU 都必须发送一个最终的响应(肯定或否定)。
此处典型的例子是:当诊断工具发送了一个请求报文,其中包含需要在 ECU的 Flash 存储器中编程或擦除的数据。如果编程/擦除例程(通常在 RAM 外执行)在写 Flash 存储器期间不能支持串行通信,则 ECU 必须发送包含该响应码的否定响应报文。
通常该响应码为每个诊断服务所支持,并在数据链路具体实现文档中规定,因此该否定响应码并不会在某个诊断服务可用的否定响应码列表中列出。

79 – 7D (ISO 保留)

7E该响应码表示由于 ECU 在当前的会话模式下不支持请求的子功能,所以请求的动作不能被执行。

通常该响应码为每个诊断服务所支持,并在数据链路具体实现文档中规定,因此该否定响应码并不会在某个诊断服务可用的否定响应码列表中列出。

7F该响应码表示由于 ECU 在当前的会话模式下不支持请求的服务,所以请求的动作不能被执行。只有当知道请求的服务可在其他会话模式下支持时才能使用该响应码,否则将使用 SNS 码(11, serviceNotSupported)。

通常该响应码为每个诊断服务所支持,并在数据链路具体实现文档中规定,因此该否定响应码并不会在某个诊断服务可用的否定响应码列表中列出。

80 (ISO 保留)

81该响应码表示由于 ECU 中关于 RPM 的先决条件未能满足(当前 RPM 高于预设的最大门限值),所以请求的动作不能被执行。

82该响应码表示由于 ECU 中关于 RPM 的先决条件未能满足(当前 RPM 低于预设的最小门限值),所以请求的动作不能被执行。

83这是针对那些执行器测试的要求,在发动机运转期间执行器不能被测试。这与“RPM 过高”的否定响应码不同,需要被准许。

84这是针对那些执行器测试的要求,只有在发动机运转期间执行器才能被测试。

这与“RPM 过低”的否定响应码不同,需要被准许。

85该响应码表示由于 ECU 中关于发动机运行时间的先决条件未能满足(当前发动机运行时间低于预设的门限值),所以请求的动作不能被执行。

86该响应码表示由于 ECU 中关于温度的先决条件未能满足(当前温度高于预设的最大门限值),所以请求的动作不能被执行。

87该响应码表示由于 ECU 中关于温度的先决条件未能满足(当前温度低于预设的最小门限值),所以请求的动作不能被执行。

88该响应码表示由于 ECU 中关于车辆速度的先决条件未能满足(当前车辆速度高于预设的最大门限值),所以请求的动作不能被执行。

89该响应码表示由于 ECU 中关于车辆速度的先决条件未能满足(当前车辆速度低于预设的最小门限值),所以请求的动作不能被执行。

8A该响应码表示由于 ECU 中关于节气门/踏板位置的先决条件未能满足(当前节气门/踏板位置高于预设的最大门限值),所以请求的动作不能被执行。

8B该响应码表示由于 ECU 中关于节气门/踏板位置的先决条件未能满足(当前节气门/踏板位置低于预设的最小门限值),所以请求的动作不能被执行。

8C该响应码表示由于 ECU 中关于挂空档的先决条件未能满足(当前变速模式的范围不在空档上),所以请求的动作不能被执行。

8D该响应码表示由于 ECU 中关于挂档的先决条件未能满足(当前传输模式的范围不在档位上),所以请求的动作不能被执行。

8E (ISO 保留)

8F为安全原因,某些测试开始之前需要处于制动状态,并且在测试持续期间都必须保持制动状态。

90为安全原因,某些测试开始之前需要换挡手柄位于驻车档,并且在测试持续期间必须保持驻车状态.

91该响应码表示由于 ECU 中关于扭矩转换器离合器的先决条件未能满足(当前扭矩转换器离合器状态在预设的门限值之上或锁定),所以请求的动作不能被执行。

92该响应码表示由于 ECU 中关于 ECU(ECU)的主电源引脚的电压的先决条件未能满足(当前电压高于预设的最大门限值),所以请求的动作不能被执行。

93该响应码表示由于 ECU 中关于 ECU(ECU)的主电源引脚的电压的先决条件未能满足(当前电压低于预设的最小门限值),所以请求的动作不能被执行。

94 – FE该范围值为本文档所保留,留作将来定义。

FF (ISO 保留)

  • 18
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值