Iso 14230-3 1999e
Iso 14230-3 1999e
STANDARD 14230-3
First edition
1999-03-15
Contents
1 Scope ........................................................................................................................................................................ 1
3 Definitions ................................................................................................................................................................ 2
4 Conventions ............................................................................................................................................................. 2
4.1 General................................................................................................................................................................... 2
--`,,,`-`-`,,`,,`,`,,`---
4.3 Functional unit table............................................................................................................................................. 6
© ISO 1999
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic
or mechanical, including photocopying and microfilm, without permission in writing from the publisher.
International Organization for Standardization
Case postale 56 • CH-1211 Genève 20 • Switzerland
Internet [email protected]
Printed in Switzerland
ii
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
--`,,,`-`-`,,`,,`,`,,`---
10.2 StartRoutineByAddress service...................................................................................................................... 56
--`,,,`-`-`,,`,,`,`,,`---
iv
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO
member bodies). The work of preparing International Standards is normally carried out through ISO technical
committees. Each member body interested in a subject for which a technical committee has been established has
the right to be represented on that committee. International organizations, governmental and non-governmental, in
liaison with ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical
Commission (IEC) on all matters of electrotechnical standardization.
Draft International Standards adopted by the technical committees are circulated to the member bodies for voting.
Publication as an International Standard requires approval by at least 75 % of the member bodies casting a vote.
International Standard ISO 14230-1 was prepared by Technical Committee ISO/TC 22, Road vehicles,
subcommittee SC 3, Electrical and electronic equipment.
ISO 14230 consists of the following parts, under the general title Road vehicles — Diagnostic systems — Keyword
Protocol 2000:
--`,,,`-`-`,,`,,`,`,,`---
Introduction
ISO 14230 has been established in order to define common requirements for diagnostic systems implemented on a
serial data link.
To achieve this, it is based on the Open Systems Interconnection (OSI) Basic Reference Model in accordance with
ISO 7498 which structures communication systems into seven layers. When mapped on this model, the services
used by a diagnostic tester and an Electronic Control Unit (ECU) are broken into
See figure 1.
Application
Diagnostic Data
Figure 1 — Mapping of Diagnostic Services and Keyword Protocol 2000 on OSI Model
vi
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
INTERNATIONAL STANDARD © ISO ISO 14230-3:1999(E)
Part 3:
Application layer
1 Scope
This part of ISO 14230 specifies the requirements for the Keyword Protocol 2000 data link on which one or several
on-vehicle Electronic Control Units are connected to an off-board tester in order to perform diagnostic functions.
This part of ISO 14230 specifies the requirements of the implementation of the Diagnostic Services specified in
ISO 14229, including
The vehicle environment to which this part of ISO 14230 applies may consist of a single tester that may be
temporarily connected to the on-vehicle diagnostic data link and several on-vehicle Electronic Control Units
connected directly or indirectly (see figure 2).
ECU ECU
Tester Tester
Gateway ECU ECU
In vehicle 1, the ECUs are connected by an internal data link and indirectly connected to the
diagnostic data link through a gateway. This standard applies to the diagnostic communications
over the diagnostic data link; the diagnostic communications over the internal data link may conform
to this standard or to another protocol.
In vehicle 2, the ECUs are directly connected to the diagnostic data link.
2 Normative references
The following standards contain provisions which, through reference in this text, constitute provisions of this
document. All standards are subject to revision, and parties to agreement based on this document are encouraged
to investigate the possibility of applying the most recent editions of the standards listed below. Members of ISO
maintain registers of currently valid International Standards.
3 Definitions
For the purposes of this part of ISO 14230, the definitions given in ISO 14229 and SAE J 1930 apply.
4 Conventions
4.1 General
--`,,,`-`-`,,`,,`,`,,`---
4.1.1 This part of ISO 14230 is guided by the OSI service conventions (CVT; see ISO 8509) to the extent that they
are applicable to the diagnostic services. These conventions define the interactions between the service use and
the service provider by the supplier through service primitives which themselves may convey parameters.
4.1.2 Table 1 indicates the different ranges of service identifier values, which are defined in SAE J 1979, ISO
14230 or by the vehicle manufacturer.
1) To be published.
2
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
under the <Service Name> Request Message are listed the parameters specific to the service
request/indication;
under the <Service Name> Positive Response Message are listed the parameters specific to the service
response/confirmation in case the requested service was successful;
under the <Service Name> Negative Response Message are listed the parameters specific to the service
--`,,,`-`-`,,`,,`,`,,`---
response/confirmation in case the requested service has failed or could not be completed in time.
4.1.4 For a given primitive, the presence of each parameter is described by one of the following values:
M: mandatory;
U: user option; the parameter may or may not be supplied, depending on dynamic usage by the user;
C: conditional; the presence of the parameter depends upon other parameters within the service;
This clause defines the layout used to describe the diagnostic services. It includes
Parameter Definition;
Message Description;
This section defines the use and the values of parameters used by the service.
The definition of each message includes a table which lists the parameters of its primitives: request/indication
("Req/Ind"), response/confirmation ("Rsp/Cnf") for positive or negative result. All have the same structure. Table 2
describes the request message, table 3 the positive response message and table 4 the negative response
message.
A positive response message shall be given by the server if it can carry out all the operations requested. It shall
otherwise give a negative response.
The response messages are listed in separate tables because the list of parameters differs between positive and
negative response messages.
4): The header byte "Length" depends on the content of the "Format Byte" which is specified in ISO DIS 14230-2.
5): These parameters may be either mandatory (M) or user optional (U), depending on the individual message.
4): The header byte "Length" depends on the content of the "Format Byte" which is specified in ISO DIS 14230-2.
5): These parameters may be either mandatory (M) or user optional (U), depending on the individual message.
--`,,,`-`-`,,`,,`,`,,`---
4
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
--`,,,`-`-`,,`,,`,`,,`---
3) The header bytes "Target" and "Source" depend on the content of the "Format Byte" which is specified in ISO 14230-
2 (KWP 2000 Part 2: Data Link Layer) document. Both either exist or do not exist in the header of each message.
4): The header byte "Length" depends on the content of the "Format Byte" which is specified in ISO DIS 14230-2..
This section"Message description" provides a description of the actions performed by the client and the server which
are specific to the KWP 2000 Protocol (see ISO 14230-2).
The response condition is service specific and defined separately for each service.
This section provides message flow descriptions presented in a table format (see table 5). The table consists of
three columns:
column 1: includes the relevant inter-message timing which is specified in the document ISO/DIS 14230-2. The
message shall be started within the relevant inter-message timing;
Sending of a message shall start during the period of time between appropriate messages.
Time relates to the table in a top to bottom sequence. The reading entry of the message flow table always starts
with the first item in the time column "P3" (1st column) followed by a request message of the client (2nd column)
The next entry is the timing parameter "P2" (1st column) for the server to send the positive or negative response
message (3rd column).
For simplification all messages are described without any identifiers and/or data values. Details of messages are
always specified in the section: Message data bytes.
The message flow example above is not documented for each service. Only services, which call for more detailed
message flow description shall have their own message flow section.
The intention of specifying functional unit tables is to group similar Keyword Protocol (KWP) 2000 services into a
functional unit. The definition of each functional unit includes a table such as table 6 which lists its services.
The left column of table 7 lists all services of the Diagnostic Services Specification, the middle column assigns the
KWP 2000 Implementation "Request Hex Value" and the right column assigns the KWP 2000 Implementation
"Positive Response Hex Value". The positive response service identifier values are built from the request service
identifier values by setting "bit 6 = 1".
Table 8 lists and assigns hex values for all response codes used in KWP 2000. The definition of each response
code is described in ISO 14229.
6
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Figure 3 specifies the server behaviour on a client request message. It shows the logic as specified in the
description of the response codes and to be implemented in the server and client as appropriate.
The use of (a) negative response message(s) by the server shall be in case the server can not respond with a
positive response message on a client (tester) request message. In such case the server shall send one of the
response codes listed as specified in figure 3.
8
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Start of service
NO
Valid Message? No Response Message
YES
Request Message NO
supported?
YES
case #1
YES RC=$78
Extended P2
timing window?
--`,,,`-`-`,,`,,`,`,,`---
NO
case #2
YES RC=$23
Service in
progress?
NO
Positive Response NO
Message Ready? case #3
YES RC=$21
Server busy?
YES
NO
case #4
YES RC=$10
General reject?
NO
RC=$xx
Negative Response Negative Response
Message RC=$10, Message RC=$23, Negative Response
general reject routineNotComplete Message RC=$11,
serviceNotSupported or
Negative Response Negative Response RC=$12,
Positive Response Message Negative Response
Message RC=$21, Message RC=$78, subFunctionNotSupported
Message RC=$xx
busyRepeatRequest responsePending
End of service
clauses 6 to 12 define the services of each functional unit. In these clauses, the service structure makes
reference to parameters, in order to describe the allowable values for such parameters. The parameters of
general purpose are defined in ISO 14229. Parameters which are specific to a functional unit are described in
the corresponding clause;
this part of ISO 14230 lists and defines response codes and values. Negative response codes are specified in
4.4. Other response codes may be reserved either for future definition by this part of ISO 14230 or for the
system designer's specific use;
this part of ISO 14230 specifies the parameters which shall be used within each KWP 2000 service;
the sequence of parameters within a service shall not be changed during an implementation;
this part of ISO 14230 specifies the parameter MemoryAddress based on a three (3) byte address (High Byte,
Middle Byte and Low Byte). Additional bytes of specifying the MemoryAddress (e.g. memory type identifier,
larger address range) may be implemented and is the responsibility of the vehicle manufacturer. This applies to
all services which use the MemoryAddress parameter.
Two different addressing methods are specified in KWP 2000 to send a service request to a server(s).
Functional addressing with a three byte header is used by the client if it does not know the physical address of the
server that shall respond to a service request or if more than one server can respond to the request.
--`,,,`-`-`,,`,,`,`,,`---
Functional addressing with a one byte header is not possible.
Physical addressing with a three byte header shall always be a dedicated message to one server. The header of
the service request message indicates (target address) which server shall respond to the service request message.
Only those server(s) which are initialized and in a diagnostic session which support the service request message
shall send a response message.
Functional and Physical addressing methods are specified in detail in ISO 14230-2.
The data link shall always be initialized prior to sending any of the KWP 2000 services.
Table 9 shows a typical service request followed by a positive response message and a service request followed by
a negative response message.
Table 10 shows a message flow which describes a physical addressed service request with multiple positive
response messages.
10
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Table 10 — Message Flow example of physical addressed service with periodic transmissions
P2
P3* <ReadDataByLocalIdentifier >
<ReadDataByCommonIdentifier> PositiveResponse#k[RLI, ...]
P2
Req.[RCI,TXM]
P2
<ReadDataByCommonIdentifier> PosResp#1[RCI,
P2
19
...]
P3 :
P2 <ReadDataByCommonIdentifier> PosResp#k[RCI,
<ReadMemoryByAddress>
P2 Request[MA,MS,TXM] ...]
P2
P3* <ReadMemoryByAddress> PosResp#1[RECVAL]
P2 :
P3 <Any Other Service Name> Request[...] <ReadMemoryByAddress> PosResp#1[RECVAL]
P2
<ReadDataByLocalIdentifier> Request[RLI] < Any Other Service Name > PositiveResponse[...]
<ReadDataByLocalIdentifier>
PositiveResponse[RLI,]
1) The values of the "P3" timing parameters shall be less than the value of "P2min" in order to allow the client (tester)
to send a new request message.
The message flow in table 10 describes a physical addressed service request ReadDataByLocal/Common-Identifier
or ReadMemoryByAddress with the periodic transmission mode enabled. The request message is followed by
multiple positive response messages from the physically addressed server. The periodically transmitted response
messages are terminated by the client with any request message not including the optional TransmissionMode
parameter. This request message shall be send to the server within the "P3*" timing window.
5.3.1.3 Physical addressed service and negative response message(s) with "RoutineNotComplete" and
"Busy-RepeatRequest"
Table 11 shows a message flow which describes a physical addressed service request followed by a negative
response message with the response code set to "RoutineNotComplete".
Table 11 — Physical addressing and negative response with "RoutineNotComplete" and "Busy-
RepeatRequest"
time client (tester) server (ECU)
1)
P3 <Service Name> Request [...] <Service Name> NegativeResponse[RoutineNotComplete]
P2
P3 <Service Name> Request[...] <Service Name> NegativeResponse[Busy-RepeatRequest]
P2 :
:
P3 <Service Name> Request[...] <Service Name> NegativeResponse[Busy-RepeatRequest]
P2 <Service Name> PositiveResponse[...]
2)
P3 <Service Name> Request[...] OR
P2 Service Name> NegativeResponse[RC != Busy-RepeatRequest]
P2
1) server has started routine.
2) server has completed routine.
Copyright International Organization for Standardization 11
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
ISO 14230-3:1999(E) © ISO
The message flow example in table 11 is based on a request message from the client which cause the server to
respond with a negative response message including the negative response code "RoutineNotComplete". This
response code indicates that the request message was properly received by the server and the routine/task/function
(initiated by the request message) is in process, but not yet completed. If the client repeats or sends another
request message the server shall "not reinitiate the task" (in case of the same request message) if the initial task
has not been completed. The server shall send another negative response message with the response code "Busy-
RepeatRequest". The negative response message shall be sent on each request message as long as the server
has not yet completed the initial routine/task/function. If the server has finished the routine/task/function it shall
respond with either a positive response message or a negative response message with a response code not equal
to "Busy-RepeatRequest".
ClearDiagnosticInformation;
execution of routines;
SecurityAccess.
5.3.1.4 Implementation example of "server can not send a positive response within required timing"
5.3.1.4.1 Example of physical addressed service and negative response message with "ReqCorrectlyRcvd-
RspPending within Normal or Extended Timing"
Table 12 shows a message flow which describes a physical addressed service request followed by a negative
response message with the response code set to "RequestCorrectlyReceived-ResponsePending".
The message flow example in table 12 is based on a request message from the client which causes the server to
respond with one or multiple negative response message(s) including the negative response code
"RequestCorrectlyReceived-ResponsePending". This response code indicates that the request message was
received correctly, and that any parameters in the request message were valid, but the action to be performed may
not be completed yet. This response code may be used to indicate that the request message was properly received
and does not need to be retransmitted, but the server is not yet ready to receive another request.
The negative response message may be sent once or multiple times within a service if required by the server.
During the period of (a) negative response message(s) the TesterPresent service shall be disabled in the client.
This response code shall only be used in a negative response message if the server will not be able to receive
further request messages from the client within the P3 timing window. This may be the case if the server does data
processing or executes a routine which does not allow any attention to serial communication.
NOTE — The communication timing method is specified in ISO 14230-2:—, clause 5.
--`,,,`-`-`,,`,,`,`,,`---
5.3.1.4.2 Implementation of "Server can not send a positive response within Default Timing"
Table 13 shows a message flow which describes a physical addressed service request followed by a positive
response message sent with previously modified timing.
P3 StartDiagnosticSession.Request[...]
P2 StartDiagnosticSession.PosRsp[...]
P3 AccessTimingParameter.Request[ReadLimits]
P2 AccessTimingParameter.PosRsp[ReadLimits, P2-
P3 AccessTimingParameter.Request[setValues, P2-P4] P4]
P2 { e.g. P2max = $F2 (18850 ms) }
2)
{ Modified Timing is active! } AccessTimingParameter.PosRsp[setValues]
P3 <Service Name> Request[...]
P2 <Service Name> PositiveResponse[...]
P3 <StopDiagnosticSession> Request[]
--`,,,`-`-`,,`,,`,`,,`---
P2 OR <StopDiagnosticSession> PositiveResponse[]
P3 <StartDiagnosticSession> Request[...] OR
3)
P2 <StartDiagnosticSession> PositiveResponse[...]
{ Default Timing is active! }
P3 <Service Name> Request[...]
P2 <Service Name> PositiveResponse[...]
1) New timing parameter values are active.
2) Modified Timing is active.
3) Default Timing is active.
The message flow example in table 13 describes the method of modifying the timing parameter values in the server
and the client by using the AccessTimingParameter service as specified in ISO 14230-2.
This method shall be used in case a server does not support a negative response message with the response code
($78) "RequestCorrectlyReceived-ResponsePending".
Table 14 shows a message flow example which describes a functional addressed service request followed by
response messages of multiple servers (ECU#1, ECU#2 ... ECU#n-1, ECU#n).
The message flow example in table 14 is based on a functional request message send by the client. An unknown
number of servers has been initialized previously (e.g. fast initialization by wake up pattern) which send positive and
negative response messages.
5.3.2.2 Functional addressed service and negative response messages with "RoutineNotComplete" and
"Busy-RepeatRequest"
Table 15 shows a message flow which describes a functional addressed service request followed by a negative
response message with the response code set to "RoutineNotComplete" from one server. All other servers send
positive response messages.
The message flow example in table 15 is based on a functional request message from the client which cause one
server (ECU#1) to respond with a negative response message including the negative response code
"RoutineNotComplete" The other servers (ECU#2, ECU#3) send a positive response message.
The response code indicates that the request message was properly received by the server and the
routine/task/function (initiated by the request message) is in process, but not yet completed. If the client repeats or
sends another functional request message the server shall "not reinitiate the task" (in case of the same request
message) if the initial task has not been completed. The server shall send another negative response message with
the response code "Busy-RepeatRequest". The negative response message shall be sent on each functional
--`,,,`-`-`,,`,,`,`,,`---
14
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
request message as long as the server has not yet completed the initial routine/task/function. If the server (ECU#1)
has finished the routine/task/function it shall respond with either a positive response message or a negative
response message with a response code not equal to "Busy-RepeatRequest".
ClearDiagnosticInformation;
execution of routines;
SecurityAccess.
5.3.2.3 Implementation example of functional addressed service and negative response message with
"RequestCorrectlyReceived-ResponsePending"
Table 16 shows a message flow example which describes a functional addressed request message followed by a
negative response message with the response code set to "RequestCorrectlyReceived-ResponsePending" from
one server (ECU#1) and positive response messages from the other servers (ECU#2, ECU#3).
--`,,,`-`-`,,`,,`,`,,`---
P2
2) :
<Service Name> Req[...] { Functional } <Service Name> NegRsp#n[ReqCorrectlyRcvd-RspPendg]
2)
P2
{ECU#1}
2) <Service Name> PositiveResponse[...] {ECU#1}
P2
P3
<Service Name> PositiveResponse[...] {ECU#1}
P2
<Service Name> PositiveResponse[...] {ECU#2}
P2
<Service Name> PositiveResponse[...] {ECU#3}
P2
1) Functional.
2) P2min to P3max (refer to ISO 14230 KWP-2).
The message flow example in table 16 is based on a request message from the client which cause the server to
respond with one or multiple negative response message including the negative response code
"RequestCorrectlyReceived-ResponsePending". This response code indicates that the request message was
received correctly, and that any parameters in the request message were valid, but the action to be performed may
not be completed yet. This response code can be used to indicate that the request message was properly received
and does not need to be retransmitted, but the server is not yet ready to receive another request.
The negative response message may be sent once or multiple times within a service if required by the server.
During the period of (a) negative response message(s) the TesterPresent service shall be disabled in the client.
This response code shall only be used in a negative response message if the server will not be able to receive
further request messages from the client within the P3 timing window. This may be the case if the server does data
processing or executes a routine which does not allow any attention to serial communication.
ClearDiagnosticInformation;
execution of routines;
The services provided by this functional unit are described in table 17.
The parameter DiagnosticMode is used by the StartDiagnosticSession service to select the specific behaviour of
the server(s). No values are defined in this part of ISO 14230, but table 18 describes the range of values.
Hex Description
00 - 7F ReservedByDocument
This range of values is reserved by this standard for future definition.
80 - FF ManufacturerSpecific
This range of values is reserved for vehicle-manufacturer-specific use.
16
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The messages specified in 6.1.2 are used to enable different diagnostic modes in the server. Possible diagnostic
modes are not defined in this part of ISO 14230.
A diagnostic session shall only be started if communication has been established between the client and the server.
For more detail on how to start communication, refer to ISO 14230-2.
If no diagnostic session has been requested by the client after StartCommunication a default session shall be
automatically enabled in the server. The default session shall support at least the following services:
The default timing parameters in the server shall be active while the default session is running.
If a diagnostic session has been requested by the client which is already running the server shall send a positive
response message.
Whenever a new diagnostic session is requested by the client, the server shall first send a StartDiagnosticSession
positive response message before the new session becomes active in the server. If the server sends a negative
response message with the StartDiagnosticSession request service identifier the current session shall continue.
There shall be only one session active at a time. A diagnostic session enables a specific set of KWP 2000 services
which shall be defined by the vehicle manufacturer. A session may enable vehicle-manufacturer-specific services
which are not part of this part of ISO 14230.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
--`,,,`-`-`,,`,,`,`,,`---
The messages specified in 6.2.2 are used to disable the current diagnostic mode in the server.
a diagnostic session shall only be stopped if communication has been established between the client and the
server and a diagnostic session is running;
if no diagnostic session is running the default session is active (see StartDiagnosticSession). The default
session cannot be disabled by a StopDiagnosticSession service;
if the server has sent a StopDiagnosticSession positive response message the default timing parameters in the
server shall be valid while the default session is running;
if the server has sent a StopDiagnosticSession positive response message it shall have stopped the current
diagnostic session, that is, perform the necessary action to return to a state in which it is able to restore its
--`,,,`-`-`,,`,,`,`,,`---
normal operating conditions. Restoring the normal operating conditions of the server may include the reset of
all the actuators controlled if they have been activated by the client during the diagnostic session being stopped
and resuming all normal algorithms of the server;
if the server has sent a StopDiagnosticSession positive response message it shall have re-locked the server if
it was unlocked by the client during the diagnostic session;
if a StopDiagnosticSession has been requested by the client and the default session is already running the
server shall send a positive response message and immediately reset all timing parameters;
the client shall send a StopDiagnosticSession request message before disabling communication via a
StopCommunication service but only if a StartDiagnosticSession request message has been sent previously;
if the server sends a negative response message with the StopDiagnosticSession request service identifier the
active session shall be continued;
18
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
The parameter AccessMode is used in the SecurityAccess service. It indicates to the server the step in progress for
this service, the level of security the client wants to access and the format of seed and key. Values are defined in
table 25 for RequestSeed and SendKey.
Hex Description
01 RequestSeed
--`,,,`-`-`,,`,,`,`,,`---
RequestSeed with the level of security defined by the vehicle manufacturer.
02 SendKey
SendKey with the level of security defined by the vehicle manufacturer.
03, RequestSeed
05, 07 - 7F RequestSeed with different levels of security defined by the vehicle manufacturer.
04, SendKey
06, 08 - 80 SendKey with different levels of security defined by the vehicle manufacturer.
81 - FF ManufacturerSpecific
This range of values is reserved for vehicle-manufacturer-specific use.
The values of the parameter Seed are not defined in this standard except for the value "$00 00" which indicates to
the client that the server is not locked.
The values of the parameter Key are not defined in this part of ISO 14230.
The parameter SecurityAccessStatus may be used to receive the status of the server security system. The value
is defined in table 26.
Hex Description
34 SecurityAccessAllowed
--`,,,`-`-`,,`,,`,`,,`---
20
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
This mode is intended to be used to implement the data link security measures defined in SAE J 2186.
The client shall request the server to "unlock" itself by sending the service SecurityAccess request#1. The server
shall respond by sending a "seed" using the service SecurityAccess positive response#1. The client shall respond
by returning a "key" number back to the server using the service SecurityAccess request#2. The server shall
compare this "key" to one internally stored. If the two numbers match, then the server shall enable ("unlock") the
client's access to specific KWP 2000 services and indicate that with the service SecurityAccess positive
response#2. If upon two (2) attempts of a service SecurityAccess request#2 by the client, where the two keys do
--`,,,`-`-`,,`,,`,`,,`---
not match, then the server shall insert a 10 s time delay before allowing further attempts.
The 10 s time delay shall also be required before the server responds to a service SecurityAccess request#1 from
the client after server power-on.
If a device supports security, but is already unlocked when a SecurityAccess request#1 is received, that server shall
respond with a SecurityAccess positive response#1 service with a seed of "$00 00". A client shall use this method
to determine if a server is locked by checking for a non-zero seed.
The security system shall not prevent normal diagnostic or vehicle communications between the client and the
servers. Proper "unlocking" of the server is a prerequisite to the client's ability to perform some of the more critical
functions such as reading specific memory locations within the server, downloading information to specific locations,
or downloading routines for execution by the controller. In other words, the only access to the server permitted while
in a "locked" mode is through the server specific software. This permits the server specific software to protect itself
from unauthorized intrusion.
Servers that provide security shall support reject messages if a secure mode is requested while the server is
locked.
Some servers could support multiple levels of security, either for different functions controlled by the server, or to
allow different capabilities to be exercised. These additional levels of security can be accessed by using the service
SecurityAccess requests#1 and #2 with an AccessMode value greater than the default value. The second data byte
of the "RequestSeed" shall always be an odd number, and the second data byte of the service to "SendKey" shall
be the next even number.
P2 SecurityAccess.PositiveResponse#1[...]
P3 SecurityAccess.Request#2[...]
P2 SecurityAccess.PositiveResponse#2[...]
The parameter ResponseRequired is used in the TesterPresent request message. It indicates to the server
whether a response message is required or not. Values for this parameter are defined in table 34.
Hex Description
01 yes
The server shall send a response on the request message.
02 no
The server shall not send a response on the request message.
03 - 7F ReservedByDocument
This range of values is reserved by this document for future definition.
80 - FF vehicle ManufacturerSpecific
This range of values is reserved for vehicle-manufacturer-specific use.
22
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
This service shall be used to indicate to a server the client is present. This service is required in the absence of
other KWP 2000 services to prevent servers from automatically returning to normal operation and stop
communication.
the presence of this service shall ensure communication active is kept active between client and server;
the presence of this service shall indicate that the system should remain in a diagnostic mode of operation;
if the user optional parameter ResponseRequired is not included in the TesterPresent request message, the
server shall send a TesterPresent positive response.
The parameter ResetMode is used by the ECUReset request message to describe how the server has to perform
the reset. Values are defined in table 39.
23
--`,,,`-`-`,,`,,`,`,,`---
Hex Description
01 PowerOn
This value identifies the PowerOn ResetMode which shall be a simulated PowerOn
reset which most ECUs perform after ignition OFF/ON cycle. When the ECU performs
the reset the client (tester) shall be prepared to re-establish communication.
02 PowerOnWhileMaintainingCommunication
This value identifies the PowerOn ResetMode which shall be a simulated PowerOn
reset which most ECUs perform after ignition OFF/ON cycle. When the ECU performs
the reset the server (ECU) shall maintain the communication with the client (tester).
03 - 7F ReservedByDocument
This range of values is reserved by this document for future definition.
80 - FF ManufacturerSpecific
This range of values is reserved for vehicle-manufacturer-specific use.
The parameter ResetStatus is used by the ECUReset positive response message to provide information about the
status of the reset(s). Format and length of this parameter are vehicle-manufacturer-specific; see table 40.
Hex Description
xx ... xx ResetStatus
This parameter shall report ResetStatus information. It is the vehicle manufacturer's
responsibility to define the type and format of the data value(s).
--`,,,`-`-`,,`,,`,`,,`---
24
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
This service requests the server to perform an ECU reset effectively based on the content of the ResetMode
parameter value. It is the vehicle manufacturer's responsibility to define whether the positive response message
shall be sent before or after the ResetMode is executed.
A possible implementation would be to report the number of resets performed by the server(s) after the last full
--`,,,`-`-`,,`,,`,`,,`---
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
The parameter IdentificationOption is used by the ReadECUIdentification request message to describe the kind of
identification data requested by the client. Values are defined in table 44.
Hex Description
00 - 7F ReservedByDocument
This range of values is reserved by this par ofISO 14230 for future definition.
80 - FF ManufacturerSpecific
This range of values is reserved for vehicle-manufacturer-specific use.
The ReadECUIdentification request message requests identification data from the server. The type of identification
data requested by the client shall be identified by the IdentificationOption parameter. The server sends an
identification data record included in the ReadECUIdentification positive response message. The format and
definition of the identification data record shall be vehicle-manufacturer-specific and is not part of this part of
ISO 114230.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
The services provided by this functional unit are described in table 48.
26
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The parameter TransmissionMode in the ReadDataByLocalIdentifier request message indicates how the server
shall transmit the data record. Values are defined in table 49.
Hex Description
01 single
The server transmits the positive response message only once independent of the
value specified by the parameter MaximumNumberOfResponsesToSend.
02 slow
The server transmits the positive response message periodically/repeatedly at the
SlowRate. The value of the SlowRate is always predefined in the server and can be set
by the client with the SetDataRates service. This parameter specifies the value of the
period at which the server transmits the record value upon the next
ReadDataByLocalIdentifier/GlobalIdentifier and ReadMemoryByAddress request
message with the TransmissionMode parameter set to slow. The repetition rate
specified by the TransmissionMode parameter slow is vehicle-manufacturer-specific.
03 medium
The server transmits the positive response message periodically/repeatedly at the
MediumRate. The value of the MediumRate is always predefined in the server and can
be set by the client with the SetDataRates service. This parameter specifies the value of
the period at which the server transmits the record value upon the next
ReadDataByLocalIdentifier/ CommonIdentifier and ReadMemoryByAddress request
message with the TransmissionMode parameter set to Medium. The repetition rate
specified by the TransmissionMode parameter Medium is vehicle-manufacturer-specific.
04 fast
The server transmits the positive response message periodically/repeatedly at the
FastRate. The value of the FastRate is always predefined in the server and can be set
by the client with the SetDataRates service. This parameter specifies the value of the
period at which the server transmits the record value upon the next
ReadDataByLocalIdentifier/GlobalIdentifier and ReadMemoryByAddress request
message with the TransmissionMode parameter set to Fast. The repetition rate
specified by the TransmissionMode parameter Fast is vehicle-manufacturer-specific and
means as fast as possible.
05 stop
The server stops transmitting positive response messages send
periodically/repeatedly.
--`,,,`-`-`,,`,,`,`,,`---
Hex Description
00 InValid
01 - FF NumberOfResponsesToSend
This range of values shall be used to specify the number of responses the server shall
send.
The parameter RecordValue is used by the ReadDataByLocalIdentifier positive response message to provide the
data record identified by the RecordLocalIdentifier to the client. The content of the data record is not defined in this
part of ISO 14230 and is vehicle-manufacturer-specific.
--`,,,`-`-`,,`,,`,`,,`---
28
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The ReadDataByLocalIdentifier request message requests data record values from the server identified by a
RecordLocalIdentifier. The server sends data record values via the ReadDataByLocalIdentifier positive response
message. The format and definition of the RecordValues shall be vehicle-manufacturer-specific. RecordValues shall
include analogue input and output signals, digital input and output signals, internal data and system status
information if supported by the ECU.
If the server sends messages periodically and the client wants to stop the repeated positive response messages by
a ReadDataByLocalIdentifier request message it shall send the request message after the P1 timing has expired
and before the P2min timing becomes active. Refer to the message flow diagram and ISO 14230-2 more detail.
See message flow example of Physical Addressed Service in 5.3.1.1 and Physical Addressed Service with
TransmissionMode parameter in 5.3.1.2.
The message flow in table 54 is an example of Physical Addressed Service with TransmissionMode (TXM) and
MaximumNumberOfResponsesToSend (MAX#OFRSPTO-SEND) parameter present.
1) ReadDataByLocalId.PositiveResponse#3[...]
P2
{ next request service }
P3
{ next response service }
P2
1) The P2 timing parameter may have been set previously by the parameters of the SetDataRates request
message.
--`,,,`-`-`,,`,,`,`,,`---
The ReadDataByCommonIdentifier request message requests data record values from the server(s) identified by a
common RecordCommonIdentifier. The server(s) send data record values via the ReadDataByCommonIdentifier
positive response message. The format and definition of the RecordValues shall be vehicle-manufacturer-specific.
RecordValues shall include analogue input and output signals, digital input and output signals, internal data and
system status information if supported by the ECU(s).
If the server sends messages periodically and the client wants to stop the repeated positive response messages by
a ReadDataByCommonIdentifier request message it shall send the request after the P1 timing has expired and
before the P2min timing becomes active. Refer to the message flow diagram and ISO 14230-2 for more detail.
See message flow example of Physical Addressed Service in 5.3.1.1 or 5.3.1.2 and Functional Addressed Service
in 5.3.2.1.
30
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The parameter MemoryAddress in the ReadMemoryByAddress request message identifies the start address in the
server's memory. If the server supports "16 bit" wide address range the high byte of the MemoryAddress shall be
used as a MemoryIdentifier if required.
The parameter MemorySize specifies the number of bytes to be read starting at a specified memory address in the
server's memory.
ManufacturerSpecific] 80-FF]
The ReadMemoryByAddress request message requests memory data from the server identified by the parameters
MemoryAddress and MemorySize.
The server sends data record values via the ReadMemoryByAddress positive response message.
The format and definition of the RecordValues shall be vehicle-manufacturer-specific. RecordValues shall include
analogue input and output signals, digital input and output signals, internal data and system status information if
supported by the ECU.
If the server sends positive response messages periodically and the client wants to stop the repeated messages by
a ReadMemoryByAddress request message, it shall send the request after the P1 timing has expired and before the
P2min timing becomes active. Refer to the message flow diagram and ISO 14230-2 for more detail.
The parameter DefinitionMode in the DynamicallyDefineLocalIdentifier request message specifies the method of
how the data record is defined. Values are defined in table 61.
--`,,,`-`-`,,`,,`,`,,`---
Hex Description
01 DefineByLocalIdentifier
02 DefineByCommonIdentifier
03 DefineByMemoryAddress
04 ClearDynamicallyDefinedLocalIdentifier
05 - 7F ReservedByDocument
This range of values is reserved by this document for future definition.
80 - FF ManufacturerSpecific
This range of values is reserved for vehicle-manufacturer-specific use.
The parameter MemorySize in the DynamicallyDefineLocalIdentifier request message identifies the number of
bytes of data identified by the RecordLocal/CommonIdentifier.
32
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The parameter MemoryAddress in the DynamicallyDefineLocalIdentifier request message identifies the start
address of a data record in the server's memory. If the server supports "16 bit" wide address range the high byte of
the MemoryAddress shall be used as a MemoryIdentifier if required.
Tables 62 to 65 describe the different RequestMessage definition mode for DynamicallyDefinedLocalIdentifier service.
--`,,,`-`-`,,`,,`,`,,`---
Data Byte Parameter Name CVT Hex Value Mnemonic
1 DynamicallyDefineLocalIdentifier Request Service Id M 2C DLIDDY
2 DynamicallyDefinedLocalIdentifier M xx DDLOCID
3 DefinitionMode=[DefineByLocalIdentifier]#1 M 01 DEFMODE
4 PositionInDynamicallyDefinedLocalIdentifier#1 M xx PIDYDLID
5 MemorySize#1 M xx MEMSIZE
6 RecordLocalIdentifier#1 M xx RLOCID
7 PositionInRecordLocalIdentifier#1 M xx PIRLOCID
8 DefinitionMode=[DefineByLocalIdentifier]#2 M 01 DEFMODE
9 PositionInDynamicallyDefinedLocalIdentifier#2 M xx PIDYDLID
10 MemorySize#2 M xx MEMSIZE
11 RecordLocalIdentifier#2 M xx RLOCID
12 PositionInRecordLocalIdentifier#2 M xx PIRLOCID
: : : : :
n-4 DefinitionMode=[DefineByLocalIdentifier]#m M 01 DEFMODE
#n-3 PositionInDynamicallyDefinedLocalIdentifier#m M xx PIDYDLID
#n-2 MemorySize#m M xx MEMSIZE
#n-1 RecordLocalIdentifier#m M xx RLOCID
#n PositionInRecordLocalIdentifier#m M xx PIRLOCID
This message is used by the client to define dynamically a local identifier in the request message. If the
DefinitionMode parameter is set to DefineByLocalIdentifier the following procedure shall be followed:
the parameter PositionInDynamicallyDefinedLocalIdentifier shall specify the position in the record referenced by
the parameter DynamicallyDefinedLocalIdentifier. The record specified may be a "1 byte" parameter (e.g.
Engine Coolant Temperature Sensor) or a multiple byte record representing many parameters (e.g. analogue
and discrete inputs);
the parameter MemorySize shall specify the number of data bytes referenced by the parameter
RecordLocalIdentifier;
the parameter PositionInRecordLocalIdentifier shall specify the starting position in the record stored in the
server's memory.
This message is used by the client to define dynamically a local identifier in the request message. If the
DefinitionMode parameter is set to DefineByCommonIdentifier the following procedure shall be followed:
the parameter PositionInDynamicallyDefinedLocalIdentifier shall specify the position in the record referenced by
the parameter DynamicallyDefinedLocalIdentifier. The record specified may be a "1 byte" parameter (e.g.
Engine Coolant Temperature Sensor) or a multiple byte record representing many parameters (e.g. analogue
and discrete inputs);
the parameter MemorySize shall specify the number of data bytes referenced by the parameter
RecordCommonIdentifier;
the parameter PositionInRecordCommonIdentifier shall specify the starting position in the record stored in the
server's memory.
--`,,,`-`-`,,`,,`,`,,`---
This message is used by the client to dynamically define a local identifier in the request message. If the
DefinitionMode parameter is set to DefineByMemoryAddress the following procedure shall be followed:
the parameter PositionInDynamicallyDefinedLocalIdentifier shall specify the position in the record referenced by
the parameter DynamicallyDefinedLocalIdentifier. The record specified may be a "1 byte" parameter (e.g.
Engine Coolant Temperature Sensor) or a multiple byte record representing many parameters (e.g. analogue
and discrete inputs);
the parameter MemorySize shall specify the number of data bytes starting at the specified MemoryAddress in
the server's memory.
NOTE — The parameter PositionInRecordLocal/CommonIdentifier is not used in the request message if DefinitionMode is set
to DefineByMemoryAddress.
This service is used by the client to clear a DynamicallyDefinedLocalIdentifier. The DefinitionMode parameter is set
to ClearDynamicallyDefinedLocalIdentifier. This request message shall free up the server's memory which is used to
create a DynamicallyDefinedLocalIdentifier data record.
Tables 66 and 67 describe the different response messages for DynamicallyDefineLocalIdentifier service.
The server shall send a positive response message after it has erased the dynamically defined local Identifier
record.
This service is used by the client to clear the data record in the server's memory by sending a
DynamicallyDefineLocalIdentifier request message including the parameter DynamicallyDefined-LocalIdentifier to be
cleared and the parameter DefinitionMode set to ClearDynamicallyDefined-LocalIdentifier.
The message flow example in table 68 shows a DynamicallyDefineLocalIdentifier service which consists of a single
request and positive response message to define the parameters referenced by the
DynamicallyDefinedLocalIdentifier. The dynamically defined data record is then read by a
ReadDataByLocalidentifier service.
P2 DynamicallyDefineLocalId.PositiveResponse[...]
P3 ReadDataByLocalId.Request[...]
P2 ReadDataByLocalId.PositiveResponse[...]
The message flow example in table 69 shows a DynamicallyDefineLocalIdentifier service which consists of multiple
requests and positive response messages to define the parameters referenced by the
DynamicallyDefinedLocalIdentifier. The dynamically defined data record is then read by a
ReadDataByLocalidentifier service.
36
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
P2 DynamicallyDefineLocalId.PositiveResponse#1[...]
P3 DynamicallyDefineLocalId.Request#2[...]
P2 DynamicallyDefineLocalId.PositiveResponse#2[...]
--`,,,`-`-`,,`,,`,`,,`---
: : :
P3 DynamicallyDefineLocalId.Request#n[...]
P2 DynamicallyDefineLocalId.PositiveResponse#2[...]
P3 ReadDataByLocalId.Request[...]
P2 ReadDataByLocalId.PositiveResponse[...]
The WriteDataByLocalIdentifier service is used by the client to write RecordValues (data values) to a server. The
data are identified by a RecordLocalIdentifier. It is the vehicle manufacturer's responsibility that the server conditions
are met when performing this service.
--`,,,`-`-`,,`,,`,`,,`---
38
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
--`,,,`-`-`,,`,,`,`,,`---
Table 75 — WriteDataByCommonIdentifier Negative Response Message
The WriteDataByCommonIdentifier service is used by the client to write RecordValues (data values) to multiple
servers with a single request message. The data are identified by a RecordCommonIdentifier. It is the vehicle
manufacturer's responsibility that the server's conditions are met when performing this service.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
The WriteMemoryByAddress service is used by the client to write RecordValues (data values) to a server. The data
are identified by the server's MemoryAddress and MemorySize.
It is the vehicle manufacturer's responsibility that the server conditions are met when performing this service.
40
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The parameters SlowRate, MediumRate and FastRate shall be used to specify the transmission speed of positive
response messages to be sent by the server if the appropriate request message has specified the
TransmissionMode parameter to one of the above rates. Table 79 lists possible values to be assigned to SlowRate,
MediumRate and FastRate.
Hex Description
00 This value shall cause the server to send positive response messages as fast as
possible based on the vehicle manufacturer's definition of SlowRate, MediumRate and
FastRate.
01 - FE This range of values shall be used by the vehicle manufacturer to specify/change the
default rates of the parameters SlowRate, MediumRate and FastRate. It is the vehicle
manufacturer's responsibility to define these values and their corresponding
transmission rates of the parameters SlowRate, MediumRate and FastRate.
FF This value shall not change the current rate of positive response messages send by the
server.
--`,,,`-`-`,,`,,`,`,,`---
Table 81 — SetDataRates Positive Response Message
The SetDataRates service is used by the client to overwrite the default timing of periodic transmissions used by the
server. This message only affects those services which make use of the parameter TransmissionMode in the
ReadDataByLocalIdentifier, ReadDataByCommonIdentifier and ReadMemoryByAddress request messages. It is the
vehicle manufacturer's responsibility to specify values and their corresponding periodic transmission rates.
Regardless of which rate is modified in the request, all rates shall have values as defined in table 78.
The services provided by this functional unit are described in table 83.
The parameter GroupOfDTC is used by the ReadDTC, ReadDTCByStatus and ReadStatusOfDTC services to
select to which functional group of DTC or to which specific DTC access is requested. Format and length of this
parameter are vehicle-manufacturer-specific.
NOTE - Standardized DTCs and DTCs formats are specified in SAE J 2012 for passenger cars and in SAE J 1587
for heavy duty vehicles.
The parameter NumberOfDTC is used by the ReadNumberOfDTC positive response to indicate how many DTCs of
the group specified in the request have been stored by the client(s) (see table 84). A specific standard value is
NoDTCStored.
Hex Description
00 NoDTCStored
This value indicates to the server that the client(s) doesn't (don't) have any DTC stored.
01-FF NumberOfDTCStored
This range of values indicate to the server that the client(s) has (have) stored DTC(s).
42
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The parameter ListOfDTC is used by the server to report DTC(s) stored by the client(s).
NOTE — Standardized DTCs and DTCs formats are specified in SAE J 2012 for passenger cars and in SAE J 1587 for heavy
duty vehicles.
--`,,,`-`-`,,`,,`,`,,`---
1 ReadDiagnosticTroubleCodes Positive Resp. Service Id M 53 RDDTCPR
2 NumberOfDTC M xx #DTC
1)
ListOfDTC=[ C LSTOFDTC
3 DTC#1 xx
: : :
: DTC#1 xx
: : :
: : :
: DTC#m xx
: : :
n DTC#m] xx
1) Condition: ListOfDTC is only present if NumberOfDTC is > "$00".
The ReadDiagnosticTroubleCodes service is used by the client to read diagnostic trouble codes from the server's
memory. If the user optional parameter GroupOfDTC is present in the request message then the server(s) shall only
report DTC(s) based on the functional group selected by the client.
If the server(s) does (do) not have any DTC stored it (they) shall set the parameter NumberOfDTCStored to "$00".
This causes the server(s) not to include DTC(s) in the parameter ListOfDTC in the positive response message.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
NOTE — Standardized DTCs and DTCs formats are specified in SAE J 2012 for passenger cars and in SAE J 1587 for heavy
duty vehicles.
The parameter ListOfDTCAndStatus is used by the server to report DTC(s) and their associated status.
--`,,,`-`-`,,`,,`,`,,`---
44
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The ReadDiagnosticTroubleCodesByStatus service is used by the client to read diagnostic trouble codes by status
from the server's memory. If the user optional parameter GroupOfDTC is present in the request message then the
server(s) shall only report DTC(s) with status information based on the functional group selected by the client.
If the server(s) does (do) not have any DTC with status information stored it (they) shall set the parameter
NumberOfDTCStored to "$00". This causes the server(s) not to include DTC(s) and status information in the
parameter ListOfDTC in the positive response message.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
The ReadStatusOfDiagnosticTroubleCodes service is used by the client to read diagnostic trouble codes with their
associated status from the server's memory. If the user optional parameter GroupOfDTC is present in the request
message then the server(s) shall only report DTC(s) with status information based on the functional group selected
by the client.
If the server(s) does (do) not have any DTC with status information stored it (they) shall set the parameter
--`,,,`-`-`,,`,,`,`,,`---
NumberOfDTCStored to "$00". This causes the server(s) not to include DTC(s) and status information in the
parameter ListOfDTC in the positive response message.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
The parameter FreezeFrameNumber is used by the client to identify the freeze frame to be read from the server's
memory.
The parameter RecordAccessMethodIdentifier is used by the client to define the access method which shall be
used in the RecordIdentification parameter to access a specific freeze frame data record within the
FreezeFrameData; see table 94.
46
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Hex Description
00 RequestAllData
This value indicates to the server(s) that the client requests all freeze frame data stored
within the server's memory.
01 RequestByLocalIdentifier
This value indicates to the server(s) that the client requests freeze frame data identified
by a local identifier.
02 RequestByCommonIdentifier
This value indicates to the server(s) that the client requests freeze frame data identified
by a common identifier.
03 RequestByMemoryAddress
This value indicates to the server(s) that the client requests freeze frame data identified
by a memory address. If the server supports "16 bit" wide address range the high byte
of the MemoryAddress shall be used as a MemoryIdentifier if required.
04 RequestByDTC
This value indicates to the server(s) that the client requests freeze frame data identified
by a DTC.
05 - 7F ReservedByDocument
80 - FF ManufacturerSpecific
The parameter RecordIdentification is used by the client to identify the record within the freeze frame referenced
by the parameter FreezeFrameNumber; see table 95.
--`,,,`-`-`,,`,,`,`,,`---
Hex Description
00 AllData
This value identifies the entire record which includes all data of a single freeze frame.
00 - FF LocalIdentifier
This range of values identifies a record which includes the data within a freeze frame
referenced by a LocalIdentifier.
This range of values identifies a record which includes the data within a freeze frame
referenced by a CommonIdentifier.
This range of values identifies a record which includes the data within a freeze frame
referenced by a MemoryAddress.
: This range of values identifies a record which includes the data within a freeze frame
referenced by a DTC.
00 - FF
The parameter FreezeFrameData is used by the ReadFreezeFrameData positive response message and consists
of the data identified by the parameters FreezeFrameNumber and, if present, RecordIdentification.
48
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
--`,,,`-`-`,,`,,`,`,,`---
RequestByCommonIdentifier 02
RequestByMemoryAddress 03
RequestByDTC 04
ReservedByDocument 05 - 7F
1)
ManufacturerSpecific ] 80 - FF]
1)
k RecordIdentification=[ xx=[ RECID
2)
AllData U 00
3) xx
LocalIdentifier U
CommonIdentifier (High Byte) 4) xx
U xx
MemoryAddress (High Byte) 5)
DTC U xx
6)
ReservedByDocument U xx
7) xx
ManufacturerSpecific U
8)
U
k+1 CommonIdentifier (Low Byte) xx
MemoryAddress (Middle Byte) 4) xx
U xx
DTC 5)
U
)
k+2 MemoryAddress (Low Byte) 6 xx
DTC xx
: 5) :
: U
n DTC] 6) xx]
U
6)
U
1) Parameters of the request shall only be present together.
2) Condition: RecordAccessMethodIdentifier = RequestAllData.
3) Condition: RecordAccessMethodIdentifier = RequestByLocalIdentifier.
4) Condition: RecordAccessMethodIdentifier = RequestByCommonIdentifier.
5) Condition RecordAccessMethodIdentifier = RequestByMemoryAddress.
6) Condition: RecordAccessMethodIdentifier = RequestByDTC.
7) Condition: RecordAccessMethodIdentifier = ReservedByDocument.
8) Condition: RecordAccessMethodIdentifier = ManufacturerSpecific.
50
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The ReadFreezeFrameData service is used by the client to read FreezeFrameData stored in the server's memory.
The parameter FreezeFrameNumber identifies the respective freeze frame if one or multiple freeze frames are
stored in the server's memory.
The user optional RecordAccessMethodIdentifier in the request message identifies the access method used by the
client to request FreezeFrameData from the server's memory. In addition, the user optional parameter
RecordIdentifier shall always be used in conjunction with the RecordAccessMethodIdentifier. The content, type and
size of this parameter depends on the value of the RecordAccessMethodIdentifier (refer to table 94).
The server shall send a positive response message including the FreezeFrameNumber, FreezeFrameData and the
user optional/conditional parameters RecordAccessMethodIdentifier and RecordIdentifier, if both were present in the
request.
Data content and data format of the FreezeFrameData shall be specified by the vehicle manufacturer.
Typical uses for this mode are to report data stored upon detection of a system malfunction. Multiple frames of data
may be stored before and/or after the malfunction has been detected.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
--`,,,`-`-`,,`,,`,`,,`---
NOTE — Standardized DTCs and DTCs formats are specified in SAE J 2012 for passenger cars and in SAE J 1587 for heavy
duty vehicles.
The ClearDiagnosticInformation service is used by the client to clear diagnostic information in the server's memory.
If the user optional parameter GroupOfDiagnosticInformation is present in the request message, then the server(s)
shall clear all diagnostic information based on the functional group selected by the client. If a specific DTC shall be
cleared the client shall send the GroupOfDiagnosticInformation parameter including the DTC to clear.
If the server(s) do/does not have any DTC and/or diagnostic information stored the server(s) shall send a positive
response message after an appropriate request message has been received.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
The services provided by this functional unit are described in table 102.
Tables 103 to 105 describe the different messages for InputOutputControlByLocalldentifier service.
52
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The InputOutputControlByLocalIdentifier service is used by the client to substitute a value for an input signal,
internal ECU function and/or control an output (actuator) of an electronic system referenced by an
InputOutputLocalIdentifier of the server. The user optional ControlOption parameter shall include all information
required by the server's input signal, internal function and/or output signal.
The server shall send a positive response message if the request message was successfully executed. It is user
optional if the positive response message shall include ControlStatus information which possibly is available during
or after the control execution.
The ControlOption parameter can be implemented as a single ON/OFF parameter or as a more complex sequence
of control parameters including a number of cycles, a duration, etc. if required.
Tables 106 to 108 describe the different messages for InputOutputControlByCommonIdentifier service.
The InputOutputControlByCommonIdentifier service is used by the client to substitute a value for an input signal,
internal ECU function and/or an control output (actuator) of electronic systems referenced by an
InputOutputCommonIdentifier of the server. The user optional ControlOption parameter shall include all information
required by the server's input signal, internal function and/or output signal.
--`,,,`-`-`,,`,,`,`,,`---
The server(s) shall send a positive response message if the request message was successfully executed. It is user
optional if the positive response message shall include ControlStatus information which possibly is available during
or after the control execution.
The ControlOption parameter can be implemented as a single ON/OFF parameter or as a more complex sequence
of control parameters including a number of cycles, a duration, etc.
See message flow example of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in 5.3.2.1.
54
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The services provided by this functional unit are described in table 109.
Tables 110 to 112 describe the different messages for StartRoutineByLocalIdentifier service.
--`,,,`-`-`,,`,,`,`,,`---
The StartRoutineByLocalIdentifier service is used by the client to start a routine in the server's memory.
The routine in the server shall be started after the positive response message has been sent. The routine shall be
stopped until a StopRoutineByLocalIdentifier service is issued.
The routines could either be tests that run instead of normal operating code or could be routines that are enabled
and executed with the normal operating code running. In particular in the first case, it might be necessary to switch
the server in a specific diagnostic mode using the StartDiagnosticSession service or to unlock the server using the
SecurityAccess service prior to using the StartRoutineByLocalIdentifier service.
The parameter RoutineEntryOption is user optional and shall be of any type and length defined within KWP 2000.
Tables 113 to 115 describe the different messages for StartRoutineByAddress service.
--`,,,`-`-`,,`,,`,`,,`---
56
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The StartRoutineByAddress service is used by the client to start a routine in the server's memory.
The routine in the server shall be started after the positive response message has been sent. The routine shall be
stopped until a StopRoutineByAddress service is received.
The routines could either be tests that run instead of normal operating code or be routines that are enabled and
executed with the normal operating code running. In particular in the first case, it might be necessary to switch the
server in a specific diagnostic mode using the StartDiagnosticSession service or to unlock the server using the
SecurityAccess service prior to using the StartRoutineByAddress service.
The parameter RoutineEntryOption is user optional and shall be of any type and length defined within KWP 2000.
Hex Description
00-60 ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
61 NormalExitWithResultsAvailable
62 NormalExitWithoutResultsAvailable
63 AbNormalExitWithResultsAvailable
64 AbNormalExitWithoutResultsAvailable
65 - 7F ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
80 - FF ManufacturerSpecificCodes
Tables 117 to 119 describe the different messages for StopRoutineByLocalIdentifier service.
--`,,,`-`-`,,`,,`,`,,`---
58
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
--`,,,`-`-`,,`,,`,`,,`---
The StopRoutineByLocalIdentifier service is used by the client to stop a routine in the server's memory referenced
by a RoutineLocalIdentifier. The routine in the server shall be stopped after the positive response message has
been sent.
The parameter RoutineExitOption is user optional and shall be of any type and length defined within KWP 2000.
The parameter RoutineExitStatus is user optional and shall be of any type and length defined within KWP 2000.
Examples of RoutineExitStatus are: TotalRunTime, results generated by the routine before stopped, etc.
Tables 120 to 122 describe the different messages for StopRoutineByAddress service.
The StopRoutineByAddress service is used by the client to stop a routine in the server's memory referenced by a
MemoryAddress. The routine in the server shall be stopped after the positive response message has been sent.
The parameter RoutineExitOption is user optional and shall be of any type and length defined within KWP 2000.
The parameter RoutineExitStatus is user optional and shall be of any type and length defined within KWP 2000.
Examples of RoutineExitStatus are: TotalRunTime, results generated by the routine before stopped, etc.
Tables 123 to 125 describe the different messages for RequestRoutineResultsByLocalIdentifier service.
--`,,,`-`-`,,`,,`,`,,`---
60
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The RequestRoutineResultsByLocalIdentifier service is used by the client to request results (e.g. exit status
information) referenced by a RoutineLocalIdentifier and generated by the routine which was executed in the server's
memory.
--`,,,`-`-`,,`,,`,`,,`---
The parameter RoutineResults is user optional and shall be of any type and length defined within KWP 2000. Based
on the RoutineResults which may have been received in the StopRoutineByLocalidentifier or StopRoutineByAddress
positive response message (RoutineResults = normal/AbNormalExitWithResults)
the RequestRoutineResultsByLocalIdentifier service shall be used.
Example of RoutineResults - data collected by the ECU which could not be transmitted during routine execution
because of ECU performance limitations.
Tables 127 to 129 describe the different messages for RequestRoutineResultsByAddress service.
--`,,,`-`-`,,`,,`,`,,`---
The parameter RoutineResults is user optional and shall be of any type and length defined within KWP 2000. Based
on the RoutineResults which may have been received in the StopRoutineByLocalIdentifier or
StopRoutineByAddress positive response message (RoutineResults = normal/AbNormalExitWithResults) the
RequestRoutineResultsByAddress service shall be used.
Example of RoutineResults: data collected by the ECU which could not be transmitted during routine execution
because of ECU performance limitations.
NOTE — The message flow example cited above uses a LocalIdentifier instead of a MemoryAddress.
The services provided by this functional unit are described in table 130.
The parameter TransferRequestParameter is used by all request messages of the Upload Download functional
unit and shall include all the information necessary for the request messages. Format and length for this parameter
is vehicle-manufacturer-specific.
The parameter TransferResponseParameter in the RequestDownload positive response message defines the
status of the server if it is ready to receive data. One value is defined in table 131. Format and length of additional
parameters are vehicle-manufacturer-specific.
Hex Description
00-43 ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
44 ReadyForDownload
45-7F ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
80 - FF ManufacturerSpecificCodes
--`,,,`-`-`,,`,,`,`,,`---
Tables 132 to 134 describe the different messages for RequestDownload service.
The RequestDownload service is used by the client to initiate a data transfer from the client to the server
(download). After the server has received the RequestDownload request message the ECU shall take all necessary
actions to receive data before it sends a positive response message.
The parameters TransferRequestParameter and TransferResponseParameter are user optional and shall be of any
type and length defined within KWP 2000.
64
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
The parameter TransferResponseParameter in the RequestUpload positive response message defines the status
of the server if it is ready to transmit data. One value is defined in table 135. Format and length of additional
parameters are vehicle-manufacturer-specific.
Hex Description
00-53 ReservedByDocument
--`,,,`-`-`,,`,,`,`,,`---
This range of values is reserved by this document (refer to section 4.4 Response
Codes).
54 ReadyForUpload
55-7F ReservedByDocument
This range of values is reserved by this document (refer to section 4.4 Response
Codes).
80 - FF ManufacturerSpecificCodes
This range of values is reserved for vehicle-manufacturer-specific use.
Tables 136 to 138 describe the different messages for RequestUpload service.
The RequestUpload service is used by the client to initiate a data transfer from the server to the client (upload).
After the server has received the RequestUpload request message the ECU shall take all necessary actions to send
data before it sends a positive response message.
The parameters TransferRequestParameter and TransferResponseParameter are user optional and shall be of any
type and length defined within KWP 2000.
The parameter TransferRequestParameter in the TransferData request message shall contain parameter(s) which
are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle-
--`,,,`-`-`,,`,,`,`,,`---
manufacturer-specific. In addition, this part of ISO 14230 specifies one value which is described in table 139.
Hex Description
00-72 ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
73 BlockTransferComplete/NextBlock
74-7F ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
80 - FF ManufacturerSpecificCodes
This range of values is reserved for vehicle-manufacturer-specific use.
The parameter TransferResponseParameter in the TransferData positive response message shall contain
parameter(s) which are required by the client to support the transfer of data. Format and length of this parameter(s)
are vehicle-manufacturer-specific. In addition, this standard specifies one value which is described in table 140.
66
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Hex Description
00-72 ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
73 BlockTransferComplete/NextBlock
74-7F ReservedByDocument
This range of values is reserved by this document (refer to 4.4 for Response Codes).
80 - FF ManufacturerSpecificCodes
--`,,,`-`-`,,`,,`,`,,`---
Table 142 — TransferData Positive Response Message
The TransferData service is used by the client to transfer data either from the client to the server (download) or from
the server to the client (upload). The data transfer direction is defined by the preceding RequestDownload or
RequestUpload service.
If the client initiated a RequestDownload the data to be downloaded is included in the parameter(s)
TransferRequestParameter in the TransferData request message(s). The server may include the
BlockTransferComplete/NextBlock parameter as an TransferResponseParameter in the TransferData positive
response message.
If the client initiated a RequestUpload the data to be uploaded is included in the parameter(s)
TransferResponseParameter in the TransferData positive response message(s). The client may include the
BlockTransferComplete/NextBlock parameter as an TransferRequestParameter in the TransferData request
message.
For example, for a download, the parameter TransferRequestParameter could include the data to be transferred
and the parameter TransferResponseParameter a checksum computed by the server; for an upload, the parameter
TransferRequestParameter parameter could include the address and number of bytes to retrieve data and the
parameter TransferResponseParameter the uploaded data.
The parameter TransferResponseParameter in the RequestTransferExit positive response message defines the
status of the server's data transfer exit status. Format and length of additional parameters are vehicle-manufacturer-
specific.
Tables 145 to 147 describe the different messages for RequestTransferExit service.
--`,,,`-`-`,,`,,`,`,,`---
68
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
--`,,,`-`-`,,`,,`,`,,`---
2 TransferResponseParameter#1 U xx TRNFRSPP
: : : :
n TransferResponseParameter#m U xx
This service is used by the client to terminate a data transfer between client and server. The user optional
parameters TransferRequestParameter and TransferResponseParameter in the RequestTransferExit request and
positive response message shall be of any type and length defined within KWP 2000.
Table 148 gives a message flow example of flow example of RequestUpload service.
Table 148 — Message flow example of RequestUpload, multiple TransferData services followed by a
RequestTransferExit service
The parameter ManufacturerSpecific Service Identifier is defined as an extension of the service identifiers
specified in this part of ISO 14230. The range of values is specified in table 149.
Hex Description
00 - FF ManufacturerSpecific
This range of values is reserved for vehicle-manufacturer-specific use.
Tables 150 to 152 describe the different messages for EscapeCode service.
--`,,,`-`-`,,`,,`,`,,`---
70
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
--`,,,`-`-`,,`,,`,`,,`---
© ISO ISO 14230-3:1999(E)
The EscapeCode service is used by the client if none of the services specified in this part of ISO 14230 can provide
the function required by the vehicle manufacturer.
See also message flow examples of Physical Addressed Service in 5.3.1.1 and Functional Addressed Service in
5.3.2.1.
13 Application examples
This clause aims at showing with a real example how the Keyword Protocol 2000 services defined in this part of ISO
14230 may be used to establish diagnostic applications for diagnostic equipment and one or more on-board ECUs.
Tables 154 to 157 describe the configuration of the various ECUs on the considered vehicle for this example.
ECM features
Re-programmable (Flash EPROM)
Requires security login with Seed & Key
--`,,,`-`-`,,`,,`,`,,`---
72
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Both ECUs shall be initialized with the fast initialization wake up pattern and StartCommunication request service.
A repair shop diagnostic session is started in both ECUs with a functional StartDiagnosticSession request service.
The client sends a functional ReadECUIdentification request service to retrieve all identification data of each ECU.
A functional ReadDiagnosticTroubleCodes request is used by the client to read the DTC's from the ECUs.
P2 StartComm.PosRsp[KB1,KB2] {ECM}1)
--`,,,`-`-`,,`,,`,`,,`---
P2
StartComm.PosRsp[KB1,KB2] {TCM}1)
P3 StartDiagSess.Req[normalDiagSess]
{TGT=$FE}
P2 StartDiagSess.PosRsp[] {ECM}
P2 StartDiagSess.PosRsp[] {TCM}
P3 ReadECUId.Req[IdentificationOption]
{TGT=$FE}
P2 ReadECUId.PosRsp[IdentificationRecordValues]
{TCM}
P2
ReadECUId.PosRsp[IdentificationRecordValues]
{ECM}
P3 ReadDTC.Req[GroupOfDTC] {TGT=$FE}
P2 ReadDTC.PosRsp[#DTC,DTC#1,DTC#2] {ECM}
P2 ReadDTC.PosRsp[#DTC,DTC#3] {TCM}
NOTE —In the example, both ECM and TCM ECUs respond to the StartCommunication request. It is also possible that
only one of the ECU responds.
The client reads specific data records identified by a RecordLocalIdentifier from each ECU individually by sending
physical addressed ReadDataByLocalIdentifier requests.
Five data records, identified by another RecordLocalIdentifier, are requested from the ECM with the
ReadDataByLocalIdentifier with the transmission mode parameter set to "fast" and maximum number of responses
to send set to "5".
After above tests are finished the tester clears all diagnostic information by sending a functional
ClearDiagnosticInformation request service.
The communication with the TCM is stopped by a functional StopCommunication request service.
--`,,,`-`-`,,`,,`,`,,`---
time client (tester) server (ECU)
P3 ReadDataByLocId.Req[RecLocId=10]
P2 {TGT=ECM} ReadDataByLocId.PosRsp[10,RecordValues] {ECM}
P3
P2 ReadDataByLocId.Req[RecLocId=03] ReadDataByLocId.PosRsp[03,RecordValues] {TCM}
{TGT=TCM}
P3 ReadDataByLocId.Req[RecLocId=01,TXM=fa
st,
Now the tester starts preparing for reprogramming the ECM's memory by using the following services.
The tester sends a SecurityAccess request with the AccessMode set to RequestForSeed to the ECM. The ECM
responds with the parameter Seed.
The tester manipulates the Seed into a Key value and sends it to the ECM with the SecurityAccess request with the
AccessMode set to SendKey. The ECM denies the request by sending a negative response with the
ResponseCode set to SecurityAccessDenied (tester has sent the wrong key). The ECM starts a 10 s timer which
shall have expired before the next SecurityAccess is allowed.
Now it is the client's responsibility to keep the communication alive. Therefore the tester shall continuously send
TesterPresent messages to the ECM with the parameter ResponseRequired set to YES. The number of
TesterPresent services required depends on the timing parameter P3max. The tester stops sending TesterPresent
requests as soon as the 10 s timer has expired. A new request is sent to the server.
74
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
P3 TesterPresent.Req#1[Yes] {TGT=ECM}
P2 TesterPresent.PosRsp#1[] {ECM}
P3 TesterPresent.Req#2[Yes] {TGT=ECM}
P2 TesterPresent.PosRsp#2[] {ECM}
: : :
P3 TesterPresent.Req#n[Yes] {TGT=ECM}
P2 TesterPresent.PosRsp#n[] {ECM}
1) Tester has sent the wrong key.10 s timer starts.
2) 10 s timer expires.
The tester repeats the entire login procedure. It finally received a positive response with the parameter
SecurityAccessAllowed. Now the ECM is ready to execute diagnostic sessions which require a security login.
The tester starts a programming session in the ECM which enables a new set of services which were not available
in the RepairShop diagnostic mode. To speed up the upcoming data transfer, the tester changes the timing
parameters based on the ECMs communication capabilities. Therefore it sends the AccessCommunication-
Parameter request service with the TimingParameterIndex set to ReadLimits. The ECM responses with the
internally stored timing parameters "P2 - P4" used for fast data transfer and memory re-programming.
The tester sends another AccessCommunicationParameter request service with the TimingParameterIndex set to
setLimits. The timing becomes active with the next request of the tester.
P3 StartDiagSess.Req[ProgSession] {TGT=ECM}
P2 StartDiagSess.PosRsp[] {ECM}
P3 AccCommPara.Req[ReadLimits] {TGT=ECM}
1)
P2 AccCommPara.PosRsp[ReadLimits,P2-P4] {ECM}
P3 AccCommPara.Req[setPara,P2 - P4]
P2 {TGT=ECM} AccCommPara.PosRsp[setPara] {ECM}
1) ECM sends fast programming P2...P4 timing values.
2) Fast programming timing P2...P4 is enabled.
The tester sends a RequestDownload request with an TransferRequestParameter parameters (e.g. memory start
address, memory size, etc.). The positive response message of the ECM indicates to the tester that the ECM has
accepted the request and is ready for receiving download data.
The TransferData service is used to download a software routine from the tester to the ECM.
The tester now sends the StartRoutineByLocalIdentifier request message to start the routine which has been
downloaded before. This routine re-organises the RAM of the ECM in order to free up additional memory space to
store further downloaded data.
The tester uses multiple TransferData services to download all FLASH EEPROM data to be re-programmed.
When finished the tester terminates the data transfer by sending a RequestTransferExit request message. Now the
tester stops the current diagnostic session and finally, the communication is terminated by the StopCommunication
service.
P2 {TGT=ECM} StartRoutineByLocId.PosRsp[RLOCID,RENTSTAT]
{ECM}
P3 TransferData.Req[TRNFREQP,...]
{TGT=ECM}
P2 TransferData.PosRsp[TRNFRSPP] {ECM}
P3 TransferData.Req[TRNFREQP,...]
{TGT=ECM}
P2 TransferData.PosRsp[TRNFRSPP] {ECM}
: : :
P3 TransferData.Req[TRNFREQP,...]
{TGT=ECM}
--`,,,`-`-`,,`,,`,`,,`---
P2 TransferData.PosRsp[TRNFRSPP] {ECM}
P3 RequestTransferExit.Req[TRNFREQP]
P2 {TGT=ECM} RequestTransferExit.PosRsp[TRNFRSPP] {ECM}
P3 StopDiagnosticSession.Req[] {TGT=$FE}
P2 StopDiagnosticSession.PosRsp[] {ECM}
P3 StopCommunication.Req[] {TGT=$FE}
P2 StopCommunication.PosRsp[] {ECM}
76
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
While diagnosing an ECM (engine control module) the service technician gets a large list of parameters displayed
on the tester screen. The technician selects the following four parameters out of the list which are of interest to him:
engine speed.
The technician selects these parameters to be displayed in the order as indicated in table 163.
Within the ECM the parameters given in 13.5.1 are stored as indicated in table 164.
Within KWP 2000 the DynamicallyDefineLocalIdentifier service is used to assign a LocalIdentifier to these four
parameters which are afterwards read by the ReadDataByLocalIdentifier service.
The tester defines the value "$25" for this LocalIdentifier which identifies a new record consisting of the four
parameters selected by the service technician.
There are several possibilities for the tester to define this new record by using the DynamicallyDefineLocalIdentifier
service. Two examples are given in 13.5.3 and 13.5.4.
The tester uses only one DynamicallyDefineLocalIdentifier request message to define the entire record. This
message has the content given in table 165.
--`,,,`-`-`,,`,,`,`,,`---
13 PositionInRecordCommonIdentifier 03 PIRLOCID
14 DefinitionMode=[DefineByMemoryAddress] 03 DEFMODE
15 PositionInDynamicallyDefinedLocalIdentifier 02 PIDYDLID
16 MemorySize 02 MEMSIZE
17 MemoryAddress (High Byte) 01 MEMAHB
18 MemoryAddress (Middle Byte) DE MEMAMB
19 MemoryAddress (Low Byte) 05 MEMALB
20 DefinitionMode=[DefineByLocalIdentifier] 01 DEFMODE
21 PositionInDynamicallyDefinedLocalIdentifier 04 PIDYDLID
22 MemorySize 01 MEMSIZE
23 RecordLocalIdentifier D2 RLOCID
24 PositionInRecordLocalIdentifier 02 PIRLOCID
The tester for example uses three DynamicallyDefineLocalIdentifier request messages to define the record. The
messages have the content given in tables 166 to 168.
78
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
2 DynamicallyDefinedLocalIdentifier 25 DDLOCID
3 DefinitionMode=[DefineByCommonIdentifier] 02 DEFMODE
4 PositionInDynamicallyDefinedLocalIdentifier 01 PIDYDLID
5 MemorySize 01 MEMSIZE
6 RecordCommonIdentifier (High Byte) B7 RCIDHB
7 RecordCommonIdentifier (Low Byte) 54 RCIDLB
8 PositionInRecordCommonIdentifier 03 PIRLOCID
After defining the new record referenced by the DynamicallyDefinedLocalIdentifier "$25" the tester sends the
ReadDataByLocalIdentifier request message to read the values of the four parameters. The values shall only be
updated on the tester display upon request by the service technician. Therefore the tester sets the parameter
TransmissionMode to "single"; see table 169.
After receiving the ReadDataByLoacalIdentifier request message the ECM sends the ReadDataByLocalIdentifier
positive response message with the content given in table 170.
80
Copyright International Organization for Standardization
Provided by IHS under license with ISO
No reproduction or networking permitted without license from IHS Not for Resale
© ISO ISO 14230-3:1999(E)
Annex A
(informative)
--`,,,`-`-`,,`,,`,`,,`---
Bibliography
[1] ISO 4092: 1988, Road vehicles — Diagnostic systems for motor vehicles — Vocabulary.
[2] ISO/IEC 7498-1:1994, Information technology — Open Systems Interconnection —Basic Reference Model:
The basic model.
[3] ISO/IEC 10731:1994, Information technology — Open Systems Interconnection — Basic Reference
Model — Conventions for the definition of OSI services.
[4] SAE J 1587: 1996, Electronic data interchange between microcomputer systems in heavy-duty vehicle
applications. (Joint SAE/TMC publication)
[7] SAE J 2012: 1996, Recommended practice for diagnostic trouble code definitions. [Pratique recommandée
pour les définitions des codes d'erreur de diagnostic]
ICS 43.180
Descriptors: road vehicles, motor vehicles, electronic equipment, electronic control units, diagnostic systems, digital technics, information
interchange, protocols, application layer.