DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_SWArchitecture FIG-e64e421a9168ea15 518 × 386 px 1 Release(s)

Figure 9.103: Interfaces for the UDS Transportlayer API (1 of 2)

SHA-256 Inhalts-Fingerabdruck: e64e421a9168ea150278a80307d6e1a5dbdc2d50df8e558df7c3789ceceea11f
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

  • Klassifikation: UML-Klassendiagramm / Komponenten-Schnittstellendiagramm der AUTOSAR Adaptive Platform (AP).
  • Architektur-Kontext: Spezifikation der UDS Transport Layer API innerhalb des Functional Clusters Diagnostic Management (DM) (AUTOSAR_EXP_SWArchitecture, Kapitel Diagnostic Management, Release R22-11).
  • Technischer Zweck: Entkopplung des Diagnose-Kerns (DM-Daemon) von transportspezifischen Protokoll-Implementierungen (z. B. DoIP, UDS-over-CAN/FR via ISO-TP). Die Schnittstellen definieren den bidirektionalen Vertrag für austauschbare Transport-Plugins (UDS Transportlayer Extension).

2. Komponenten, Entitäten & Schnittstellen

Entitäten & Stereotypen
  • «aapFunctionalCluster» Diagnostic Management (daemon-based):
    • Der zentrale Diagnose-Daemon der Adaptive Platform, zuständig für UDS-Session-Handling, Service-Dispatcher und Routing.
  • UDS Transportlayer Extension (UML-Komponente):
    • Protokollspezifische Erweiterungskomponente (Plugin/Treiber), die ein konkretes Transportprotokoll kapselt.
  • «aapNativeInterface, aapPlatformExtension» UdsTransportProtocolHandler:
    • Steuerungsschnittstelle des Transport-Handlers, aufgerufen durch den DM-Daemon:
      • GetHandlerID(): Liefert die eindeutige ID des Handlers.
      • GetPeriodicHandler(): Referenz auf Handler für periodische UDS-Botschaften (z. B. Service 0x2A).
      • Initialize() / Start() / Stop(): Lifecycle-Management des Protokoll-Stacks.
      • NotifyReestablishment(): Aufforderung zur Wiederherstellung eines abgerissenen Kommunikationskanals.
      • Transmit(): Anforderung zur Übertragung einer UDS-Nachricht über den Transportkanal.
  • «aapNativeInterface, aapPlatformExtension» UdsTransportProtocolMgr:
    • Callback- und Event-Schnittstelle des Diagnose-Managers, aufgerufen durch den Transport-Handler:
      • IndicateMessage(): Signalisiert den Empfang einer Diagnoseanfrage (Header-Parsing / Pufferallokation).
      • HandleMessage(): Übergabe der vollständig assemblierten Botschaft an den DM.
      • TransmitConfirmation() / PeriodicTransmitConfirmation(): Asynchrone Sendebestätigung.
      • NotifyMessageFailure(): Fehlersignalisierung bei Sende-/Empfangsabbrüchen.
      • ChannelReestablished(): Quittierung einer erfolgreichen Kanalwiederherstellung.
      • HandlerStopped(): Quittierung des kontrollierten Stopp-Vorgangs.
Beziehungen & Abhängigkeiten
  • «use»-Abhängigkeiten: Diagnostic Management greift aktiv über «use» auf beide Schnittstellen zu:
    • Steuernd auf UdsTransportProtocolHandler (Downlink).
    • Empfangend/verwaltend auf UdsTransportProtocolMgr (Uplink/Callback-Kontext).
  • Interface Realization: UDS Transportlayer Extension implementiert bzw. bindet die beiden nativen Plattform-Schnittstellen (UdsTransportProtocolHandler und UdsTransportProtocolMgr).

3. Dynamisches Verhalten & Sequenzablauf

Lifecycle & Initialisierung
  1. Start: DM ruft Initialize() und anschließend Start() auf dem UdsTransportProtocolHandler auf.
  2. Stop: Bei Shutdown oder Reinitialisierung triggert der DM Stop(); der Handler schließt offene Verbindungen und bestätigt den Zustand asynchron via HandlerStopped().
Empfangspfad (Rx)
  1. Puffer-Allokation: Eingehende PDU am Socket/Bus triggert UdsTransportProtocolMgr::IndicateMessage(). Der DM prüft Session-Status, Adressierung und reserviert Message-Puffer.
  2. Verarbeitung: Nach vollständigem Reassembly übergibt der Handler die Nutzlast via HandleMessage().
Sendepfad (Tx)
  1. Request: DM initiiert die Übertragung einer UDS-Response über UdsTransportProtocolHandler::Transmit().
  2. Confirmation: Nach physischer Leitungsübertragung meldet der Handler den Erfolg via TransmitConfirmation() (bzw. PeriodicTransmitConfirmation()).
  3. Abbruch: Tritt ein Socket-/Bus-Fehler auf, wird NotifyMessageFailure() aufgerufen; der DM bricht den Diagnose-Zyklus ab und setzt Timeouts zurück.
Kanal-Wiederherstellung (Reestablishment)
  • Bei Verbindungsabriss (z. B. TCP-Reset im DoIP-Stack) fordert der DM via NotifyReestablishment() einen Neuaufbau an. Nach erfolgreichem Handshake quittiert der Handler über ChannelReestablished().

4. Normative Relevanz & Entwickler-Hinweise

  • API-Klassifikation (aapPlatformExtension): Keine standardisierte Anwendungs-API für Adaptive Applications (ara::diag), sondern eine plattforminterne C++-Schnittstelle zur Stack-Erweiterung. Zielgruppe sind Platform- und Stack-Integratoren.
  • Speicher- und Lebensdauermanagement:
    • Transmit() arbeitet streng asynchron: Der vom DM übergebene Puffer darf vom Transport-Plugin erst nach Auslösen von TransmitConfirmation() oder NotifyMessageFailure() freigegeben/recycelt werden.
    • Zero-Copy-Strategien erfordern strikte Einhaltung der Allokationsphase zwischen IndicateMessage() und HandleMessage().
  • Threading- & Reentrancy-Modell:
    • Methoden des UdsTransportProtocolMgr werden typischerweise aus dem Kontext von Worker-Threads oder I/O-Event-Loops (z. B. epoll bei DoIP) aufgerufen. Implementierungen müssen thread-safe gegen den DM-Kern synchronisiert sein.
  • Fehlerbehandlung: Abweichend von Classic AUTOSAR (keine Det/Dem-Kopplung) erfolgt das Reporting typischerweise über C++-Exceptions bzw. standardisierte ara::core::Result / ara::core::ErrorCode-Mechanismen.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R23-11 → R24-11 keine inhaltliche Änderung Vorgänger: FIG-1c35b1d7325cf4b7

Keine inhaltlichen Änderungen erkennbar.

R24-11 → R25-11 normative Änderung Nachfolger: FIG-5a2a0f2ed80fbff1
  • Beziehungsumkehr (Realization vs. Use): Die Realisierungs- und Nutzungsbeziehungen wurden invertiert. Diagnostic Management realisiert nun beide Schnittstellen (UdsTransportProtocolHandler und UdsTransportProtocolMgr) über Interface-Realization (gestrichelte Linien mit hohler Dreiecksspitze), während UDS Transportlayer Extension beide Schnittstellen über «use»-Abhängigkeiten nutzt.
  • UdsTransportProtocolHandler: Sämtliche Operationen (GetHandlerID, GetPeriodicHandler, Initialize, NotifyReestablishment, Start, Stop, Transmit) sind nun unter dem Methoden-Stereotyp «aapCallbackMethod» zusammengefasst.
  • UdsTransportProtocolMgr: Sämtliche Operationen (ChannelReestablished, HandleMessage, HandlerStopped, IndicateMessage, NotifyMessageFailure, PeriodicTransmitConfirmation, TransmitConfirmation) sind nun unter dem Methoden-Stereotyp «aapCallbackMethod» zusammengefasst.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«aapFunctionalCluster» Diagnostic Management daemon-based | «aapNativeInterface,aapPlatformExtens... | UdsTransportProtocolHandler | + GetHandlerID() + GetPeriodicHandler() + Initialize() + NotifyReestablishment() + Start() + Stop() + Transmit() | «aapNativeInterface,aapPlatformExtens... | UdsTransportProtocolMgr | + ChannelReestablished() + HandleMessage() + HandlerStopped() + IndicateMessage() + NotifyMessageFailure() + PeriodicTransmitConfirmation() + TransmitConfirmation() | UDS Transportlayer Extension | «use» «use»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R24-11 AUTOSAR_AP_EXP_SWArchitecture S. 154 9.103 Figure 9.103: Interfaces for the UDS Transportlayer API (1 of 2)