The KWP2000 protocol has turn out to be a de facto standard in automotive diagnostic apps. It is standardized as ISO 14230-3. KWP2000 describes the implementation of many diagnostic services you can accethrough the protocol. You can operate KWP2000 on several transport layers these types of as K-line (serial) or CAN.
As KWP2000 uses messages of variable byte lengths, a transport protocol is necessary on layers with only a well outlined (quick) information size, these types of as CAN. The transport protocol splits a very long KWP2000 information into items that can be transferred above the community and reassembles individuals items to get better the unique information.
KWP2000 operates on CAN on many 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 Set supports only the ISO TP (standardized in ISO 15765-2) and maker-certain VW TP 2. transport protocols.
The diagnostic services out there in KWP2000 are grouped in purposeful units and determined by a a person-byte code (ServiceId). The standard does not define all codes for some codes, the standard refers to other SAE or ISO specifications, and some are reserved for maker-certain extensions. The Automotive Diagnostic Command Set supports the following services:
• Diagnostic Administration
• Facts Transmission
• Stored Facts Transmission (Diagnostic Difficulties Codes)
• Enter/Output Handle
• Distant Activation of Program
Add/Obtain and Prolonged services are not section of the Automotive Diagnostic Command Set.
Diagnostic Company Format
Diagnostic services have a popular information structure. Each individual provider defines a Ask for Information, Positive Reaction Information, and Unfavorable Reaction Information. The Ask for Information has the ServiceId as to start with byte, as well as additional provider-outlined parameters. The Positive Reaction Information has an echo of the ServiceId with bit 6 set as to start with byte, as well as the provider-outlined response parameters.
The Unfavorable Reaction Information is typically a three-byte information: it has the Unfavorable Reaction ServiceId as to start with byte, an echo of the unique ServiceId as next byte, and a ResponseCode as third byte. The only exception to this structure is the adverse response to an EscapeCode provider below, the third byte is an echo of the person-outlined provider code, and the fourth byte is the ResponseCode. The KWP2000 standard partly defines the ResponseCodes, but there is space remaining for maker-certain extensions. For some of the ResponseCodes, KWP2000 defines an error handling method. For the reason that the two good and adverse responses have an echo of the asked for provider, you can usually assign the responses to their corresponding request.
KWP2000 expects a diagnostic session to be began with StartDiagnosticSession and terminated with StopDiagnosticSession. However, StartDiagnosticSession has a DiagnosticMode parameter that decides the diagnostic session type. Depending on this type, the Eu might or might not help other diagnostic services, or function in a limited mode where not all Eu functions are out there. The DiagnosticMode parameter values are maker certain and not outlined in the standard. For a diagnostic session to stay energetic, it will have to execute the TesterPresent provider periodically if no other provider is executed. If the TesterPresent provider is lacking for a particular time period of time, the diagnostic session is terminated, and the Eu returns to typical procedure mode.
A GetSeed/Unlock system might guard some diagnostic services. However, the applicable services are remaining to the maker and not outlined by the standard.You can execute the GetSeed/Unlock system by the SecurityAccess provider. This defines several ranges of stability, but the maker assigns these ranges to particular services.
Use the Browse/WriteMemoryByAddress services to add/down load knowledge to particular memory addresses on an Eu. The tackle is a three-byte quantity in KWP2000 and a five-byte quantity (four-byte tackle and a person-byte extension) in the calibration protocols. The Add/Obtain purposeful device services are hugely maker certain and not well outlined in the standard, so they are not a excellent way to deliver a common add/down load system.
Use the ReadDataByLocal/CommonIdentifier services to access Eu knowledge in a way similar to a DAQ listing. A Area/CommonIdentifier describes a listing of Eu quantities that are then transferred from the Eu to the tester. The transfer can be both one benefit or periodic, with a sluggish, medium, or quick transfer amount. The transfer prices are maker certain you can use the SetDataRates provider to set them, but this environment is maker certain. The Automotive Diagnostic Command Set supports one-point measurements.
Diagnostic Difficulties Codes
A big diagnostic attribute is the readout of Diagnostic Difficulties Codes (DTCs). KWP2000 defines several services that access DTCs centered on their group or status.
KWP2000 defines services to modify inner or exterior Eu indicators. 1 case in point is redirecting Eu sensor inputs to stimulated indicators. The control parameters of these instructions are maker certain and not outlined in the standard.
Distant Activation of a Program
These services are similar to the ActionService and DiagService functions of CCP. You can invoke an Eu inner routine determined by a Area/CommonIdentifier or a memory tackle. Opposite to the CCP situation, execution of this routine can be asynchronous that is, there are separate Start out, Prevent, and RequestResult services. The control parameters of these instructions are maker certain and not outlined in the standard.
For more facts about the KWP2000 Typical, refer to the ISO 14230-3 standard.