宏观分区定义:
| Byte value range | 描述 |
|---|---|
| 0x00 | 表示肯定响应,只在服务器内部使用 |
| 0x01 – 0x7F | 通信相关的否定响应码 |
| 0x80 – 0xFF | 对NRC_0x22 (conditionsNotCorrect)具体化,详细指明什么条件不满足 |
详细定义:
| Byte value | Definition | Mnemonic |
|---|---|---|
| 0x00 | positiveResponse (服务器内部使用) | PR |
| 0x01 – 0x0F | ISOSAEReserved | ISOSAERESRVD |
| 0x10 | generalReject (已定义的其他NRC无一适用时用这个) | GR |
| 0x11 | serviceNotSupported (服务不支持) | SNS |
| 0x12 | sub-functionNotSupported (子功能不支持) | SFNS |
| 0x13 | incorrectMessageLengthOrInvalidFormat (请求帧的长度或格式不对) | IMLOIF |
| 0x14 | responseTooLong (一次性需要响应的数据超过了传输层的缓冲区的最大长度) | RTL |
| 0x15 – 0x20 | ISOSAEReserved | ISOSAERESRVD |
| 0x21 | busyRepeatRequest (服务器在忙于处理其他请求,客户端需要延后一段时间重新发送之前的请求信息) | BRR |
| 0x22 | conditionsNotCorrect(条件不满足) | CNC |
| 0x23 | ISOSAEReserved | ISOSAERESRVD |
| 0x24 | requestSequenceError(请求序列错误,比如安全访问中需要先requestSeed,后sendKey) | RSE |
| 0x25 | noResponseFromSubnetComponent(未收到子网响应,比如网关模块转发请求至子网,但未收到子网响应,则回复给客户端此NRC) | NRFSC |
| 0x26 | FailurePreventsExecutionOfRequestedAction(至少存在一个DTC指示系统某种失效,阻止了此服务请求的继续执行) | FPEORA |
| 0x27 – 0x30 | ISOSAEReserved | ISOSAERESRVD |
| 0x31 | requestOutOfRange(请求超范围,比如写入某个参数超过了用户事先定义好的范围,比如请求了不支持的DID,RID) | ROOR |
| 0x32 | ISOSAEReserved | ISOSAERESRVD |
| 0x33 | securityAccessDenied(安全访问拒绝,比如请求了未解锁的服务等或其他任意有安全需求的应用场景) | SAD |
| 0x34 | ISOSAEReserved | ISOSAERESRVD |
| 0x35 | invalidKey(安全访问服务的子功能sendKey发送的秘钥不正确,同时会自增一个错误计数器securityAccessFailedCounter,在成功解锁后此计数器才清零) | IK |
| 0x36 | exceedNumberOfAttempts(连续的安全访问秘钥错误[securityAccessFailedCounter]达到一定次数) | ENOA |
| 0x37 | requiredTimeDelayNotExpired(返回NRC_0x36后,会开启一个冷却时间,此冷却时间内再继续请求安全访问会返回NRC_0x37) | RTDNE |
| 0x38 – 0x4F | reservedByExtendedDataLinkSecurityDocument | RBEDLSD |
| 0x50 – 0x6F | ISOSAEReserved | ISOSAERESRVD |
| 0x70 | uploadDownloadNotAccepted(请求对服务器内存进行上传/下载,但因为一些故障导致无法实现) | UDNA |
| 0x71 | transferDataSuspended(数据传输操作因为一些故障被中止) | TDS |
| 0x72 | generalProgrammingFailure(对非易失性内存擦除/编程时产生一些错误) | GPF |
| 0x73 | wrongBlockSequenceCounter(TransferData服务中blockSequenceCounter出现错误) | WBSC |
| 0x74 – 0x77 | ISOSAEReserved | ISOSAERESRVD |
| 0x78 | requestCorrectlyReceived-ResponsePending(请求已收到,处理中,将延后做出响应) | RCRRP |
| 0x79 – 0x7D | ISOSAEReserved | ISOSAERESRVD |
| 0x7E | sub-functionNotSupportedInActiveSession(在当前会话下不支持该子功能) | SFNSIAS |
| 0x7F | serviceNotSupportedInActiveSession(在当前会话下不支持该服务) | SNSIAS |
| 0x80 | ISOSAEReserved | ISOSAERESRVD |
| 0x81 | rpmTooHigh(发动机转速过高) | RPMTH |
| 0x82 | rpmTooLow(发动机转速过低) | RPMTL |
| 0x83 | engineIsRunning(发动机运行中) | EIR |
| 0x84 | engineIsNotRunning(发动机未运行) | EINR |
| 0x85 | engineRunTimeTooLow(发动机运行时间过短) | ERTTL |
| 0x86 | temperatureTooHigh(温度过高) | TEMPTH |
| 0x87 | temperatureTooLow(温度过低) | TEMPTL |
| 0x88 | vehicleSpeedTooHigh(车速过高) | VSTH |
| 0x89 | vehicleSpeedTooLow(车速过低) | VSTL |
| 0x8A | throttle/PedalTooHigh(阀门或踏板开度过大) | TPTH |
| 0x8B | throttle/PedalTooLow(阀门或踏板开度过小) | TPTL |
| 0x8C | transmissionRangeNotInNeutral(档位不在空挡) | TRNIN |
| 0x8D | transmissionRangeNotInGear(不在挡位上) | TRNIG |
| 0x8E | ISOSAEReserved | ISOSAERESRVD |
| 0x8F | brakeSwitch(es)NotClosed (制动踏板未踩下或未应用) | BSNC |
| 0x90 | shifterLeverNotInPark(不在P档) | SLNIP |
| 0x91 | torqueConverterClutchLocked(变矩器离合器锁定) | TCCL |
| 0x92 | voltageTooHigh(电压过高) | VTH |
| 0x93 | voltageTooLow(电压过低) | VTL |
| 0x94 – 0xEF | reservedForSpecificConditionsNotCorrect | RFSCNC |
| 0xF0 – 0xFE | vehicleManufacturerSpecificConditionsNotCorrect | VMSCNC |
| 0xFF | ISOSAEReserved | ISOSAERESRVD |
本文详细介绍了OBD II协议中的否定响应码(NRC),包括肯定响应、各种否定响应的具体含义及其应用场景,如服务不支持、条件不满足等。
6259

被折叠的 条评论
为什么被折叠?



