DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_FlexRayISOTransportLayer FIG-c4303d432079305a 896 × 649 px 1 Release(s)

Figure 16: Receive data overview (FrTp_RxIndication() shall call PduR_FrTpStartOfReception()

SHA-256 Inhalts-Fingerabdruck: c4303d432079305a5ff23d44fa66a48f8965b0e0184d9e66bd2b3d58718746ee
✦ 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

  • Diagrammtyp: Interaktions- / Sequenzdiagramm mit Kontrollfluss-Annotationen (Pseudocode-Verzweigungen IF-THEN-ELSE) und zwei Ausführungskontexten (asynchroner Callback-/ISR-Kontext vs. periodischer Task-Kontext).
  • Technischer Zweck: Spezifikation des normativen Empfangspfads segmentierter und unsegmentierter Transport-PDUs nach ISO 10681-2 im AUTOSAR FlexRay Transport Layer (FrTp).
  • Funktionale Einordnung: Vertikale Entkopplung zwischen der busnahen Hardware-Abstraktion (FrIf) und dem PDU-Routing (PduR). Das Diagramm verdeutlicht die Entlastung des Interrupt-Kontexts durch asynchrone Weiterverarbeitung in der periodischen Hauptfunktion.

2. Komponenten, Entitäten & Schnittstellen

  • Beteiligte BSW-Module (Lifelines):
    • FrIf (FlexRay Interface): Liefert empfangene N-PDUs an und sendet generierte Flow-Control-Frames aus.
    • FrTp (FlexRay ISO Transport Layer): Protokollmaschine für Reassemblierung, Adressierung, PCI-Dekodierung, Flusskontrolle und Kanalallokation.
    • PduR (PDU Router): Abnehmer der I-SDU; Schnittstelle zu oberen Schichten (z. B. DCM, COM).
  • Schnittstellen & Service-APIs:
    • Downlink-Schnittstellen (FrIf ↔ FrTp):
      • FrTp_RxIndication(RxPduId, PduInfoPtr): Synchroner Empfangs-Callback von FrIf an FrTp.
      • FrIf_Transmit(TxPduId, PduInfoPtr): Sendeanforderung für Flow-Control-PDUs (FC, FC.ACK).
    • Uplink-Schnittstellen (FrTp → PduR):
      • PduR_FrTpStartOfReception(RxSduId, TpSduInfoPtr, TpSduLength, BufferSizePtr): Initialer Pufferallokations-Aufruf bei Empfang eines Start Frames (STF).
      • PduR_FrTpCopyRxData(RxSduId, PduInfoPtr, BufferSizePtr): Kopieren der Nutzdaten aus dem lokalen Transport-Layer-Puffer in den Zielpuffer.
      • PduR_FrTpRxIndication(RxSduId, Result): Abschlussmeldung der vollständigen SDU-Rezeption.
    • Task-Schnittstelle:
      • FrTp_Main / FrTp_MainFunction(): Zyklischer SchM-/OS-Task-Einsprungpunkt.
  • Interne Datenstrukturen & Flags:
    • RX_PDU_AVAILABLE(RxPduId): Synchronisations- und Zustands-Flag (Kanal-/PDU-spezifisch) zur Übergabe vom ISR- an den Task-Kontext.
    • Local Buffer: Zwischenpuffer innerhalb von FrTp zur Entkopplung des Bus-Timings von der PduR-Pufferbereitstellung.
    • Channel / Connection: Dynamisch zugewiesene Verwaltungseinheit für eine aktive logische 1:1- oder 1:n-Verbindung.

3. Dynamisches Verhalten & Sequenzablauf

Phase I: Interrupt- / Callback-Ebene (FrTp_RxIndication)
  1. 01: FrIf ruft synchron FrTp_RxIndication(PDU-ID).
  2. 02–03: FrTp validiert PDU-ID, extrahiert Quell-/Zieladresse und parst den PCI (Protocol Control Information).
  3. 04–07 (Zweig STF - Start Frame):
    • Freien Kanal allokieren und Verbindung initialisieren (05).
    • Nutzdaten in den internen Local Buffer kopieren (06).
    • Synchroner Callout PduR_FrTpStartOfReception(RxSduId, ...) zur Prüfung der Pufferverfügbarkeit und Bekanntgabe der Gesamtlänge (07).
  4. 08 (Zweig CF - Consecutive Frame):
    • Bestehenden Kanal anhand Verbindungs-ID / Adressen identifizieren.
  5. 09: Setzen von RX_PDU_AVAILABLE(RxPduId) und unverzügliche Rückkehr zu FrIf.
Phase II: Zyklische Task-Ebene (FrTp_MainFunction)
  1. 10–12: FrTp_Main wird aufgerufen, quittiert/löscht RX_PDU_AVAILABLE(RxPduId) (11) und führt die Detailanalyse des PCI durch (12).
  2. 13–14 (Flow Control Handling):
    • Falls gemäß Protokollzustand (z. B. Block Size / Bandbreitenanforderung) erforderlich: Generierung und Versand des Flow-Control-Frames via FrIf_Transmit(TxPduId, ...) (14).
  3. 15: Übergabe der Nutzdaten an den PDU-Router über PduR_FrTpCopyRxData(RxSduId, ...).
  4. 16–17 (Unvollständige Nachricht):
    • Falls noch weitere N-PDUs ausstehen: Zustand halten, auf nächste CF-Indikation warten (Rücksprung zu Schritt 01).
  5. 18–22 (Abschluss der SDU):
    • Falls ISO 10681-2 Acknowledge gefordert ist (FlowControl.ACK): Senden von FC.ACK via FrIf_Transmit (19–20).
    • Freigabe des zugewiesenen Kanals (21).
    • Abschlussmeldung an die Applikation via PduR_FrTpRxIndication(RxSduId, E_OK) (22).

4. Normative Relevanz & Entwickler-Hinweise

  • SWS_FrTp_00137 (Normative Anforderung): Bei Empfang eines STF ist der synchrone Aufruf von PduR_FrTpStartOfReception() zwingend vorgeschrieben. Der Rückgabewert (BUFREQ_OK, BUFREQ_E_NOT_OK, BUFREQ_E_OVFL) entscheidet unmittelbar darüber, ob der Transfer akzeptiert, per Flow-Control (FC_OVFLW) abgewiesen oder verworfen wird.
  • Kontext-Splitting & ISR-Latenz:
    • Die Datenübergabe via PduR_FrTpCopyRxData() erfolgt normativ im Task-Kontext (FrTp_MainFunction), nicht in der ISR.
    • Obere Schichten (z. B. Dcm, PduR) dürfen in PduR_FrTpStartOfReception() keine langwierigen oder blockierenden Operationen ausführen, da dies den FrIf_RxIndication-Aufrufpfad (potenziell CAT2-ISR) verlängert.
  • Concurrency & Critical Sections:
    • Der Zugriff auf das Synchronisations-Flag RX_PDU_AVAILABLE sowie auf die Kanal-Deskriptoren muss gegen gleichzeitigen Zugriff zwischen ISR-Ebene (FrTp_RxIndication) und Task-Ebene (FrTp_MainFunction) mittels Basic Software Scheduler Protection (SchM_Enter_FrTp_... / SchM_Exit_FrTp_...) atomar gekapselt sein.
  • Pufferallokation & Dimensionierung:
    • Das Modul erfordert dedizierte Pufferkapazitäten (Copy data into local buffer), um empfangene N-PDUs zwischen Speicherung in FrTp_RxIndication und Abholung in FrTp_MainFunction vor Überschreiben zu sichern.
  • Protokollspezifika (ISO 10681-2 vs. ISO 15765-2):
    • Entwickler müssen beachten, dass FlexRay TP ein explizites Acknowledge (FlowControl.ACK) nach Rezeption aller Datenpakete unterstützt, was im CAN TP nicht existiert und gesonderte Tx-PDU-Ressourcen im FrIf bindet.

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

R4.1.3 → R4.2.2 keine inhaltliche Änderung Vorgänger: FIG-802d40813da2c1c6

Keine inhaltlichen Änderungen erkennbar.

R4.2.2 → R4.3.1 keine inhaltliche Änderung Nachfolger: FIG-ce9000f4890b069a

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:

11. Reset RX_PDU_AVAILABLE (RxPduId) 12. Evaluate PCI | PduR | t | FrTp | t | FrIf | t | 01. FrTp_RxIndication (PDU-ID) | 02. Evaluate PDU-ID 03. Evaluate Target and Source Address and PCI IF: 04. STF is received: THEN: 05. Allocate free channel and set connection | 06. Copy data into local buffer 07. Call routine PduR_FrTpStartOfReception(RxSduId,..) ELSE: 08. Search for corresponding channel NEXT: 09. Set Flag RX_PDU_AVAILABLE (RxPduId) | 10. FrTp_Main | IF: 13. FlowControl is required THEN: 14. Send FC via FrIf_Transmit(TxPduId,..) | IF: 16. Not all Rx N-Pdus have been received THEN: 17. Wait for next N-PDU(s) and continue at step 01 ELSE: 18. IF: 19. FlowControl.ACK is required THEN: 20. Continoue at step 14 21. Free Channel 22. Call PduR_FrTpRxIndication(RxSduID,..) | NEXT: 15. Call routine PduR_FrTpCopyRxData(RxSduId,..)

Begleitender Spezifikationstext:

Figure 16 depicts the internal processing for data reception in principle19. Below there is a description of the different steps which are necessary to receive data via FrTp. … 19 Figure 16 depicts only an overview of data reception for a single channel without further functionality (e.g. transmit cancellation) or internal behaviour (e.g. internal control data handling, return values etc.). Also a schedule for data transfer in concurrent channels is also not described here.

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.2.2 AUTOSAR_SWS_FlexRayISOTransportLayer S. 59 16 Figure 16: Receive data overview (FrTp_RxIndication() shall call PduR_FrTpStartOfReception()