DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_PDURouter FIG-72f5c6e886349da9 899 × 741 px 1 Release(s)

Figure 22: PduRBswModules

SHA-256 Inhalts-Fingerabdruck: 72f5c6e886349da9213e00c8d12ad53c65d16b181b211ad4b2285c6fdfbcf862
✦ 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 / Metamodell-Ausschnitt der AUTOSAR ECU Configuration Parameter Definition (EcucParameterDefinition) gemäß ECU Configuration Description Template.
  • Technischer Zweck: Formale Definition des Konfigurationscontainers PduRBswModules im PDU Router (PduR).
  • Funktionale Einordnung: Der PDU Router agiert im AUTOSAR Communication Stack als zentraler Switch auf PDU-Ebene zwischen oberen Schichten (z. B. Com, Dcm, J1939Dcm), unteren Schichten (z. B. CanIf, LinIf, FrIf) und Transportprotokollen (z. B. CanTp, FrTp, LinTp, SoAd). Über PduRBswModules werden die Eigenschaften, Schnittstellenverträge und Fähigkeiten (Capabilities) jedes angebundenen BSW-Moduls deklariert. Dies steuert direkt die Codegenerierung der Routing-Tabellen, Wrapper-Funktionen und Pre-Compile-Optimierungen.

2. Komponenten, Entitäten & Schnittstellen

  • PduR (:EcucModuleDef):
    • Wurzelknoten der PduR-Moduldefinition.
    • Kardinalität: lowerMultiplicity = 0, upperMultiplicity = 1.
    • Hält per Komposition (+container) die BSW-Modul-Konfigurationen.
  • PduRBswModules (:EcucParamConfContainerDef):
    • Konfigurationscontainer für jeweils genau ein angebundenes BSW-Modul.
    • Kardinalität: lowerMultiplicity = 0, upperMultiplicity = * (beliebig viele BSW-Module registrierbar).
    • Post-Build-Variabilität: postBuildChangeable = false (Konfiguration der BSW-Module ist zur Post-Build-Zeit nicht veränderbar).
  • PduRBswModuleRef (:EcucForeignReferenceDef):
    • Komposition (+reference), Kardinalität: 1..1.
    • Typ: ECUC-FOREIGN-REFERENCE-DEF mit destinationType = ECUC-MODULE-CONFIGURATION-VALUES.
    • Referenziert extern ein ARElement aus dem Paket ECUCDescriptionTemplate::EcucModuleConfigurationValues (die konkrete EcuC-Instanz des angebundenen BSW-Moduls, z. B. /Com/Com oder /CanIf/CanIf).
  • Parameterliste (+parameter, alle vom Typ :EcucBooleanParamDef):
    • Rollen-Klassifikation:
      • PduRUpperModule: Modul agiert als obere Schicht (Nutzer von Transmit-APIs; Ziel von Rx-Indication und Tx-Confirmation).
      • PduRLowerModule: Modul agiert als untere Schicht (Schnittstelle zu Bus-Interfaces oder TPs; stellt Transmit-APIs bereit).
    • Schnittstellen-Typ:
      • PduRCommunicationInterface: Aktiviert IF-Schnittstellen (Standard-PDU-Routing, unsegmentiert, PduInfoType-basiert).
      • PduRTransportProtocol: Aktiviert TP-Schnittstellen (segmentierter Transfer, Buffer-Provisioning via <Mod>_CopyTxData / <Mod>_CopyRxData).
    • API- & Feature-Capabilities:
      • PduRTxConfirmation: Modul stellt Tx-Bestätigungen bereit bzw. erwartet diese (<Mod>_TxConfirmation).
      • PduRTriggertransmit: Modul unterstützt Pull-basierte PDU-Bereitstellung (<Mod>_TriggerTransmit, z. B. für LIN oder FlexRay).
      • PduRCancelTransmit: Modul unterstützt den Abbruch laufender Sendeaufträge (<Mod>_CancelTransmit).
      • PduRCancelReceive: Modul unterstützt den Abbruch laufender TP-Empfangsvorgänge (<Mod>_CancelReceive).
      • PduRChangeParameterApi: Modul unterstützt dynamische TP-Parameteränderungen (<Mod>_ChangeParameter).
      • PduRRetransmission: Aktiviert PduR-interne Pufferung/Wiederholungsmechanismen für das Modul (z. B. bei TT-Kommunikation).
      • PduRUseTag: Aktiviert Tag-basiertes Routing / Multi-Instance-Zuordnung für dieses Modul.

3. Dynamisches Verhalten & Sequenzablauf

Da es sich um ein statisches Metamodell handelt, existiert kein dynamischer Laufzeitablauf im Diagramm selbst. Es determiniert jedoch die Codegenerierungs- und Ausführungslogik im BSW-Stack:

[Generator-Phase / EcuC Validation]
  PduRBswModuleRef (1..1) aufgelöst?
     ├── Nein -> Generator-Error (Referenz fehlt)
     └── Ja   -> Evaluiere Boolean-Flags pro referenziertem Modul
                  ├── PduRUpperModule == TRUE  -> Generiere PduR_<User>Transmit(), PduR_<User>CancelTransmit()
                  ├── PduRLowerModule == TRUE  -> Binde <Lo>_Transmit(), <Lo>_CancelReceive() in Routing-Tabellen ein
                  ├── PduRTransportProtocol    -> Generiere Forwarding für CopyTxData / CopyRxData / TpRxIndication
                  └── PduRCommunicationInterface -> Generiere Forwarding für RxIndication / TxConfirmation / TriggerTransmit

[Laufzeit-Routing: Pfadselektion abhängig von Flags]
  Obere Schicht ruft PduR_<User>Transmit()
     └── PduR prüft konfigurierte Routing-Route zur Ziel-Unterschicht (<Lo>):
           ├── PduRCancelTransmit == FALSE: PduR blockt Abbruchversuche frühzeitig ab
           └── PduRTriggertransmit == TRUE: PduR leitet TriggerTransmit an oberen Layer weiter
  • Synchroner vs. Asynchroner Pfad:
    • Synchron: Transmit-Aufruf von oberer Schicht via PduR direkt an untere Schicht.
    • Asynchron: Rx-Events (<Lo>_RxIndication) oder Bestätigungen (<Lo>_TxConfirmation) triggern Callbacks durch den PduR aufwärts zum oberen Modul.
    • Pufferung: Ist PduRRetransmission aktiv, verwaltet der PduR Zwischenpuffer (FIFO/Last-Is-Best), um Daten bei Übertragungsfehlern ohne Rückgriff auf die Applikation erneut zu senden.

4. Normative Relevanz & Entwickler-Hinweise

  • Kompilierzeit-Optimierung & Memory-Footprint:
    • Jedes Flag auf FALSE schließt die entsprechenden API-Signaturen und Funktionszeiger aus der generierten Link-Time/Post-Build-Tabelle (PduR_PBConfigType) aus.
    • Dies verhindert ungenutzten Code (Dead Code Elimination) und spart RAM/ROM im Mikrocontroller ein.
  • API-Vertrag (Header-Inclusion & Funktionsprototypen):
    • Wird ein Modul als PduRUpperModule = TRUE deklariert, muss der PduR-Codegenerator die Header des referenzierten Moduls (#include "<Module>.h") einbinden und erwartet normierte API-Namen gemäß AUTOSAR-Namenskonvention (z. B. <Mod>_RxIndication, <Mod>_TxConfirmation).
    • Fehlt die Implementierung eines per Boolean aktivierten Parameters im referenzierten Modul, führt dies zu undefinierten Symbolen beim Linken.
  • Hybride Modulrollen (Gateway / Zwischenschichten):
    • Module wie IpduM, SecOC oder Gateway-Konfigurationen können gleichzeitig PduRUpperModule = TRUE und PduRLowerModule = TRUE sein. In diesem Fall müssen beide API-Schnittstellenmengen vollständig erfüllt und im Generator konsistent gehalten werden.
  • Referenzintegrität (PduRBswModuleRef):
    • Durch lowerMultiplicity = 1 ist ein leerer PduRBswModules-Container ungültig. Jede Container-Instanz erfordert zwingend eine gültige Modulkonfiguration im EcuC-Tree.

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

R4.0.3 → R4.1.3 normative Änderung Vorgänger: FIG-8bcda0fd64239bcc
  • PduRBswModules: Attribut postBuildChangeable = false hinzugefügt.
  • PduRChangeParameterRequestApi: Parameter umbenannt in PduRChangeParameterApi.
R4.1.3 → R4.2.2 keine inhaltliche Änderung Nachfolger: FIG-c48a2a4312f533ec

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Ecu Configuration Description Template | PduR :EcucModuleDef | upperMultiplicity = 1 lowerMultiplicity = 0 | PduRBswModules : EcucParamConfContainerDef | lowerMultiplicity = 0 upperMultiplicity = * postBuildChangeable = false | PduRTxConfirmation :EcucBooleanParamDef | PduRBswModuleRef :EcucForeignReferenceDef | destinationType = ECUC-MODULE-CONFIGURATION-VALUES lowerMultiplicity = 1 upperMultiplicity = 1 | PduRCancelTransmit :EcucBooleanParamDef | PduRCommunicationInterface :EcucBooleanParamDef | PduRTransportProtocol :EcucBooleanParamDef | PduRUpperModule :EcucBooleanParamDef | PduRLowerModule :EcucBooleanParamDef | PduRTriggertransmit :EcucBooleanParamDef | PduRChangeParameterApi :EcucBooleanParamDef | ARElement | ECUCDescriptionTemplate:: EcucModuleConfigurationValues | PduRRetransmission :EcucBooleanParamDef | PduRUseTag :EcucBooleanParamDef | PduRCancelReceive :EcucBooleanParamDef | +container | +parameter | +parameter | +parameter | +parameter | +parameter | +parameter | +parameter | +parameter | +parameter | +parameter | +reference | +parameter

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.1.3 AUTOSAR_SWS_PDURouter S. 101 22 Figure 22: PduRBswModules