UDS – ISO 14229
The advent of new bus systems necessitated a protocol independent of them. Based on KWP 2000, the new UDS (Unified Diagnostic Services) protocol was developed and defined in ISO standard 14229. Among other changes, KWP 2000 services were regrouped and consolidated using a new parameter: the sub-function level. Furthermore, new functionalities were introduced, such as a security layer for encrypted services, event-driven service execution, and the suppression of positive responses from control units.
Since CAN is limited to 8 bytes of payload data, the implementation of UDS over CAN was additionally specified in ISO 15765-3.
| Functional unit | Diagnostic service name | Request SID | Response SID |
|---|---|---|---|
| Diagnostic and Communication Management | DiagnosticSessionControl | 0x10 | 0x50 |
| SecurityAccess | 0x27 | 0x67 | |
| TesterPresent | 0x3E | 0x7E | |
| ECUReset | 0x11 | 0x51 | |
| CommunicationControl | 0x28 | 0x68 | |
| AccessTimingParameter | 0x83 | 0xC3 | |
| SecuredDataTransmission | 0x84 | 0xC4 | |
| ControlDTCSetting | 0x85 | 0xC5 | |
| ResponseOnEvent | 0x86 | 0xC6 | |
| LinkControl | 0x87 | 0xC7 | |
| Data Transmission | ReadDataByIdentifier | 0x22 | 0x62 |
| ReadMemoryByAddress | 0x23 | 0x63 | |
| ReadScalingDataByIdentifier | 0x24 | 0x64 | |
| ReadDataByPeriodicIdentifier | 0x2A | 0x6A | |
| DynamicallyDefineDataIdentifier | 0x2C | 0x6C | |
| WriteDataByIdentifier | 0x3E | 0x6E | |
| WriteMemoryByAddress | 0x3D | 0x7D | |
| Stored Data Transmission | ReadDTCInformation | 0x19 | 0x59 |
| ClearDiagnosticInformation | 0x14 | 0x54 | |
| Input/Output Control | InputOutputControlByIdentifier | 0x2F | 0x6F |
| Remove Activation or Routine | StartRoutineByLocalIdentifier | 0x31 | 0x71 |
| Upload/Download | RequestDownload | 0x34 | 0x74 |
| RequestUpload | 0x35 | 0x75 | |
| TransferData | 0x36 | 0x76 | |
| RequestTransferExit | 0x37 | 0x77 | |
| RequestFileTransfer | 0x38 | 0x78 |
