KWP 2000 on K-Line – ISO 14230
Mit dem KWP 2000 Protokoll (Keyword Protocol 2000) entstand der erste weit verbreitete gemeinsame Standard europäischer Automobilhersteller. Zunächst wurde das Protokoll für das Bussystem K-Line spezifiziert. Heute findet man dieses Protokoll nur noch bei älteren Steuergeräten. In der ISO 14230 wird das KWP 2000 Protokoll für K-Line standardisiert. Die ISO Norm spezifiziert außerdem den Physical Layer mit seinen Anforderungen an den Diagnosetester und die ECUs, den Datalink Layer und den Applikation Layer mit Beschreibung des Kommunikationsmodells und den Diagnostic Services, sowie die Anforderungen für abgasrelevante Systeme.
Die Kommunikation basiert auf Anfragen und Antworten zwischen dem Diagnosetester und den ECUs. Dabei wird die Anfrage vom Diagnosetester initiiert. Die Dienste setzen sich aus den Adressinformationen im Header, einem Service Identifier (SID) sowie den Parametern in den Nutzdaten zusammen. Bei einer negativen Antwort setzen sich die Nutzdaten aus der Error ID 0x7F, der Service ID und einem Error Code zusammen.
| Functional unit | Diagnostic service name | Request SID | Response SID |
|---|---|---|---|
| Diagnostic Management | StartDiagnosticSession | 0x10 | 0x50 |
| StopDiagnosticSession | 0x20 | 0x60 | |
| SecurityAccess | 0x27 | 0x67 | |
| TesterPresent | 0x3E | 0x7E | |
| ECUReset | 0x11 | 0x51 | |
| ReadECUIdentification | 0x1A | 0x5A | |
| Data Transmission | ReadDataByLocalIdentifier | 0x21 | 0x61 |
| ReadDataByCommonIdentifier | 0x22 | 0x62 | |
| ReadMemoryByAddress | 0x23 | 0x63 | |
| DynamicallyDefineLocalIdentifier | 0x2C | 0x6C | |
| WriteDataByLocalIdentifier | 0x3B | 0x7B | |
| WriteDataByCommonIdentifier | 0x3E | 0x6E | |
| WriteMemoryByAddress | 0x3D | 0x7D | |
| SetDataRates | 0x26 | 0x66 | |
| Stored Data Transmission | ReadDiagnosticTroubleCodes | 0x13 | 0x53 |
| ReadDiagnosticTroubleCodesByStatus | 0x18 | 0x58 | |
| ReadStatusOdDiagnosticTroubleCodes | 0x17 | 0x57 | |
| ReadFreezeFrameData | 0x12 | 0x52 | |
| ClearDiagnosticInformation | 0x14 | 0x54 | |
| Input/Output Control | InputOutputControlByLocalIdentifier | 0x30 | 0x70 |
| InputOutputControlByCommonIdentifier | 0x2F | 0x6F | |
| Remove Activation or Routine | StartRoutineByLocalIdentifier | 0x31 | 0x71 |
| StopRoutineByLocalIdentifier | 0x32 | 0x72 | |
| RequestRoutineResultsByLocalIdentifier | 0x33 | 0x73 | |
| StartRoutineByAddress | 0x38 | 0x78 | |
| StopRoutineByAddress | 0x39 | 0x79 | |
| RequestRoutineResultsByAddress | 0x3A | 0x7A | |
| Upload/Download | RequestDownload | 0x34 | 0x74 |
| RequestUpload | 0x35 | 0x75 | |
| TransferData | 0x36 | 0x76 | |
| RequestTransferExit | 0x37 | 0x77 |
