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 |
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 |