INTERNATIONAL
STANDARD
ISO
22900-2
First edition
2009-02-01
Road vehicles — Modular vehicle
communication interface (MVCI) —
Part 2:
Diagnostic protocol data unit application
programming interface (D-PDU API)
Véhicules routiers — Interface de communication modulaire du véhicule
(MVCI) —
Partie 2: Interface de programmation d'application d'unité de données
du protocole de diagnostic (D-PDU API)
Reference number
ISO 22900-2:2009(E)
© ISO 2009
ISO 22900-2:2009(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.
COPYRIGHT PROTECTED DOCUMENT
© ISO 2009
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 either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii
© ISO 2009 – All rights reserved
ISO 22900-2:2009(E)
Contents
Page
Foreword ............................................................................................................................................................vi
Introduction.......................................................................................................................................................vii
Scope......................................................................................................................................................1
1
2
Normative references............................................................................................................................1
Terms and definitions ...........................................................................................................................2
3
Symbols and abbreviated terms ..........................................................................................................2
4
5
Specification release version information..........................................................................................4
Specification release version location ................................................................................................4
5.1
Specification release version...............................................................................................................4
5.2
6
Modular VCI use cases .........................................................................................................................4
6.1
OEM merger ...........................................................................................................................................4
OEM cross vehicle platform ECU(s) ....................................................................................................4
6.2
6.3
Central source diagnostic data and exchange during ECU development ......................................5
OEM franchised dealer and aftermarket service outlet diagnostic tool support............................5
6.4
7
Modular VCI software architecture ......................................................................................................5
Overview.................................................................................................................................................5
7.1
Modular VCI D-Server software............................................................................................................6
7.2
7.3
Runtime format based on ODX ............................................................................................................7
7.4
MVCI protocol module software ..........................................................................................................7
MVCI protocol module configurations ................................................................................................7
7.5
D-PDU API use cases............................................................................................................................8
8
8.1
Overview.................................................................................................................................................8
8.2
Use case 1: Single MVCI protocol module..........................................................................................8
8.3
Use case 2: Multiple MVCI protocol modules supported by same D-PDU API
implementation ......................................................................................................................................9
8.4
Use case 3: Multiple MVCI protocol modules supported by different D-PDU API
implementations ..................................................................................................................................10
9
Diagnostic protocol data unit (D-PDU) API.......................................................................................11
Software requirements........................................................................................................................11
9.1
9.1.1 General requirements .........................................................................................................................11
9.1.2 Vehicle protocol requirements...........................................................................................................12
9.1.3 Timing requirements for protocol handler messages .....................................................................12
9.1.4 Serialization requirements for protocol handler messages............................................................14
9.1.5 Compatibility requirements................................................................................................................15
9.1.6 Timestamp requirements....................................................................................................................16
9.2
API function overview and communication principles....................................................................17
9.2.1 Terms used within the D-PDU API .....................................................................................................17
9.2.2 Function overview...............................................................................................................................17
9.2.3 General usage......................................................................................................................................19
9.2.4 Asynchronous and synchronous communication ..........................................................................21
9.2.5 Usage of resource locking and resource unlocking........................................................................22
9.2.6 Usage of ComPrimitives .....................................................................................................................22
9.3
Tool integration ...................................................................................................................................38
9.3.1 Requirement for generic configuration.............................................................................................38
9.3.2 Tool integrator – use case..................................................................................................................38
9.4
API functions – interface description................................................................................................40
9.4.1 Overview...............................................................................................................................................40
© ISO 2009 – All rights reserved
iii
ISO 22900-2:2009(E)
9.4.2 PDUConstruct ......................................................................................................................................40
9.4.3 PDUDestruct.........................................................................................................................................41
9.4.4 PDUIoCtl ...............................................................................................................................................42
9.4.5 PDUGetVersion ....................................................................................................................................43
9.4.6 PDUGetStatus ......................................................................................................................................44
9.4.7 PDUGetLastError .................................................................................................................................45
9.4.8 PDUGetResourceStatus......................................................................................................................47
9.4.9 PDUCreateComLogicalLink ................................................................................................................48
9.4.10 PDUDestroyComLogicalLink..............................................................................................................50
9.4.11 PDUConnect.........................................................................................................................................51
9.4.12 PDUDisconnect....................................................................................................................................53
9.4.13 PDULockResource...............................................................................................................................54
9.4.14 PDUUnlockResource...........................................................................................................................55
9.4.15 PDUGetComParam ..............................................................................................................................56
9.4.16 PDUSetComParam...............................................................................................................................63
9.4.17 PDUStartComPrimitive........................................................................................................................65
9.4.18 PDUCancelComPrimitive ....................................................................................................................69
9.4.19 PDUGetEventItem ................................................................................................................................70
9.4.20 PDUDestroyItem...................................................................................................................................71
9.4.21 PDURegisterEventCallback ................................................................................................................72
9.4.22 EventCallback prototype.....................................................................................................................74
9.4.23 PDUGetObjectId...................................................................................................................................75
9.4.24 PDUGetModuleIds................................................................................................................................76
9.4.25 PDUGetResourceIds............................................................................................................................78
9.4.26 PDUGetConflictingResources ............................................................................................................79
9.4.27 PDUGetUniqueRespIdTable................................................................................................................80
9.4.28 PDUSetUniqueRespIdTable ................................................................................................................82
9.4.29 PDUModuleConnect ............................................................................................................................87
9.4.30 PDUModuleDisconnect .......................................................................................................................88
9.4.31 PDUGetTimestamp ..............................................................................................................................89
9.5
I/O control section ...............................................................................................................................90
9.5.1
IOCTL API command overview...........................................................................................................90
9.5.2 PDU_IOCTL_RESET.............................................................................................................................92
9.5.3 PDU_IOCTL_CLEAR_TX_QUEUE.......................................................................................................93
9.5.4 PDU_IOCTL_SUSPEND_TX_QUEUE..................................................................................................93
9.5.5 PDU_IOCTL_RESUME_TX_QUEUE....................................................................................................94
9.5.6 PDU_IOCTL_CLEAR_RX_QUEUE ......................................................................................................94
9.5.7 PDU_IOCTL_READ_VBATT ................................................................................................................95
9.5.8 PDU_IOCTL_SET_PROG_VOLTAGE .................................................................................................95
9.5.9 PDU_IOCTL_READ_PROG_VOLTAGE ..............................................................................................96
9.5.10 PDU_IOCTL_GENERIC ........................................................................................................................97
9.5.11 PDU_IOCTL_SET_BUFFER_SIZE.......................................................................................................97
9.5.12 PDU_IOCTL_GET_CABLE_ID .............................................................................................................98
9.5.13 PDU_IOCTL_START_MSG_FILTER....................................................................................................98
9.5.14 PDU_IOCTL_STOP_MSG_FILTER....................................................................................................100
9.5.15 PDU_IOCTL_CLEAR_MSG_FILTER .................................................................................................101
9.5.16 PDU_IOCTL_SET_EVENT_QUEUE_PROPERTIES .........................................................................101
9.5.17 PDU_IOCTL_SEND_BREAK..............................................................................................................102
9.5.18 PDU_IOCTL_READ_IGNITION_SENSE_STATE ..............................................................................103
9.6
API functions — error handling........................................................................................................104
9.6.1 Synchronous error handling ............................................................................................................104
9.6.2 Asynchronous error handling ..........................................................................................................104
9.7
Installation ..........................................................................................................................................104
9.7.1 Generic description ...........................................................................................................................104
9.7.2 Windows installation process ..........................................................................................................105
9.7.3 Linux installation process ................................................................................................................106
9.7.4 Selecting MVCI protocol modules....................................................................................................106
9.8
Application notes...............................................................................................................................106
9.8.1
Interaction with the MDF...................................................................................................................106
9.8.2 Accessing additional hardware features for MVCI protocol modules .........................................106
iv
© ISO 2009 – All rights reserved
ISO 22900-2:2009(E)
9.8.3 Documentation and information provided by MVCI protocol module vendors ..........................107
9.8.4 Performance Testing.........................................................................................................................107
Using the D-PDU API with existing applications............................................................................108
10
10.1
SAE J2534-1 and RP1210a existing standards ..............................................................................108
11
Data structures ..................................................................................................................................108
11.1 API functions — data structure definitions ....................................................................................108
11.1.1 Abstract basic data types.................................................................................................................108
11.1.2 Definitions ..........................................................................................................................................109
11.1.3 Bit encoding for UNUM32 .................................................................................................................109
11.1.4 API data structures............................................................................................................................110
Annex A (normative) D-PDU API compatibility mappings..........................................................................123
Annex B (normative) D-PDU API standard ComParams and protocols....................................................141
Annex C (informative) D-PDU API manufacturer specific ComParams and protocols............................209
Annex D (normative) D-PDU API constants .................................................................................................211
Annex E (normative) Application defined tags............................................................................................225
Annex F (normative) Description files ..........................................................................................................226
Annex G (informative) Resource handling scenarios .................................................................................269
Annex H (informative) D-PDU API partitioning.............................................................................................274
Annex I (informative) Use case scenarios....................................................................................................278
Annex J (normative) OBD protocol initialization.........................................................................................310
Bibliography....................................................................................................................................................325
© ISO 2009 – All rights reserved
v
ISO 22900-2:2009(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.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of technical committees is to prepare International Standards. 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.
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.
ISO 22900-2 was prepared by Technical Committee ISO/TC 22, Road vehicles, Subcommittee SC 3,
Electrical and electronic equipment.
ISO 22900 consists of the following parts, under the general title Road vehicles — Modular vehicle
communication interface (MVCI):
Part 1: Hardware design requirements
Part 2: Diagnostic protocol data unit application programming interface (D-PDU API)
Part 3: Diagnostic server application programming interface (D-Server API)
vi
© ISO 2009 – All rights reserved
⎯
⎯
⎯
ISO 22900-2:2009(E)
Introduction
ISO 22900 is applicable to vehicle electronic control module diagnostics and programming.
This part of ISO 22900 was established in order to more easily exchange software and hardware of vehicle
communication interfaces (VCIs) among diagnostic applications. It defines a generic and protocol independent
software interface towards the modular vehicle communication interface (MVCI) protocol module, such that a
diagnostic application based on this software interface can exchange the MVCI protocol module or add a new
MVCI protocol module with minimal effort. Today, the automotive after market requires flexible usage of
different protocol modules for vehicles of different brands. Many of today's protocol modules are incompatible
with regard to their hardware and software interface, such that, depending on the brand, a different protocol
module is required.
The objective of this part of ISO 22900 is to specify the diagnostic protocol data unit application programming
interface (D-PDU API) as a generic software interface, and to provide a “plug and play” concept for access
onto different MVCI protocol modules from different tool manufacturers. The D-PDU API will address the
generic software interface, the protocol abstraction, its exchangeability as well as the compatibility towards
existing standards such as SAE J2534-1 and RP1210a.
The implementation of the modular VCI concept facilitates co-existence and re-use of MVCI protocol modules,
especially in the after market. As a result, diagnostic or programming applications can be adapted for different
vehicle communication interfaces and different vehicles with minimal effort, thus helping to reduce overall
costs for the tool manufacturer and end user.
Vehicle communication interfaces compliant with ISO 22900 support a protocol-independent D-PDU API as
specified in this part of ISO 22900.
© ISO 2009 – All rights reserved
vii