The KWP2000 protocol has grow to be a de facto common in automotive diagnostic apps. It is standardized as ISO 14230-3. KWP2000 describes the implementation of various diagnostic products and services you can accethrough the protocol. You can run KWP2000 on many transport layers this kind of as K-line (serial) or CAN.
As KWP2000 takes advantage of messages of variable byte lengths, a transport protocol is essential on layers with only a properly defined (quick) message length, this kind of as CAN. The transportation protocol splits a prolonged KWP2000 message into pieces that can be transferred over the network and reassembles people parts to recuperate the original message.
KWP2000 operates on CAN on several transport protocols these types 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-particular VW TP 2. transport protocols.
The diagnostic solutions available in KWP2000 are grouped in practical models and recognized by a a person-byte code (ServiceId). The common does not determine all codes for some codes, the regular refers to other SAE or ISO criteria, and some are reserved for manufacturer-unique extensions. The Automotive Diagnostic Command Set supports the subsequent services:
• Diagnostic Management
• Info Transmission
• Saved Information Transmission (Diagnostic Hassle Codes)
• Enter/Output Handle
• Distant Activation of Regimen
Add/Down load and Extended expert services are not part of the Automotive Diagnostic Command Set.
Diagnostic Company Format
Diagnostic solutions have a typical information structure. Each provider defines a Request Message, Optimistic Response Message, and Detrimental Reaction Message. The Request Message has the ServiceId as to start with byte, furthermore additional provider-described parameters. The Positive Reaction Concept has an echo of the ServiceId with little bit 6 set as initial byte, plus the support-defined response parameters.
The Detrimental Response Concept is typically a 3-byte message: it has the Destructive Reaction ServiceId as very first byte, an echo of the authentic ServiceId as next byte, and a ResponseCode as third byte. The only exception to this structure is the unfavorable response to an EscapeCode service here, the third byte is an echo of the user-outlined service code, and the fourth byte is the ResponseCode. The KWP2000 regular partly defines the ResponseCodes, but there is area still left for manufacturer-precise extensions. For some of the ResponseCodes, KWP2000 defines an mistake handling process. For the reason that both equally positive and unfavorable responses have an echo of the requested provider, you can generally assign the responses to their corresponding request.
KWP2000 expects a diagnostic session to be started out with StartDiagnosticSession and terminated with StopDiagnosticSession. On the other hand, StartDiagnosticSession has a DiagnosticMode parameter that establishes the diagnostic session sort. Relying on this variety, the European may or may possibly not guidance other diagnostic companies, or work in a restricted method where not all Eu functions are accessible. The DiagnosticMode parameter values are maker specific and not outlined in the conventional. For a diagnostic session to remain active, it will have to execute the TesterPresent support periodically if no other support is executed. If the TesterPresent provider is missing for a selected interval of time, the diagnostic session is terminated, and the European returns to standard procedure manner.
A GetSeed/Unlock system might safeguard some diagnostic companies. Having said that, the applicable services are remaining to the producer and not described by the typical.You can execute the GetSeed/Unlock mechanism through the SecurityAccess company. This defines quite a few levels of safety, but the company assigns these ranges to selected products and services.
Read through/Create Memory
Use the Go through/WriteMemoryByAddress expert services to upload/obtain information to specified memory addresses on an Ecu. The address is a three-byte quantity in KWP2000 and a 5-byte amount (four-byte tackle and a person-byte extension) in the calibration protocols. The Add/Download useful device providers are remarkably maker certain and not very well defined in the regular, so they are not a good way to present a common add/down load system.
Use the ReadDataByLocal/CommonIdentifier providers to access Ecu facts in a way related to a DAQ list. A Area/CommonIdentifier describes a record of Ecu quantities that are then transferred from the European to the tester. The transfer can be both single price or periodic, with a slow, medium, or fast transfer price. The transfer fees are producer unique you can use the SetDataRates support to established them, but this location is producer particular. The Automotive Diagnostic Command Established supports single-level measurements.
Diagnostic Difficulties Codes
A significant diagnostic feature is the readout of Diagnostic Trouble Codes (DTCs). KWP2000 defines a number of services that obtain DTCs centered on their group or position.
KWP2000 defines services to modify inner or exterior Ecu alerts. One example is redirecting Ecu sensor inputs to stimulated alerts. The management parameters of these commands are manufacturer certain and not described in the typical.
Distant Activation of a Regime
These products and services are similar to the ActionService and DiagService features of CCP. You can invoke an Ecu internal regimen recognized by a Local/CommonIdentifier or a memory deal with. Contrary to the CCP case, execution of this plan can be asynchronous that is, there are different Start off, Prevent, and RequestResult services. The manage parameters of these commands are company particular and not defined in the standard.
For extra info about the KWP2000 Normal, refer to the ISO 14230-3 normal.