前言
本系列Autosar 诊断入门介绍,会详细介绍诊断相关基础知识,如您对诊断实战有更高需求,可参见诊断实战系列专栏,快速链接:Autosar诊断实战系列导读
如您MCAL配置,通信,诊断,OS等Autosar全栈实战有更高需求,可以参见AutoSar 实战进阶系列专栏,快速链接:AutoSar实战进阶系列导读
UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的一种诊断通信方式,是基于ISO 14229规范的规范化诊断服务标准,其位于OSI模型中的应用层,UDS可基于不同的总线实现,如基于CAN总线可再结合ISO1576协议进一步实现传输层。
本篇将把UDS服务里的NRC码从14229规范里摘录下来,就当是个字典来看,反复看,再遇到NRC争取不再需要懵懵的再去翻规范,以下进入正题。
NRC字典
定义了ISO 14229中使用的所有否定响应码。每个诊断服务都指定了适用的否定响应码,但server端的诊断服务也可以使用表格中指定的附加和适用的否定响应码。
负响应代码范围00–FF十六进制分为3个范围:
—00 hex:server 端内部实现的正响应参数值;
—01–0x7F:与通信相关的否定响应代码,使用较普遍;
—0x80–0xFF:server 端收到请求时不正确的特定条件的否定响应码。只要响应代码0x22 hex(conditionsNotCorrect)被列为有效,就可以使用这些响应代码,以便更具体地报告无法采取所请求的操作的原因。
具体NRC及对应解释如下:
对于0x80以上对应server 端收到请求时不正确的特定条件的否定响应码: