UDS – ISO 14229
Mit den neuen Bussystemen wurde ein Protokoll erforderlich, das unabhängig von diesen ist. Basierend auf KWP 2000 entstand das neue Protokoll UDS (Unified Diagnostic Services), das im ISO Standard 14229 festgelegt ist. Die Services von KWP 2000 wurden unter anderem neu gruppiert und mithilfe eines neuen Parameters, dem Subfunction Level, zusammengefasst. Darüber hinaus wurden neue Funktionalitäten wie ein Security Layer für verschlüsselte Dienste, die ereignisgesteuerte Ausführung von Diensten und das Unterdrücken von positiven Antworten der Steuergeräte ermöglicht.
Da der CAN auf 8Byte Nutzdaten limitiert ist, wurde die Implementierung von UDS auf CAN zusätzlich in der ISO 15765-3 spezifiziert.
| 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 |
