DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_FlexRayInterface FIG-a7000c882c4ec122 836 × 877 px 2 Release(s)

Figure 9: 3: ProvideTxConfirmation

SHA-256 Inhalts-Fingerabdruck: a7000c882c4ec1225cda69453debf2488b2f810ba0f78df27a742390d57a6fd2
✦ 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 ohne Rahmenkopf 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 for FrIf).

2. Komponenten, Entitäten & Schnittstellen

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

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

Schnittstellen und Operationen:

  • FrIf_JobListExec_<FrIfCluster.ShortName>() / Rückgabe FrIf_JobListExecution_<ClstIdx>(): Aufruf der Joblisten-Ausführung für das durch seinen ShortName identifizierte Cluster.
  • Fr_CheckTxLPduStatus(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_TxLPduStatusPtr, Fr_SlotAssignmentPtr) / Rückgabe Fr_CheckTxLSduStatus(): Treiberfunktion zur Prüfung des Übertragungsstatus eines LPdu-Puffers unter Angabe der Puffer- und Slotzuweisungszeiger.
  • <UL_TxConfirmation>(PduIdType, Std_ReturnType) / Rückgabe <UL_TxConfirmation>(): Standardisierte Callback-Funktion der oberen Schicht zur Bestätigung der Sendeoperation mit PDU-Identifikator und Ergebnisstatus.

3. Dynamisches Verhalten & Sequenzablauf

  1. Die Interrupt Service Routine initiiert über den synchronen Aufruf FrIf_JobListExec_<FrIfCluster.ShortName>() die Joblisten-Ausführung im Modul «module» 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 Statuszeigers (Set Fr_TxLSduStatusPtr to &FrIf_TxLSduStatus()).
  3. FrIf ruft synchron am Treiber «module» Fr die Funktion Fr_CheckTxLPduStatus(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_TxLPduStatusPtr, Fr_SlotAssignmentPtr) 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 FrTxPduId and PDU-owning Upper Layer()).
    • FrIf ruft den Callback <UL_TxConfirmation>(PduIdType, Std_ReturnType) an Upper Layer for FrIf auf und wartet auf dessen Rückkehr (<UL_TxConfirmation>()).
    • 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 Treiberfunktion Fr_CheckTxLPduStatus erfordert neben dem Statuszeiger Fr_TxLPduStatusPtr zusätzlich den Parameter Fr_SlotAssignmentPtr zur Verifikation der Slotzuordnung.
  • Die Benachrichtigung <UL_TxConfirmation> der oberen Schicht verwendet die standardisierten AUTOSAR-Parametertypen PduIdType und Std_ReturnType, wodurch der Übertragungsstatus explizit an die obere Schicht übermittelt wird.
  • Der Aufruf der Joblisten-Ausführung erfolgt clusterbezogen über das Modell-Element <FrIfCluster.ShortName>.
  • 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.2.2 → R18-10_R4.4.0_R1.5.0 normative Änderung Vorgänger: FIG-4ad16857356420f0
  • 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().
R19-11 → R20-11 keine inhaltliche Änderung Nachfolger: FIG-958196574a2005ce

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Interrupt Service Routine Upper Layer for FrIf «module» | FrIf | «module» | 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_JobListExecution_<ClstIdx>() | Check Tx Status of Buffer() | Determine DriverIdx, Fr_LPduIdx, and Fr_CtrlIdx for checking the TxLSdu Status() | <UL_TxConfirmation>(PduIdType, Std_ReturnType) | Fr_CheckTxLSduStatus() | Fr_CheckTxLPduStatus(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_TxLPduStatusPtr, Fr_SlotAssignmentPtr) | Decrement PDU's TxConfCounter() | Use Fr_LPduIdx to find out actual transmit buffer of | CC Fr_CtrlIdx() | FrIf_JobListExec_<FrIfCluster.ShortName> () | Determine FrTxPduId and PDU-owning Upper Layer() | <UL_TxConfirmation>() | Set Fr_TxLSduStatusPtr to &FrIf_TxLSduStatus()

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R18-10_R4.4.0_R1.5.0 AUTOSAR_SWS_FlexRayInterface S. 112 9 Figure 9: 3: ProvideTxConfirmation
R19-11 AUTOSAR_SWS_FlexRayInterface S. 124 9 Figure 9: 3: ProvideTxConfirmation