AUTOSAR_SWS_CANTransportLayer
FIG-f04ead862103c711
954 × 795 px
1 Release(s)
Figure 7: Example of receiving process 1: The CanIf notifies a new reception with CanTp_RxIndication().The CanTp forwards this notification to the PduR; 2: The PduR returns an available buffer size of 25 bytes, CanTp sends a FlowControl CTS to the originator; 3: The CanTp provides the data of each received frame to the PduR and monitors the remaining buffer size. After the second consecutive frame, the remaining buffer size is not enough for the next block (two Consecutive Frames); 4: The CanTp asks the PduR for the remaining buffer size by calling PduR_CanTpCopyRxData() with 0 as data length and NULL_PTR as data, and
SHA-256 Inhalts-Fingerabdruck:
f04ead862103c711f5fe9307bd472bc17b438c5fd3e97b599b82dbe97fbfa07e
✦
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
Informelles Interaktions- und Sequenzdiagramm mit begleitender Statustabelle aus der AUTOSAR Classic Platform (SWS CAN Transport Layer). Es visualisiert das Protokollverhalten des Empfangspfads (CanTp) in Interaktion mit dem unterlagerten CAN Interface (CanIf) und dem überlagerten PDU Router (PduR) bei segmentiertem Empfang mit Zwischenpufferüberwachung und Flow-Control-Aushandlung.
2. Komponenten, Entitäten & Schnittstellen
Beteiligte Komponenten:
CanIf(CAN Interface): Übergibt empfangene N-PDUs viaCanTp_RxIndication(id, *(data, length))an die Transportschicht.CanTp(CAN Transport Layer): Führt N-PDU-Reassemblierung, Flow Control (CTS,Wait) und Pufferabfragen durch.PduR(PDU Router): Empfängt Rezeptionsmeldungen, allokiert Puffer und meldet verfügbaren Speicherplatz zurück.
Verwendete Schnittstellen/Funktionen:
CanTp_RxIndication(id, *(data, length))(CanIf -> CanTp)PduR_CanTpStartOfReception(id, length=49, *RemainingRxBuff)(CanTp -> PduR)PduR_CanTpCopyRxData(id, *(*data, length), *RemainingRxBuff)(CanTp -> PduR)PduR_CanTpRxIndication(id, OK)(CanTp -> PduR)
3. Dynamisches Verhalten & Sequenzablauf
Der Ablauf zeigt den Empfang einer 49-Byte-SDU in 8 chronologischen Schritten:
CanIfsignalisiert den Empfang eines First Frame (FF) perCanTp_RxIndication.CanTpinitiiert die Übertragung perPduR_CanTpStartOfReception(id, length=49, *RemainingRxBuff).PduRmeldet 25 Byte verfügbaren Puffer zurück.CanTpsendet ein FlowControl CTS mit Block SizeBS=2an den Sender.- Der FF (6 Datenbytes) wird mit
PduR_CanTpCopyRxData(id, *(*data, 7), *RemainingRxBuff)übergeben (verbleibende SDU-Länge: 43 Byte, Puffer: 19 Byte). Es folgen zwei Consecutive Frames (CF mit je 7 Byte), wodurch der Puffer auf 5 Byte sinkt (SDU-Rest: 29 Byte). Für den nächsten Block (2 CFs à 7 Byte = 14 Byte) reicht der Puffer nicht aus. CanTpfragt den Pufferstatus mittels Null-Pointer-AufrufPduR_CanTpCopyRxData(id, *(NULL_PTR, 0), *RemainingRxBuff)ab.- Da kein ausreichender Puffer verfügbar ist (
No buffer), sendetCanTpFlowControl WAIT an den Sender und verharrt im Wartezustand (No receiving, waiting for available buffer). - Nach Bereitstellung neuen Puffers durch den
PduR(erneute Abfrage mitNULL_PTR, 0liefert 18 Byte) sendetCanTperneut FlowControl CTS mitBS=2. Zwei weitere CFs (je 7 Byte) werden kopiert (SDU-Rest: 15 Byte, Puffer: 11 Byte). Erneut tritt Puffermangel für den Folgeblock auf, gefolgt von einer weiteren WAIT-Phase. - Nach erneuter Pufferfreigabe werden die verbleibenden CFs (7 Byte, 7 Byte und das abschließende CF mit 1 Byte Nutzdaten) an den
PduRübertragen. Die verbleibende SDU-Länge erreicht 0 Byte. - Nach vollständiger Datenübernahme schließt
CanTpdie Transaktion perPduR_CanTpRxIndication(id, OK)erfolgreich ab.
4. Normative Relevanz & Entwickler-Hinweise
Das Diagramm verdeutlicht normativ das Flusssteuerungs- und Puffermanagement-Design nach ISO 15765-2 innerhalb der AUTOSAR-Architektur:
- Abfrage des Pufferspeichers ohne Datenübertrag: Zulässiger Mechanismus über
PduR_CanTpCopyRxDatamit Datenlänge0und ZeigerNULL_PTR. - Flow-Control-Trigger:
CanTpdarf ein FlowControl CTS mitBS=xnur dann aussenden, wenn der vom oberen Layer zugesicherte Pufferspeicher mindestens den vollen nächsten Block aufnehmen kann; andernfalls ist FlowControlWAITzu senden. - Rezeptionsterminierung: Bei fehlerfreier Übernahme aller Segmente muss der Abschluss mit
PduR_CanTpRxIndication(id, E_OK)quittiert werden.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.