NRC (Negative Response Code)

💡

Negative Response Code : 차량의 진단 통신 프로토콜에서 사용되는 코드로, 특정 진단 요청이 실패했거나 처리할 수 없을 때 ECU(Electronic Control Unit)에서 반환하는 응답 코드입니다. 이 코드는 ISO 14229 (UDS - Unified Diagnostic Services) 표준에서 정의되며, 차량의 OBD(On-Board Diagnostics) 시스템에서 진단 요청에 대한 부정적인 응답을 식별하는 데 사용됩니다.

  • ECU가 진단 요청을 처리할 수 없을 때 송신되는 코드
  • 진단 도구가 문제를 이해하고 해결하는 데 도움을 줄 수 있음
NRC HexMnemonicUse Case
0x10GRGeneral Reject
0x11SNSService Not Supported
0x12SFNSSub-Function Not Supported
0x13IMLOIFIncorrect Message Length or Invalid Format
0x14RTLResponse Too Long
0x21BRRBusy Repeat Request
0x22CNCConditions Not Correct
0x24RSERequest Sequence Error
0x25NRFSCNo Response From Subnet Component
0x26FPEORAFailure Prevents Execution Of Requested Action
0x31ROORRequest Out of Range
0x33SADSecurity Access Denied
0x35IKInvalidKey
0x36ENOAExceedNumberOfAttempts
0x37RTDNERequiredTimeDelayNotExpired
0x38-0x4FRBEDLSDReserved by Extended Data Link Security Document
0x70UDNAUpload/Download Not Accepted
0x71TDSTransfer Data Suspended
0x72GPFGeneral Programming Failure
0x73WBSCWrong Block Sequence Counter
0x78RCRRPResponse Correctly Received, But Response is Pending
0x7ESFNSIASSub-Function Not Supported in Active Session
0x7FSNSIASService Not Supported in Active Session
0x81RTHRPM Too High
0x82RTLRPM Too Low
0x83EIREngine is Running
0x84EINREngine is Not Running
0x85ERTTLEngine Run Time Too Low
0x86TTHTemperature Too High
0x87TTLTemperature Too Low
0x88VSTHVehicle Speed Too High
0x89VSTLVehicle Speed Too Low
0x8ATPTHThrottle Pedal Too High
0x8BTPTLThrottle Pedal Too Low
0x8CTRNINTransmission Range Not in Neutral
0x8DTRNIGTransmission Range Not in Dear
0x8FBSNCBrake Switches Not Closed
0x90SLNIPShifter Lever Not in Park
0x91TCCLTorque Converter Clutch Locked
0x92VTHVoltage Too High
0x93VTLVoltage Too Low
0xF0-0xFE<Manufacturer Specific Conditions Not Correct

with Description

valueMnemonicresponseCodeDescription
0x00<positiveResponseThis response code shall not be used in a negative response message. This positiveResponse parameter value is reserved for server internal implementation.
0x01 - 0x0F<ISOSAEReservedThis range of values is reserved by this document for future definition.
0x10GRgeneralRejectThis response code indicates that the requested action has been rejected by the server. The generalReject response code shall only be implemented in the server if none of the negative response codes defined in this document meet the needs of the implementation. At no means shall this response code be a general replacement for other response codes defined.
0x11SNSserviceNotSupportedThis response code indicates that the requested action will not be taken because the server does not support the requested service. The server shall send this response code in case the client has sent a request message with a service identifier, which is either unknown or not supported by the server. Therefore this negative response code is not shown in the list of negative response codes to be supported for a diagnostic service, because this negative response code is not applicable for supported services.
0x12SFNSsubFunctionNotSupportedThis response code indicates that the requested action will not be taken because the server does not support the service specific parameters of the request message. The server shall send this response code in case the client has sent a request message with a known and supported service identifier but with “sub function“ which is either unknown or not supported.
0x13IMLOIFincorrectMessageLengthOrInvalidFormatThis response code indicates that the requested action will not be taken because the length of the received request message does not match the prescribed length for the specified service or the format of the parameters do not match the prescribed format for the specified service.
0x14RTLresponseTooLongThis response code shall be reported by the server if the response to be generated exceeds the maximum number of bytes available by the underlying network layer.
0x15 - 0x20<ISOSAEReservedThis range of values is reserved for future definition.
0x21BRRbusyRepeatRequesThis response code indicates that the server is temporarily too busy to perform the requested operation. In this circumstance the client shall perform repetition of the “identical request message” or “another request message”. The repetition of the request shall be delayed by a time specified in the respective implementation documents.Example: In a multi-client environment the diagnostic request of one client might be blocked temporarily by a NRC $21 while a different client finishes a diagnostic task.NOTE If the server is able to perform the diagnostic task but needs additional time to finish the task and prepare the response, the NRC 0x78 shall be used instead of NRC 0x21.This response code is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
0x22CNCconditionsNotCorrectThis response code indicates that the requested action will not be taken because the server prerequisite conditions are not met.
0x23 ISOSAEReservedThis range of values is reserved for future definition.
0x24RSErequestSequenceErrorThis response code indicates that the requested action will not be taken because the server expects a different sequence of request messages or message as sent by the client. This may occur when sequence sensitive requests are issued in the wrong order.EXAMPLE A successful SecurityAccess service specifies a sequence of requestSeed and sendKey as sub-functions in the request messages. If the sequence is sent different by the client the server shall send a negative response message with the negative response code 0x24 (requestSequenceError).
0x25 - 0x30<ISOSAEReservedThis range of values is reserved for future definition.
0x31ROOR
requestOutOfRangeThis response code indicates that the requested action will not be taken because the server has detected that the request message contains a parameter which attempts to substitute a value beyond its range of authority (e.g. attempting to substitute a data byte of 111 when the data is only defined to 100), or which attempts to access a dataIdentifier/routineIdentifer that is not supported or not supported in active session. This response code shall be implemented for all services, which allow the client to read data, write data or adjust functions by data in the server.
0x32FPEORAISOSAEReservedThis range of values is reserved for future definition.
0x33SADsecurityAccessDeniedThis response code indicates that the requested action will not be taken because the server’s security strategy has not been satisfied by the client. The server shall send this response code if one of the following cases occur:the test conditions of the server are not met,the required message sequence e.g. DiagnosticSessionControl, securityAccess is not met,the client has sent a request message which requires an unlocked server.Beside the mandatory use of this negative response code as specified in the applicable services within this standard, this negative response code can also be used for any case where security is required and is not yet granted to perform the required service.
0x34<ISOSAEReservedThis range of values is reserved for future definition.
0x35IKinvalidKeyThis response code indicates that the server has not given security access because the key sent by the client did not match with the key in the server’s memory. This counts as an attempt to gain security. The server shall remain locked and increment its internal securityAccessFailed counter.
0x36ENOAexceedNumberOfAttemptsThis response code indicates that the requested action will not be taken because the client has unsuccessfully attempted to gain security access more times than the server’s security strategy will allow.
0x37RTDNErequiredTimeDelayNotExpiredThis response code indicates that the requested action will not be taken because the client’s latest attempt to gain security access was initiated before the server’s required timeout period had elapsed.
0x38 - 0x4FRBEDLSDreservedByExtendedDataLinkSecurityDocumentThis range of values is reserved by ISO 15764 Extended data link security.
0x50 - 0x6F ISOSAEReservedThis range of values is reserved for future definition.
0x70UDNAuploadDownloadNotAcceptedThis response code indicates that an attempt to upload/download to a server’s memory cannot be accomplished due to some fault conditions.
0x71TDStransferDataSuspendedThis response code indicates that a data transfer operation was halted due to some fault. The active transferData sequence shall be aborted.
0x72GPFgeneralProgrammingFailureThis response code indicates that the server detected an error when erasing or programming a memory location in the permanent memory device (e.g. Flash Memory).
0x73WBSCwrongBlockSequenceCounterThis response code indicates that the server detected an error in the sequence of blockSequenceCounter values. Note that the repetition of a TransferData request message with a blockSequenceCounter equal to the one included in the previous TransferData request message shall be accepted by the server.
0x74 - 0x77<<ISOSAEReservedThis range of values is reserved for future definition.
0x78RCRRPrequestCorrectlyReceived-ResponsePendingThis response code indicates that the request message was received correctly, and that all parameters in the request message were valid, but the action to be performed is not yet completed and the server is not yet ready to receive another request. As soon as the requested service has been completed, the server shall send a positive response message or negative response message with a response code different from this. The negative response message with this response code may be repeated by the server until the requested service is completed and the final response message is sent. This response code might impact the application layer timing parameter values. The detailed specification shall be included in the data link specific implementation document.This response code shall only be used in a negative response message if the server will not be able to receive further request messages from the client while completing the requested diagnostic service. When this response code is used, the server shall always send a final response (positive or negative) independent of the suppressPosRspMsgIndicationBit value. A typical example where this response code may be used is when the client has sent a request message, which includes data to be programmed or erased in flash memory of the server. If the programming/erasing routine (usually executed out of RAM) is not able to support serial communication while writing to the flash memory the server shall send a negative response message with this response code. This response code is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
0x79 - 0x7D<ISOSAEReservedThis range of values is reserved for future definition.
0x7ESFNSIASsubFunctionNotSupportedInActiveSessionThis response code indicates that the requested action will not be taken because the server does not support the requested sub-function in the session currently active. Within the programmingSession negative response code 0x12 (subFunctionNotSupported) may optionally be reported instead of negative response code 0x7F (subFunctionNotSupportedInActiveSession). This response code shall only be used when the requested sub-function is known to be supported in another session, otherwise response code 0x12 (subFunctionNotSupported) shall be used. This response code shall be supported by each diagnostic service with a sub-function parameter, if not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
0x7FSNSIASserviceNotSupportedInActiveSessionThis response code indicates that the requested action will not be taken because the server does not support the requested service in the session currently active. This response code shall only be used when the requested service is known to be supported in another session, otherwise response code 0x11 (serviceNotSupported) shall be used. This response code is in general supported by each diagnostic service, as not otherwise stated in the data link specific implementation document, therefore it is not listed in the list of applicable response codes of the diagnostic services.
0x80<ISOSAEReservedThis range of values is reserved for future definition.
0x81RTHrpmTooHighThis response code indicates that the requested action will not be taken because the server prerequisite condition for RPM is not met (current RPM is above a pre-programmed maximum threshold).
0x82RTLrpmTooLowThis response code indicates that the requested action will not be taken because the server prerequisite condition for RPM is not met (current RPM is below a pre-programmed minimum threshold).
0x83EIRengineIsRunningThis is required for those actuator tests which cannot be actuated while the Engine is running. This is different from RPM too high negative response and needs to be allowed.
0x84EINRengineIsNotRunningThis is required for those actuator tests which cannot be actuated unless the Engine is running. This is different from RPM too low negative response, and needs to be allowed.
0x85ERTTLengineRunTimeTooLowThis response code indicates that the requested action will not be taken because the server prerequisite condition for engine run time is not met (current engine run time is below a preprogrammed limit).
0x86TTHtemperatureTooHighThis response code indicates that the requested action will not be taken because the server prerequisite condition for temperature is not met (current temperature is above a preprogrammed maximum threshold).
0x87TTLtemperatureTooLowThis response code indicates that the requested action will not be taken because the server prerequisite condition for temperature is not met (current temperature is below a preprogrammed minimum threshold).
0x88VSTHvehicleSpeedTooHighThis response code indicates that the requested action will not be taken because the server prerequisite condition for vehicle speed is not met (current VS is above a pre-programmed maximum threshold).
0x89VSTLvehicleSpeedTooLowThis response code indicates that the requested action will not be taken because the server prerequisite condition for vehicle speed is not met (current VS is below a pre-programmed minimum threshold).
0x8ATPTHthrottle/PedalTooHighThis response code indicates that the requested action will not be taken because the server prerequisite condition for throttle/pedal position is not met (current TP/APP is above a preprogrammed maximum threshold).
0x8BTPTLthrottle/PedalTooLowThis response code indicates that the requested action will not be taken because the server prerequisite condition for throttle/pedal position is not met (current TP/APP is below a preprogrammed minimum threshold).
0x8CTRNINtransmissionRangeNotInNeutralThis response code indicates that the requested action will not be taken because the server prerequisite condition for being in neutral is not met (current transmission range is not in neutral).
0x8DTRNIGtransmissionRangeNotInGearThis response code indicates that the requested action will not be taken because the server prerequisite condition for being in gear is not met (current transmission range is not in gear).
0x8E ISOSAEReservedThis range of values is reserved by this document for future definition.
0x8FBSNCbrakeSwitch(es)NotClosed (Brake Pedal not pressed or not applied)For safety reasons, this is required for certain tests before it begins, and must be maintained for the entire duration of the test.
0x90SLNIPshifterLeverNotInParkFor safety reasons, this is required for certain tests before it begins, and must be maintained for the entire duration of the test.
0x91TCCLtorqueConverterClutchLockedThis response code indicates that the requested action will not be taken because the server prerequisite condition for torque converter clutch is not met (current TCC status above a preprogrammed limit or locked).
0x92VTHvoltageTooHighThis response code indicates that the requested action will not be taken because the server prerequisite condition for voltage at the primary pin of the server (ECU) is not met (current voltage is above a pre-programmed maximum threshold).
0x93VTLvoltageTooLowThis response code indicates that the requested action will not be taken because the server prerequisite condition for voltage at the primary pin of the server (ECU) is not met (current voltage is below a pre-programmed maximum threshold).
0x94 - 0xFE<reservedForSpecificConditionsNotCorrectThis range of values is reserved for future definition.
0xFF<ISOSAEReservedThis range of values is reserved for future definition.