KWP 2000

KWP2000 (Key-Word-Protocol 2000) is a wide­spread network protocol used in auto­motive electronics. Originally it was developed only for ECU diagnostics.

Today, it is increasingly used for re­pro­gram­ming, i. e. for loading new soft­ware into the ECU. KWP2000 is inter­nat­ion­ally stan­dar­dized according to ISO 14230.


A flashloader, which is integrated in an ECU, interprets KWP2000 requests trans­mitted to the ECU for flashing and executes the actions.

For each request, the control unit sends a KWP2000 response which indicates whe­ther the received request was success­fully executed. A KWP2000 com­po­nent requires a consistent interface for sending mes­sages, which is offered by a TP proxy.

ISO 15765 (KWP2000onCAN)

The communication protocol KWP2000 on CAN defined as ISO 15765 is getting a world­wide standard increasingly, be­cause other communication protocols do not corres­pond to the OBD demands especially in North America.

One single CAN communication wire can be used for control and diagnostic simul­tane­ously with KWP2000 on CAN, so the number of wiring harnesses is decreased. In addition a lot of standard functions (Services) can be provided and the high-speed data trans­mission provides a fast flash pro­gram­ming of ECUs.


KWP2000 on CAN allows any ECU connected to the CAN bus to perform dia­gnostic communication without addit­ional hardware. This running stability of the protocol enables a diagnostic func­tio­nality to ECUs originally having no full scalable diagnostic func­tio­na­lity. Future generations of diagnostic functions are made possible by adapting to the KWP200 on CAN protocol. The read-out ID data function is used to store and retrieve vehicle data to ensure traceability. In addition, data such as ECU software version, hardware version and serial number can be read with this function.

The Diagnostic Trouble Code (DTC) function conforms to the SAE standard (2-Byte system). It adds condition data to indicate and correct errors. The ECUs Variant Coding function is important for reducing ECU kinds. The ECUs are programmed to their specifications in every vehicle via an ECU variant coding function and the diagnostic tools use it to transmit the specifications to the ECU. So the number of needed basis ECU types is reduced to the minimum.