PROTOCOL · APPLICATION LAYER · 1998-2010
KWP2000 protocol
Keyword Protocol 2000 (ISO 14230).
What is KWP2000?
KWP2000 (Keyword Protocol 2000, ISO 14230) was the dominant diagnostic protocol for European ECUs from 1998 to roughly 2010. Runs over K-Line (single-wire bidirectional) or over CAN. Defined a service-ID architecture similar in spirit to UDS but with simpler header/checksum framing.
Key characteristics
- K-Line layer 1 — single-wire bidirectional, 10.4 kbit/s typical, 5-baud or fast init.
- Service IDs are 8-bit (vs UDS 8-bit also, but UDS expanded the set).
- Used by Bosch EDC15 / EDC16 / ME7 and most pre-2010 European ECUs.
- Cheap clones (MPPS V13 / KKL cable) speak K-Line + KWP2000 only.
- Largely replaced by UDS-over-CAN since ~2010.
KWP2000 service IDs / frame structure
| ID / Code | Name | Purpose |
|---|---|---|
0x10 | StartDiagnosticSession | Enter extended/programming session |
0x14 | ClearDiagnosticInformation | Clear DTCs |
0x18 | ReadDTCByStatus | Read stored DTCs |
0x21 | ReadDataByLocalIdentifier | Read data by 8-bit ID |
0x22 | ReadDataByCommonIdentifier | Read by 16-bit DID |
0x27 | SecurityAccess | Seed/key challenge |
0x2C | DynamicallyDefineDataIdentifier | Group multiple LIDs |
0x30 | InputOutputControlByLocalIdentifier | Actuator control |
0x31 | StartRoutineByLocalIdentifier | Run ECU routine |
0x34 | RequestDownload | Begin flash download |
0x36 | TransferData | Send flash chunk |
0x37 | RequestTransferExit | End flash transfer |
0x3D | WriteMemoryByAddress | Direct memory write |
0x3E | TesterPresent | Keep-alive |