The KWP2000 Protocol in Automotive Diagnostic Applications

The KWP2000 protocol has turn into a de facto regular in automotive diagnostic apps. It is standardized as ISO 14230-3. KWP2000 describes the implementation of different diagnostic products and services you can accethrough the protocol. You can operate KWP2000 on numerous transport layers these as K-line (serial) or CAN.

Transport Protocol
As KWP2000 uses messages of variable byte lengths, a transportation protocol is required on levels with only a nicely defined (quick) information duration, such as CAN. The transportation protocol splits a very long KWP2000 information into items that can be transferred more than the community and reassembles people pieces to get well the authentic message.

KWP2000 operates on CAN on several transport protocols such as ISO TP (ISO 15765-2), TP 1.6, TP 2. (Volkswagen), and SAE J1939-21. For KWP2000, the Automotive Diagnostic Command Established supports only the ISO TP (standardized in ISO 15765-2) and producer-unique VW TP 2. transport protocols.

Diagnostic Providers
The diagnostic products and services out there in KWP2000 are grouped in purposeful units and determined by a one particular-byte code (ServiceId). The regular does not define all codes for some codes, the regular refers to other SAE or ISO expectations, and some are reserved for company-unique extensions. The Automotive Diagnostic Command Established supports the next providers:

• Diagnostic Management
• Information Transmission
• Saved Details Transmission (Diagnostic Trouble Codes)
• Input/Output Control
• Remote Activation of Schedule

Add/Download and Prolonged providers are not aspect of the Automotive Diagnostic Command Established.

Diagnostic Assistance Format
Diagnostic companies have a prevalent information format. Just about every assistance defines a Request Concept, Favourable Reaction Concept, and Damaging Reaction Message. The Request Message has the ServiceId as first byte, furthermore more company-outlined parameters. The Optimistic Reaction Information has an echo of the ServiceId with bit 6 established as very first byte, plus the service-defined response parameters.

The Negative Reaction Information is usually a a few-byte information: it has the Destructive Reaction ServiceId as initially byte, an echo of the first ServiceId as next byte, and a ResponseCode as 3rd byte. The only exception to this format is the negative reaction to an EscapeCode company in this article, the third byte is an echo of the person-defined provider code, and the fourth byte is the ResponseCode. The KWP2000 common partly defines the ResponseCodes, but there is room remaining for producer-precise extensions. For some of the ResponseCodes, KWP2000 defines an error managing method. Since the two positive and negative responses have an echo of the requested support, you can always assign the responses to their corresponding ask for.

Hook up/Disconnect
KWP2000 expects a diagnostic session to be commenced with StartDiagnosticSession and terminated with StopDiagnosticSession. Nevertheless, StartDiagnosticSession has a DiagnosticMode parameter that establishes the diagnostic session style. Relying on this form, the Eu could or may well not assist other diagnostic companies, or work in a limited manner wherever not all Eu functions are available. The DiagnosticMode parameter values are producer particular and not defined in the common. For a diagnostic session to keep on being energetic, it should execute the TesterPresent services periodically if no other provider is executed. If the TesterPresent company is missing for a sure period of time of time, the diagnostic session is terminated, and the European returns to ordinary operation mode.

GetSeed/Unlock
A GetSeed/Unlock mechanism may perhaps safeguard some diagnostic providers. On the other hand, the relevant providers are left to the producer and not defined by the conventional.You can execute the GetSeed/Unlock mechanism through the SecurityAccess assistance. This defines a number of levels of safety, but the manufacturer assigns these concentrations to certain solutions.

Read/Create Memory
Use the Read/WriteMemoryByAddress providers to upload/down load facts to certain memory addresses on an Ecu. The deal with is a a few-byte quantity in KWP2000 and a 5-byte amount (four-byte handle and a single-byte extension) in the calibration protocols. The Add/Obtain useful unit companies are very maker precise and not well defined in the normal, so they are not a superior way to present a common upload/down load system.

Measurements
Use the ReadDataByLocal/CommonIdentifier products and services to access Ecu facts in a way very similar to a DAQ listing. A Community/CommonIdentifier describes a checklist of European quantities that are then transferred from the Eu to the tester. The transfer can be possibly solitary benefit or periodic, with a sluggish, medium, or quickly transfer rate. The transfer prices are company specific you can use the SetDataRates support to set them, but this placing is producer precise. The Automotive Diagnostic Command Established supports solitary-stage measurements.

Diagnostic Hassle Codes
A major diagnostic feature is the readout of Diagnostic Problems Codes (DTCs). KWP2000 defines several providers that obtain DTCs dependent on their group or position.

Enter/Output Management
KWP2000 defines expert services to modify inside or exterior European indicators. One illustration is redirecting Ecu sensor inputs to stimulated signals. The management parameters of these commands are company particular and not described in the conventional.
Distant Activation of a Regimen

These companies are similar to the ActionService and DiagService capabilities of CCP. You can invoke an European inner regimen determined by a Nearby/CommonIdentifier or a memory handle. Contrary to the CCP case, execution of this program can be asynchronous that is, there are individual Start off, Prevent, and RequestResult expert services. The management parameters of these commands are producer particular and not defined in the regular.

External References
For much more data about the KWP2000 Conventional, refer to the ISO 14230-3 common.