1. 引言:什么是NRC?
在UDS(ISO 14229)协议中,诊断通信遵循“请求-响应”机制。当诊断仪(Client)向ECU(Server,电子控制单元)发送请求报文后,ECU需要给出反馈。
-
正响应:请求被成功接收并执行,返回[SID+0x40] + 数据。
-
负响应:请求因某种原因未被接受或执行,返回0x7F + [请求SID] + [NRC]。
NRC(Negative Response Code) 是ECU告诉诊断仪“为什么拒绝”请求的唯一标识。它是诊断工程师在开发、测试和售后维修过程中最重要的排错线索。
2. NRC的核心作用与设计哲学
NRC的存在不仅仅是报错,它体现了汽车诊断的严谨性:
-
安全防护:防止在不符合条件(如发动机运转时)执行危险操作(如刷写程序)。
-
状态同步:让诊断仪了解ECU当前所处的会话、安全等级和安全状态。
-
流量控制:协调数据传输节奏,防止ECU过载。
3. NRC分类深度解析
根据功能和应用场景,可以将NRC大致分为以下几类:
第一类:请求格式与语法错误
这类错误通常指诊断仪发送的报文本身不




