The KWP2000 protocol has become a de facto conventional in automotive diagnostic purposes. It is standardized as ISO 14230-3. KWP2000 describes the implementation of several diagnostic companies you can accethrough the protocol. You can operate KWP2000 on various transport levels these kinds of as K-line (serial) or CAN.
Transportation Protocol
As KWP2000 takes advantage of messages of variable byte lengths, a transportation protocol is essential on levels with only a properly outlined (shorter) concept duration, such as CAN. The transportation protocol splits a extended KWP2000 concept into parts that can be transferred over the community and reassembles these pieces to recover the initial message.
KWP2000 operates on CAN on numerous transport protocols this sort of 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 company-distinct VW TP 2. transportation protocols.
Diagnostic Providers
The diagnostic providers readily available in KWP2000 are grouped in useful units and determined by a one particular-byte code (ServiceId). The normal does not define all codes for some codes, the common refers to other SAE or ISO requirements, and some are reserved for manufacturer-distinct extensions. The Automotive Diagnostic Command Set supports the following solutions:
• Diagnostic Administration
• Details Transmission
• Saved Details Transmission (Diagnostic Difficulties Codes)
• Enter/Output Regulate
• Distant Activation of Regimen
Upload/Down load and Prolonged solutions are not element of the Automotive Diagnostic Command Established.
Diagnostic Services Structure
Diagnostic services have a common message structure. Each company defines a Request Information, Constructive Response Information, and Adverse Reaction Message. The Request Information has the ServiceId as first byte, as well as additional company-defined parameters. The Positive Response Information has an echo of the ServiceId with little bit 6 set as initial byte, plus the company-defined response parameters.
The Negative Reaction Message is typically a 3-byte message: it has the Adverse Reaction ServiceId as initially byte, an echo of the first ServiceId as second byte, and a ResponseCode as third byte. The only exception to this format is the adverse response to an EscapeCode company below, the third byte is an echo of the consumer-described service code, and the fourth byte is the ResponseCode. The KWP2000 common partly defines the ResponseCodes, but there is home left for company-unique extensions. For some of the ResponseCodes, KWP2000 defines an error managing treatment. Simply because both equally constructive and detrimental responses have an echo of the asked for services, you can generally assign the responses to their corresponding ask for.
Connect/Disconnect
KWP2000 expects a diagnostic session to be began with StartDiagnosticSession and terminated with StopDiagnosticSession. On the other hand, StartDiagnosticSession has a DiagnosticMode parameter that decides the diagnostic session sort. Based on this sort, the European may well or may possibly not help other diagnostic products and services, or function in a limited manner where not all Ecu functions are readily available. The DiagnosticMode parameter values are manufacturer certain and not described in the normal. For a diagnostic session to remain energetic, it should execute the TesterPresent company periodically if no other support is executed. If the TesterPresent provider is lacking for a sure interval of time, the diagnostic session is terminated, and the European returns to typical operation method.
GetSeed/Unlock
A GetSeed/Unlock mechanism may secure some diagnostic expert services. Even so, the applicable solutions are still left to the producer and not described by the standard.You can execute the GetSeed/Unlock system by means of the SecurityAccess company. This defines numerous concentrations of protection, but the producer assigns these concentrations to specific companies.
Browse/Create Memory
Use the Study/WriteMemoryByAddress companies to add/obtain knowledge to specific memory addresses on an Ecu. The address is a a few-byte quantity in KWP2000 and a 5-byte quantity (four-byte handle and a single-byte extension) in the calibration protocols. The Upload/Down load purposeful device services are highly company distinct and not effectively defined in the common, so they are not a great way to deliver a standard upload/download mechanism.
Measurements
Use the ReadDataByLocal/CommonIdentifier solutions to obtain European details in a way equivalent to a DAQ listing. A Neighborhood/CommonIdentifier describes a list of Ecu quantities that are then transferred from the Eu to the tester. The transfer can be possibly single worth or periodic, with a sluggish, medium, or rapidly transfer charge. The transfer rates are maker unique you can use the SetDataRates provider to established them, but this environment is maker certain. The Automotive Diagnostic Command Established supports one-issue measurements.
Diagnostic Trouble Codes
A important diagnostic feature is the readout of Diagnostic Issues Codes (DTCs). KWP2000 defines a number of companies that access DTCs primarily based on their team or status.
Input/Output Manage
KWP2000 defines providers to modify inside or exterior Ecu alerts. A single case in point is redirecting European sensor inputs to stimulated signals. The control parameters of these commands are producer unique and not defined in the standard.
Distant Activation of a Routine
These companies are similar to the ActionService and DiagService features of CCP. You can invoke an European inside schedule identified by a Regional/CommonIdentifier or a memory handle. Opposite to the CCP case, execution of this regime can be asynchronous that is, there are separate Begin, Cease, and RequestResult solutions. The control parameters of these instructions are manufacturer specific and not defined in the standard.
External References
For extra facts about the KWP2000 Conventional, refer to the ISO 14230-3 regular.