DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_FlexRayInterface FIG-4ad16857356420f0 984 × 1208 px 1 Release(s)

Figure 9: 3: ProvideTxConfirmation

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

Das UML-Sequenzdiagramm mit dem Rahmen sd FrIf Provide TxConfirmation spezifiziert den Ablauf zur Bereitstellung der Sende-Bestätigung (Tx-Confirmation) innerhalb des AUTOSAR FlexRay-Kommunikationsstacks. Der dargestellte Prozess ist im Kontext der Joblisten-Ausführung (FrIf Joblist Handling) der FlexRay-Schnittstelle (FrIf) angesiedelt und beschreibt die Interaktion zwischen einer Interrupt-Service-Routine, dem FrIf-Modul, dem darunterliegenden FlexRay-Treiber (Fr) sowie einer übergeordneten Schicht (Upper Layer).

2. Komponenten, Entitäten & Schnittstellen

Beteiligte Komponenten und Entitäten (als UML-Lifelines):

  • Generic Elements::Upper Layer for FrIf: Übergeordnete AUTOSAR-Schicht (z. B. PduR oder FrNm), die PDUs an das FrIf übergibt und Bestätigungen empfängt.
  • Generic Elements::Interrupt Service Routine: Generischer Auslöser / ISR, welcher die periodische oder ereignisgesteuerte Joblisten-Abarbeitung triggert.
  • «module» FrIf::FrIf: FlexRay Interface, zentrales Schichtmodul zur Abstraktion von Clustern und Controllern.
  • «module» Fr::Fr: FlexRay Driver (Treiber), zuständig für den hardwarenahen Zugriff auf den Kommunikationscontroller.

Schnittstellen und Operationen:

  • FrIf_JobListExec_<ClstIdx>() / Rückgabe FrIf_JobListExecution_<ClstIdx>: Triggeraufruf der Joblisten-Abarbeitung für einen spezifischen Cluster-Index.
  • Fr_CheckTxLPduStatus(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_TxLSduStatusPtr) / Rückgabe Fr_CheckTxLSduStatus: Treiberfunktion zur Prüfung des Übertragungsstatus eines LPdu-Puffers.
  • <UL_TxConfirmation>(TxPduId) / Rückgabe <UL_TxConfirmation>: Callback-Funktion der oberen Schicht zur Benachrichtigung über die erfolgreiche Übertragung einer PDU.

3. Dynamisches Verhalten & Sequenzablauf

  1. Die Generic Elements::Interrupt Service Routine initiiert über den synchronen Aufruf FrIf_JobListExec_<ClstIdx>() die Joblisten-Ausführung im Modul FrIf::FrIf.
  2. FrIf führt eine interne Sequenz zur Vorbereitung der Statusprüfung aus:
    • Bestimmung von Treiber-, LPdu- und Controller-Index (Determine DriverIdx, Fr_LPduIdx, and Fr_CtrlIdx for checking the TxLSdu Status).
    • Vorbereitung des Ausgabezeigers (Set Fr_TxLSduStatusPtr to &FrIf_TxLSduStatus).
  3. FrIf ruft synchron am Treiber Fr::Fr die Funktion Fr_CheckTxLPduStatus(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_TxLSduStatusPtr) auf.
  4. Fr ermittelt anhand von Fr_LPduIdx den tatsächlichen Sendepuffer des Controllers Fr_CtrlIdx (Use Fr_LPduIdx to find out actual transmit buffer of CC Fr_CtrlIdx) und prüft den Hardware-Sendestatus (Check Tx Status of Buffer), bevor die Ausführung via Fr_CheckTxLSduStatus an FrIf zurückkehrt.
  5. In einem kombinierten Fragment opt prüft FrIf, ob der Sendestatus erfolgreich ist (Fr_TxLSduStatus == FR_TRANSMITTED):
    • Wenn wahr, wird eine Schleife loop For each PDU in this Frame über alle im übertragenen Frame enthaltenen PDUs durchlaufen.
    • Innerhalb der Schleife prüft ein weiteres Fragment opt, ob für die PDU eine Bestätigung aussteht und konfiguriert ist (PDU's TxConfCounter > 0 && TxConfirmation is configured for this PDU).
    • Bei erfüllter Bedingung ermittelt FrIf die PDU-Kennung und die zugehörige Upper-Layer-Komponente (Determine TxPduId and PDU-owning Upper Layer).
    • FrIf ruft den Callback <UL_TxConfirmation>(TxPduId) an Upper Layer for FrIf auf und wartet auf dessen Rückkehr.
    • Nach erfolgreichem Rücksprung dekrementiert FrIf den Bestätigungszähler der PDU (Decrement PDU's TxConfCounter).
  6. Nach Abschluss der Prüfungen und Schleifen kehrt FrIf mit FrIf_JobListExecution_<ClstIdx> zur Interrupt-Service-Routine zurück.

4. Normative Relevanz & Entwickler-Hinweise

  • Die Überprüfung des Übertragungsstatus erfolgt auf LPdu-Ebene über den FlexRay-Treiber, während Tx-Confirmations auf I-PDU-Ebene an die jeweilige Upper Layer gemeldet werden (Unterstützung von PDU-Multiplexing / mehreren PDUs pro Frame).
  • Das Dekrementieren des Zählers TxConfCounter ist streng an die Bedingung gekoppelt, dass eine TxConfirmation konfiguriert ist und der Status FR_TRANSMITTED signalisiert wurde.
  • Die Benachrichtigung der oberen Schicht erfolgt blockierend im Ausführungskontext der Jobliste / ISR. Implementierer müssen sicherstellen, dass Upper-Layer-Callbacks zeitlich deterministisch und ohne blockierende Wartezeiten ausgeführt werden.

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

R4.0.3 → R4.1.3 redaktionell Vorgänger: FIG-3963b9bf009a4bc5
  • Lokale Operation: Determine FrTxPduId and PDU-owning Upper Layer umbenannt zu Determine TxPduId and PDU-owning Upper Layer.
  • Funktionsaufruf: <UL_TxConfirmation>(FrIf_TxPduId) umbenannt zu <UL_TxConfirmation>(TxPduId).
R4.2.2 → R18-10_R4.4.0_R1.5.0 normative Änderung Nachfolger: FIG-a7000c882c4ec122
  • Interaktionsrahmen: Diagrammrahmen sd FrIf Provide TxConfirmation entfernt.
  • Lifelines: Namensräume Generic Elements:: und Qualifizierer FrIf:: bzw. Fr:: in den Lifeline-Köpfen entfernt (Generic Elements::Upper Layer for FrIf zu Upper Layer for FrIf, Generic Elements::Interrupt Service Routine zu Interrupt Service Routine, «module» FrIf::FrIf zu «module» FrIf, «module» Fr::Fr zu «module» Fr).
  • Aufruf Joblist Execution: FrIf_JobListExec_<ClstIdx>() geändert zu FrIf_JobListExec_<FrIfCluster.ShortName>.
  • Lokale Operationen und Rücksprünge: Ergänzung von Leerklammern () an Determine DriverIdx, Fr_LPduIdx, and Fr_CtrlIdx for checking the TxLSdu Status(), Set Fr_TxLSduStatusPtr to &FrIf_TxLSduStatus(), Check Tx Status of Buffer(), Fr_CheckTxLSduStatus(), Determine FrTxPduId and PDU-owning Upper Layer(), <UL_TxConfirmation>(), Decrement PDU's TxConfCounter() und FrIf_JobListExecution_<ClstIdx>().
  • Treiber-API-Aufruf: Parameterliste von Fr_CheckTxLPduStatus erweitert um Fr_SlotAssignmentPtr sowie Typpenennung korrigiert (Fr_TxLSduStatusPtr zu Fr_TxLPduStatusPtr): Fr_CheckTxLPduStatus(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_TxLPduStatusPtr, Fr_SlotAssignmentPtr).
  • Upper-Layer-Bestätigungsaufruf: Parameterliste von <UL_TxConfirmation>(TxPduId) geändert zu typisierter Signatur <UL_TxConfirmation>(PduIdType, Std_ReturnType).
  • Lokale Operation: Namensgebung Determine TxPduId and PDU-owning Upper Layer zurückgeändert zu Determine FrTxPduId and PDU-owning Upper Layer().

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

sd FrIf Provide TxConfirmation | Generic Elements::Interrupt | Service Routine | Generic Elements::Upper Layer | for FrIf | «module» | FrIf::FrIf | «module» | Fr::Fr | FrIf Joblist Handling | opt PDU's TxConfCounter > 0 && TxConfirmation is configured for this PDU | loop For each PDU in this Frame | opt Fr_TxLSduStatus == FR_TRANSMITTED | FrIf_JobListExec_<ClstIdx>() | Determine DriverIdx, Fr_LPduIdx, and Fr_CtrlIdx for checking the TxLSdu Status | Set Fr_TxLSduStatusPtr to &FrIf_TxLSduStatus | Fr_CheckTxLPduStatus(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_TxLSduStatusPtr) | Use Fr_LPduIdx to find out actual transmit buffer | of CC Fr_CtrlIdx | Check Tx Status of Buffer | Fr_CheckTxLSduStatus | Determine TxPduId and PDU-owning Upper Layer | <UL_TxConfirmation>(TxPduId) | <UL_TxConfirmation> | Decrement PDU's TxConfCounter | FrIf_JobListExecution_<ClstIdx>

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.1.3 AUTOSAR_SWS_FlexRayInterface S. 112 9 Figure 9: 3: ProvideTxConfirmation