AUTOSAR_SWS_FlexRayISOTransportLayer
FIG-c44402367a7ffda4
506 × 1004 px
1 Release(s)
Figure 25: Sending of N-Pdus
SHA-256 Inhalts-Fingerabdruck:
c44402367a7ffda448d7f07e4c471fd5d1ab0b93755899ae44e64029a18c1726
✦
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 bedingten Ausführungsrahmen (Combined Fragments / Interaction Frames).
- Technischer Zweck: Spezifikation des asynchronen N-SDU-Sendeablaufs (Sending of N-PDUs) über das FlexRay-ISO-Transport-Layer-Modul (
FrTp, ISO 10681-2) im AUTOSAR Classic ComStack (Release R4.1.3). - Funktionale Einordnung: Detaillierung der Interaktion zwischen Vermittlungsschicht (
PduR), Transportprotokollschicht (FrTp) und unterer Busschnittstelle (FrIf) zur Entkopplung von Sendeanforderung, Pufferabruf, Segmentierung und Sendeüberwachung.
2. Komponenten, Entitäten & Schnittstellen
- Komponenten (Lifelines):
PduR(PDU Router): Übergeordnete Instanz; initiiert Sendeanforderungen, stellt Nutzdaten via Callback bereit und nimmt die finale Sendebestätigung entgegen.FrTp(FlexRay ISO Transport Layer): Protokollinstanz; zuständig für Segmentierung, Flusskontrolle (FC), ACK-Auswertung, Timer-Überwachung und Assemblierung von Transport-PDUs (SF, FF, CF).FrIf(FlexRay Interface): Untergeordnete Abstraktionsschicht zum FlexRay-Treiber/Controller; übernimmt Sendeaufträge und liefert Bus-Trigger/Bestätigungen.
- Schnittstellen & Service-APIs:
FrTp_Transmit(TxPduId, PduInfoPtr): Initiale asynchrone Sendeanforderung durch den PduR.PduR_FrTpCopyTxData(TxPduId, PduInfoPtr, RetryInfoPtr, AvailableDataPtr): Pufferabruf-Callback zur schrittweisen Extraktion der SDU-Payload aus dem PduR-Puffer.FrIf_Transmit(TxPduId, PduInfoPtr): Übergabe der assemblierten N-PDU an das FlexRay-Interface.FrTp_TriggerTransmit(TxPduId, PduInfoPtr): Polling-API der unteren Schicht bei entkoppeltem Pufferzugriff (Decoupled Buffer Access).FrTp_TxConfirmation(TxPduId)/PduR_TxConfirmation(TxPduId): Bestätigungs-Callbacks über erfolgte Frame- bzw. Gesamt-SDU-Übertragungen.FrTp_RxIndication(RxPduId, PduInfoPtr): Empfang von Gegenstellen-Nachrichten (Flow ControlN-PDU.FCoder QuittungenACK).
- Interne Kontrollvariablen / Flags:
TX_PDU_AVAILABLE: Status-Flag inFrTp; indiziert eine anstehende SDU-Übertragung für den zyklischen Task-Kontext.TC_REQUEST: Tx-Confirmation-Request-Flag; steuert verzögerte Bestätigungen an den PduR.
3. Dynamisches Verhalten & Sequenzablauf
- Asynchroner Sendestart:
PduRruft synchronFrTp_Transmit()auf.FrTpsetzt internTX_PDU_AVAILABLE = Trueund kehrt unmittelbar via Return-Pfad zurück (nicht-blockierender Aufruf).
- Zyklische Verarbeitung (
FrTp_Main):- Im periodischen Task-Kontext prüft
FrTpdas FlagTX_PDU_AVAILABLE. - Bei
TC_REQUEST == True: Aufruf vonPduR_TxConfirmation()für vorangegangene Quittierungsbedarfe. - Payload-Extraktion:
FrTpruftPduR_FrTpCopyTxData()auf. Bei inkrementellem Kopieren erfolgt die Pufferübertragung (Copy data) iterativ bis zur vollständigen Frame-Nutzlast. - Frame-Assemblierung:
Build an appropriate N-PDU(Generierung von Header/PCI gemäß ISO 10681-2). - Übergabe nach unten: Aufruf von
FrIf_Transmit(), Bestätigung via Return-Pfad.
- Im periodischen Task-Kontext prüft
- **Optional: Entkoppelter Pufferzugriff (Decoupled Buffer Access):**
- Falls konfiguriert (im Diagramm typografisch als Decoubled Buffer Access betitelt), triggert das
FrIfdie Datenbereitstellung zeitversetzt überFrTp_TriggerTransmit().
- Falls konfiguriert (im Diagramm typografisch als Decoubled Buffer Access betitelt), triggert das
- L2-Bestätigung & Protokoll-Rückmeldung:
FrIfmeldet den physischen Busversand überFrTp_TxConfirmation().- Optional (Flusskontrolle / ACK): Erfordert das Protokoll ein FC- oder ACK-Frame, empfängt
FrTpdieses viaFrIf_RxIndication().
- Abschluss der Übertragung:
- Wenn alle Bytes der Gesamt-SDU übertragen und quittiert sind:
FrTpsetztTX_PDU_AVAILABLE = Falsezurück. FrTpbenachrichtigt den PduR endgültig überPduR_TxConfirmation().
- Wenn alle Bytes der Gesamt-SDU übertragen und quittiert sind:
4. Normative Relevanz & Entwickler-Hinweise
- Kontext-Trennung & WCET:
FrTp_Transmit()darf keine langwierigen Kopieroperationen durchführen; das Serialisieren viaPduR_FrTpCopyTxData()ist zwingend in den Kontext vonFrTp_MainFunction()(bzw.FrTp_Main) ausgelagert, um den Stack-Aufrufer vor unzulässigen Ausführungszeiten zu schützen. - **Pufferstrategie (Decoupled Buffer Access):** Bei aktiviertem entkoppeltem Zugriff muss der Puffer in
FrTpzwischenFrIf_Transmit()undFrTp_TriggerTransmit()zwingend stabil gehalten werden. Ein Überschreiben vor dem Trigger-Aufruf führt zu Datenkorruption im FlexRay-Slot. - Flusskontrolle & Timeouts: Entwickler müssen beachten, dass beim Warten auf
N-PDU.FCüberFrTp_RxIndication()ISO-10681-2-Timer (z. B. B_s, C_s) scharf geschaltet werden. Läuft der Timer vor Eintreffen der Indication ab, mussFrTpdie Übertragung abbrechen und den PduR mitE_NOT_OKüberPduR_TxConfirmation()informieren. - Reentrancy & Concurrency: Der Zugriff auf
TX_PDU_AVAILABLEundTC_REQUESTerfolgt über Thread-/Task-Grenzen hinweg (PduR_Transmit-Kontext vs.FrTp_Main-OS-Task vs.FrIf-Interrupt-Kontext). Diese Zugriffe müssen über AUTOSAR-SchM-Mechanismen (SchM_Enter_FrTp_*, Exclusive Areas) atomar geschützt werden.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.