On-board diagnostics NRC - UDS Negative Response Code

Negative Response Code

NRC Categories

>>The following table lists the negative response codes defined in ISO14229-1:2013(E) and their usage conditions: the
negative response codes range from 0x00 to 0xFF and are divided into three groups:

  • 0x00: Used when the server internally implements the judgment logic of the negative response code, indicating that a positive response is to be given.
  • 0x01 – 0x7F: Negative response codes related to diagnostic communication.
  • 0x80 – 0xFF: When the server receives a diagnostic service request, it is a negative response code given because some conditions do not meet the requirements. The purpose of giving these negative response codes instead of 0x22 is to provide a more detailed reason why the requested service cannot be performed

NRC Common List


  • 00POSITIVERESPONSE positive response
    • positive response
  • 11SERVICENOTSUPPORTED Service not supported
    • When the service identifier in the request message sent by the diagnostic instrument is unrecognizable or not supported, the ECU should send this response code
  • 12SUBFUNCTIONNOTSUPPORTED Subfunction not supported
    • This response code indicates that the requested action cannot be performed because the ECU does not support the service-specific parameters in the request message. If the diagnostic device has sent a request message, and the request message contains a recognized and supported service identifier, but the sub-function is either not recognized or not supported, then the ECU shall send this response code
  • 13INCORRECTMESSAGELENGTHORINVALIDFORMAT Incorrect message length or invalid format
    • This response code indicates that the requested action cannot be executed because the length of the request message received by the ECU does not match the length specified by the specific service or the parameter format does not match the format specified by the specific service
  • 22CONDITIONSNOTCORRECT condition is incorrect
    • The response code indicates that the requested action cannot be executed because the status condition of the ECU is not allowed
  • 24REQUESTSEQUENCEERROR request sequence error
    • This response code indicates that the requested action cannot be performed because the ECU received an unexpected request message sequence or a message sent by the diagnostic tool.
  • 31REQUESTOUTOFRANGE request out of range
    • This response code indicates that the requested action cannot be performed because the ECU has detected that the request message contains a parameter that exceeds the allowed range or does not support or activates access to data identifiers/routine identifiers that are not supported in session mode. It shall (shall) allow the diagnostic instrument to read data, write data or pass the data adjustment function within the ECU to use this response code
  • 33SECURITYACCESSDENIED Security Access Denied
    • Used when secure access is required but not passed.
  • 35INVALIDKEY Invalid key
    • This response code indicates that the reason why the ECU does not allow security access is that the key sent by the diagnostic tester does not match the key in the ECU memory
  • 36EXCEEDNUMBEROFATTEMPTS Attempts exceeded
    • When the number of failed requests for the SecurityAccess service exceeds the maximum number allowed by the server, this code is replied.
  • 37REQUIREDTIMEDELAYNOTEXPIRED The delay time has not expired
    • When the server receives a security access (SecurityAccess) service request within the security access delay time, it will reply with this code
  • 70UPLOADDOWNLOADNOTACCEPTED Upload and download not accepted
    • Reply to this code when uploading data from the server's storage or downloading data to the server's storage fails due to a failure
  • 71TRANSFERDATASUSPENDED Transfer data interrupted
    • When the data transmission operation is interrupted due to a failure, reply this code
  • 72GENERALPROGRAMMINGFAILURE General programming failure
    • This response code indicates that an error has been detected by the ECU when erasing or programming a non-erasable memory device
  • 73WRONGBLOCKSEQUENCECOUNTER Wrong sequence block
    • In the process of executing the data transfer service (TransferData (0x36) service), when the data block sequence number (BlockSequenceCounter) error is detected, this code will be replied
  • 78REQUESTCORRECTLYRECEIVED_RESPONSEPENDING correctly received request message - waiting for response
    • This response code indicates that the message requested by the diagnostic instrument has been correctly received by the ECU and all parameters in the request message are valid, but the action to be performed has not been completed and the ECU is not ready to receive other requests. Once the requested service is completed, the ECU shall (shall) send a positive response message or send a negative response message
  • 7ESUNFUNCTIONNOTSUPPORTEDINACTIVESESSION The activation session does not support the subservice
    • This response code indicates that the requested action cannot be executed because the ECU does not support the requested sub-service in the current session mode
  • 7FDIAGNOSTICSESSIONNOTCORRECT The active session does not support the service
    • This response code indicates that the requested action cannot be executed because the ECU does not support the requested service in the current session mode.

Guess you like

Origin blog.csdn.net/qq_33704787/article/details/126090246