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.
UDS was originally specified in ISO 15765-3 based on the ISO-TP protocol, but with the addition of DoIP, it was transferred to a separate standard, ISO 14229, with Part 3 covering CAN and Part 5 covering DoIP.
| 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 |
