DEENESPTFRRUARHIKOZHNL
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 CanTp gemäß 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 :CanTp annotiert).
  • «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 durch PduR (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 Modul LSduR (ersetzt CanIf_Transmit(), dargestellt ohne explizite Parametersignatur).
  • CanTp_TxConfirmation(): Asynchroner Callback von LSduR an CanTp zur Bestätigung der erfolgreichen L-PDU-Aussendung (dargestellt ohne explizite Parametersignatur).
  • PduR_CanTpTxConfirmation(): Asynchroner Abschluss-Callback an PduR nach vollständiger Übertragung der gesamten N-SDU (dargestellt ohne explizite Parametersignatur).

3. Dynamisches Verhalten & Sequenzablauf

  1. Initialer Aufruf & Validierung (synchron):
    • Der PDU Router (PduR) ruft CanTp_Transmit() auf.
    • CanTp führt interne Konsistenzprüfungen durch (Check inputs.).
    • CanTp initialisiert den Tx-Kanal (Activate a Tx task.) und kehrt synchron zur oberen Schicht zurück. Der eigentliche Transfer wird asynchron angestoßen.
  2. 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): CanTp fordert über PduR_CanTpCopyTxData() das nächste Datensegment an. PduR kopiert die Segmentdaten intern (Copy segment data.) und bestätigt synchron.
    • L-PDU-Aussendung: CanTp übergibt die L-PDU über LSduR_CanTpTransmit() an LSduR (anstatt vormals direkt an CanIf).
    • Tx-Quittierung: Nach erfolgreicher Aussendung meldet LSduR den Status über CanTp_TxConfirmation() an CanTp zurück.
  3. Abschluss & Quittierung:
    • Nach vollständiger Übertragung aller Datensegmente der N-SDU meldet CanTp den Gesamtabschluss über PduR_CanTpTxConfirmation() an PduR.

4. Normative Relevanz & Entwickler-Hinweise

  • Puffer-Lebensdauer & Thread-Safety:
    • Der Sendeaufrufer (Com/Dcm) darf den Puffer nach Rückkehr von CanTp_Transmit() nicht freigeben oder überschreiben. Die Daten müssen persistent gehalten werden, bis PduR_CanTpTxConfirmation den Vorgang final abschließt.
  • Pull-Modell-Implementierung:
    • Da CanTp keinen vollständigen N-SDU-Zwischenspeicher vorhält (Zero-Reassembly-Overhead auf N-SDU-Ebene), muss die Implementierung von PduR_CanTpCopyTxData in der oberen Schicht reentrant und latenzarm sein, um Timeouts (N_Cs) zu vermeiden.
  • Kontext & Task-Zuordnung:
    • CanTp_Transmit wird im Task-Kontext der oberen Schicht ausgeführt.
    • CanIf_Transmit und die CopyTxData-Aufrufe erfolgen entweder im Kontext der zyklischen CanTp_MainFunction oder im Kontext der Tx-Task (Activate a Tx task).
    • CanTp_TxConfirmation wird typischerweise aus dem ISR-Kontext des CAN-Controllers oder dem Task-Kontext des CanIf aufgerufen; Zustandssperren (Critical Sections) im CanTp sind zwingend erforderlich.
  • BSW-Konfiguration (CanTp.epc):
    • Relevante Parameter: CanTpTxChannel, CanTpNas, CanTpNbs, CanTpNcs, CanTpTc (Transmit Cancellation Support) sowie das Mapping von CanTpTxNSduId auf CanIfTxPduId.

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

R24-11 → R25-11 keine inhaltliche Änderung Vorgänger: FIG-69d61ec8d9735468

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«module» | PduR | «module» | CanTp | «module» | LSduR |            | loop N-SDU data transfer | [Still data to be sent from this N-SDU] |   |    |    |  |  |  |  |     |  |      | PduR_CanTpTxConfirmation() | CanTp_TxConfirmation() | PduR_CanTpCopyTxData() | LSduR_CanTpTransmit() | CanTp_Transmit()

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_CP_SWS_CANTransportLayer S. 73 9.4 Figure 9.4: Transmit request of larger N-SDU