Understanding UDS NRC Codes: A Comprehensive Guide
Advertisement
UDS (Unified Diagnostic Services) Negative Response Codes (NRC) play a critical role in vehicle diagnostics by providing standardized error feedback when a requested service cannot be executed. These codes help ensure robust communication between the tester and the ECU by indicating reasons for failure, such as invalid requests, security restrictions, or timing constraints. This page lists UDS NRC (Negative Response Codes) for various UDS SID (Service Identifier) responses.
What are UDS NRCs | Negative Response Codes?
In OBD (Off-Board Diagnostics), the tester acts as the client, and the ECU (Electronic Control Unit) acts as the server. The client sends service requests to the server. Based on the requested service, the server checks if it’s possible to perform the service. If it is, the UDS responds with a positive response message.
However, if the server finds that it’s not possible to perform the requested service, UDS responds with a negative response message. In a negative response of the UDS protocol, the NRC contains the rejection cause.
The negative response message contains three fields:
- NR_SID: (Size: 1 byte, Value: 0x7F)
- SIDRQ: (Size: 1 byte)
- NRC code: (Size: 1 byte)
The NRC code indicates the reason for not performing the requested service. UDS protocols predefine various NRCs for various reasons under which the server can reject to perform the service.
Refer to the UDS request and response frame format.
UDS NRC Codes for UDS SID 0x7F
The following table mentions UDS NRCs for UDS SID with 0x7F.
UDS NRC | Description |
---|---|
0x10 | General Reject |
0x11 | Service not supported |
0x12 | Sub Function not supported |
0x13 | Invalid message length/format |
0x14 | Response too long |
0x21 | Busy-repeat request |
0x22 | Conditions not correct |
0x24 | Request sequence error |
0x25 | No response from subnet component |
0x26 | Failure prevents execution of requested action |
0x31 | Request out of range |
0x33 | Security access denied |
0x35 | Invalid Key |
0x36 | Exceeded number of attempts |
0x37 | Required time delay has not expired |
0x70 | Upload/download not accepted |
0x71 | Transfer data suspended |
0x72 | Programming failure |
0x73 | Wrong block sequence counter |
0x78 | Request received - response pending |
0x7E | Sub function not supported in active session |
0x7F | Service not supported in active session |
0x81/0x82 | RPM too high/low |
0x83/0x84 | Engine is running/ not running |
0x85 | Engine run time too low |
0x86/0x87 | Temperature too high/low |
0x88/0x89 | Speed too high/low |
0x8A/0x8B | Throttle pedal too high/low |
0x8C/0x8D | Transmission range not in neutral/dear |
0x8F | Brake switches not closed |
0x90 | Shifter lever not in park |
0x91 | Torque converter clutch locked |
0x92/0x93 | Voltage too high/low |
0xF0-0xFE | Manufacturer specific conditions not correct |
Conclusion
By implementing NRCs, UDS enhances fault detection, debugging and compliance with automotive diagnostic protocols, ensuring reliable and efficient troubleshooting. Their structured approach improves interoperability among different ECUs and diagnostic tools, making NRCs essential for maintaining the accuracy and consistency of modern vehicle diagnostics.