Figure 9: 4: ReceiveAndIndicate
c984841c6455defdca88c7481dc533e1ed6ff5cc0633b53cd6ddd2201a931796
1. Diagrammtyp & Architektur-Kontext
UML-Sequenzdiagramm (sd FrIfReceiveAndIndicate), das die zeitgesteuerte bzw. interruptgetriebene unmittelbare L-SDU- und PDU-Empfangsverarbeitung innerhalb des AUTOSAR-FlexRay-Stacks darstellt. Der Architektur-Kontext umfasst die Interaktion zwischen einer Interrupt Service Routine (ISR) bzw. dem Job-Handling, dem FlexRay-Interface (FrIf), dem hardwarenahen FlexRay-Treiber (Fr) und den darüberliegenden Schichten (Upper Layer for FrIf, z. B. PduR oder FrNm).
2. Komponenten, Entitäten & Schnittstellen
Das Diagramm umfasst vier Interaktionsteilnehmer (Lebenslinien):
Generic Elements::Upper Layer for FrIfGeneric Elements::Interrupt Service Routine«module» FrIf::FrIf«module» Fr::Fr
Schnittstellen und Operationen:
FrIf_JobListExec_<ClstIdx>()/ RückgabeFrIf_JobListExecution_<ClstIdx>Fr_ReceiveRxLPdu(return, Fr_CtrlIdx, Fr_LPduIdx, Fr_LSduPtr, Fr_LPduStatusPtr, Fr_LSduLengthPtr)- Rückmeldung
Fr_ReceiveRxLSdu - Callback
<UL_RxIndication>(FrIf_RxPduId, FrIf_SduPtr)mit Rückkehr<UL_RxIndication>
3. Dynamisches Verhalten & Sequenzablauf
- Die
Generic Elements::Interrupt Service Routinestößt überFrIf_JobListExec_<ClstIdx>()die Ausführung der Jobliste inFrIf::FrIfan (mit NotizFrIf Jobllist Handling). FrIf::FrIfführt vorbereitende Selbstaufrufe aus:Determine DriverIdx, Fr_LPduIdx, and Fr_CtrlIdx for receivingSet FrSduPtr to a temporary L-SDU buffer in the FrIfSet Fr_LSduStatusPtr to &FrIf_LSduStatus; Set Fr_LSduLengthPtr to &FrIf_LSduLength
FrIf::FrIfruft synchron am TreiberFr::Frdie FunktionFr_ReceiveRxLPdu(...)auf.Fr::Frführt interne Verarbeitungsschritte aus:Use Fr_LPduIdx to find out actual receive buffer of CC Fr_CtrlIdxUse Fr_LSduPtr and Fr_LSduLength to copy L-SDU from CC receive bufferWrite the L-SDU's receive status to *Fr_RxLSduStatusPtr; Write the length of the recieved L-SDU to *Fr_LSduLengthPtrAnschließend erfolgt der ReturnFr_ReceiveRxLSdu.
- Optionales Segment (
opt Fr_LSduStatus == FR_RECEIVED):- Schleife
loop For each PDU in this Frame:FrIf::FrIfbestimmt via SelbstaufrufDetermine FrRxPduId and Byte Offset of PDU in Frame.- Bedingungsprüfung
alt PDU's FRIF_PDU_UPDATE_BIT_OFFSET == -1:- Zweig
[FALSE]: Ein untergeordnetesopt PDU is marked as "up-to-date"prüft die Aktualität. Ist diese gegeben, wird<UL_RxIndication>(FrIf_RxPduId, FrIf_SduPtr)anUpper Layer for FrIfaufgerufen, welche die PDU kopiert (Copy PDU to internal location) und zurückkehrt. - Zweig
[TRUE]: Kein gesonderter Kommentar hinterlegt; die Verarbeitung erfolgt gemäß Verzweigungslogik.
- Zweig
- Schleife
- Abschluss der Jobausführung und Rückkehr
FrIf_JobListExecution_<ClstIdx>an die ISR.
4. Normative Relevanz & Entwickler-Hinweise
Die Sequenz zeigt das deterministische Polling von Empfangspuffern aus dem Joblisten-Kontext heraus. Entwickler müssen beachten, dass das FrIf temporäre Puffer für L-SDUs bereitstellt und Zeiger auf Status- sowie Längenvariablen an den Treiber übergibt. Die Entpackung von I-PDUs aus einem FlexRay-Frame sowie die Update-Bit-Auswertung erfolgen vollständig im Kontext des FrIf vor der Weiterleitung an die Oberschicht via <UL_RxIndication>. Bei nicht konfiguriertem Update-Bit (OFFSET == -1) verhält sich das FrIf so, als sei das Update-Bit gesetzt und die PDU aktuell.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.