DEENESPTFRRUARHIKOZHNL
CLASSIC Modul: frif Rolle: heuristic Konfidenz: 80%

SNIP_CLASSIC_FRIF_SECTION_7_6_5_1_TransmitWithDecoupledBufferAccess

Quelle: SWS_FlexRayInterface.pdf (Seite 38) • Ziel-Anforderung: SWS_Fr_00224

Wortlaut

7.6.5.1 TransmitWithDecoupledBufferAccess [SWS_FrIf_05058] Upstream requirements: SRS_Fr_05130 ⌈The FrIf module shall be capable of Transmit Request queuing by using the TrigTx Counter.⌋ Note: Only the amount of transmit requests are stored, not the data itself. [SWS_FrIf_05063] Upstream requirements: SRS_Fr_05027 ⌈If the related CC is in FrIf_State FRIF_STATE_ONLINE for a Communication Operation DECOUPLED_TRANSMISSION, then the Job List Execution Function shall execute this Communication Operation. Otherwise, the Job List Execution Function shall ignore this Communication Operation.⌋ [SWS_FrIf_05287] ⌈For a Communication Operation DECOUPLED_TRANSMISSION the Job List Execution Function shall perform the following steps 1. Iterate over all PDUs contained in the FrIfFrameStructure (see FrIf05370) of the associated frame triggering of this Communication Operation and (a) Check whether TrigTxCounter is > 0 or FrIfNoneMode == true for the PDU. If not, clear the update-bit for this PDU [Configuration Parameter FrIfPdu UpdateBitOffset, see FrIf06071] and proceed with the next PDU, otherwise continue with the following steps: i. Decrement TrigTxCounter only if TrigTxCounter > 0. If the value of Trig TxCounter = 0, do not decrement. ii. Call the upper layer’s function LSduR_FrIfTriggerTransmit() with the associated PDUId (defined by the upper layer) and pass a pointer to a temporary buffer within the FrIf that assembles the L-SDU. The pointer shall consider the byte offset [Configuration Parameter FrIfPduOffset, see FrIf06070]] of the PDU within the frame. If LSduR_FrIfTriggerTransmit() returns E_NOT_OK, the TrigTxCounter value has to be rolled back to the previous value. iii. Remember that a transmission for this PDU is pending if a transmission confirmation is needed for this PDU [Configuration Parameter Fr IfConfirm, see FrIf06075] increment TxConfCounter, where the maximum value is limited by static configuration [Configuration Parameter FrIf CounterLimit, see FrIf06076]. If the FrIfCounterLimit has been reached, the FrIfCounterLimit value is kept and not incremented any more. iv. Set the update-bit if configured for this PDU [Configuration Parameter Fr IfPduUpdateBitOffset, see FrIf06071]. In case the API LSduR_FrIfTriggerTransmit() does not return E_OK, or the API FrIf_CancelTransmit ()for the corresponding PDU has been called, reset the update-bit to "not updated". 2. If at least one PDU was requested for transmission or for at least one PDU FrIf NoneMode == true and LSduR_FrIfTriggerTransmit() returned E_OK or the frame is configured to be always transmitted [Configuration Parameter FrIfAlwaysTransmit == true] then the FlexRay Driver’s API service Fr_TransmitTxLPdu() is called: (a) Fr_CtrlIdx is derived according to the indexing scheme described in chapter of indexing. (b) Fr_LPduIdx is set to the configured L-PDU index [Configuration Parameter (c) FrIfLPduIdx, see FrIf06058] associated with the Communication Operation (d) Fr_LSduPtr is set to the temporary FrIf L-SDU assembling buffer. (e) d. Fr_LSduLength is set to the L-SDU length [Configuration Parameter FrIf LSduLength, see FrIf06054] (f) Fr_SlotAssignmentPtr is set to a temporary slot assignment buffer if Bus Mirroring is enabled globally (see FrIfBusMirroringSupport), otherwise to the NULL_PTR. 3. If Bus Mirroring is enabled globally (see FrIfBusMirroringSupport) and has been activated with a call to FrIf_EnableBusMirroring() for the Fr_CtrlIdx and Fr_ TransmitTxLPdu() returned E_OK (indicating that the transmission succeeded), call Mirror_ReportFlexRayFrame() with "controllerId" set to Fr_CtrlIdx, , "slotId", "cycle", and "channel" taken from Fr_SlotAssignmentPtr, "frame" constructed from Fr_LSduPtr and Fr_LSduLength, and "txConflict" set to false. 4. In case the Driver’s API Fr_TransmitTxLPdu() returned E_NOT_OK (indicating that the transmission failed) changes on TrigTxCounter and TxConfCounter must be rolled back (see 4. and 5.) for each PDU contained in the FlexRay L-SDU. ⌋ Note: All described actions in SWS_FrIf_05287 are depicted in detail in the sequence chart in Section 9.1.2. [SWS_FrIf_05435] ⌈If FrIfAllowDynamicLSduLength exists and is set to TRUE for the associated frame triggering, the actual L-SDU length, that is passed to the driver by calling Fr_TransmitTxLPdu(), shall be determined (i.e. shortened as much as possible) by taking only those PDUs into account, which have been indicated via LSduR_ FrIfTriggerTransmit() and consider the following points: • the position of the respective PDU within the L-SDU • the actual length of the respective PDU as passed via LSduR_FrIfTriggerTransmit() ⌋ [SWS_FrIf_05436] ⌈A shortened L-Sdu (see [SWS_FrIf_05435]) shall always contain all configured update bits.⌋ Note: [SWS_FrIf_05435] and [SWS_FrIf_05436] ensure that on one hand all the needed information for disassembling the L-SDU is available on receiver side (PDU(s) itself and the corresponding update-bit(s) if configured), and on the other hand that the payload can be reduced as much as possible by taking the position of all the required data for disassembling contained in the frame construction plan into account when shortening the L-SDU to be passed to the driver.

Versionen & Provenienz · Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Begründung & Zuweisungs-Evidenz

Driver executes transmission of LPDU

Dokumenten-Herkunft & Rückverfolgbarkeit

Spezifikations-Dokument SWS_FlexRayInterface.pdf
Dokumentseite Seite 38
Ziel-Modul frif (classic)
Ziel-Anforderung SWS_Fr_00224
Semantische Rolle heuristic
Automatisierungs-Konfidenz 0.80