DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_FlexRayInterface FIG-6a4e7a32c99021d2 840 × 1037 px 2 Release(s)

Figure 9: 4: ReceiveAndIndicate

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

Sequenzdiagramm zur Darstellung der unmittelbaren L-SDU- und PDU-Empfangsverarbeitung (ReceiveAndIndicate) im AUTOSAR-FlexRay-Stack. Das Diagramm zeigt die Abläufe zwischen der Interrupt Service Routine (ISR), dem FlexRay-Interface (FrIf), dem FlexRay-Treiber (Fr) und den Empfänger-Oberschichten (Upper Layer for FrIf).

2. Komponenten, Entitäten & Schnittstellen

Das Diagramm umfasst vier Interaktionsteilnehmer (Lebenslinien):

  • Upper Layer for FrIf
  • Interrupt Service Routine
  • «module» FrIf
  • «module» Fr

Schnittstellen und Operationen:

  • FrIf_JobListExec_<FrIfCluster.ShortName>()
  • Fr_ReceiveRxLPdu(Std_ReturnType, uint8, uint16, uint8**, Fr_RxLPduStatusType**, uint8**, Fr_SlotAssignmentType**)
  • Rückmeldung Fr_ReceiveRxLSdu()
  • Callback <UL_RxIndication>(PduIdType, const uint8*) mit Rückkehr <UL_RxIndication>()

3. Dynamisches Verhalten & Sequenzablauf

  1. Die Interrupt Service Routine stößt über FrIf_JobListExec_<FrIfCluster.ShortName>() die Ausführung der Jobliste in «module» FrIf an (Notiz FrIf Jobllist Handling).
  2. «module» FrIf führt vorbereitende Aktionen aus:
    • Determine DriverIdx, Fr_LPduIdx, and Fr_CtrlIdx for receiving()
    • Set FrSduPtr to a temporary L-SDU buffer in the FrIf()
    • Set Fr_LSduStatusPtr to &FrIf_LSduStatus; Set Fr_LSduLengthPtr to &FrIf_LSduLength()
  3. Synchroner Aufruf an «module» Fr: Fr_ReceiveRxLPdu(Std_ReturnType, uint8, uint16, uint8**, Fr_RxLPduStatusType**, uint8**, Fr_SlotAssignmentType**)
  4. «module» Fr führt interne Schritte aus:
    • Use Fr_LPduIdx to find out actual receive buffer of CC Fr_CtrlIdx()
    • Use Fr_LSduPtr and Fr_LSduLength to copy L-SDU from CC receive buffer()
    • Write the L-SDU's receive status to *Fr_RxLSduStatusPtr; Write the length of the recieved L-SDU to *Fr_LSduLengthPtr() Anschließend Rückmeldung via Fr_ReceiveRxLSdu().
  5. Optionales Segment (opt Fr_LSduStatus == FR_RECEIVED):
    • Schleife loop For each PDU in this Frame:
      • «module» FrIf führt Selbstaufruf aus: Determine FrRxPduId and Byte Offset of PDU in Frame().
      • Verzweigung alt PDU's FRIF_PDU_UPDATE_BIT_OFFSET == -1:
        • [FALSE]: Untergeordnetes opt PDU is marked as "up-to-date". Bei Zutreffen erfolgt der Aufruf <UL_RxIndication>(PduIdType, const uint8*) an Upper Layer for FrIf. Diese führt Copy PDU to internal location() aus und kehrt mit <UL_RxIndication>() zurück.
        • [TRUE]: Notiz Act as if Update Bit was configured and PDU was marked as up-to-date.
  6. Rückkehr aus der Joblistenverarbeitung FrIf_JobListExec_<FrIfCluster.ShortName>() an die Interrupt Service Routine.

4. Normative Relevanz & Entwickler-Hinweise

Die Schnittstelle zum FlexRay-Treiber verwendet standardisierte AUTOSAR-C-Typen und umfasst neben Puffer- und Statuszeigern auch den Parameter Fr_SlotAssignmentType**. Die Namensgebung des Joblistenaufrufs referenziert direkt das Konfigurationsattribut <FrIfCluster.ShortName>. Das Verhalten bei nicht konfiguriertem Update-Bit (OFFSET == -1) setzt voraus, dass das FrIf die PDU als aktuell behandelt und die Weiterleitung an die Oberschicht über den typisierten Callback <UL_RxIndication>(PduIdType, const uint8*) ausführt.

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

R4.3.1 → R18-10_R4.4.0_R1.5.0 normative Änderung Vorgänger: FIG-23c0c9f8cb629c67
  • Lebenslinien-Header: Wegfall der UML-Präfixe Generic Elements:: und «module» mit Namespace-Qualifizierern (Generic Elements::Upper Layer for FrIf -> Upper Layer for FrIf, Generic Elements::Interrupt Service Routine -> Interrupt Service Routine, «module» FrIf::FrIf -> «module» FrIf, «module» Fr::Fr -> «module» Fr).
  • Joblist-Aufruf und Rückkehr: Funktionsname von FrIf_JobListExec_<ClstIdx>() bzw. Rückkehr FrIf_JobListExecution_<ClstIdx> zu FrIf_JobListExec_<FrIfCluster.ShortName>() präzisiert.
  • Treiberaufruf Fr_ReceiveRxLPdu: Signatur von Parameternamen (return, Fr_CtrlIdx, Fr_LPduIdx, Fr_LSduPtr, Fr_LPduStatusPtr, Fr_LSduLengthPtr) auf C-Typen umgestellt und um einen Parameter erweitert: Fr_ReceiveRxLPdu(Std_ReturnType, uint8, uint16, uint8**, Fr_RxLPduStatusType**, uint8**, Fr_SlotAssignmentType**).
  • Verzweigung alt / [TRUE]: Die Textnotiz Act as if Update Bit was configured and PDU was marked as up-to-date wurde wieder eingefügt.
  • PDU-Bestimmung: Selbstaufruf wieder auf Determine FrRxPduId and Byte Offset of PDU in Frame() geändert.
  • Indikationsaufruf: Signatur von Parameternamen (<UL_RxIndication>(RxPduId,FrIf_SduPtr)) auf formale C-Typen umgestellt: <UL_RxIndication>(PduIdType, const uint8*).
  • Sämtliche internen Aktionen und Methodenaufrufe wurden einheitlich mit leeren Funktionsklammern versehen (z. B. Copy PDU to internal location(), Fr_ReceiveRxLSdu()).
R19-11 → R20-11 keine inhaltliche Änderung Nachfolger: FIG-4a67675fbcb5aca1

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Upper Layer for FrIf Interrupt Service Routine «module» | Fr | «module» | FrIf | opt Fr_LSduStatus == FR_RECEIVED | loop For each PDU in this Frame | alt PDU's FRIF_PDU_UPDATE_BIT_OFFSET == .1 | [FALSE] | [TRUE] | opt PDU is marked as "up-to-date" | FrIf Jobllist Handling | Act as if Update Bit was configured and PDU was marked as up-to-date | <UL_RxIndication>(PduIdType, const uint8*) | Set Fr_LSduStatusPtr to &FrIf_LSduStatus; Set Fr_LSduLengthPtr to &FrIf_LSduLength() | <UL_RxIndication>() | FrIf_JobListExec_<FrIfCluster.ShortName>() | Fr_ReceiveRxLSdu() | Write the L-SDU's receive status to *Fr_RxLSduStatusPtr; Write the | length of the recieved L-SDU to *Fr_LSduLengthPtr() | Fr_ReceiveRxLPdu(Std_ReturnType, uint8, uint16, uint8**, Fr_RxLPduStatusType**, uint8**, Fr_SlotAssignmentType**) | Determine FrRxPduId and Byte Offset of PDU in Frame() | Set FrSduPtr to a temporary L-SDU buffer in the FrIf() | FrIf_JobListExec_<FrIfCluster.ShortName>() | Determine DriverIdx, Fr_LPduIdx, and Fr_CtrlIdx for receiving() | Copy PDU to internal location() | Use Fr_LSduPtr and Fr_LSduLength to copy L-SDU from CC receive buffer() | Use Fr_LPduIdx to find out actual receive | buffer of CC Fr_CtrlIdx()

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R18-10_R4.4.0_R1.5.0 AUTOSAR_SWS_FlexRayInterface S. 113 9 Figure 9: 4: ReceiveAndIndicate
R19-11 AUTOSAR_SWS_FlexRayInterface S. 125 9 Figure 9: 4: ReceiveAndIndicate