AUTOSAR_SWS_FlexRayISOTransportLayer
FIG-3b43122a5f677d02
503 × 911 px
1 Release(s)
Figure 10: Frame sequence of a segmented acknowledged data transfer with unknown
SHA-256 Inhalts-Fingerabdruck:
3b43122a5f677d024d378be67acf51031cf285d2598dd1110178b989cfd1aa21
✦
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 / Protokoll-Ablaufdiagramm auf N-PDU-Ebene (Frame Sequence).
- Architektur-Kontext:
- AUTOSAR Classic Platform (Release R4.0.3), BSW Communication Stack (ComStack).
- Modul: FlexRay ISO Transport Layer (
FrTp), normativ konform zu ISO 10681-2 (Road vehicles — Communication on FlexRay — Part 2: Communication layer services). - Horizontale Peer-to-Peer-Kommunikation zweier FlexRay-Knoten (
FrTp_SenderundFrTp_Receiver) über das FlexRay Interface (FrIf).
- Technischer Zweck: Spezifikation der segmentierten, quittierten Datenübertragung (Segmented Acknowledged Data Transfer) bei zur Übertragungszeit unbekannter Gesamtnachrichtenlänge (unknown message length / dynamic streaming). Ermöglicht das segmentierte Übertragen von Nutzdaten über FlexRay, deren finale PDU-Größe beim Verbindungsaufbau von der oberen Schicht (
PduR) noch nicht quantifiziert werden kann.
2. Komponenten, Entitäten & Schnittstellen
- Akteure / Lebenslinien:
FrTp_Sender: Sendende Transportprotokoll-Entität. Steuert Segmentierung, TX-Zustandsmaschine, Pufferabruf viaPduR_FrTpCopyTxData()sowie die Protokoll-Timer A_s (TX-Bestätigung) und B_s (Warten auf Flow Control).FrTp_Receiver: Empfangende Transportprotokoll-Entität. Steuert De-Segmentierung, Reassembly, Pufferbereitstellung viaPduR_FrTpStartOfReception()/PduR_FrTpCopyRxData(), Block-Validierung sowie Timer A_r und C_r (Warten auf Folgeframe).
- N-PDU-Entitäten (Frame-Typen nach ISO 10681-2):
STFA(StartFrame_ACK): Erster Frame des Datenstroms; fordert Quittierung/Flusssteuerung an. Trägt das LängenfeldML = 0(Kennzeichnung für unbekannte bzw. dynamische Gesamtlänge).FC.CTS(FlowControl_CTS, Clear-to-Send): Flusssteuerungs-Frame des Empfängers. Autorisiert die Übertragung des nächsten Blocks und definiert Flow-Control-Parameter (z. B. Block SizeBS, Bandwidth ControlBC).CF(ConsecutiveFrame): Fortlaufender Datenframe innerhalb eines Übertragungsblocks mit zyklischer Sequenznummer (SN) zur Erkennung von Lücken oder Fehlordnungen.CFEOB(ConsecutiveFrame_EOB, End of Block): Expliziter Abschlussframe eines Zwischenblocks. Triggert beim Empfänger die Blockquittierung viaFC.CTS.LF(LastFrame): Finaler Datenframe der Gesamtübertragung. Signalisiert dem Empfänger bei unbekannter Gesamtlänge das definitive Ende des Datenstroms und transportiert die verbleibenden Rest-Payload-Bytes.FC.ACK(im Diagramm redaktionell alsFlowControl_CTS (FC.ACK)bezeichnet): Finaler Flusssteuerungsframe mit StatusACK. Bestätigt nach Empfang desLFden erfolgreichen Gesamtempfang der Nachricht.
- Schnittstellen (ComStack):
- Obere Schicht:
PduR(PDU Router) via AUTOSAR TP-APIs (PduR_FrTpStartOfReception,PduR_FrTpCopyRxData,PduR_FrTpRxIndication,PduR_FrTpCopyTxData,PduR_FrTpTxConfirmation). - Untere Schicht:
FrIf(FlexRay Interface) viaFrIf_Transmit(),FrIf_TxConfirmation(),FrIf_RxIndication().
- Obere Schicht:
3. Dynamisches Verhalten & Sequenzablauf
- Verbindungsaufbau & Block-1-Initialisierung:
FrTp_Sendersetzt nach Sendeauftrag einSTFAab (ML = 0).FrTp_Receiverinitiiert überPduR_FrTpStartOfReception(..., TpSduLength=0, ...)die Pufferallokation und antwortet nach erfolgreicher Pufferbereitstellung mitFC.CTS.
- Block-1-Transfer:
FrTp_Senderüberträgt fortlaufende Segmente:CF→CF→CFEOB.CFEOBschließt den Block ab; der Sender stoppt und wartet auf Quittierung (Überwachung durch Timer B_s).FrTp_Receivervalidiert die Sequenz und bestätigt mit erneutemFC.CTS.
- Block-2-Transfer (variable Blockgröße):
FrTp_Senderüberträgt den zweiten Block:CF→CF→CF→CFEOB.- Nach erfolgreichem Empfang des
CFEOBquittiertFrTp_ReceivermitFC.CTS.
- Finaler Datenblock & Verbindungsabschluss:
- Sobald die obere Schicht alle Restdaten bereitgestellt hat, sendet
FrTp_Senderdas SegmentCFund schließt die Übertragung zwingend mitLFab. - Der
LFinformiertFrTp_Receiverüber das Erreichen des Stream-Endes. Der Empfänger schließt die Reassembly ab, übergibt die Daten an die obere Schicht (PduR_FrTpRxIndication(..., E_OK)) und sendet die finale QuittungFC.ACK. - Nach Erhalt von
FC.ACKschließtFrTp_Senderdie Verbindung und meldetPduR_FrTpTxConfirmation(..., E_OK).
- Sobald die obere Schicht alle Restdaten bereitgestellt hat, sendet
- Fehlerpfade & Timeouts:
- Sender-Timeout: Läuft Timer B_s vor Eingang eines erwarteten
FC.CTS/FC.ACKab, bricht der Sender die Übertragung mitE_NOT_OKab. - Empfänger-Timeout/Integritätsfehler: Läuft Timer C_r ab oder tritt ein Sequenznummernfehler (
SN-Mismatch) auf, sendet der ReceiverFC.NACKbzw.FC.ABT(Abort) und verwirft die Puffer.
- Sender-Timeout: Läuft Timer B_s vor Eingang eines erwarteten
4. Normative Relevanz & Entwickler-Hinweise
- Differenzierung Known vs. Unknown Message Length:
- Bei known message length ist die Gesamtlänge im
STF/STFAkodiert; der Empfänger erkennt das Ende rein anhand des empfangenen Byte-Zählers. Das letzte Segment ist dort ein regulärerCFbzw.CFEOB. - Bei unknown message length (dieses Schaubild) ist der Frame
LFnormativ zwingend, da der Empfänger mangels initialer Längenangabe das Übertragungsende nicht autark berechnen kann.
- Bei known message length ist die Gesamtlänge im
- Pufferanforderung im PduR / Empfänger-Modul:
PduR_FrTpStartOfReception()muss zwingend mitTpSduLength = 0umgehen können. Der Puffer (z. B. in Dcm oder Com) muss inkrementell oder in dynamisch erweiterbaren Chunks bereitgestellt werden.- Kann der Empfänger einen Block temporär nicht annehmen, muss er
FC.WT(Wait) absetzen; bei Pufferüberlauf erfolgtFC.OVFLW.
- Redaktionelle SWS-Inkonsistenz:
- Der letzte Frame im Diagramm ist fälschlich als
FlowControl_CTS (FC.ACK)beschriftet. Nach ISO 10681-2 handelt es sich um einen Flow-Control-Frame mit dem Flow-StatusACK(FS = 1bzw.FC.ACK), nicht umCTS(FS = 0).
- Der letzte Frame im Diagramm ist fälschlich als
- FlexRay-Timing-Restriktionen:
- Die Latenz zwischen
CFEOBundFC.CTSbzw.LFundFC.ACKist durch das statische/dynamische FlexRay-Slot-Scheduling und die Task-Zykluszeit derFrTp_MainFunction()determiniert. Timeouts (B_s, C_r) müssen im AUTOSAR-Parameterbaum (FrTpTimeBs,FrTpTimeCr) zwingend oberhalb der maximalen FlexRay-Zykluswiederholungsdauer dimensioniert sein.
- Die Latenz zwischen
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.