D-PDU API – ISO 22900-2
The D-PDU API (Diagnostic Protocol Data Unit Application Programming Interface) is a software interface specified in ISO Standard 22900-2. It enables efficient access to VCI hardware as well as to the underlying communication protocols and bus systems. When using the D-PDU API, it is possible to develop diagnostic applications independently of the hardware and protocols used. The communication process can be controlled with high precision using a series of ISO-standardized parameters (ComParameters).
Overview
The following diagram shows a simplified overview of how the D-PDU API is used by an application:

Essentially, three layers of abstraction can be identified: the module level, the channel level, and the level of communication primitives.
A module typically contains a VCI or a DoIP element (a single DoIP controller or a collection of DoIP controllers).
A channel (ComLogicalLink) is a logical, virtual connection to one or, in the case of functional addressing, multiple control units. The definition of a ComLogicalLink consists of the bus type, the connection pins, the protocol, the communication parameters for the protocol, and the address pairs (transmit and receive addresses).
A communication primitive (ComPrimitive) typically represents a message that is sent to the electronic control unit (ECU) via a channel and for which a response is expected. In addition to messages that can be sent and received only once, there are also messages that can be sent or received only, as well as cyclic messages involving any combination of sending and receiving.
In addition to the functions, the D-PDU API programming interface includes a Module Description File (MDF) and a Cable Description File (CDF). All of these files are in an ISO-standardized XML format.
The MDF file includes, among other things, a list of supported modules and their resources. A resource consists of the bus type, the pins on the VCI, and the communication protocol. The MDF file also contains descriptions of manufacturer-specific error codes.
The CDF file contains all supported cable types and a description of how each cable connects the pins on the VCI to the vehicle’s pins.
Features
- Simultaneous Use of Multiple VCIs
- Parallel Communication with Multiple ECUs via a VCI
- Asynchronous/Cyclic Execution of Diagnostic Services/Sending Messages (Built-in Execution Queue/ComPrimitive Queue)
- Callback-based event mechanisms for preventing polling
- Full DoIP support
- Pure C API with 29 functions and structures
- Error Handling by Evaluating Return Values (No Exceptions)
- I/O Control Concept (This allows, among other things, for the implementation of OEM-specific requirements)
The D-PDU API is often used in conjunction with the MVCI server (ISO 22900-3, MCD-3D) and the ODX (ISO 22901-1, MCD-2D).
Since the D-PDU API is a very powerful programming interface, much of the protocol and transport logic is already contained within this layer. The application can therefore focus primarily on handling the payload data itself.
Integration into an Application
ISO 22900 defines a Windows registry path for Windows in which the full path to a so-called RDF file (Root Description File) (pdu_api_root.xml) must be specified. In Linux installations, the file can be found under /etc. The RDF file is in XML format and contains paths to all D-PDU APIs installed on the system and their configuration files.
