ISO 14229-1:2020
(Main)Road vehicles — Unified diagnostic services (UDS) — Part 1: Application layer
Road vehicles — Unified diagnostic services (UDS) — Part 1: Application layer
This document specifies data link independent requirements of diagnostic services, which allow a diagnostic tester (client) to control diagnostic functions in an on-vehicle electronic control unit (ECU, server) such as an electronic fuel injection, automatic gearbox, anti-lock braking system, etc. connected to a serial data link embedded in a road vehicle. It specifies generic services, which allow the diagnostic tester (client) to stop or to resume non-diagnostic message transmission on the data link. This document does not apply to non-diagnostic message transmission on the vehicle's communication data link between two electronic control units. However, this document does not restrict an in-vehicle on-board tester (client) implementation in an ECU in order to utilize the diagnostic services on the vehicle's communication data link to perform bidirectional diagnostic data exchange. This document does not specify any implementation requirements.
Véhicules routiers — Services de diagnostic unifiés (SDU) — Partie 1: Couche application
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO
STANDARD 14229-1
Third edition
2020-02
Road vehicles — Unified diagnostic
services (UDS) —
Part 1:
Application layer
Véhicules routiers — Services de diagnostic unifiés (SDU) —
Partie 1: Couches application
Reference number
©
ISO 2020
© ISO 2020
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting
on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address
below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Fax: +41 22 749 09 47
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO 2020 – All rights reserved
Contents Page
Foreword . ix
Introduction . x
1 Scope . 1
2 Normative references . 1
3 Terms and definitions . 2
4 Symbols and abbreviated terms . 5
5 Conventions . 5
6 Document overview . 6
7 Application layer services . 7
7.1 General . 7
7.2 Format description of application layer services . 9
7.3 Format description of service primitives . 9
7.3.1 General definition. 9
7.3.2 Service request and service indication primitives . 10
7.3.3 Service response and service confirm primitives . 11
7.3.4 Service request-confirm and service response-confirm primitives . 11
7.4 Service data unit specification . 12
7.4.1 Mandatory parameters . 12
7.4.2 Vehicle system requirements . 14
7.4.3 Optional parameters - A_AE, application layer remote address . 15
8 Application layer protocol . 15
8.1 General definition. 15
8.2 A_PDU, application protocol data unit . 16
8.3 A_PCI, application protocol control information . 16
8.4 SI, service identifier . 17
8.5 A_NR_SI, Negative response service identifier . 17
8.6 Negative response/confirmation service primitive . 18
8.7 Server response implementation rules . 18
8.7.1 General definitions. 18
8.7.2 General server response behaviour . 19
8.7.3 Request message with SubFunction parameter and server response behaviour . 21
8.7.4 Request message without SubFunction parameter and server response behaviour . 25
8.7.5 Pseudo code example of server response behaviour . 27
8.7.6 Multiple concurrent request messages with physical and functional addressing . 29
9 Service description conventions . 29
9.1 Service description . 29
9.2 Request message . 30
9.2.1 Request message definition . 30
9.2.2 Request message SubFunction parameter $Level (LEV_) definition . 31
9.2.3 Request message data-parameter definition . 33
9.3 Positive response message. 33
9.3.1 Positive response message definition . 33
9.3.2 Positive response message data-parameter definition . 34
iii
9.4 Supported negative response codes (NRC_) . 34
9.5 Message flow examples . 35
10 Diagnostic and communication management functional unit . 36
10.1 Overview . 36
10.2 DiagnosticSessionControl (10 ) service . 36
10.2.1 Service description . 36
10.2.2 Request message . 40
10.2.3 Positive response message . 41
10.2.4 Supported negative response codes (NRC_) . 42
10.2.5 Message flow example(s) DiagnosticSessionControl – Start programmingSession . 43
10.3 ECUReset (11 ) service . 43
10.3.1 Service description . 43
10.3.2 Request message . 44
10.3.3 Positive response message . 45
10.3.4 Supported negative response codes (NRC_) . 46
10.3.5 Message flow example ECUReset . 47
10.4 SecurityAccess (27 ) service. 47
10.4.1 Service description . 47
10.4.2 Request message . 49
10.4.3 Positive response message . 51
10.4.4 Supported negative response codes (NRC_) . 51
10.4.5 Message flow example(s) SecurityAccess . 52
10.5 CommunicationControl (28 ) service . 54
10.5.1 Service description . 54
10.5.2 Request message . 54
10.5.3 Positive response message . 56
10.5.4 Supported negative response codes (NRC_) . 56
10.5.5 Message flow example CommunicationControl (disable transmission of network
management messages). 57
10.5.6 Message flow example CommunicationControl (switch a remote network into the
diagnostic-only scheduling mode where the node with address 000A is connected
to) . 57
10.5.7 Message flow example CommunicationControl (switch to application scheduling
mode with enhanced address information, the node 000A , which is connected to a
sub-network, is addressed) . 58
10.6 Authentication (29 ) service . 59
10.6.1 Service overview . 59
10.6.2 Authentication with PKI Certificate Exchange (APCE). 60
10.6.3 Authentication with Challenge-Response (ACR) . 65
10.6.4 Common requirements . 69
10.6.5 Request message . 71
10.6.6 Positive response message . 78
10.6.7 Supported negative response codes (NRC_) . 85
10.6.8 Message flow example(s) Authentication . 86
10.7 TesterPresent (3E ) service . 108
10.7.1 Service description . 108
10.7.2 Request message . 108
10.7.3 Positive response message . 108
10.7.4 Supported negative response codes (NRC_) . 109
10.7.5 Message flow example(s) TesterPresent . 109
10.8 ControlDTCSetting (85 ) service . 110
10.8.1 Service description . 110
10.8.2 Request message . 111
iv
10.8.3 Positive response message. 112
10.8.4 Supported negative response codes (NRC_) . 112
10.8.5 Message flow example(s) ControlDTCSetting . 113
10.9 ResponseOnEvent (86 ) service . 114
10.9.1 Service description . 114
10.9.2 Request message . 121
10.9.3 Positive response message. 127
10.9.4 Supported negative response codes (NRC_) . 130
10.9.5 Message flow example(s) ResponseOnEvent . 131
10.10 LinkControl (87 ) service . 146
10.10.1 Service description . 146
10.10.2 Request message . 147
10.10.3 Positive response message . 149
10.10.4 Supported negative response codes (NRC_) . 149
10.10.5 Message flow example(s) LinkControl . 150
11 Data transmission functional unit . 152
11.1 Overview . 152
11.2 ReadDataByIdentifier (22 ) service . 153
11.2.1 Service description . 153
11.2.2 Request message . 153
11.2.3 Positive response message. 154
11.2.4 Supported negative response codes (NRC_) . 155
11.2.5 Message flow example ReadDataByIdentifier . 157
11.3 ReadMemoryByAddress (23 ) service . 159
11.3.1 Service description . 159
11.3.2 Request message . 159
11.3.3 Positive response message. 161
11.3.4 Supported negative response codes (NRC_) . 161
11.3.5 Message flow example ReadMemoryByAddress . 163
11.4 ReadScalingDataByIdentifier (24 ) service . 166
11.4.1 Service description . 166
11.4.2 Request message . 166
11.4.3 Positive response message. 166
11.4.4 Supported negative response codes (NRC_) . 167
11.4.5 Message flow example ReadScalingDataByIdentifier . 169
11.5 ReadDataByPeriodicIdentifier (2A ) service . 172
11.5.1 Service description . 172
11.5.2 Request message . 176
11.5.3 Positive response message. 176
11.5.4 Supported negative response codes (NRC_) . 177
11.5.5 Message flow example ReadDataByPeriodicIdentifier . 180
11.6 DynamicallyDefineDataIdentifier (2C ) service . 191
11.6.1 Service description . 191
11.6.2 Request message . 192
11.6.3 Positive response message. 195
11.6.4 Supported negative response codes (NRC_) . 196
11.6.5 Message flow examples DynamicallyDefineDataIdentifier . 197
11.7 WriteDataByIdentifier (2E16) service . 212
11.7.1 Service description . 212
11.7.2 Request message . 212
11.7.3 Positive response message. 213
11.7.4 Supported negative response codes (NRC_) . 214
11.7.5 Message flow example WriteDataByIdentifier . 215
v
11.8 WriteMemoryByAddress (3D ) service . 216
11.8.1 Service description . 216
11.8.2 Request message . 217
11.8.3 Positive response message . 218
11.8.4 Supported negative response codes (NRC_) . 219
11.8.5 Message flow example WriteMemoryByAddress . 221
12 Stored data transmission functional unit . 223
12.1 Overview . 223
12.2 ClearDiagnosticInformation (14 ) service . 223
12.2.1 Service description . 223
12.2.2 Request message . 224
12.2.3 Positive response message . 225
12.2.4 Supported negative response codes (NRC_) . 225
12.2.5 Message flow example ClearDiagnosticInformation . 226
12.3 ReadDTCInformation (19 ) service . 227
12.3.1 Service description . 227
12.3.2 Request message . 238
12.3.3 Positive response message . 249
12.3.4 Supported negative response codes (NRC_) . 263
12.3.5 Message flow examples – ReadDTCInformation . 264
13 InputOutput control functional unit . 297
13.1 Overview . 297
13.2 InputOutputControlByIdentifier (2F ) service . 297
13.2.1 Service description . 297
13.2.2 Request message . 298
13.2.3 Positive response message . 299
13.2.4 Supported negative response codes (NRC_) . 300
13.2.5 Message flow example(s) InputOutputControlByIdentifier . 301
14 Routine functional unit . 310
14.1 Overview . 310
14.2 RoutineControl (31 ) service . 311
14.2.1 Service description . 311
14.2.2 Request message . 312
14.2.3 Positive response message . 314
14.2.4 Supported negative response codes (NRC_) . 315
14.2.5 Message flow example(s) RoutineControl . 317
15 Upload download functional unit . 321
15.1 Overview . 321
) service. 321
15.2 RequestDownload (3416
15.2.1 Service description . 321
15.2.2 Request message . 322
15.2.3 Positive response message . 323
15.2.4 Supported negative response codes (NRC_) . 324
15.2.5 Message flow example(s) RequestDownload . 325
15.3 RequestUpload (35 ) service . 325
15.3.1 Service description . 325
15.3.2 Request message . 326
15.3.3 Positive response message . 327
15.3.4 Supported negative response codes (NRC_) . 328
15.3.5 Message flow example(s) RequestUpload . 329
15.4 TransferData (36 ) service . 330
15.4.1 Service description . 330
vi
15.4.2 Request message . 330
15.4.3 Positive response message. 331
15.4.4 Supported negative response codes (NRC_) . 332
15.4.5 Message flow example(s) TransferData . 334
15.5 RequestTransferExit (37 ) service . 334
15.5.1 Service description . 334
15.5.2 Request message . 335
15.5.3 Positive response message. 335
15.5.4 Supported negative response codes (NRC_) . 336
15.5.5 Message flow example(s) for downloading/uploading data . 337
15.6 RequestFileTransfer (38 ) service . 344
15.6.1 Service description . 344
15.6.2 Request message . 344
15.6.3 Positive response message. 346
15.6.4 Supported negative response codes (NRC_) . 348
15.6.5 Message flow example(s) RequestFileTransfer . 350
16 Security sub-layer definition . 353
16.1 General . 353
16.1.1 Purpose . 353
16.1.2 Security sub-layer description . 353
16.1.3 Security sub-layer access . 354
16.1.4 General server response behaviour . 356
16.2 SecuredDataTransmission (84 ) service . 358
16.2.1 Service description . 358
16.2.2 Request message . 358
16.2.3 Positive response message for successful internal message . 360
16.2.4 Supported negative response codes (NRC_) . 362
16.2.5 Message flow example SecuredDataTransmission . 363
17 Non-volatile server memory programming process . 366
17.1 General information . 366
17.2 Detailed programming sequence . 370
17.2.1 Programming phase #1 — Download of application software and/or application
data . 370
17.3 Server reprogramming requirements . 379
17.3.1 Requirements for servers to support programming . 379
17.3.2 Software, data identification and fingerprints . 382
17.3.3 Server routine access . 383
17.4 Non-volatile server memory programming message flow examples . 383
17.4.1 General information . 383
17.4.2 Programming phase #1 — Pre-Programming step . 383
17.4.3 Programming phase #1 — Programming step. 384
17.4.4 Programming phase #1 — Post-Programming step . 389
Annex A (normative) Global parameter definitions . 390
Annex B (normative) Diagnostic and communication management functional unit data-
parameter definitions . 400
Annex C (normative) Data transmission functional unit data-parameter definitions . 405
Annex D (normative) Stored data transmission functional unit data-parameter definitions . 422
Annex E (normative) Input output control functional unit data-parameter definitions . 444
Annex F (normative) Routine functional unit data-parameter definitions . 445
vii
Annex G (normative) Upload and download functional unit data-parameter . 447
Annex H (informative) Examples for addressAndLengthFormatIdentifier parameter values . 448
Annex I (normative) Security access state chart . 450
Annex J (informative) Recommended implementation for multiple client environments . 458
Bibliography . 464
viii
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.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the
different types of ISO documents should be noted. This document was drafted in accordance with the
editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).
Attention is drawn to the possibility that some of the elements of this document may be the subject of
patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of
any patent rights identified during the development of the document will be in the Introduction and/or
on the ISO list of patent declarations received (see www.iso.org/patents).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO's adherence to the
World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT), see
www.iso.org/iso/foreword.html.
This document was prepared by Technical Committee ISO/TC 22, Road vehicles, Subcommittee SC 31,
Data communication.
This third edition cancels and replaces the second edition (ISO 14229-1:2013), which has been
technically revised. The main changes compared to the previous edition are as follows:
— new diagnostic service for Authentication has been introduced to address cyber security topics;
— new clause "Security sub-layer definition";
— some unused SubFunction of ReadDTCInformation service are deleted, e.g. Mirror Memory;
— the ReadDataByPeriodicIdentifier is updated; and
— several clarifications and corrections are implemented.
A list of all parts in the ISO 14229 series can be found on the ISO website.
Any feedback or questions on this document should be directed to the user’s national standards body. A
.
complete listing of these bodies can be found at www.iso.org/members.html
ix
Introduction
ISO 14229 has been established in order to define common requirements for diagnostic systems,
whatever the serial data link is.
To achieve this, ISO 14229 is based on the Open Systems Interconnection (OSI) Basic Reference Model
in accordance with ISO/IEC 7498-1 and ISO/IEC 10731, which structures communication systems into
seven layers. When mapped on this model, the services used by a diagnostic tester (client) and an
Electronic Control Unit (ECU, server) are broken into the following layers in accordance with Table 1:
— Application layer (layer 7), unified diagnostic services specified in this document, ISO 14229-3
UDSonCAN, ISO 14229-4 UDSonFR, ISO 14229-5 UDSonIP, ISO 14229-6 UDSonK-Line, ISO 14229-7
UDSonLIN, ISO 14229-8 UDSonCXPI, further standards and ISO 27145-3 VOBD.
— Presentation layer (layer 6), vehicle manufacturer specific, ISO°27145-2 VOBD.
— Session layer services (layer 5) specified in ISO 14229-2.
— Transport layer services (layer 4), specified in ISO 15765-2 DoCAN, ISO 10681-2 Communication
on FlexRay, ISO 13400-2 DoIP, ISO 17987-2 LIN, ISO 20794-3 CXPI, ISO 27145-4 VOBD.
— Network layer services (layer 3), specified in ISO 15765-2 DoCAN, ISO 10681-2 Communication on
FlexRay, ISO 13400-2 DoIP, ISO 17987-2 LIN, ISO 20794-3 CXPI, ISO 27145-4 VOBD.
— Data link layer (layer 2), specified in ISO 11898-1, ISO 11898-2, ISO 17458-2, ISO 13400-3,
IEEE 802.3, ISO 14230-2, ISO 17987-3 LIN, ISO 20794-4 CXPI, and further standards, ISO 27145-4
VOBD.
— Physical layer (layer 1), specified in ISO 11898-1, ISO 11898-2, ISO 17458-4, ISO 13400-3,
IEEE 802.3, ISO 14230-1, ISO 17987-4 LIN, ISO 20794-4 CXPI, and further standards, ISO 27145-4
VOBD.
NOTE The diagnostic services in this document are implemented in various applications, e.g. road vehicles –
tachograph systems, road vehicles – interchange of digital information on electrical connections between towing
and towed vehicles, road vehicles – diagnostic systems, etc. Future modifications to this document will provide
long-term backward compatibility with the implementation standards as described above.
Under preparation. Stage at the time of publication: ISO/FDIS 14229-8:2020.
Under preparation. Stage at the time of publication: ISO/FDIS 20794-3:2020.
Under preparation. Stage at the time of publication: ISO/FDIS 20794-4:2020.
x
Table 1 — Example of diagnostic/programming specifications applicable to the OSI layers
OSI seven VOBD
Enhanced diagnostics services
a
layer
ISO 14229-1, ISO 14229-3 UDSonCAN, ISO 14229-4 UDSonFR, ISO 14229-5 ISO
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...