DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_FlexRayISOTransportLayer FIG-58ec1092fe0db1ff 798 × 1124 px 1 Release(s)

Figure 26: Receiving of N-Pdus (FrTp_MainFunction() shall call PduR_FrTpStartOfReception()

SHA-256 Inhalts-Fingerabdruck: 58ec1092fe0db1ff839933691c6de6af381ded564c6f2d611f76d3c4c9067389
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07

1. Diagrammtyp & Architektur-Kontext

  • Klassifikation: UML-Sequenzdiagramm (Interaktionsdiagramm) mit verschachtelten Ausführungsrahmen (combined fragments / bedingte Blöcke).
  • Technischer Zweck: Spezifikation des asynchron entkoppelten Empfangspfades (Decoupled Reception Handling) im AUTOSAR FlexRay Transport Layer (FrTp, ISO 10681-2) gemäß AUTOSAR R4.1.3.
  • Architektur-Kontext: Entkopplung des zeitkritischen Interrupt-/Treiber-Kontexts (FrIf) von der oberen Kommunikationsschicht (PduR). FrTp_RxIndication() puffert empfangene N-PDUs lediglich zwischen; die Weitergabe an den PDU-Router via PduR_StartOfReception() und PduR_FrTpCopyRxData() erfolgt verzögert im periodischen Kontext der FrTp_MainFunction().

2. Komponenten, Entitäten & Schnittstellen

  • Beteiligte Module (Lifelines):
    • PduR (PDU Router): Vermittlungsschicht; allokiert Empfangspuffer und nimmt assemblierte I-SDUs entgegen.
    • FrTp (FlexRay ISO Transport Layer): Segmentierung, Reassemblierung, Flusssteuerung und Quittierung gemäß ISO 10681-2.
    • FrIf (FlexRay Interface): Hardware-Abstraktionsschicht des FlexRay-Kommunikations-Controllers.
  • Aufgerufene Schnittstellen & APIs:
    • Unterer Schichtenübergang (FrTp ↔ FrIf):
      • FrTp_RxIndication(): Benachrichtigung über eingegangene FlexRay-N-PDU aus dem Bus-Interface.
      • FrIf_Transmit(): Sendeanforderung für Transportprotokoll-Steuerframes (FC / Ack).
      • FrTp_TriggerTransmit(): Polling-Callback des FrIf zur Datenübergabe bei entkoppeltem Puffermodus (Decoupled Buffer Access).
      • FrTp_TxConfirmation(): Sendebestätigung für FC- bzw. Ack-Frames.
    • Oberer Schichtenübergang (FrTp → PduR):
      • PduR_StartOfReception() (bzw. PduR_FrTpStartOfReception()): Initialer Aufruf zur Pufferbereitstellung bei Beginn einer SDU-Rezeption.
      • PduR_FrTpCopyRxData(): Segmentweises Kopieren empfangener Nutzdaten in den Zielpuffer des PduR/oberen Layers.
      • PduR_RxIndication(): Finale Abschlussmeldung über die vollständig empfangene I-SDU.
  • Zustandsvariablen / Flags:
    • RX_PDU_AVAILABLE: Synchronisations-Flag zwischen ISR-/Interface-Kontext und periodischem MainFunction-Kontext.
    • TX_PDU_AVAILABLE: Status-Flag zur Steuerung von Sendeanforderungen (wird bei Abschluss zurückgesetzt).

3. Dynamisches Verhalten & Sequenzablauf

  1. Phasen-Trigger (Interrupt- bzw. Treiber-Ebene):
    • FrIf ruft synchron FrTp_RxIndication() auf.
    • FrTp kopiert die N-PDU intern (Copy data) und setzt das interne Signal-Flag RX_PDU_AVAILABLE = True.
    • Rücksprung zu FrIf. Keine Interaktion mit dem PduR im ISR-Kontext.
  2. Geplante Verarbeitung im Task-Kontext (FrTp_Main):
    • Die periodische FrTp_MainFunction() prüft Check Flag RX_PDU_AVAILABLE.
    • Bedingung RX_PDU_AVAILABLE == True:
      • Block If SF received (Single Frame):
        • FrTp ruft PduR_StartOfReception() auf, um den Empfang anzumelden und die Puffergröße zu verifizieren.
        • FrTp ruft PduR_FrTpCopyRxData() auf; PduR kopiert die Daten in den Zielspeicher.
      • Block If N-Pdu.FC or N-Pdu.Ack is required:
        • Falls das Protokoll eine Flusssteuerung (Flow Control) oder Quittierung (Ack) erfordert: Aufruf von FrIf_Transmit().
        • Optional (If Decoupled Buffer Access is configured): FrIf fordert die Frame-Payload zeitversetzt via Callback FrTp_TriggerTransmit() an.
        • FrIf bestätigt den Sendevorgang via FrTp_TxConfirmation().
      • Block If complete SDU is received:
        • FrTp setzt das Sende-/Statusflag zurück (Reset Flag TX_PDU_AVAILABLE).
        • FrTp signalisiert den erfolgreichen Gesamtempfang an die Anwendung via PduR_RxIndication().

4. Normative Relevanz & Entwickler-Hinweise

  • Kontext- und Thread-Sicherheit: RX_PDU_AVAILABLE fungiert als IPC-Schranke zwischen ISR (FrIf_RxIndication) und OS-Task (FrTp_MainFunction). Der Zugriff muss atomar oder über Critical Sections (SchM_Enter_FrTp_...) abgesichert sein, um Race Conditions zu verhindern.
  • Speicher-Overhead: Das Verfahren erzwingt Zwischenpuffer im FrTp (RAM-Bedarf pro Empfangskanal), da Nutzdaten im RxIndication-Aufruf zwischengespeichert werden müssen, bevor der PduR-Zielpuffer via PduR_StartOfReception() überhaupt angefordert wird.
  • Latenz & ISO 10681-2 Timer: Das Verschieben von PduR_StartOfReception() und der FC/Ack-Generierung in die FrTp_MainFunction() macht die Antwortzeiten direkt abhängig vom Task-Scheduling-Intervall (FrTpMainFunctionCycle). Eine zu große Zykluszeit führt zu Protokoll-Timeouts (Verletzung von N_Ar / N_Br) auf dem FlexRay-Bus.
  • Pufferzugriffsmodus: Der Aufruf von FrTp_TriggerTransmit() ist rein konfigurativ: Er wird nur durchlaufen, wenn im FrIf / Fr der entkoppelte Puffermodus aktiviert ist (im Schaubild als „Decoubled Buffer Access“ typographisch fehlerhaft mit „b“ beschriftet). Im direkten Modus übergibt FrIf_Transmit() den Puffer unmittelbar.

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

R4.1.3 → R4.2.2 keine inhaltliche Änderung Nachfolger: FIG-034a43c00da32a8f

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

PduR FrTp FrIf | FrTp_RxIndication() | Set Flag RX_PDU_AVAILABLE | PduR_FrTpCopyRxData() | Copy data | PduR_FrTpCopyRxData() | FrTp_Main Check Flag RX_PDU_AVAILABLE | If complete SDU is received Reset Flag TX_PDU_AVAILABLE PduR_RxIndication() | PdUR_RxIndication() | Copy data | FrTp_RxIndication() | If N-Pdu.FC or N-Pdu.Ack is required | FrIf_Transmit() | FrIf_Transmit() | FrTp_TriggerTransmit() | FrTp_TriggerTransmit() | If Decoubled Buffer Access is configured | FrTp_TxConfirmation() | FrTp_TxConfirmation() | PduR_StartOfReception() | RX_PDU_AVAILABLE = True | PduR_StartOfReception() | If SF received

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.1.3 AUTOSAR_SWS_FlexRayISOTransportLayer S. 96 26 Figure 26: Receiving of N-Pdus (FrTp_MainFunction() shall call PduR_FrTpStartOfReception()