D-PDU API – ISO 22900-2

Die D-PDU API (Diagnostic Protocol Data Unit Application Programming Interface) ist eine in der ISO-Norm 22900-2 spezifizierte Softwareschnittstelle. Sie ermöglicht einen effizienten Zugriff auf VCI-Hardware sowie auf die darunter liegenden Kommunikationsprotokolle und Bussysteme. Bei der Benutzung der D-PDU API ist es möglich, Diagnoseanwendungen unabhängig von der verwendeten Hardware und den Protokollen zu entwickeln. Dabei kann der Kommunikationsablauf durch eine Reihe von ISO-normierten Parametern (ComParameter) hochpräzise gesteuert werden.

Ablauf

Das nachfolgende Diagramm zeigt einen vereinfachten Ablauf, wie D-PDU API von einer Applikation genutzt wird:

Vereinfachter Ablauf der D-PDU API
Vereinfachter Ablauf der D-PDU API

Im Wesentlichen lassen sich drei Abstraktionsschichten/Ebenen erkennen: die Modulebene, die Kanalebene und die Ebene der Kommunikationsprimitive.

Hinter einem Modul verbirgt sich in der Regel ein VCI oder ein DoIP-Element (ein einzelnes DoIP-Steuergerät oder eine Kollektion von DoIP-Steuergeräten).

Ein Kanal (ComLogicalLink) ist eine logische, virtuelle Verbindung zu einem oder, im Falle der funktionalen Adressierung, mehreren Steuergeräten. Die Definition eines ComLogicalLinks besteht aus dem Bus-Typ, den Verbindungspins, dem Protokoll, den Kommunikationsparametern fürs Protokoll und den Adresspaaren (Sende- und Empfangsadressen).

Ein Kommunikationsprimitiv (ComPrimitive) repräsentiert in der Regel eine Nachricht, die über einen Kanal an das Steuergerät (Electronic Control Unit) gesendet wird und auf die eine Antwort erwartet wird. Neben den einmalig sendbaren und empfangbaren Nachrichten gibt es auch nur sendbare oder nur empfangbare Nachrichten sowie zyklische Nachrichten in beliebigen Kombinationen aus Senden und Empfangen.

Zur Programmierschnittstelle der D-PDU API gehören neben den Funktionen auch eine Modulbeschreibungsdatei (Module Description File, MDF) und eine Kabelbeschreibungsdatei (Cable Description File, CDF). Alle diese Dateien liegen in einem ISO-normierten XML-Format vor.

In der MDF-Datei findet man unter anderem eine Auflistung der unterstützten Module und deren Ressourcen. Eine Ressource besteht aus dem Bus-Typ, den PINs am VCI und dem Kommunikationsprotokoll. In der MDF-Datei sind außerdem Beschreibungen für herstellerspezifische Fehlercodes zu finden.

Die CDF-Datei enthält alle verwendbaren Kabeltypen und eine Beschreibung, wie jedes Kabel die PINs am VCI mit den Fahrzeug-PINs verbindet.

Merkmale

  • Parallele Nutzung mehrere VCIs
  • Parallele Kommunikation mit mehreren ECUs über ein VCI
  • Asynchrone/Zyklische Ausführung von Diagnosediensten/verschicken von Nachrichten (eingebaute Execution-Queue/ComPrimitive-Queue)
  • Callback basierte Eventmechanismen zum Vermeiden vom Pollen
  • Volle DoIP-Unterstützung
  • Reine C-API mit 29 Funktionen und Strukturen
  • Fehlerbehandlung durch Auswertung von Rückgabewerten (keine Exceptions)
  • I/O-Control-Konzept (Damit können u.a. OEM-spezifische Anforderungen umgesetzt werden)

Die D-PDU API wird häufig zusammen mit dem MVCI-Server (ISO 22900-3, MCD-3D) und dem ODX (ISO 22901-1, MCD-2D) verwendet.

Da es sich bei der D-PDU API um eine sehr leistungsfähige Programmierschnittstelle handelt, ist ein Großteil der Protokoll- und Transportlogik bereits in dieser Schicht enthalten. Die Anwendung kann sich somit hauptsächlich auf das reine Handling der Nutzdaten konzentrieren.

Integration in einer Applikation

ISO 22900 definiert für Windows einen Windows-Registry-Pfad, in dem der vollständige Pfad zu einer so genannten RDF-Datei (Root Description File) (pdu_api_root.xml) angegeben werden muss. In Linux-Installationen ist die Datei unter /etc zu finden. Die RDF-Datei liegt im XML-Format vor und enthält Pfade zu allen auf dem System installierten D-PDU APIs und ihren Konfigurationsdateien.

Nach oben scrollen