AUTOSAR_CP_SWS_CANTransportLayer
FIG-8ad8a34d573dad0f
872 × 643 px
1 Release(s)
Figure 9.4: Transmit request of larger N-SDU
SHA-256 Inhalts-Fingerabdruck:
8ad8a34d573dad0ff7a6c61cb5198678f9152803e2a01d184027c6fe0a387fdb
✦
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
- Klassifikation: UML-Sequenzdiagramm (Interaktionsdiagramm) mit kombiniertem Fragment (
loop). - Architektur-Kontext: AUTOSAR Classic Platform, Communication Stack (ComStack).
- Funktionaler Zweck: Spezifikation des segmentierten Sendevorgangs für große N-SDUs (Network Service Data Units) über das Transportprotokoll-Modul
CanTpgemäß ISO 15765-2. Das Diagramm modelliert das Zusammenspiel zwischen dem PDU Router (PduR), dem Transport-Layer (CanTp) und dem Link-Layer-Routing (LSduR) unter Nutzung des AUTOSAR-Pull-Buffer-Mechanismus.
2. Komponenten, Entitäten & Schnittstellen
Lebenslinien / Module
«module» PduR: PDU Router, repräsentiert die übergeordnete Schicht zur Bereitstellung der Sendedaten und Empfang der Sendeabschlussbestätigung (vormals abstraktes«interface»).«module» CanTp: AUTOSAR CAN Transport Layer. Verwaltet Verbindungszustände, Segmentierung (First Frame, Consecutive Frame), Flow-Control-Auswertung und Timing-Parameter (vormals als Instanz:CanTpannotiert).«module» LSduR: Link-layer SDU Router. Untere Schicht zur Weiterleitung der L-SDUs an die Bus-Schnittstelle (ersetzt das direkte«module» :CanIf).
Schnittstellen & Interaktionen
CanTp_Transmit(): Initiale synchrone Sendeanforderung der N-SDU durchPduR(dargestellt ohne explizite Parametersignatur).PduR_CanTpCopyTxData(): Pull-API zum inkrementellen Auslesen der Nutzdaten aus dem Quellpuffer der oberen Schicht (dargestellt ohne explizite Parametersignatur).LSduR_CanTpTransmit(): Sendeanforderung für segmentierte L-PDUs an das ModulLSduR(ersetztCanIf_Transmit(), dargestellt ohne explizite Parametersignatur).CanTp_TxConfirmation(): Asynchroner Callback vonLSduRanCanTpzur Bestätigung der erfolgreichen L-PDU-Aussendung (dargestellt ohne explizite Parametersignatur).PduR_CanTpTxConfirmation(): Asynchroner Abschluss-Callback anPduRnach vollständiger Übertragung der gesamten N-SDU (dargestellt ohne explizite Parametersignatur).
3. Dynamisches Verhalten & Sequenzablauf
- Initialer Aufruf & Validierung (synchron):
- Der PDU Router (
PduR) ruftCanTp_Transmit()auf. CanTpführt interne Konsistenzprüfungen durch (Check inputs.).CanTpinitialisiert den Tx-Kanal (Activate a Tx task.) und kehrt synchron zur oberen Schicht zurück. Der eigentliche Transfer wird asynchron angestoßen.
- Der PDU Router (
- Segmentierte Datenübertragung (
loop N-SDU data transfer):- Bedingung:
[Still data to be sent from this N-SDU](wiederholt für First Frame und alle nachfolgenden Consecutive Frames unter Berücksichtigung eventueller Flow-Control-Frames). - Datenabruf (Pull):
CanTpfordert überPduR_CanTpCopyTxData()das nächste Datensegment an.PduRkopiert die Segmentdaten intern (Copy segment data.) und bestätigt synchron. - L-PDU-Aussendung:
CanTpübergibt die L-PDU überLSduR_CanTpTransmit()anLSduR(anstatt vormals direkt anCanIf). - Tx-Quittierung: Nach erfolgreicher Aussendung meldet
LSduRden Status überCanTp_TxConfirmation()anCanTpzurück.
- Bedingung:
- Abschluss & Quittierung:
- Nach vollständiger Übertragung aller Datensegmente der N-SDU meldet
CanTpden Gesamtabschluss überPduR_CanTpTxConfirmation()anPduR.
- Nach vollständiger Übertragung aller Datensegmente der N-SDU meldet
4. Normative Relevanz & Entwickler-Hinweise
- Puffer-Lebensdauer & Thread-Safety:
- Der Sendeaufrufer (
Com/Dcm) darf den Puffer nach Rückkehr vonCanTp_Transmit()nicht freigeben oder überschreiben. Die Daten müssen persistent gehalten werden, bisPduR_CanTpTxConfirmationden Vorgang final abschließt.
- Der Sendeaufrufer (
- Pull-Modell-Implementierung:
- Da
CanTpkeinen vollständigen N-SDU-Zwischenspeicher vorhält (Zero-Reassembly-Overhead auf N-SDU-Ebene), muss die Implementierung vonPduR_CanTpCopyTxDatain der oberen Schicht reentrant und latenzarm sein, um Timeouts (N_Cs) zu vermeiden.
- Da
- Kontext & Task-Zuordnung:
CanTp_Transmitwird im Task-Kontext der oberen Schicht ausgeführt.CanIf_Transmitund dieCopyTxData-Aufrufe erfolgen entweder im Kontext der zyklischenCanTp_MainFunctionoder im Kontext der Tx-Task (Activate a Tx task).CanTp_TxConfirmationwird typischerweise aus dem ISR-Kontext des CAN-Controllers oder dem Task-Kontext desCanIfaufgerufen; Zustandssperren (Critical Sections) imCanTpsind zwingend erforderlich.
- BSW-Konfiguration (
CanTp.epc):- Relevante Parameter:
CanTpTxChannel,CanTpNas,CanTpNbs,CanTpNcs,CanTpTc(Transmit Cancellation Support) sowie das Mapping vonCanTpTxNSduIdaufCanIfTxPduId.
- Relevante Parameter:
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.