Shopping Cart

No products in the cart.

BS ISO 22900-2:2022

$215.11

Road vehicles. Modular vehicle communication interface (MVCI) – Diagnostic protocol data unit (D-PDU API)

Published By Publication Date Number of Pages
BSI 2022 446
Guaranteed Safe Checkout
Categories: ,

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. We’re here to assist you 24/7.
Email:[email protected]

PDF Catalog

PDF Pages PDF Title
2 undefined
11 1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
12 3.1 Terms and definitions
13 3.2 Abbreviated terms
16 4 Specification release version information
4.1 Specification release version location
4.2 Specification release version
5 Modular VCI use cases
5.1 OEM merger
5.2 OEM cross vehicle platform ECU(s)
17 5.3 Central source diagnostic data and exchange during ECU development
5.4 OEM franchised dealer and aftermarket service outlet diagnostic tool support
6 Modular VCI software architecture
6.1 Overview
18 6.2 Modular VCI D-Server software
19 6.3 Runtime format based on ODX
6.4 MVCI protocol module software
6.5 MVCI protocol module configurations
20 7 D-PDU API use cases
7.1 Overview
21 7.2 Use case 1: Single MVCI protocol module
22 7.3 Use case 2: Multiple MVCI protocol modules supported by same D-PDU API implementation
23 7.4 Use case 3: Multiple MVCI protocol modules supported by different D-PDU API implementations
24 8 Diagnostic protocol data unit (D-PDU) API
8.1 Software requirements
8.1.1 General requirements
25 8.1.2 Vehicle protocol requirements
26 8.1.3 Timing requirements for protocol handler messages
27 8.1.4 Serialization requirements for protocol handler messages
29 8.1.5 Compatibility requirements
8.1.6 Timestamp requirements
8.1.6.1 General
8.1.6.2 Timestamp for transmitted messages
8.1.6.3 Timestamp for received messages
8.1.6.4 Timestamp for events, errors and indications
8.1.6.5 Timestamp for start of message indication
30 8.2 API function overview and communication principles
8.2.1 Terms used within the D-PDU API
8.2.1.1 Resource
8.2.1.2 ComLogicalLink
8.2.1.3 ComPrimitive
8.2.1.4 ComParam
8.2.2 Function overview
31 8.2.3 General usage
34 8.2.4 Asynchronous and synchronous communication
8.2.4.1 General
8.2.4.2 Event callback (asynchronous mode)
35 8.2.4.3 Polling (synchronous mode)
8.2.5 Usage of resource locking and resource unlocking
8.2.6 Usage of ComPrimitives
8.2.6.1 ComPrimitive overview
36 8.2.6.2 ComPrimitive send/receive cycle overview
8.2.6.2.1 General
8.2.6.2.2 NumReceiveCycles description
8.2.6.2.3 NumSendCycles description
37 8.2.6.3 ComPrimitive principles
8.2.6.3.1 General
38 8.2.6.3.2 Starting communication
40 8.2.6.3.3 Stopping communication
8.2.6.3.4 Send and receive handling
43 8.2.6.3.5 ComPrimitives in non-raw mode
44 8.2.6.3.6 ComPrimitives in raw mode (PassThru)
8.2.6.4 ComPrimitive sequence diagrams
8.2.6.4.1 Single request/single response (master/slave communication) — Event notification
45 8.2.6.4.2 Single request/single response (master/slave communication) — Polling mode
46 8.2.6.4.3 Single request/multiple responses
48 8.2.6.4.4 Single request/multiple responses — Functional addressing
50 8.2.6.4.5 Single or multiple requests/no responses
51 8.2.6.4.6 No request/single or multiple responses
8.2.6.5 Parallel execution of ComPrimitives
8.2.6.6 Cancelling a running ComPrimitive
52 8.2.6.7 Destruction of ComPrimitives
8.3 Tool integration
8.3.1 Requirement for generic configuration
8.3.2 Tool integrator — Use case
54 8.4 API functions — Interface description
8.4.1 Overview
8.4.2 PDUConstruct
8.4.2.1 Purpose
8.4.2.2 Behaviour
55 8.4.2.3 C/C++ prototype
8.4.2.4 Parameters
8.4.2.5 Example
8.4.2.6 Return values
8.4.3 PDUDestruct
8.4.3.1 Purpose
56 8.4.3.2 Behaviour
8.4.3.3 C/C++ prototype
8.4.3.4 Parameters
8.4.3.5 Return values
8.4.4 PDUIoCtl
8.4.4.1 Purpose
8.4.4.2 Behaviour
57 8.4.4.3 C/C++ prototype
8.4.4.4 Parameters
8.4.4.5 Examples
8.4.4.6 Return values
58 8.4.5 PDUGetVersion
8.4.5.1 Purpose
8.4.5.2 Behaviour
8.4.5.3 C/C++ prototype
8.4.5.4 Parameters
59 8.4.5.5 Return values
8.4.6 PDUGetStatus
8.4.6.1 Purpose
8.4.6.2 Behaviour
8.4.6.3 C/C++ prototype
8.4.6.4 Parameters
60 8.4.6.5 Return values
8.4.7 PDUGetLastError
8.4.7.1 Purpose
8.4.7.2 Behaviour
8.4.7.3 C/C++ prototype
61 8.4.7.4 Parameters
8.4.7.5 Return values
8.4.8 PDUGetResourceStatus
8.4.8.1 Purpose
62 8.4.8.2 Behaviour
8.4.8.3 C/C++ prototype
8.4.8.4 Parameters
8.4.8.5 Return values
8.4.9 PDUCreateComLogicalLink
8.4.9.1 Purpose
8.4.9.1.1 General
63 8.4.9.1.2 Unknown resource id scheme
8.4.9.1.3 Specific resource id scheme
8.4.9.2 Behaviour
8.4.9.2.1 Behaviour — Use cases
64 8.4.9.3 C/C++ prototype
8.4.9.4 Parameters
65 8.4.9.5 Return values
8.4.10 PDUDestroyComLogicalLink
8.4.10.1 Purpose
8.4.10.2 Behaviour
66 8.4.10.3 C/C++ prototype
8.4.10.4 Parameters
8.4.10.5 Return values
67 8.4.11 PDUConnect
8.4.11.1 Purpose
8.4.11.2 Behaviour
8.4.11.3 C/C++ prototype
8.4.11.4 Parameters
68 8.4.11.5 Return values
69 8.4.12 PDUDisconnect
8.4.12.1 Purpose
8.4.12.2 Behaviour
8.4.12.3 C/C++ prototype
8.4.12.4 Parameters
70 8.4.12.5 Return values
8.4.13 PDULockResource
8.4.13.1 Purpose
8.4.13.2 Behaviour
8.4.13.3 Behaviour — Use cases
71 8.4.13.4 C/C++ prototype
8.4.13.5 Parameters
8.4.13.6 Return values
8.4.14 PDUUnlockResource
8.4.14.1 Purpose
72 8.4.14.2 Behaviour
8.4.14.3 C/C++ prototype
8.4.14.4 Parameters
8.4.14.5 Return values
8.4.15 PDUGetComParam
8.4.15.1 Purpose
73 8.4.15.2 Behaviour
8.4.15.3 C/C++ prototype
8.4.15.4 Parameters
8.4.15.5 Return values
74 8.4.15.6 Example for ComParam Buffer Operation
75 8.4.15.7 Example for ComParam buffer operation for PDUConnect
8.4.15.8 Example for ComParam buffer operation using TempParamUpdate flag
76 8.4.15.9 Example for ComParam buffer operation using PDU_COPT_UPDATEPARAM
78 8.4.15.10 Example for ComParam buffer attachment to a ComPrimitive
79 8.4.15.11 Additional example for ComPrimitive queuing
8.4.16 PDUSetComParam
8.4.16.1 Purpose
8.4.16.2 Behaviour
80 8.4.16.2.1 Behaviour — Use cases
81 8.4.16.3 C/C++ prototype
8.4.16.4 Parameters
8.4.16.5 Return values
82 8.4.17 PDUStartComPrimitive
8.4.17.1 Purpose
8.4.17.2 Behaviour
83 8.4.17.2.1 Behaviour — Use cases
84 8.4.17.2.2 Behaviour — ComPrimitive status events
85 8.4.17.3 C/C++ prototype
8.4.17.4 Parameters
86 8.4.17.5 Return values
8.4.18 PDUCancelComPrimitive
8.4.18.1 Purpose
8.4.18.2 Behaviour
87 8.4.18.3 C/C++ prototype
8.4.18.4 Parameters
8.4.18.5 Return values
8.4.19 PDUGetEventItem
8.4.19.1 Purpose
8.4.19.2 Behaviour
88 8.4.19.3 C/C++ prototype
8.4.19.4 Parameters
8.4.19.5 Return values
8.4.20 PDUDestroyItem
8.4.20.1 Purpose
89 8.4.20.2 Behaviour
8.4.20.3 C/C++ prototype
8.4.20.4 Parameters
8.4.20.5 Return values
8.4.21 PDURegisterEventCallback
8.4.21.1 Purpose
8.4.21.2 Behaviour
90 8.4.21.3 C/C++ Prototype
91 8.4.21.4 Parameters
8.4.21.5 Return values
8.4.22 EventCallback prototype
8.4.22.1 Purpose
92 8.4.22.2 C/C++ prototype
8.4.22.3 Parameters
8.4.22.4 Return values
93 8.4.23 PDUGetObjectId
8.4.23.1 Purpose
8.4.23.2 Behaviour
8.4.23.3 C/C++ prototype
8.4.23.4 Parameters
8.4.23.5 Return values
94 8.4.24 PDUGetModuleIds
8.4.24.1 Purpose
8.4.24.2 Behaviour
95 8.4.24.2.1 Behaviour — Use cases
8.4.24.3 C/C++ prototype
8.4.24.4 Parameters
96 8.4.24.5 Return values
8.4.25 PDUGetResourceIds
8.4.25.1 Purpose
8.4.25.2 Behaviour
8.4.25.3 C/C++ prototype
8.4.25.4 Parameters
97 8.4.25.5 Return values
8.4.26 PDUGetConflictingResources
8.4.26.1 Purpose
8.4.26.2 Behaviour
98 8.4.26.3 C/C++ prototype
8.4.26.4 Parameters
8.4.26.5 Return values
8.4.27 PDUGetUniqueRespIdTable
8.4.27.1 Purpose
99 8.4.27.2 Behaviour
8.4.27.3 C/C++ prototype
8.4.27.4 Parameters
8.4.27.5 Return values
100 8.4.28 PDUSetUniqueRespIdTable
8.4.28.1 Purpose
8.4.28.2 Behaviour
8.4.28.2.1 Behaviour — Use cases
8.4.28.3 C/C++ prototype
101 8.4.28.4 Parameters
8.4.28.5 Return values
8.4.28.6 Using the Unique Response ID Table (URID table) for physical and functional addressing
103 8.4.28.7 Handling of known and unknown responses from an ECU
8.4.28.7.1 Use cases
104 8.4.28.7.2 Handling of known ECU response ids
8.4.28.7.3 Handling of unknown ECU response ids
8.4.28.7.4 ECU response handling flow chart
105 8.4.29 PDUModuleConnect
8.4.29.1 Purpose
106 8.4.29.2 Behaviour
8.4.29.2.1 Behaviour — Use cases
107 8.4.29.3 C/C++ prototype
8.4.29.4 Parameters
8.4.29.5 Return values
108 8.4.30 PDUModuleDisconnect
8.4.30.1 Purpose
8.4.30.2 Behaviour
8.4.30.3 C/C++ prototype
8.4.30.4 Parameters
8.4.30.5 Return values
109 8.4.31 PDUGetTimestamp
8.4.31.1 Purpose
8.4.31.2 Behaviour
8.4.31.3 C/C++ prototype
8.4.31.4 Parameters
8.4.31.5 Return values
8.5 I/O control section
8.5.1 IOCTL API command overview
112 8.5.2 PDU_IOCTL_RESET
8.5.3 PDU_IOCTL_CLEAR_TX_QUEUE
113 8.5.4 PDU_IOCTL_SUSPEND_TX_QUEUE
8.5.5 PDU_IOCTL_RESUME_TX_QUEUE
114 8.5.6 PDU_IOCTL_CLEAR_RX_QUEUE
8.5.7 PDU_IOCTL_CLEAR_TX_QUEUE_PENDING
115 8.5.8 PDU_IOCTL_READ_VBATT
8.5.9 PDU_IOCTL_SET_PROG_VOLTAGE
116 8.5.10 PDU_IOCTL_READ_PROG_VOLTAGE
117 8.5.11 PDU_IOCTL_GENERIC
118 8.5.12 PDU_IOCTL_SET_BUFFER_SIZE
8.5.13 PDU_IOCTL_GET_CABLE_ID
119 8.5.14 PDU_IOCTL_START_MSG_FILTER
120 8.5.14.1 MSG_FILTER block diagram
121 8.5.15 PDU_IOCTL_STOP_MSG_FILTER
8.5.16 PDU_IOCTL_CLEAR_MSG_FILTER
122 8.5.17 PDU_IOCTL_SET_EVENT_QUEUE_PROPERTIES
123 8.5.18 PDU_IOCTL_SEND_BREAK
8.5.19 PDU_IOCTL_READ_IGNITION_SENSE_STATE
124 8.5.20 PDU_IOCTL_VEHICLE_ID_REQUEST
8.5.20.1 General
126 8.5.20.1.1 Handling successive calls of PDU_IOCTL_VEHICLE_ID_REQUEST
127 8.5.20.2 PDU_IOCTL_VEHICLE_ID_REQUEST return values
8.5.21 PDU_IOCTL_SET_ETH_SWITCH_STATE
8.5.21.1 General
128 8.5.21.2 PDU_IOCTL_SET_ETH_SWITCH_STATE return values
8.5.22 PDU_IOCTL_GET_ENTITY_STATUS
8.5.22.1 General
8.5.22.2 PDU_IOCTL_GET_ENTITY_STATUS return values
129 8.5.23 PDU_IOCTL_GET_DIAGNOSTIC_POWER_MODE
8.5.23.1 General
8.5.23.2 PDU_IOCTL_GET_DIAGNOSTIC_POWER_MODE return values
130 8.5.24 PDU_IOCTL_GET_ETH_PIN_OPTION
8.5.24.1 General
8.5.24.2 PDU_IOCTL_GET_ETH_PIN_OPTION return values
131 8.5.25 PDU_IOCTL_TLS_SET_CERTIFICATE
8.5.25.1 PDU_IOCTL_TLS_SET_CERTIFICATE return values
132 8.5.26 PDU_IOCTL_DOIP_GET_CURRENT_SESSION_MODE
8.5.26.1 PDU_IOCTL_DOIP_GET_CURRENT_SESSION_MODE return values
133 8.5.27 PDU_IOCTL_ISOBUS_GET_DETECTED_CFS
8.5.27.1 PDU_IOCTL_ISOBUS_GET_DETECTED_CFS return values
8.6 API functions — Error handling
8.6.1 Synchronous error handling
8.6.2 Asynchronous error handling
134 8.7 Installation
8.7.1 Generic description
8.7.2 Windows installation process
8.7.2.1 Locating the Windows D-PDU API DLL
135 8.7.2.2 Loading the Windows D-PDU API DLL
8.7.3 Linux installation process
8.7.3.1 Locating the Linux D-PDU API shared library
8.7.3.2 Loading the Linux D-PDU API shared library
136 8.7.4 Selecting MVCI protocol modules
8.8 Application notes
8.8.1 Interaction with the MDF
8.8.2 Accessing additional hardware features for MVCI protocol modules
8.8.3 Documentation and information provided by MVCI protocol module vendors
137 9 Using the D-PDU API with existing applications
9.1 SAE J2534-1 and RP1210a existing standards
138 10 Data structures
10.1 API functions — Data structure definitions
10.1.1 Abstract basic data types
139 10.1.2 Definitions
10.1.3 Bit encoding for UNUM32
10.1.4 API data structures
10.1.4.1 General
140 10.1.4.2 Generic item for type evaluation and casting
141 10.1.4.3 Items for IOCTL data transfer (PDUIoctl)
10.1.4.3.1 Item for Generic IOCTL data item
10.1.4.3.2 IOCTL programming voltage structure (PDU_IT_IO_PROG_VOLTAGE)
10.1.4.3.3 IOCTL byte array structure (PDU_IT_IO_BYTEARRAY)
10.1.4.3.4 IOCTL filter list structure (PDU_IT_IO_FILTER)
10.1.4.3.5 IOCTL filter data structure
142 10.1.4.3.6 IOCTL event queue property structure (PDU_IT_IO_EVENT_QUEUE_PROPERTY)
10.1.4.3.7 IOCTL vehicle ID request structure (PDU_IOCTL_VEHICLE_ID_REQUEST)
143 10.1.4.3.8 IOCTL set Ethernet switch state structure (PDU_IOCTL_SET_ETH_SWITCH_STATE)
10.1.4.3.9 IOCTL set certificate structure (PDU_IT_IO_TLS_CERTIFICATE)
10.1.4.4 Item for resource status information (used by PDUGetResourceStatus)
144 10.1.4.5 Item for ComParam data (used by PDUGetComParam, PDUSetComParam)
10.1.4.6 Item for module identification (used by PDUGetModuleIds)
145 10.1.4.7 Items for resource identification (used by PDUGetResourceIds)
10.1.4.8 Structure for resource data (used by PDUGetResourceIds and PDUCreateComLogicalLink)
146 10.1.4.9 Item for conflicting resources (used by PDUGetConflictingResources)
10.1.4.10 Item for unique response identification (used by PDUGetUniqueRespIdTable and PDUSetUniqueRespIdTable)
147 10.1.4.11 Item for event notification
148 10.1.4.11.1 Structure for status data
10.1.4.11.2 Asynchronous event information notification for PDU_IT_INFO Item
10.1.4.11.3 Asynchronous error notification structure for the PDU_IT_ERROR Item
10.1.4.11.4 Structure for result data
149 10.1.4.12 Structure for extra result data information
10.1.4.13 Structure for flag data
10.1.4.14 Structure for version information (used by PDUGetVersion)
150 10.1.4.15 Coding of version numbers
10.1.4.16 Coding of dates
10.1.4.17 Structure to control a ComPrimitive’s operation (used by PDUStartComPrimitive)
151 10.1.4.18 Data Items for IOCTL PDU_IOCTL_GET_ENTITY_STATUS
10.1.4.19 Structure for expected response
152 10.1.4.19.1 Expected response type
153 10.1.4.19.2 Array of unique response ids (pUniqueRespIds)
10.1.4.19.3 Expected response matching rules
10.1.4.19.4 Expected response example
154 10.1.4.19.5 Expected response structure (RawMode/NonRawMode)
155 Annex A (normative)D-PDU API compatibility mappings
A.1 Mapping of D-PDU API and D-Server API
A.2 Mapping of D-PDU API and ODX
156 Annex B (normative)D-PDU API standard ComParams and protocols
B.1 Standardized protocols — Support and naming conventions
B.1.1 General
B.1.2 SAE J2534 and RP1210a standard protocol names
157 B.1.3 Protocol names — Combination list
158 B.1.4 Standard protocol naming guidelines
B.1.5 Standard protocol short names
159 B.1.6 D-PDU API optional OBD protocol short names
160 B.2 Standard protocol pin types and short names
B.3 Standard protocol communication parameters (ComParams)
B.3.1 Protocol ComParam description method
162 B.3.2 ComParam class
163 B.3.3 ComParam data type
B.3.3.1 ComParam BYTEFIELD data type
164 B.3.3.2 ComParam STRUCTFIELD data type
B.3.3.2.1 ComParamStructType typedef
165 B.3.3.2.2 ComParam STRUCTFIELD = Session timing
B.3.3.2.3 ComParam STRUCTFIELD = Access timing
166 B.3.3.2.4 ComParam STRUCTFIELD = TLS version and cipher
B.3.3.3 ComParam LONGFIELD Data Type
167 B.3.4 ComParam support
B.3.5 ComParam usage
168 B.3.6 ComParam OSI layer reference
B.4 ComParam summary tables
B.4.1 Application layer
172 B.4.2 Transport layer
181 B.4.3 Physical layer
183 B.4.4 CAN identifier format for ISO 15765 and ISO 11898 protocols
190 B.4.4.1 CAN identifier format example
191 B.4.4.2 CAN frame example
192 B.4.5 Non-CAN ComParam examples
B.4.6 29-bit CAN identifier data page bits
193 B.5 ComParam detailed descriptions
B.5.1 ComParam definitions for application layer
207 B.5.2 ComParam definitions for transport layer
240 B.5.3 ComParam definitions for physical layer
245 Annex C (informative)D-PDU API manufacturer-specific ComParams and protocols
C.1 Manufacturer-specific protocols — Support and naming conventions
C.1.1 General
C.1.2 Manufacturer protocol naming guidelines
C.1.3 Manufacturer protocol communication parameters (ComParams)
247 Annex D (informative)D-PDU API constants
D.1 Constants
D.1.1 D-PDU API item type values
D.1.2 ComPrimitive type values
248 D.1.3 Object type values
249 D.1.4 Status code values
250 D.1.5 Information event values
D.1.6 Resource status values
251 D.1.7 Resource lock values
D.1.8 Event callback data values
252 D.1.9 Reserved ID and handle values
D.1.10 IOCTL filter types values
D.1.11 IOCTL event queue mode type values
253 D.2 Flag definitions
D.2.1 TxFlag definition
254 D.2.2 RxFlag definition
255 D.2.3 CllCreateFlag definition
257 D.2.4 TimestampFlag definition
D.3 Function return values
260 D.4 Event error codes
D.4.1 Error event code returned in PDU_IT_ERROR
261 D.4.2 Additional error code returned in PDU_IT_ERROR
263 Annex E (informative)Application defined tags
264 Annex F (informative)RDF and MDF description files
F.1 D-PDU API root description file (RDF)
F.1.1 General
F.1.2 UML diagram of RDF
265 F.2 MVCI module description file (MDF)
F.2.1 General
F.2.2 ComParam string format
F.2.2.1 General
F.2.2.2 String format for numeric values (data type PDU_PT_UNUMx or PDU_PT_SNUMx)
266 F.2.2.3 String format for bytefield values (data type PDU_PT_BYTEFIELD)
267 F.2.2.4 String format for long field structures (data type PDU_PT_LONGFIELD)
F.2.2.5 String format for complex structures (data type PDU_PT_STRUCTFIELD)
268 F.2.3 ComParam resolution tag
F.2.4 UML diagram of MDF
269 F.2.5 UML diagram of MDF elements COMPARAM
270 F.2.6 UML diagram of MDF element RESOURCE
F.2.7 UML diagram of MDF element MODULETYPE
271 F.3 Cable description file (CDF)
F.3.1 General
F.3.2 UML diagram of CDF
272 F.4 XML schema
278 F.5 Description file examples
F.5.1 Example MVCI protocol module
280 F.5.2 Example root description file
281 F.5.3 Example module description file
333 F.5.4 Example cable description file
335 Annex G (informative)Resource handling scenarios
G.1 Resource handling at the API level
G.1.1 Obtaining resource and object ids
G.1.1.1 General
G.1.1.2 Using an XML parser
337 G.1.1.3 Using D-PDU API functions for resource information
338 G.1.1.4 Retrieving conflicting resources
G.1.2 Example MVCI protocol module resource selection
341 Annex H (informative)D-PDU API partitioning
H.1 Functional partitioning of a D-PDU API
H.1.1 ODX data base
H.1.2 MVCI D-Server
H.1.2.1 Com Primitive Creator/Handler
H.1.2.2 Rx Logical Data Request
H.1.2.3 D-PDU Builder
H.1.2.4 D-PDU Checker
H.1.2.5 Data Extractor
H.1.3 VCI protocol module
H.1.3.1 D-PDU API
342 H.1.3.2 D-PDU Scheduler
H.1.3.3 Logical Link parameter/filter configuration
343 H.1.3.4 TesterPresent scheduler
H.1.3.5 Resource manager
H.1.3.6 Protocol driver
H.1.3.7 Hardware driver
H.1.3.8 Hardware filters
H.1.3.9 Software filters
H.1.3.9.1 Block filter
H.1.3.9.2 PASS filter
H.1.3.10 ISO 15765 USDT/UUDT frames
H.1.3.11 Negative response Code 0x7F filter handler
H.1.3.12 Unique response binding
344 H.1.3.13 ComPrimitive binding
H.1.4 Vehicle bus network
345 Annex I (informative)Use case scenarios
I.1 Negative response handling scenarios
I.1.1 General
I.1.2 Physical addressing
350 I.1.3 Functional addressing
357 I.1.3.1 General
I.1.3.2 Setup assumptions
I.1.3.3 Steps
359 I.2 ISO 14229-1 UDS
I.2.1 Suppress positive response scenarios
363 I.2.2 Service 0x2A use case scenario
I.2.2.1 General
I.2.2.2 Overview
364 I.2.2.3 Response type #1
365 I.2.2.4 Response type #2
366 I.2.2.5 Negative response handling any periodic identifier set to 7F
367 I.3 Service shop use case scenario
368 I.4 Vehicle bus baud rate changing scenario
I.4.1 General
I.4.2 Device use
369 I.4.3 Example scenarios
371 I.5 SAE J1939 use cases
I.5.1 SAE J1939 CAN ID Formation
372 I.5.2 Setting up ComParams for a SAE J1939 ComLogicalLink
373 I.5.3 Case 1: Receiving active DTC from DM1 PGN 65226 (0xFECA)
I.5.4 Case 2: Receive PGN 65264 (0xfef0) — ECU data
374 I.5.5 Case 3: Request previously active DTC PGN 65227 (0xFECB)
375 I.5.6 Case 4: Read VIN PGN 65260 (0xFEEC)
376 I.5.7 Case 5: Clear specific DTC (DM22) PGN 49920 (0xC300)
I.5.8 Case 6: Read VIN in raw mode PGN 65260 (0xFEEC)
377 I.5.9 Case 7: Data security in raw mode (DM18) PGN 54272 (0xD400)
378 I.6 Multiple clients use cases
I.6.1 Definition
379 I.6.2 Multiple clients’ configurations
I.6.2.1 General
380 I.6.2.2 Case #1: MVCI used by two processes in two separate hosts
I.6.2.3 Case #2: MVCI used by two processes in a single host
381 I.6.2.4 Case #3: MVCI used by two independent threads in a single process
383 I.6.3 Example scenarios
384 I.7 P3 sequencing
386 Annex J (informative)OBD protocol initialization
J.1 OBD application
J.1.1 OBD concept
J.1.2 Automatic OBD protocol determination
J.1.2.1 OBD protocol determination concept
J.1.2.2 OBD protocol determination using the D-PDU API
387 J.1.3 Simultaneous protocol scan sequence using the D-PDU API
J.1.3.1 General
J.1.3.2 OBD SAE J1850 protocol determination
J.1.3.2.1 General D-PDU API information on OBD SAE J1850 protocol
388 J.1.3.2.2 OBD SAE J1850 VPW scan sequence
389 J.1.3.2.3 OBD SAE J1850 PWM scan sequence
J.1.3.3 OBD ISO K-Line protocol determination
J.1.3.3.1 General D-PDU API information on OBD ISO K-Line protocol
391 J.1.3.3.2 OBD ISO K-Line scan sequence (fast init)
J.1.3.3.3 ISO 14230-4 protocol defined key bytes
J.1.3.3.4 OBD K-line protocol fast initialization flow chart
393 J.1.3.3.5 OBD ISO K-Line scan sequence (5 baud init)
J.1.3.3.6 ISO 9141-2 protocol defined key bytes
394 J.1.3.3.7 OBD ISO K-Line protocol 5-baud initialization flow chart
396 J.1.3.4 OBD CAN protocol determination
J.1.3.4.1 General D-PDU API information on OBD CAN protocol
397 J.1.3.4.2 OBD ISO CAN scan sequence
J.1.3.4.2.1 General
398 J.1.3.4.2.2 11-bit CAN ID
J.1.3.4.2.3 29-bit CAN Id (ISO 15765-4)
399 J.1.3.4.3 OBD CAN baud rate detection
402 Annex K (normative)DoIP implementation
K.1 DoIP vehicle architecture
403 K.2 DoIP use case definition
K.2.1 Diagram with use cases and actors
K.2.2 Use cases
K.2.2.1 UC 1: Physical ECU addressed on remote network
404 K.2.2.2 UC 2: Physical ECU addressed on local network
K.2.2.3 UC 3: Physical ECU addressed on remote network in parallel to a physical ECU addressed on a local network
K.2.2.4 UC 4: Functional group of ECUs addressed on remote network
405 K.2.2.5 UC 5: Functional ECUs addressed on local network
K.2.2.6 UC 6: Functional group of ECUs addressed where ECUs are located on remote network and on local network
K.2.2.7 UC 7: Secured connection to ECU addressed on local network
K.2.3 D-PDU API and D-Server
406 K.2.4 MVCI and D-PDU API
K.2.4.1 Overview
408 K.2.4.2 DoIP vehicle identification request
K.2.4.2.1 General
K.2.4.2.2 Destination selection
409 K.2.4.2.3 DoIP node preselection and combination
410 K.2.4.3 DoIP MVCI module types
412 K.2.4.4 Example MDF for a DoIP capable D-PDU API
416 K.2.5 ISO 13400-3 Ethernet pin option determination and activation
K.2.5.1 Overview
K.2.5.2 Use cases descriptions and workflow
417 K.3 Handling of the DoIP protocol in D-PDU API
K.3.1 General
418 K.3.2 Overview: Usage of D-PDU API for DoIP protocol
423 K.3.3 Socket handling
K.3.3.1 Logical connections
K.3.3.2 Changing ComParams using the ComPrimitive PDU_COPT_UPDATEPARAM
K.3.4 D-PDU API DoIP NACK behaviour
427 K.3.5 Automatic DoIP reconnect handling
K.3.5.1 Overview
K.3.5.2 General sequence definition
429 K.3.5.3 Automatic DoIP reconnect handling during ComPrimitive execution
431 K.3.5.4 Automatic DoIP reconnect handling independent from ComPrimitive execution
432 K.3.5.5 Definition of optional ComParams
K.3.6 Handling of functional communication in case of multiple DoIP gateways
435 Annex L (normative)ISOBUS
L.1 Introduction
L.2 Additional header bytes in the request PDU
436 L.3 ISOBUS protocol control link (IPC-Link)
L.3.1 General
437 L.3.2 Execution of StartComm on the IPC-Link
L.3.3 CF-Detection on the IPC-Link
L.3.4 Detection of additional control functions
L.3.5 Handling of control functions disappearing from the bus
L.4 Avoid target Address 0xFE with ISO
438 L.5 Use cases
L.5.1 Overview: Usage of D-PDU API for ISOBUS protocols
439 L.5.2 Example for Transport Layer ISO_11783_5: request DM1
L.5.2.1 Bus Logging (fiction)
440 L.5.2.2 Protocol configuration
L.5.3 Example for transport layer ISO_15765_2_with_ISO_11783_5: physical communication
L.5.3.1 General
441 L.5.3.2 Bus Logging (fiction)
L.5.3.3 Protocol configuration
BS ISO 22900-2:2022
$215.11