DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_CANTransportLayer FIG-ee963690996240af 915 × 325 px 1 Release(s)

Figure 5: Tx and Rx Buffer locking It is assumed that upper layer module has locked the buffer when it returns a status BUFREQ_OK to a PduR_CanTpStartOfReception() call or when CanTp_Transmit() returns E_OK and shall keep the buffer locked until a confirmation or indication (PduR_CanTpTxConfirmation() or PduR_CanTpRxIndication() call) occurs. The following figure provides an example, to summarize the process of sending a frame, with a length of 50 bytes utilizing CAN 2.0 frames.

SHA-256 Inhalts-Fingerabdruck: ee963690996240af980f3230bb113a22a91628979f7ca1028a01221e5c3c8176
✦ 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

UML-Zustandsdiagramm (sm Buffer lock) der AUTOSAR Classic Platform (SWS CAN Transport Layer). Das Diagramm modelliert das protokollbezogene Sperrkonzept (Buffer Locking) für Sende- und Empfangspuffer zwischen dem CAN Transport Layer (CanTp) und der übergeordneten Schicht (typischerweise PduR bzw. DCM/COM) zur Sicherstellung der Datenkonsistenz während laufender Übertragungen.

2. Komponenten, Entitäten & Schnittstellen

  • Entitäten & Zustandsmaschinen:
    • Transmit Buffer: Verwaltet den Sperrzustand des Sendepuffers der oberen Schicht mit den diskreten Zuständen LOCK und UNLOCK.
    • Receiving Buffer: Verwaltet den Sperrzustand des Empfangspuffers der oberen Schicht mit den diskreten Zuständen LOCK und UNLOCK.
  • Schnittstellen & Rückgabewerte:
    • CanTp_Transmit(): Sendeanforderung der oberen Schicht an CanTp; Rückgabewert E_OK.
    • PduR_CanTpTxConfirmation(): Callback von CanTp an die obere Schicht zur Bestätigung des Übertragungsendes.
    • PduR_CanTpStartOfReception(): Benachrichtigung über Übertragungsbeginn von CanTp an die obere Schicht; Rückgabewert BUFREQ_OK.
    • PduR_CanTpRxIndication(): Callback von CanTp an die obere Schicht zur Signalisierung des Empfangsabschlusses.

3. Dynamisches Verhalten & Sequenzablauf

  • Transmit Buffer:
    • Ausgehend von UNLOCK wechselt der Puffer nach LOCK, sobald der Funktionsaufruf CanTp_Transmit() mit dem Status E_OK an das übergeordnete Modul zurückkehrt.
    • Der Übergang von LOCK zurück nach UNLOCK wird durch den Aufruf von PduR_CanTpTxConfirmation() durch das CanTp-Modul ausgelöst.
  • Receiving Buffer:
    • Ausgehend von UNLOCK wechselt der Puffer nach LOCK, wenn der Aufruf PduR_CanTpStartOfReception() durch die obere Schicht mit BUFREQ_OK quittiert wird.
    • Der Übergang von LOCK zurück nach UNLOCK erfolgt mit dem abschließenden Aufruf von PduR_CanTpRxIndication() durch das CanTp-Modul.

4. Normative Relevanz & Entwickler-Hinweise

  • Normative Relevanz: Verbindliche Festlegung der Pufferhoheit und des Lebenszyklus von TP-Puffern. Ein Puffer im Zustand LOCK darf von der oberen Schicht bis zum Erhalt des korrespondierenden Abschluss-Callbacks weder überschrieben, freigegeben noch anderweitig allokiert werden.
  • Entwickler-Hinweise:
    • Tritt bei CanTp_Transmit() ein Fehler auf (Rückgabe ≠ E_OK) oder antwortet PduR_CanTpStartOfReception() mit einem Fehlerstatus (z. B. BUFREQ_E_NOT_OK, BUFREQ_E_OVFL), verbleibt der jeweilige Puffer im Zustand UNLOCK.
    • Auch im Fehlerfall (z. B. Timeout N_Ar/N_As/N_Cr oder Verbindungsabbruch) muss CanTp zwingend PduR_CanTpTxConfirmation() bzw. PduR_CanTpRxIndication() mit negativem Ergebnis aufrufen, um Deadlocks bzw. Pufferlecks in der oberen Schicht zu verhindern.
    • Das Diagramm abstrahiert die während des Zustands LOCK iterativ erfolgenden Datenkopierzyklen (PduR_CanTpCopyTxData bzw. PduR_CanTpCopyRxData).

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

sm Buffer lock | LOCK | UNLOCK | CanTp_Transmit() return = E_OK | call of PduR_CanTpTxConfirmation | LOCK | UNLOCK | PduR_CanTpStartOfReception return = BUFREQ_OK call of PduR_CanTpRxIndication | Transmit Buffer Receiving Buffer

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R20-11 AUTOSAR_SWS_CANTransportLayer S. 35 5 Figure 5: Tx and Rx Buffer locking It is assumed that upper layer module has locked the buffer when it returns a status BUFREQ_OK to a PduR_CanTpStartOfReception() call or when CanTp_Transmit() returns E_OK and shall keep the buffer locked until a confirmation or indication (PduR_CanTpTxConfirmation() or PduR_CanTpRxIndication() call) occurs. The following figure provides an example, to summarize the process of sending a frame, with a length of 50 bytes utilizing CAN 2.0 frames.