DEENESPTFRRUARHIKOZHNL

FlexRay Interface (FrIf)

ModulFrIf (FlexRay Interface)
BSW-Modul-ID61
Standard-Header#include "FrIf.h"
SWS-SpezifikationAUTOSAR_SWS_FlexRayInterface.pdf
ClusterFlexRay

Module guideAI-GENERATED

Encapsulates FlexRay drivers and transceivers and controls state, PDU traffic, and job list execution per cluster.
AI-GENERATED unreviewed Model: claude-opus-5-5 · Effort: high · Temperature: not controllable · Prompt: c9748455d0d4 Provenance Open questions (4)
Causal anchor: R20-11 Valid from R20-11 Synthesized for this specification release.
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Encapsulates FlexRay drivers and transceivers and controls state, PDU traffic, and job list execution per cluster.

The FlexRay Interface encapsulates FlexRay and transceiver drivers behind a uniform controller index and mediates PDUs between the upper layers and the bus. Per cluster, it maintains a state machine with the states FRIF_STATE_OFFLINE and FRIF_STATE_ONLINE, which the FlexRay State Manager switches via FrIf_SetState [SWS_FrIf_05174]. Transmission and reception take place time-controlled in the cluster's Job List Execution, and only in the online state (SWS FrIf p. 37). Start, halt, and wakeup services operate asynchronously. Therefore, the caller determines the reached POC state via FrIf_GetPOCStatus.

The FlexRay Interface (FrIf) is located between the upper communication modules and the drivers Fr and FrTrcv. For its core functionality, it requires driver services such as Fr_ControllerInit, Fr_GetPOCStatus, and Fr_ReceiveRxLPdu [SWS_FrIf_05043]. Most control services encapsulate a driver service: Based on the static configuration, they translate FrIf_CtrlIdx into the tuple (FlexRay Driver | Fr_CtrlIdx) and return the driver's result (SWS FrIf p. 55). Start, halt, coldstart enable, and wakeup operate asynchronously [SWS_FrIf_05005]. Therefore, the caller determines the state actually reached using FrIf_GetPOCStatus.

frif_kontext FrSM FrSM (Lebenszyklus) FrIf FrIf FrSM->FrIf FrIf_ControllerInit, FrIf_StartCommunication, FrIf_SetState, FrIf_GetPOCStatus PduR PduR / Upper Layer (PDU-Nutzer) PduR->FrIf FrIf_Transmit, FrIf_CancelTransmit FrNm FrNm FrNm->FrIf FrIf_Transmit, FrIf_GetGlobalTime, FrIf_GetNmVector FrTp FrTp / FrArTp FrTp->FrIf FrIf_Transmit FrTSyn FrTSyn FrTSyn->FrIf FrIf_GetState, FrIf_GetGlobalTime, FrIf_GetMacroticksPerCycle EcuM EcuM EcuM->FrIf FrIf_Init, FrIf_CheckWakeupByTransceiver Mirror Bus Mirroring Mirror->FrIf FrIf_EnableBusMirroring SchM SchM SchM->FrIf FrIf_MainFunction_<FrIfCluster.ShortName> ISR Interrupt Service Routine ISR->FrIf FrIf_JobListExec_<FrIfCluster.ShortName> FrIf->PduR <User_RxIndication>, <User_TxConfirmation>, <User_TriggerTransmit> FrIf->FrTp RxIndication, TxConfirmation, TriggerTransmit FrIf->Mirror Mirror_ReportFlexRayFrame Fr Fr (FlexRay-Treiber) FrIf->Fr Fr_* after index translation (FlexRay Driver | Fr_CtrlIdx) FrTrcv FrTrcv (Transceiver-Treiber) FrIf->FrTrcv FrTrcv_* Det Det FrIf->Det Det_ReportError, Det_ReportRuntimeError Dem Dem FrIf->Dem Dem_SetEventStatus

Context diagram: The FrIf mediates between FrSM, PDU users, time, and mirroring services on the one side and the drivers Fr and FrTrcv on the other. Sources: [SWS_FrIf_05043], SWS FrSM p. 22

Per cluster, the FrIf maintains a state machine with the states FRIF_STATE_OFFLINE and FRIF_STATE_ONLINE [SWS_FrIf_05755]. FrIf_Init() sets each cluster to offline. The environment requests transitions with FrIf_SetState and FRIF_GOTO_ONLINE or FRIF_GOTO_OFFLINE [SWS_FrIf_05174]. Reception, transmission, and transmit confirmation run only online. When transitioning to offline, the upper layers receive E_NOT_OK for pending confirmations [SWS_FrIf_05501].

frif_zustand start off FRIF_STATE_OFFLINE keine Kommunikationsdienste (Cluster nicht synchronisiert) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: keine Transition on FRIF_STATE_ONLINE Empfang, Senden, Tx-Bestätigung (Cluster synchronisiert) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) je PDU mit TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: keine Transition

State diagram: Each cluster starts offline and switches only upon request via FrIf_SetState. Sources: [SWS_FrIf_05303], SWS FrIf p. 25

The FrSM controls the sequence. During startup, it switches the transceivers to normal, starts communication, and enables coldstart if applicable. Then it queries the POC status until FR_POCSTATE_NORMAL_ACTIVE is reached, and only then sets the cluster online (SWS FrSM p. 50). Shutdown proceeds in two stages: first offline and halt, then reinitialization of the controllers and transceiver standby (SWS FrSM p. 58).

FrIf_Transmit initially only counts transmit requests [SWS_FrIf_05033]. The actual transmission takes place in the Job List Execution per cluster [SWS_FrIf_05040]. There, the FrIf fetches the data via TriggerTransmit, confirms transmissions, and reports receptions. It reports errors in three categories: development errors to DET [SWS_FrIf_05145], the runtime error FRIF_E_JLE_SYNC [SWS_FrIf_05432], and channel-wise production errors to DEM [SWS_FrIf_05146].

Role in the FlexRay stack and system boundary

The FlexRay Interface (FrIf) is located between the upper communication modules and the hardware-oriented drivers. For its core functionality, it requires services of the FlexRay driver. These include Fr_ControllerInit, Fr_GetPOCStatus, Fr_ReceiveRxLPdu, and Fr_CheckTxLPduStatus, as well as Det_ReportRuntimeError [SWS_FrIf_05043]. Optional services include Fr_AllSlots, Fr_CancelTxLPdu, and Dem_SetEventStatus [SWS_FrIf_05044]. The header structure shows the integration of Fr.h, FrTrcv.h, PduR_FrIf.h, FrNm_Cbk.h, and FrTp_Cbk.h (SWS FrIf p. 18).

The FlexRay State Manager controls the lifecycle. It maps its functional elements to FrIf calls (SWS FrSM p. 22). PDU users are connected via configurable callbacks: <User_RxIndication>, <User_TxConfirmation>, and <User_TriggerTransmit> [SWS_FrIf_05045] [SWS_FrIf_05046] [SWS_FrIf_05047]. Permissible targets include FrTSyn [SWS_FrIf_05434], FrNm, and FrArTp. Complex Drivers with similar interfaces can also be connected (SWS FrIf p. 97). Other users have their own tasks:

frif_kontext FrSM FrSM (Lebenszyklus) FrIf FrIf FrSM->FrIf FrIf_ControllerInit, FrIf_StartCommunication, FrIf_SetState, FrIf_GetPOCStatus PduR PduR / Upper Layer (PDU-Nutzer) PduR->FrIf FrIf_Transmit, FrIf_CancelTransmit FrNm FrNm FrNm->FrIf FrIf_Transmit, FrIf_GetGlobalTime, FrIf_GetNmVector FrTp FrTp / FrArTp FrTp->FrIf FrIf_Transmit FrTSyn FrTSyn FrTSyn->FrIf FrIf_GetState, FrIf_GetGlobalTime, FrIf_GetMacroticksPerCycle EcuM EcuM EcuM->FrIf FrIf_Init, FrIf_CheckWakeupByTransceiver Mirror Bus Mirroring Mirror->FrIf FrIf_EnableBusMirroring SchM SchM SchM->FrIf FrIf_MainFunction_<FrIfCluster.ShortName> ISR Interrupt Service Routine ISR->FrIf FrIf_JobListExec_<FrIfCluster.ShortName> FrIf->PduR <User_RxIndication>, <User_TxConfirmation>, <User_TriggerTransmit> FrIf->FrTp RxIndication, TxConfirmation, TriggerTransmit FrIf->Mirror Mirror_ReportFlexRayFrame Fr Fr (FlexRay-Treiber) FrIf->Fr Fr_* after index translation (FlexRay Driver | Fr_CtrlIdx) FrTrcv FrTrcv (Transceiver-Treiber) FrIf->FrTrcv FrTrcv_* Det Det FrIf->Det Det_ReportError, Det_ReportRuntimeError Dem Dem FrIf->Dem Dem_SetEventStatus

Context diagram: The FrIf mediates between state control, PDU users, time, and mirroring services on the one hand and the drivers Fr and FrTrcv on the other. It reports errors to DET and DEM. Sources: [SWS_FrIf_05043], [SWS_FrIf_05045], SWS FrSM p. 22, SWS FrIf p. 18

One Controller Index for All Drivers: The Wrapper Principle

Most control services address a Communication Controller (CC) via FrIf_CtrlIdx. The pattern can be shown using the example of FrIf_ControllerInit. Based on the static configuration, the service translates the index into the tuple (FlexRay Driver | Fr_CtrlIdx). It then calls Fr_ControllerInit() of the determined driver (SWS FrIf p. 55). The return value reflects the driver result [SWS_FrIf_05004]. Following the same pattern, other services encapsulate their driver counterparts: start, halt, abort, coldstart enable, wakeup, POC status, and global time [SWS_FrIf_05005] [SWS_FrIf_05006] [SWS_FrIf_05007] [SWS_FrIf_05017] [SWS_FrIf_05011] [SWS_FrIf_05014] [SWS_FrIf_05015]. The same applies to the absolute timer services [SWS_FrIf_05021] [SWS_FrIf_05025] [SWS_FrIf_05029].

For callers, synchronicity is crucial. FrIf_StartCommunication, FrIf_HaltCommunication, FrIf_AllowColdstart, and FrIf_SendWUP operate asynchronously [SWS_FrIf_05005] [SWS_FrIf_05011]. In contrast, FrIf_ControllerInit and FrIf_AbortCommunication operate synchronously [SWS_FrIf_05007]. For the asynchronous services, E_OK merely means that the driver call returned E_OK. The FrSM determines the POC state actually reached through repeated polling with FrIf_GetPOCStatus (SWS FrSM p. 50).

Transceiver services additionally address a channel FrIf_ChnlIdx and encapsulate the FlexRay Transceiver Driver [SWS_FrIf_05034] [SWS_FrIf_05036] [SWS_FrIf_05039]. The value FR_CHANNEL_AB is invalid in this context (SWS FrIf p. 73). Queries such as FrIf_GetMacroticksPerCycle or FrIf_GetCycleLength do not call a driver, but read the static configuration [SWS_FrIf_05018] [SWS_FrIf_05239].

State Machine per Cluster: FRIF_STATE_OFFLINE and FRIF_STATE_ONLINE

The FrIf maintains a dedicated state machine for each FlexRay cluster. FrIf_Init() initially sets each cluster to FRIF_STATE_OFFLINE (SWS FrIf p. 25). The two states have the following meaning [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: The CC is not ready to communicate, the cluster is not synchronized.
  • FRIF_STATE_ONLINE: The CC is ready to communicate, the cluster is synchronized.

The environment requests transitions using FrIf_SetState, specifically with the literals FRIF_GOTO_ONLINE or FRIF_GOTO_OFFLINE [SWS_FrIf_05174] [SWS_FrIf_05303]. A transition takes place only if the cluster is in the respective other state (SWS FrIf p. 25). FrIf_GetState is reentrant [SWS_FrIf_05170], whereas FrIf_SetState is not.

The state determines whether data traffic occurs. When offline, the FrIf executes no communication services. When online, it executes reception, transmission, and transmit confirmation (SWS FrIf p. 25). Upon transitioning to offline, the FrIf checks every PDU: If its TxConfCounter > 0, the upper layer receives <UL>_TxConfirmation(id, E_NOT_OK) [SWS_FrIf_05501]. Starting with R23-11, the specification additionally requires that FrIf_Transmit() returns E_NOT_OK in the offline state (SWS FrIf p. 68). An older diagram shows four states, including FRIF_STATE_HALT (SWS FrIf p. 28). It does not apply to R20-11, because FrIf_StateType recognizes only two values here [SWS_FrIf_05755].

frif_zustand start off FRIF_STATE_OFFLINE keine Kommunikationsdienste (Cluster nicht synchronisiert) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: keine Transition on FRIF_STATE_ONLINE Empfang, Senden, Tx-Bestätigung (Cluster synchronisiert) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) je PDU mit TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: keine Transition

State diagram: Each cluster starts offline and switches only upon request via FrIf_SetState. Upon transitioning to offline, pending transmit confirmations are concluded negatively. Sources: [SWS_FrIf_05174], [SWS_FrIf_05303], [SWS_FrIf_05501], SWS FrIf p. 25

Startup, Wakeup, and Shutdown Controlled by the FrSM

The EcuM initializes the FrIf with FrIf_Init, specifically before FrSM_Init (SWS FrSM p. 46). In doing so, it passes a pointer to FrIf_ConfigType [SWS_FrIf_05003]. The FrSM controls all further steps via its functional elements. Each element calls the associated FrIf service for each controller of the cluster (SWS FrSM p. 22):

  • FE_CONFIG calls FrIf_ControllerInit.
  • FE_START calls FrIf_StartCommunication.
  • FE_ALLOW_COLDSTART calls FrIf_AllowColdstart, but only if FrSMIsColdstartEcu is set.
  • FE_WAKEUP calls FrIf_SendWUP.
  • FE_HALT calls FrIf_HaltCommunication.

Passive startup following a bus wakeup proceeds in this order (SWS FrSM p. 50):

  1. The transceivers are switched to FRTRCV_TRCVMODE_NORMAL.
  2. Communication is started.
  3. A coldstart node additionally enables coldstart.
  4. The FrSM polls the POC status until FR_POCSTATE_NORMAL_ACTIVE is reached.
  5. Only then does FrIf_SetState(…, FRIF_GOTO_ONLINE) follow.

During active wakeup, dual-channel nodes select the wakeup channel using FrIf_SetWakeupChannel [SWS_FrIf_05010]. FrIf_GetWakeupRxStatus reports in bit-coded format on which channel a wakeup was received [SWS_FrIf_05102].

Passive startup of a cluster (single channel, bus wakeup)ComMSchMFrSMFrIfBswMDemFrSM_RequestComMode(network,COMM_FULL_COMMUNICATION)FrSM_MainFunction_<FrSMCluster.ShortName>()loopFor all CtrlIdx of the CCs of the clusterFrIf_GetTransceiverWUReason(CtrlIdx,ChnlIdx, TrcvWUReasonPtr)FRTRCV_WU_BY_BUSFrIf_SetTransceiverMode(CtrlIdx, ChnlIdx,FRTRCV_TRCVMODE_NORMAL)FrIf_StartCommunication(CtrlIdx)BswM_FrSM_CurrentState(FRSM_STARTUP)optFrSMIsColdstartEcu (immediately if FrSMDurationT1 = 0)FrIf_AllowColdstart(CtrlIdx)loopbis FR_POCSTATE_NORMAL_ACTIVEFrSM_MainFunction_<FrSMCluster.ShortName>()FrIf_GetPOCStatus(CtrlIdx, POCStatusPtr)FR_POCSTATE_STARTUP /FR_POCSTATE_NORMAL_ACTIVEFrIf_SetState(ClstIdx, FRIF_GOTO_ONLINE)Cluster jetzt FRIF_STATE_ONLINE:Job list executes communicationDem_SetEventStatus(FRSM_E_CLUSTER_STARTUP, PASSED)BswM_FrSM_CurrentState(FRSM_ONLINE)ComM_BusSM_ModeIndication(NetworkHandle, COMM_FULL_COM)

Sequence diagram: Passive startup up to the online state. The FrIf executes only the individual services; control flow logic resides with the FrSM. Interpretation: The sequence prior to start is simplified. Sources: SWS FrSM p. 50, SWS FrSM p. 21

Shutdown proceeds in two stages. First, the FrSM sets the cluster offline with FRIF_GOTO_OFFLINE and calls FrIf_HaltCommunication. Later, it reinitializes the controllers and sets the transceivers to mode STANDBY (SWS FrSM p. 58). The delay between both stages is determined by the timer t_TrcvStdbyDelay (SWS FrSM p. 21).

Transition from FullCom to NoComComMSchMFrSMFrIfBswMFrSM_RequestComMode(BusHandle, COMM_NO_COM)Use Case: Phase 1: Kommunikation anhaltenFrSM_MainFunction_<FrSMCluster.ShortName>()FrIf_SetState(ClstIdx, FRIF_GOTO_OFFLINE)FrIf_HaltCommunication(CtrlIdx)BswM_FrSM_CurrentState(HALT_REQ)ComM_BusSM_ModeIndication(BusHandle, COMM_NO_COM)Use Case: Phase 2: reinitialize after t_TrcvStdbyDelay and enter standbyFrSM_MainFunction_<FrSMCluster.ShortName>()FrIf_GetPOCStatus(CtrlIdx, FrIf_POCStatusPtr)E_OKFrIf_ControllerInit(FrIf_CtrlIdx)FrIf_SetTransceiverMode(FrIf_CtrlIdx,FrIf_ChnlIdx, STANDBY)BswM_FrSM_CurrentState(READY)

Sequence diagram: Transition from FullCom to NoCom, first halt, then reinitialization and standby. Interpretation: The sequence within the first phase is simplified. Sources: SWS FrSM p. 58, SWS FrSM p. 56

PDU Traffic: Transmit Request and Job List Execution

FrIf_Transmit is synchronous and reentrant for different TxPduId [SWS_FrIf_05033]. With decoupled buffer access, the FrIf stores only the number of transmit requests in TrigTxCounter, not the data itself (SWS FrIf p. 38). For immediate PDUs with fixed length, the FrIf checks the passed length against the configuration [SWS_FrIf_05757]. An ongoing transmission can be aborted with FrIf_CancelTransmit [SWS_FrIf_05070].

The actual bus communication takes place in the Job List Execution Function FrIf_JobListExec_<FrIfCluster.ShortName>, which exists per cluster [SWS_FrIf_05040]. In the diagrams, an Interrupt Service Routine invokes it (SWS FrIf p. 102). This routine is presumably triggered via the Absolute Timers of the CC [SWS_FrIf_05021]. Question Q-d0a286cc1698d9d3 (open) The cyclic FrIf_MainFunction_<FrIfCluster.ShortName> [SWS_FrIf_05042] monitors the continuous execution of the job list as long as the cluster is online. This also includes the (re-)synchronization (SWS FrIf p. 26).

Each communication operation is executed only in the FRIF_STATE_ONLINE state, otherwise ignored (SWS FrIf p. 37). The most important operations work as follows:

  • Decoupled transmission: For each PDU with TrigTxCounter > 0, FrIf fetches the data via <User_TriggerTransmit> [SWS_FrIf_05047]. It then passes the frame to Fr_TransmitTxLPdu(). If the driver rejects it, FrIf resets the counters to their previous state (SWS FrIf p. 102).
  • TX_CONFIRMATION: If the driver reports FR_TRANSMITTED, FrIf confirms the transmission via <User_TxConfirmation> [SWS_FrIf_05046].
  • RECEIVE_AND_INDICATE: FrIf reads up to FrIfRxComOpMaxLoop times and reports each reception via <User_RxIndication> [SWS_FrIf_05045] (SWS FrIf p. 41).

Hardware-specific operations such as <Free_Op_A> also run in the job list [SWS_FrIf_05316]. FrIf reports transmission conflicts via <UL_TxConflictNotification> [SWS_FrIf_91001].

Transmission with decoupled buffer accessComPduR (Upper Layer)FrIfInterrupt Service RoutineFrPduR_ComTransmit()FrIf_Transmit(TxPduId, PduInfoPtr)Increment TrigTxCounter(up to CounterLimit, do not store data)E_OKUse Case: Job DECOUPLED_TRANSMISSION (only FRIF_STATE_ONLINE)FrIf_JobListExec_<FrIfCluster.ShortName>()loopPer PDU in the framealtTrigTxCounter > 0 or FrIfNoneMode == trueTrigTxCounter dekrementierenPduR_<User:Lo>Triggertransmit()Com_TriggerTransmit()copy buffer()E_OKE_OKUpdate-Bit "up-to-date" setzenOtherwiseUpdate-Bit "outdated" setzenoptAlwaysTransmit == TRUE or at least one PDU currentFr_TransmitTxLPdu()Increment TxConfCounter;rollback counter upon E_NOT_OKUse Case: Job TX_CONFIRMATIONFrIf_JobListExec_<FrIfCluster.ShortName>()Fr_CheckTxLPduStatus()FR_TRANSMITTEDPduR_<User:Lo>TxConfirmation()Com_TxConfirmation()

Sequence diagram: Transmission with decoupled buffer access. The request is initially only counted; FrIf does not fetch the data until the job list. Newer versions route via the LSduR in doing so. Sources: [SWS_FrIf_05033], SWS FrIf p. 102, SWS PduR p. 106

frif_joblist start Job der Jobliste fällig FrIf_JobListExec_<FrIfCluster.ShortName>() online FrIf_State des CC == FRIF_STATE_ONLINE? start->online ignore Communication Operation ignorieren online->ignore no art Art der Communication Operation? online->art yes ende nächster Job ignore->ende dtx DECOUPLED_TRANSMISSION: je PDU TrigTxCounter prüfen, <User_TriggerTransmit>, Update-Bits, Fr_TransmitTxLPdu() art->dtx txc TX_CONFIRMATION: Fr_CheckTxLPduStatus(); bei FR_TRANSMITTED und TxConfCounter > 0: <User_TxConfirmation> art->txc rai RECEIVE_AND_INDICATE: Fr_ReceiveRxLPdu() bis zu FrIfRxComOpMaxLoop-mal; <User_RxIndication> art->rai ras RECEIVE_AND_STORE: Fr_ReceiveRxLPdu() in temporären Puffer, PDUs in lokale FrIf-Puffer kopieren art->ras free <Free_Op_A> / <Free_Op_B>: hardwarespezifische Operation art->free dtx->ende txc->ende mirr Bus Mirroring für diesen CC aktiv? rai->mirr Frame empfangen ras->mirr Frame empfangen free->ende report Mirror_ReportFlexRayFrame() mirr->report yes mirr->ende no report->ende

Activity diagram: Processing of a communication operation in the job list. The state of the cluster decides first, then the type of operation. Sources: [SWS_FrIf_05040], SWS FrIf p. 37, SWS FrIf p. 39

Time Base, Additional Services, and Configuration

FrTSyn invokes FrIf_GetGlobalTime only when FrIf_GetState returns the value FRIF_STATE_ONLINE. Only then is the CC synchronous with the global FlexRay time (SWS FrTSyn p. 19). FrIf_GetGlobalTime may also be called within an exclusive area (SWS FrIf p. 64). FrNm also determines the current cycle via this service (SWS FrNm p. 38). FrIf_GetNmVector [SWS_FrIf_05016] can be disabled via FrIfGetNmVectorSupport.

FrIf_EnableBusMirroring specifies per cluster whether Mirror_ReportFlexRayFrame is called for each transmitted or received frame. If FrIfBusMirroringSupport is disabled globally, the service returns E_NOT_OK [SWS_FrIf_05726]. The post-build configuration is implementation-specific and accessible only via pointers to FrIf_ConfigType [SWS_FrIf_05301]. A diagram from R22-11 onward shows the structure: There are one or more FrIfController with FrIfCtrlIdx 0…31, each with up to two transceivers (SWS FrIf p. 139). Optional services such as FrIf_DisableLPdu [SWS_FrIf_05710] are enabled via pre-compile switches, here via FrIfDisableLPduSupport (SWS FrIf p. 84).

Behavior in the event of an error

If FrIfDevErrorDetect is set to ON, the services report development errors to Det_ReportError. The codes range from FRIF_E_PARAM_POINTER (0x01) to FRIF_E_INV_FRIF_STATE (0x0A) and include, among others, FRIF_E_INV_CTRL_IDX and FRIF_E_UNINIT [SWS_FrIf_05145]. The most important cases:

  • Invalid FrIf_CtrlIdx: The wrappers report FRIF_E_INV_CTRL_IDX and return E_NOT_OK (SWS FrIf p. 55).
  • Invalid transition in FrIf_SetState: The service reports FRIF_E_INV_FRIF_STATE [SWS_FrIf_05037].
  • Incorrect length of an immediate PDU: FrIf_Transmit() returns E_NOT_OK and reports FRIF_E_INV_PDULENGTH [SWS_FrIf_05757].
frif_wrapper aufruf Aufruf FrIf_<Dienst>(FrIf_CtrlIdx, …) det FrIfDevErrorDetect == ON und nicht initialisiert / Parameter ungültig? aufruf->det melden Det_ReportError(FRIF_E_UNINIT, FRIF_E_INV_CTRL_IDX, FRIF_E_INV_CHNL_IDX, …) det->melden yes uebersetzen FrIf_CtrlIdx per statischer Konfiguration in (FlexRay Driver | Fr_CtrlIdx) übersetzen det->uebersetzen no nok1 Return E_NOT_OK melden->nok1 treiber Fr_<Dienst>(Fr_CtrlIdx, …) bzw. FrTrcv_<Dienst> des ermittelten Treibers aufrufen uebersetzen->treiber erg Treiber liefert E_OK? treiber->erg ok Return E_OK erg->ok yes nok2 Return E_NOT_OK erg->nok2 no

Activity diagram: Sequence of a wrapper service from parameter check through index translation to returning the driver result. Sources: [SWS_FrIf_05004], [SWS_FrIf_05145], SWS FrIf p. 55

The specification defines FRIF_E_JLE_SYNC as a runtime error. It occurs when job list execution loses synchronization with the FlexRay time [SWS_FrIf_05432]. Interpretation: Resumption is likely the responsibility of the (re-)synchronization by the Main Function (SWS FrIf p. 26). Question Q-9d075afc8e49d498 (open)

FrIf reports production errors channel by channel to the DEM: FRIF_E_NIT_CH_A/B, FRIF_E_SW_CH_A/B, and FRIF_E_ACS_CH_A/B [SWS_FrIf_05146]. The report is DEM_EVENT_STATUS_PREFAILED as soon as error bits such as vSS!SyntaxError are set [SWS_FrIf_05426] [SWS_FrIf_05428]. In contrast, FrSM reports the result of the cluster startup (SWS FrSM p. 50).

Further detailed evidence

AI-generated guide based on the requirements and document passages contained in the payload (Release R20-11). Passages from other releases are marked as such; the specification is authoritative.

FlexRay Interface (FrIf)

Abstracts FlexRay hardware controllers for upper layers.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function FrIf_Init [SWS_FrIf_05003] 📄 PDF

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

Initializes the Flex Ray Interface.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6689f83f9701 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_Init serves to initialize the FlexRay Interface module ([SWS_FrIf_05003]). The call is synchronous and specified as non-reentrant (Non Reentrant) ([SWS_FrIf_05003]).

Parameters and Return Values

  • FrIf_ConfigPtr (input parameter): Base pointer to the configuration structure of the FlexRay Interface ([SWS_FrIf_05003]).
  • Return value: void – the function does not return a return value ([SWS_FrIf_05003]).

Constraints and Call Conditions

Since FrIf_Init is non-reentrant, the function must not be called again concurrently or preemptively by the same or another thread or task at any time ([SWS_FrIf_05003]). The call must take place in the system initialization context before regular services of the FlexRay Interface are used.

This usage note was generated automatically based on the specification of AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I2)

function FrIf_ControllerInit [SWS_FrIf_05004] 📄 PDF

Std_ReturnType FrIf_ControllerInit (uint8 FrIf_CtrlIdx);

Initialized a Flex Ray CC.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: f399f6cb2b11 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function FrIf_ControllerInit serves to initialize a FlexRay Communication Controller (FlexRay CC) [SWS_FrIf_05004]. It is available via the header file FrIf.h and is identified via the service ID 0x03 [SWS_FrIf_05004].

The index of the FlexRay controller to be addressed is passed via the input parameter FrIf_CtrlIdx of data type uint8 [SWS_FrIf_05004]. No further input or output parameters exist for this interface [SWS_FrIf_05004].

The return value is of type Std_ReturnType and returns the status of the initialization to the caller [SWS_FrIf_05004]:

  • E_OK: The call of the API service of the underlying FlexRay driver was successful and returned E_OK [SWS_FrIf_05004].
  • E_NOT_OK: The API service of the FlexRay driver returned E_NOT_OK or an error was detected in development mode [SWS_FrIf_05004].

With regard to concurrency, FrIf_ControllerInit is reentrant for different controller indices (FrIf_CtrlIdx), but non-reentrant for identical values of FrIf_CtrlIdx [SWS_FrIf_05004]. Concurrent calls for the same controller must therefore be prevented by the overall system.

This text was generated by an AI based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I1)

function FrIf_EnableAbsoluteTimerIRQ [SWS_FrIf_05025] 📄 PDF

Std_ReturnType FrIf_EnableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Service FrIf_EnableAbsoluteTimerIRQ.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 517cedc33aed Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The function FrIf_EnableAbsoluteTimerIRQ represents a synchronous service with the service ID 0x1d, provided via the header file FrIf.h [SWS_FrIf_05025]. It acts as a wrapper around the interface Fr_EnableAbsoluteTimerIRQ() of the FlexRay driver to enable the interrupt of an absolute timer [SWS_FrIf_05025].

The call requires two input parameters [SWS_FrIf_05025]:

  • FrIf_CtrlIdx: Index of the FlexRay communication controller (FlexRay CC) to be addressed [SWS_FrIf_05025].
  • FrIf_AbsTimerIdx: Index of the absolute timer to be enabled on the addressed controller [SWS_FrIf_05025].

Return Values and Error Handling

The function returns a status value of type Std_ReturnType [SWS_FrIf_05025]:

  • E_OK: The call to the underlying driver service was successful and returned E_OK [SWS_FrIf_05025].
  • E_NOT_OK: The driver function returned E_NOT_OK or an error was detected in development mode [SWS_FrIf_05025].

Concurrency and Reentrancy

Regarding the call context, FrIf_EnableAbsoluteTimerIRQ is non-reentrant for the same FlexRay controller, but may be called reentrantly for different FlexRay controllers [SWS_FrIf_05025].

This usage note was generated automatically based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_AckAbsoluteTimerIRQ [SWS_FrIf_05029] 📄 PDF

Std_ReturnType FrIf_AckAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Wraps the Flex Ray Driver API function Fr_ Ack Absolute Timer IRQ()

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5371cc37b0bc Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous interface function FrIf_AckAbsoluteTimerIRQ encapsulates the API call of the driver function Fr_AckAbsoluteTimerIRQ() of the FlexRay driver as a wrapper [SWS_FrIf_05029]. It has the service ID 0x21, is provided via header FrIf.h, and serves to acknowledge an interrupt request for an absolute timer of a FlexRay Communication Controller.

Two input parameters must be passed when calling the function [SWS_FrIf_05029]:

  • FrIf_CtrlIdx: Index of the FlexRay communication controller (CC) to be addressed.
  • FrIf_AbsTimerIdx: Index of the specific absolute timer whose interrupt is to be acknowledged.

The function returns a return value of type Std_ReturnType for evaluating the result [SWS_FrIf_05029]:

  • E_OK: The call to driver API Fr_AckAbsoluteTimerIRQ() was performed successfully.
  • E_NOT_OK: The FlexRay driver reported E_NOT_OK during the call, or an error was detected in development mode.

Regarding concurrency behavior, the function operates synchronously. Calls for different FlexRay CCs are reentrant, whereas concurrent calls for the same FlexRay CC are non-reentrant and must be avoided [SWS_FrIf_05029].

This usage note was generated automatically based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_StartCommunication [SWS_FrIf_05005] 📄 PDF

Std_ReturnType FrIf_StartCommunication (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Start Communication().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: ba57cfeb6d86 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_StartCommunication acts as an encapsulation of the FlexRay driver function Fr_StartCommunication() and initiates the communication startup of an addressed FlexRay communication controller [SWS_FrIf_05005].

Usage and Call Context

The interface is declared via the header FrIf.h and has the service ID 0x04 [SWS_FrIf_05005]. The call is handled asynchronously [SWS_FrIf_05005]. The only input parameter is FrIf_CtrlIdx (type uint8), which specifies the index of the FlexRay communication controller to be controlled; input/output or pure output parameters do not exist [SWS_FrIf_05005].

Error Handling and Return Values

The function returns a status code of type Std_ReturnType [SWS_FrIf_05005]:

  • E_OK: The call of the underlying API service in the FlexRay driver was successful and returned E_OK [SWS_FrIf_05005].
  • E_NOT_OK: The API service of the driver reported E_NOT_OK or an error was detected during execution in development mode (Development Mode) [SWS_FrIf_05005].

Concurrency and Limitations

Regarding reentrancy, FrIf_StartCommunication is reentrant for controller indices that differ from one another (FrIf_CtrlIdx), but non-reentrant for identical controller values [SWS_FrIf_05005]. Calling modules must therefore ensure in the case of concurrent accesses that no concurrent calls occur for the same controller.

This usage note was generated by an AI based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I2)

function FrIf_HaltCommunication [SWS_FrIf_05006] 📄 PDF

Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Halt Communication().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8fb366eaa447 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_HaltCommunication (service ID 0x05) represents a wrapper in the FlexRay Interface (FrIf) for calling the driver API function Fr_HaltCommunication() and is declared via the header FrIf.h [SWS_FrIf_05006]. The service is executed with asynchronous semantics [SWS_FrIf_05006]. The input value FrIf_CtrlIdx is passed as the only parameter, specifying the index of the respective FlexRay communication controller to be addressed; input/output or pure output parameters are not defined for this service [SWS_FrIf_05006].

The return value is of type Std_ReturnType and signals the result of the call [SWS_FrIf_05006]:

  • E_OK: The call of the API service in the FlexRay driver was successful and returned E_OK [SWS_FrIf_05006].
  • E_NOT_OK: The API call of the FlexRay driver returned E_NOT_OK or an error was detected in development mode (Development Mode) [SWS_FrIf_05006].

With regard to concurrency, FrIf_HaltCommunication is reentrant for different values of the controller index FrIf_CtrlIdx, but non-reentrant for identical values of FrIf_CtrlIdx [SWS_FrIf_05006]. Simultaneous or interrupting calls for the same controller are consequently not permitted and must be prevented in the context of the caller.

This text was generated by an AI based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_AbortCommunication [SWS_FrIf_05007] 📄 PDF

Std_ReturnType FrIf_AbortCommunication (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Abort Communication().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 7413742b3cdd Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

The synchronous interface function FrIf_AbortCommunication acts as a direct wrapper for the API function Fr_AbortCommunication() of the FlexRay driver [SWS_FrIf_05007]. It is declared in header file FrIf.h and has Service ID 0x06 [SWS_FrIf_05007].

Via the input parameter FrIf_CtrlIdx, the index of the FlexRay Communication Controller to be addressed is specified [SWS_FrIf_05007]. Additional input or output parameters are not defined for this interface [SWS_FrIf_05007].

Return Values and Error Handling

The function returns a status value of type Std_ReturnType [SWS_FrIf_05007]:

  • E_OK: The call to the API service of the FlexRay driver was successful and returned E_OK [SWS_FrIf_05007].
  • E_NOT_OK: The API service of the FlexRay driver returned E_NOT_OK or an error was detected in development mode [SWS_FrIf_05007].

Concurrency and Limitations

The execution of FrIf_AbortCommunication is synchronous [SWS_FrIf_05007]. The function is reentrant for different values of FrIf_CtrlIdx, but non-reentrant for identical controller indices [SWS_FrIf_05007].

This usage note was generated automatically based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I1)

function FrIf_SetState [SWS_FrIf_05174] 📄 PDF

Std_ReturnType FrIf_SetState (uint8 FrIf_ClstIdx, FrIf_StateTransitionType FrIf_StateTransition);

Requests Fr If state machine transition.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5873512292be Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Invocation

The synchronous function FrIf_SetState requests a state transition in the state machine of the FlexRay interface [SWS_FrIf_05174]. Cluster index FrIf_ClstIdx and the requested transition FrIf_StateTransition are passed as parameters. The function returns E_OK if the call was executed successfully and the state change was accepted; in case of an error, E_NOT_OK is returned [SWS_FrIf_05174].

Error Handling and Boundary Conditions

The function is defined as non-reentrant (Non Reentrant) [SWS_FrIf_05174]. If development error detection is enabled (FrIfDevErrorDetect == ON) and parameter FrIf_StateTransition contains an invalid value, the function reports the error code FRIF_E_INV_FRIF_STATE via Det_ReportError to the DET module [SWS_FrIf_05037].

Interaction in Offline Transitions

If FrIf_SetState is called with transition parameter FRIF_STATE_OFFLINE, the FlexRay interface checks the counter TxConfCounter for each PDU [SWS_FrIf_05501]. If this value is greater than 0 for a PDU, the module informs the layer above via the call <UL>_TxConfirmation(id, E_NOT_OK) about the failure of the pending confirmation [SWS_FrIf_05501].

This text was generated by an AI system based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I2)

function FrIf_SendWUP [SWS_FrIf_05011] 📄 PDF

Std_ReturnType FrIf_SendWUP (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Send WUP().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 198c69b5740a Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_SendWUP (service ID 0x0a) of the module FrIf is available via the header file FrIf.h and serves as an interface wrapper for calling the API function Fr_SendWUP() of the underlying FlexRay driver [SWS_FrIf_05011].

Usage and Parameters

The service is executed asynchronously [SWS_FrIf_05011]. The only passed parameter is the input parameter FrIf_CtrlIdx of type uint8, which specifies the index of the FlexRay Communication Controller (FlexRay CC) to be addressed [SWS_FrIf_05011]. No inout or out parameters are used [SWS_FrIf_05011].

Return Values and Error Handling

As return value, the function provides a status of type Std_ReturnType [SWS_FrIf_05011]:

  • E_OK: The call of the API service of the FlexRay driver was executed successfully and returned E_OK [SWS_FrIf_05011].
  • E_NOT_OK: The call of the API service of the FlexRay driver returned E_NOT_OK or an error was detected in development mode (Development Mode) [SWS_FrIf_05011].

Concurrency and Reentrancy

With regard to concurrent access, FrIf_SendWUP is reentrant for calls with different values for FrIf_CtrlIdx, but non-reentrant for identical values of FrIf_CtrlIdx [SWS_FrIf_05011].

This text was automatically generated and is based on the AUTOSAR specifications for Release R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_GetGlobalTime [SWS_FrIf_05015] 📄 PDF

Std_ReturnType FrIf_GetGlobalTime (uint8 FrIf_CtrlIdx, uint8* FrIf_CyclePtr, uint16* FrIf_MacroTickPtr);

Wraps the Flex Ray Driver API function Fr_ Get Global Time(). Impo rtant Note: Fr If_ Get Global Time may be called within an exclusive area.

function FrIf_AllowColdstart [SWS_FrIf_05017] 📄 PDF

Std_ReturnType FrIf_AllowColdstart (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Allow Coldstart().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: f313d1af7873 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Operation

The function FrIf_AllowColdstart serves as a wrapper for the FlexRay driver API Fr_AllowColdstart() according to [SWS_FrIf_05017]. Via the input parameter FrIf_CtrlIdx, it addresses the FlexRay Communication Controller (CC) to be addressed [SWS_FrIf_05017]. The execution of the function is specified as asynchronous [SWS_FrIf_05017].

Return Values and Error Handling

The return value of type Std_ReturnType reflects the result of the execution [SWS_FrIf_05017]:

  • E_OK: The underlying API service of the FlexRay driver was called successfully and reported E_OK back [SWS_FrIf_05017].
  • E_NOT_OK: The call to the driver failed (return value E_NOT_OK) or an error was detected in development mode [SWS_FrIf_05017].

Interpretation: The detection of errors in development mode is presumably performed via the Default Error Tracer (DET) module, even though no specific error IDs or checks are documented in the specification excerpt. Question Q-5dffd71d66731cc9 (open)

Concurrency and Limitations

Regarding reentrancy, FrIf_AllowColdstart is non-reentrant for identical values of FrIf_CtrlIdx, but may be called in parallel for different controller indices [SWS_FrIf_05017]. Callers must therefore ensure that concurrent calls for the same controller are synchronized. The interface is provided via header FrIf.h [SWS_FrIf_05017].

This usage note was generated by an AI and is based on the specification data from AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_Transmit [SWS_FrIf_05033] 📄 PDF

Std_ReturnType FrIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Requests transmission of a PDU.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 9cb8bddfea7e Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function FrIf_Transmit requests the transmission of a PDU via the FlexRay interface [SWS_FrIf_05033]. It accepts the ID of the PDU to be transmitted (TxPduId) as well as a pointer to the structure PduInfoPtr, which provides the PDU length, data pointer, and metadata [SWS_FrIf_05033].

With regard to concurrency and reentrancy, FrIf_Transmit is reentrant for different PDU IDs, but non-reentrant for the same PDU ID [SWS_FrIf_05033]. The call returns E_OK as soon as the transmission request has been accepted, otherwise E_NOT_OK [SWS_FrIf_05033].

A specific error check is performed for immediate PDUs (Immediate PDUs) if dynamic L-SDU lengths are disabled via configuration parameter FrIfAllowDynamicLSduLength to FALSE [SWS_FrIf_05757]:

  • The length passed in PduInfoPtr is checked against the statically configured PDU length [SWS_FrIf_05757].
  • If the length specification does not match, FrIf_Transmit aborts the transmission of the Immediate PDU and returns E_NOT_OK [SWS_FrIf_05757].
  • If development detection (FrIfDevErrorDetect == ON) is enabled, the function reports the development error FRIF_E_INV_PDULENGTH via Det_ReportError to the DET module [SWS_FrIf_05757].

This text was generated by an AI based on the R20-11 specification.

Implementer's Guide to follow (complexity I2)

function FrIf_SetTransceiverMode [SWS_FrIf_05034] 📄 PDF

Std_ReturnType FrIf_SetTransceiverMode (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, Limited by st atic configuration [Configuration Parameter FrIfCounterLimit, see FrIf06076 ]); ⚠️

Wraps the Flex Ray Transceiver Driver API function Fr

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e732fae6663a Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous interface FrIf_SetTransceiverMode with service ID 0x13 acts in the FlexRay interface as a wrapper for the driver function FrTrcv_SetTransceiverMode() of the FlexRay transceiver driver and is available via the header file FrIf.h [SWS_FrIf_05034]. It allows upper layers to set the operating mode of a transceiver for a specific FlexRay controller and channel [SWS_FrIf_05034].

Upon the call, three parameters must be passed: the controller index FrIf_CtrlIdx for addressing the FlexRay Communication Controller, the channel index FrIf_ChnlIdx for determining the FlexRay channel within the scope of the controller, and the desired transceiver mode FrIf_TrcvMode of type FrTrcv_TrcvModeType [SWS_FrIf_05034]. Neither input/output nor output parameters exist [SWS_FrIf_05034]. For parameter FrIf_ChnlIdx, the mandatory requirement applies that enumeration value FR_CHANNEL_AB must under no circumstances be used [SWS_FrIf_05034].

The function is specified as reentrant and forwards the mode change synchronously to the transceiver driver [SWS_FrIf_05034]. As a result, it returns status Std_ReturnType: It reports E_OK if the call of the API service in the transceiver driver successfully returned E_OK; if this driver call fails and returns E_NOT_OK, E_NOT_OK is likewise returned [SWS_FrIf_05034].

This usage note was generated automatically based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I2)

function FrIf_GetTransceiverMode [SWS_FrIf_05035] 📄 PDF

Std_ReturnType FrIf_GetTransceiverMode (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, FrTrcv_TrcvModeType* FrIf_TrcvModePtr);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Get Transceiver Mode(). The enum value "FR_ CHANNEL_ AB" shall not be used.

function FrIf_GetTransceiverWUReason [SWS_FrIf_05036] 📄 PDF

Std_ReturnType FrIf_GetTransceiverWUReason (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, FrTrcv_TrcvWUReasonType* FrIf_TrcvWUReasonPtr);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Get Transceiver WUReason(). The enum value "FR_ CHANNEL_ AB" shall not be used.

function FrIf_ClearTransceiverWakeup [SWS_FrIf_05039] 📄 PDF

Std_ReturnType FrIf_ClearTransceiverWakeup (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Clear Transceiver Wakeup(). The enum value "FR_ CHANNEL_ AB" shall not be used. A vailable via Fr If.h

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 983ace12320e Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function FrIf_ClearTransceiverWakeup (service ID 0x18) acts as a wrapper within the FlexRay interface and encapsulates the call to API function FrTrcv_ClearTransceiverWakeup() of the FlexRay transceiver driver [SWS_FrIf_05039]. The interface is available via the header file FrIf.h [SWS_FrIf_05039].

When called, the function expects exactly two input parameters [SWS_FrIf_05039]:

  • FrIf_CtrlIdx: Index of the FlexRay communication controller to be addressed [SWS_FrIf_05039].
  • FrIf_ChnlIdx: Index of the FlexRay channel to be addressed within the scope of the controller FrIf_CtrlIdx [SWS_FrIf_05039].

No further parameters (inout or out) are defined for the function [SWS_FrIf_05039].

Regarding concurrency and boundary conditions, the function is classified as reentrant [SWS_FrIf_05039]. As a major functional constraint, the specification mandates that the enumeration value FR_CHANNEL_AB must not be used for parameter FrIf_ChnlIdx [SWS_FrIf_05039].

The result of the operation is returned synchronously as Std_ReturnType and directly reflects the result of the driver service [SWS_FrIf_05039]:

  • E_OK: The API service of the FlexRay transceiver driver was executed successfully and returned E_OK [SWS_FrIf_05039].
  • E_NOT_OK: The call to the driver service failed and reported back E_NOT_OK [SWS_FrIf_05039].

This usage note was generated by an AI based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_CancelAbsoluteTimer [SWS_FrIf_05023] 📄 PDF

Std_ReturnType FrIf_CancelAbsoluteTimer (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Wraps the Flex Ray Driver API function Fr_ Cancel Absolute Timer() .

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: aaee20f9db6d Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_CancelAbsoluteTimer serves to synchronously cancel a configured absolute timer on a FlexRay Communication Controller (CC) [SWS_FrIf_05023]. It acts as a wrapper around the corresponding driver function Fr_CancelAbsoluteTimer() of the FlexRay driver and is available via the header FrIf.h [SWS_FrIf_05023].

Parameters and Return Values

Two input parameters are passed during the call [SWS_FrIf_05023]:

  • FrIf_CtrlIdx: Index of the FlexRay controller to be addressed.
  • FrIf_AbsTimerIdx: Index of the absolute timer to be canceled.

The function returns a status of type Std_ReturnType [SWS_FrIf_05023]:

  • E_OK: The underlying call to the FlexRay driver API completed successfully with E_OK [SWS_FrIf_05023].
  • E_NOT_OK: The call to the driver API failed (return value E_NOT_OK) or an error was detected in development mode (Development Mode) [SWS_FrIf_05023].

Concurrency and Limitations

Execution occurs synchronously with the service ID 0x1b [SWS_FrIf_05023]. Regarding reentrancy, the service is reentrant for different FlexRay CCs, but must not be called concurrently for the same FlexRay CC [SWS_FrIf_05023].

This text was generated by an AI based on the specification AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_DisableAbsoluteTimerIRQ [SWS_FrIf_05031] 📄 PDF

Std_ReturnType FrIf_DisableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Wraps the Flex Ray Driver API function Fr_ Disable Absolute Timer IRQ().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6362ca64b166 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_DisableAbsoluteTimerIRQ is part of the FlexRay Interface module and is provided via the header file FrIf.h [SWS_FrIf_05031]. It serves as a synchronous wrapper for the function Fr_DisableAbsoluteTimerIRQ() of the FlexRay driver API and forwards the request to disable interrupt generation of the addressed absolute timer to the driver level [SWS_FrIf_05031].

Call Context and Parameters

The call is performed synchronously using the service ID 0x23 [SWS_FrIf_05031]. The interface has no input/output or pure output parameters, but requires two mandatory input parameters [SWS_FrIf_05031]:

  • FrIf_CtrlIdx: Index of the FlexRay Communication Controller (CC) to be addressed [SWS_FrIf_05031].
  • FrIf_AbsTimerIdx: Index of the absolute timer to be configured [SWS_FrIf_05031].

Return Values and Error Handling

The function returns the status to the caller via the return type Std_ReturnType [SWS_FrIf_05031]:

  • E_OK: Signals that the call to the API service of the FlexRay driver was successful and returned E_OK [SWS_FrIf_05031].
  • E_NOT_OK: Indicates that the API service of the FlexRay driver returned E_NOT_OK or an error was detected in development mode (Development Mode) [SWS_FrIf_05031].

Concurrency and Reentrancy

According to the reentrancy specifications, FrIf_DisableAbsoluteTimerIRQ is non-reentrant for the same FlexRay Communication Controller, but reentrant for different FlexRay CCs [SWS_FrIf_05031]. Calls for the same controller instance must therefore not occur concurrently from different contexts without synchronization.

This usage note was generated automatically based on the specification AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_GetCycleLength [SWS_FrIf_05239] 📄 PDF

uint32 FrIf_GetCycleLength (uint8 FrIf_CtrlIdx);

This API returns the configured time of the configuration parameter "Gd Cycle" in nanoseconds for the Flex Ray controller with index Fr If_ Ctrl Idx.

function FrIf_AllSlots [SWS_FrIf_05020] 📄 PDF

Std_ReturnType FrIf_AllSlots (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ All Slots

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e0c30b766f1b Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Within the FlexRay interface, the synchronous interface FrIf_AllSlots serves as a wrapper for calling the underlying driver function Fr_AllSlots of the FlexRay driver [SWS_FrIf_05020]. The function is provided via the header file FrIf.h and has the service ID 0x33 [SWS_FrIf_05020]. The only passed parameter expected is FrIf_CtrlIdx, which defines the logical index of the FlexRay Communication Controller to be addressed [SWS_FrIf_05020]. In/out and output parameters (inout/out) are not provided for this service [SWS_FrIf_05020].

As return value, the function returns the status Std_ReturnType with the following meanings [SWS_FrIf_05020]:

  • E_OK: The call to the driver API Fr_AllSlots was successful and returned E_OK [SWS_FrIf_05020].
  • E_NOT_OK: The call to the FlexRay driver failed or returned E_NOT_OK, or an error was detected during execution in development mode [SWS_FrIf_05020].

With regard to runtime behavior and concurrency, FrIf_AllSlots is specified as non-reentrant (non reentrant) [SWS_FrIf_05020]. The calling instance must therefore ensure that concurrent or overlapping calls for the affected controller are excluded. Interpretation: Presumably, the call must take place from a protected task context, since the interface does not provide its own reentrancy management during parallel access. Question Q-e4ce542c60b470c8 (open)

This text was generated by an AI; the AUTOSAR standard is authoritative.

Implementer's Guide to follow (complexity I1)

function FrIf_GetChannelStatus [SWS_FrIf_05030] 📄 PDF

Std_ReturnType FrIf_GetChannelStatus (uint8 FrIf_CtrlIdx, uint16* FrIf_ChannelAStatusPtr, uint16* FrIf_ChannelBStatusPtr);

Wraps the Flex Ray Driver API function Fr_ Get Channel Status() and gets the channel status information.

function FrIf_GetClockCorrection [SWS_FrIf_05071] 📄 PDF

Std_ReturnType FrIf_GetClockCorrection (uint8 FrIf_CtrlIdx, sint16* FrIf_RateCorrectionPtr, sint32* FrIf_OffsetCorrectionPtr);

Wraps the Flex Ray Driver API function Fr_ Get Clock Correction () and gets the current clock correction values.

function FrIf_GetNumStartupFrames [SWS_FrIf_05073] 📄 PDF

Std_ReturnType FrIf_GetNumOfStartupFrames (uint8 FrIf_CtrlIdx, uint8* FrIf_NumOfStartupFramesPtr);

Wraps the Flex Ray Driver API function Fr_ Get Num Of Startup Frames and gets a list of the current number of startup frames seen on the cluster. See variable v Startup Pairs of [12] for details.

function FrIf_GetWakeupRxStatus [SWS_FrIf_05102] 📄 PDF

Std_ReturnType FrIf_GetWakeupRxStatus (uint8 FrIf_CtrlIdx, uint8* FrIf_WakeupRxStatusPtr);

Wraps the Flex Ray Driver API function Fr_ Get Wakeup Rx Status and gets the wakeup received information from the Flex Ray controller.

function FrIf_CancelTransmit [SWS_FrIf_05070] 📄 PDF

Std_ReturnType FrIf_CancelTransmit (PduIdType TxPduId);

Requests cancellation of an ongoing transmission o f a PDU in a lower layer communication module.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 93c4556124a6 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The synchronous function FrIf_CancelTransmit requests the cancellation of an ongoing PDU transmission in an underlying communication module [SWS_FrIf_05070]. Passed as input parameter is TxPduId, which identifies the PDU to be cancelled. Execution is synchronous and returns a return value of type Std_ReturnType [SWS_FrIf_05070]:

  • E_OK: The cancellation of the transmission was successfully executed by the destination module.
  • E_NOT_OK: The cancellation was rejected by the target module.

Concurrency and Limitations

Regarding concurrency, FrIf_CancelTransmit is reentrant for different PDU IDs, but non-reentrant for the same TxPduId [SWS_FrIf_05070]. For calls from parallel contexts for the same PDU ID, external caller-side synchronization is presumably required to avoid race conditions. Question Q-38e799ac1564f60f (open)

Error Handling and Integration

Specific DET or DEM error codes are not defined in the interface; the failure of a cancellation is signaled directly via the return value E_NOT_OK [SWS_FrIf_05070]. The service has the service ID 0x4a and is provided via the header file FrIf.h [SWS_FrIf_05070].

This usage note was created automatically based on the specification.

Implementer's Guide to follow (complexity I2)

function FrIf_DisableLPdu [SWS_FrIf_05710] 📄 PDF

Std_ReturnType FrIf_DisableLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

Wraps the Flex Ray Driver Function Fr_ Disable LPdu. It disables the hardware resource of an LPdu for transmission/ recept ion.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6dcfcbdfc95d Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_DisableLPdu serves as a wrapper for the driver function Fr_DisableLPdu of the FlexRay driver and disables the underlying hardware resource of an L-PDU for transmission or reception [SWS_FrIf_05710].

Call and Parameters

The call of FrIf_DisableLPdu takes place synchronously via the interface FrIf.h with service ID 0x28 [SWS_FrIf_05710]. The function expects two input parameters:

  • FrIf_CtrlIdx: Index of the FlexRay communication controller in the context of the FlexRay interface [SWS_FrIf_05710].
  • FrIf_LPduIdx: Unique index for identifying the affected FlexRay frame [SWS_FrIf_05710].

Return Values and Error Handling

As a result, the function returns a status of type Std_ReturnType [SWS_FrIf_05710]:

Concurrency and Limitations

With regard to concurrency behavior, FrIf_DisableLPdu is specified as non-reentrant for the same device (Non Reentrant for the same device) [SWS_FrIf_05710]. Parallel calls for the same controller or device must therefore be avoided or synchronized on the caller side.

This text was created automatically and is based exclusively on the statements in the specification.

Implementer's Guide to follow (complexity I1)

function FrIf_EnableTransceiverBranch [SWS_FrIf_05085] 📄 PDF

Std_ReturnType FrIf_EnableTransceiverBranch (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_BranchIdx);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Enable Transceiver Branch. The enum value "FR_ CHANNEL_ AB" shall not be used.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e8dfbb0733ab Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

As a synchronous and reentrant wrapper, the function FrIf_EnableTransceiverBranch encapsulates the API call FrTrcv_EnableTransceiverBranch of the underlying FlexRay transceiver driver [SWS_FrIf_05085]. Via this interface, a specific branch of a transceiver is selectively activated, for example in the context of an active star [SWS_FrIf_05085]. The function declaration and associated types are provided via the header file FrIf.h [SWS_FrIf_05085].

Parameters and Call Conditions

Three input parameters must be passed during the call [SWS_FrIf_05085]:

  • FrIf_CtrlIdx: Addresses the index of the respective FlexRay Communication Controller [SWS_FrIf_05085].
  • FrIf_ChnlIdx: Specifies the FlexRay channel within the scope of the controller FrIf_CtrlIdx [SWS_FrIf_05085]. The mandatory restriction applies that the enum value FR_CHANNEL_AB must not be used [SWS_FrIf_05085].
  • FrIf_BranchIdx: Determines the specific branch of the transceiver to which the activation is applied via a zero-based index [SWS_FrIf_05085].

Return Values

The function returns a status value of type Std_ReturnType, which directly reflects the result of the forwarded driver call [SWS_FrIf_05085]:

  • E_OK: The call to the driver service FrTrcv_EnableTransceiverBranch was successful and reported back E_OK [SWS_FrIf_05085].
  • E_NOT_OK: The call to the driver service reported E_NOT_OK [SWS_FrIf_05085].

This text was generated by an AI based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_DisableTransceiverBranch [SWS_FrIf_05028] 📄 PDF

Std_ReturnType FrIf_DisableTransceiverBranch (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_BranchIdx);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Disable Transceiver Branch. The enum value "FR_ CHANNEL_ AB" shall not be used.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 9edf0f22a2a3 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous and reentrant function FrIf_DisableTransceiverBranch encapsulates the service FrTrcv_DisableTransceiverBranch of the FlexRay transceiver driver as a wrapper function [SWS_FrIf_05028]. It is provided via the header file FrIf.h, has the service ID 0x37, and serves to specifically disable a particular branch of an active star transceiver [SWS_FrIf_05028].

Three input parameters must be passed during the call:

  • FrIf_CtrlIdx: Index of the FlexRay controller to be addressed [SWS_FrIf_05028].
  • FrIf_ChnlIdx: FlexRay channel within the scope of the controller. Here, the mandatory requirement applies that the enum value FR_CHANNEL_AB must not be used [SWS_FrIf_05028].
  • FrIf_BranchIdx: Zero-based index identifying the respective branch of the transceiver to which the operation is to be applied [SWS_FrIf_05028].

As return value, the interface returns a status of type Std_ReturnType. It returns E_OK if the call to the transceiver driver was successful, and E_NOT_OK if the driver service reported E_NOT_OK [SWS_FrIf_05028]. Specific DET or DEM error notifications are not documented in the specification scope; a failure presumably results directly from the behavior of the underlying driver. Question Q-52d5e5fedd147532 (open)

This text was generated by an AI based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I2)

function FrIf_ReconfigLPdu [SWS_FrIf_05048] 📄 PDF

Std_ReturnType FrIf_ReconfigLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx, uint16 FrIf_FrameId, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_CycleRepetition, uint8 FrIf_CycleOffset, uint8 FrIf_PayloadLength, uint16 FrIf_Header CRC); ⚠️

Service FrIf_ReconfigLPdu.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6127b6f4417a Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function FrIf_ReconfigLPdu serves to reconfigure an L-PDU in the FlexRay Interface (FrIf) and forwards the call directly to the driver interface Fr_ReconfigLPdu of the FlexRay driver [SWS_FrIf_05048]. The interface is made available via the header FrIf.h [SWS_FrIf_05048].

Parameters and Configuration Restrictions

  • FrIf_CtrlIdx: Addresses the index of the FlexRay Communication Controller within the FlexRay driver [SWS_FrIf_05048].
  • FrIf_LPduIdx: Determines the unique index for identifying the FlexRay frame to be configured [SWS_FrIf_05048].
  • FrIf_FrameId, FrIf_CycleRepetition, FrIf_CycleOffset: Define the new FlexRay frame ID as well as repetition and offset of the cycle filter mechanism of the L-PDU [SWS_FrIf_05048].
  • FrIf_ChnlIdx: Determines the FlexRay channel of type Fr_ChannelType [SWS_FrIf_05048]. In this case, it is strictly specified that the enum value FR_CHANNEL_AB must not be used [SWS_FrIf_05048].
  • FrIf_PayloadLength and FrIf_HeaderCRC: Define the payload length in bytes and the associated header CRC to which the L-PDU is to be set [SWS_FrIf_05048].

Return Values and Execution Context

The return value of type Std_ReturnType indicates the result of the reconfiguration: E_OK signals the successful execution of the API call, whereas E_NOT_OK indicates an error termination [SWS_FrIf_05048].

The function is synchronous and specified as non-reentrant (Non Reentrant) [SWS_FrIf_05048]. Consequently, it must not be called concurrently.

This usage note is based on the AUTOSAR Classic R20-11 specification.

Implementer's Guide to follow (complexity I1)

function FrIf_ReadCCConfig [SWS_FrIf_05313] 📄 PDF

Std_ReturnType FrIf_ReadCCConfig (uint8 FrIf_CtrlIdx, uint8 FrIf_Config ParamIdx, uint32* FrIf_Config ParamValuePtr); ⚠️

Wraps the Flex Ray Driver API function Fr_ Read CCConfig().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: a9635a600f61 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function FrIf_ReadCCConfig represents a synchronous service of the FlexRay Interface with the service ID 0x3b and is declared via the header FrIf.h [SWS_FrIf_05313]. Its primary task is to act as a wrapper calling the driver function Fr_ReadCCConfig() of the underlying FlexRay driver in order to read configuration parameters of a controller [SWS_FrIf_05313].

The interface expects three parameters when called [SWS_FrIf_05313]:

  • FrIf_CtrlIdx (input): The numerical index of the FlexRay Communication Controller (CC) to be addressed.
  • FrIf_ConfigParamIdx (input): The index of the specific configuration parameter whose value is to be queried.
  • FrIf_ConfigParamValuePtr (output): A pointer to the memory location where the read 32-bit configuration value is stored.

The return value of type Std_ReturnType signals the result of the query [SWS_FrIf_05313]:

  • E_OK: The call to the driver API Fr_ReadCCConfig() was executed successfully and returned E_OK.
  • E_NOT_OK: The FlexRay driver reported E_NOT_OK or an error was detected during execution in development mode (Development Mode).

With respect to concurrency and the execution environment, FrIf_ReadCCConfig is non-reentrant for the same FlexRay controller, but reentrant for different controllers [SWS_FrIf_05313]. For accesses to the same controller, the caller must therefore ensure appropriate synchronization. An error detected in development mode is presumably forwarded to the Default Error Tracer (DET). Question Q-bfe56460515de4de (open)

This usage note was generated by an AI and is based exclusively on the specification data of AUTOSAR Classic Release R20-11.

Implementer's Guide to follow (complexity I1)

function FrIf_EnableBusMirroring [SWS_FrIf_05726] 📄 PDF

Std_ReturnType FrIf_EnableBusMirroring (uint8 FrIf_ClstIdx, boolean FrIf_MirroringActive);

Enables or disables mirroring for all Flex Ray controllers connected to the addressed Flex Ray cluster.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 64884bdfc093 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

The synchronous function FrIf_EnableBusMirroring toggles bus mirroring for all FlexRay controllers connected to the passed FlexRay cluster [SWS_FrIf_05726]. The respective cluster is addressed via parameter FrIf_ClstIdx. The boolean parameter FrIf_MirroringActive determines the mode: If TRUE is passed, interface Mirror_ReportFlexRayFrame is called for every frame received or transmitted on the controllers; for FALSE, forwarding of the frames to the mirror module is disabled [SWS_FrIf_05726].

Return Values and Error Handling

The function call returns a status of type Std_ReturnType [SWS_FrIf_05726]:

  • E_OK: The mirroring mode for the specified cluster was updated successfully [SWS_FrIf_05726].
  • E_NOT_OK: Toggling was rejected if the mirroring function is globally disabled (configuration parameter FrIfBusMirroringSupport) or an invalid index is present [SWS_FrIf_05726]. Interpretation: The specification statement FrIf_CtrlIdx for E_NOT_OK is likely to refer to the check of cluster index FrIf_ClstIdx or the assigned controllers, despite the differing designation. Question Q-9daba2ff2b1a3ff1 (open)

Concurrency and Integration

The function is declared as reentrant and has service ID 0x4b; it is provided via the header file FrIf.h [SWS_FrIf_05726]. Callers must note that execution is synchronous. Additional error channels via DET or DEM are not listed for this service.

This text was created by an AI; the AUTOSAR specification is authoritative.

Implementer's Guide to follow (complexity I2)

function FrIf_CheckWakeupByTransceiver [SWS_FrIf_05041] 📄 PDF

void FrIf_CheckWakeupByTransceiver (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Check Wakeup By Transceiver(). The enum value "FR_ CHANNEL_ AB" shall not be used.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 09a9e5676d66 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

The function FrIf_CheckWakeupByTransceiver (service ID 0x39) acts in the FlexRay Interface as a synchronous wrapper for the function FrTrcv_CheckWakeupByTransceiver() of the FlexRay transceiver driver [SWS_FrIf_05041]. It is provided via the header FrIf.h and has no return value [SWS_FrIf_05041].

For addressing the respective hardware instance, the interface requires two mandatory parameters [SWS_FrIf_05041]:

  • FrIf_CtrlIdx (input parameter, uint8): Index of the FlexRay Communication Controller to be addressed [SWS_FrIf_05041].
  • FrIf_ChnlIdx (input parameter, Fr_ChannelType): Index of the FlexRay channel to be addressed within the scope of the specified controller FrIf_CtrlIdx [SWS_FrIf_05041].

Concurrency and Limitations

The specification designates the interface as reentrant, allowing synchronous calls to be issued concurrently [SWS_FrIf_05041].

A strict usage restriction exists for the channel parameter FrIf_ChnlIdx: The enumeration value FR_CHANNEL_AB must not be passed [SWS_FrIf_05041]. Interpretation: This presumably means that the underlying transceiver driver does not support a combined wake-up check of both channels in a single call, and systems with two FlexRay channels must instead be checked sequentially or separately per channel. Question Q-a30cf39f0d3ca295 (open)

This text was generated by an AI and is based on AUTOSAR R20-11.

Implementer's Guide to follow (complexity I1)

function <User_RxIndication> [SWS_FrIf_05045] 📄 PDF

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Indication of a received PDU from a lower layer communication interface module.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 926106ed5433 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The callback function <User_RxIndication> serves to signal a received PDU from the underlying communication interface layer [SWS_FrIf_05045]. Interpretation: The identifier presumably represents a configurable callback of an upper layer that is notified when FlexRay data arrives. Question Q-a9037bc7502dd9ea (open)

Usage and Parameters

Execution is synchronous without a return value (void) [SWS_FrIf_05045]. Two input parameters are passed during the call [SWS_FrIf_05045]:

  • RxPduId (PduIdType): Unique identifier of the received PDU [SWS_FrIf_05045].
  • PduInfoPtr (const PduInfoType*): Pointer to a structure containing the length of the received PDU (SduLength), a pointer to the buffer with the payload data (SduDataPtr), and associated metadata [SWS_FrIf_05045].

Concurrency and Configuration

Regarding reentrancy, the function is reentrant for different PDU IDs, but must not be called reentrantly for the same PDU ID [SWS_FrIf_05045]. The interface is available configurably in the module (“Available via configurable”) [SWS_FrIf_05045]. Specific error codes, return values, or notifications to DET and DEM are not defined in the sources for this interface [SWS_FrIf_05045].

This text was generated automatically. All statements are based exclusively on the specification data of module FrIf.

function <User_TxConfirmation> [SWS_FrIf_05046] 📄 PDF

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: befc612f1e10 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The configurable callback function <User_TxConfirmation> is called by the underlying communication interface module to confirm the completion of a transmission process for a PDU [SWS_FrIf_05046]. It synchronously reports to the upper layer whether the transmission of the corresponding PDU was successful or failed [SWS_FrIf_05046].

The interface has no return value (void) and expects two input parameters [SWS_FrIf_05046]:

  • TxPduId (type PduIdType): Designates the unique ID of the transmitted PDU [SWS_FrIf_05046].
  • result (type Std_ReturnType): Indicates the result of the transmission, where E_OK confirms successful transmission and E_NOT_OK reports the failure of the PDU transmission [SWS_FrIf_05046].

The function operates synchronously [SWS_FrIf_05046]. Regarding concurrency, it is reentrant for different PDU IDs, but non-reentrant for the same TxPduId [SWS_FrIf_05046]. Parallel confirmation calls for identical PDU IDs must therefore be ruled out.

Specific error codes besides E_NOT_OK or separate notifications to DET or DEM are not specified for this call [SWS_FrIf_05046]. Interpretation: Since the interface is designated as configurable, the identifier <User_TxConfirmation> is likely to serve as a placeholder for the function name actually configured in the upper layer [SWS_FrIf_05046]. Question Q-f2a08258df49b3ec (open)

This text was created by an AI and serves as guidance for the AUTOSAR specification.

function <User_TriggerTransmit> [SWS_FrIf_05047] 📄 PDF

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API, the upper lay er module (called module) shall check whether the AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayInterface available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual c opied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: fac22c3dab8e Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The synchronous callback function <User_TriggerTransmit> is called to request SDU data of an upper layer for transmission [SWS_FrIf_05047]. The identifier TxPduId of the SDU to be transmitted and the pointer PduInfoPtr of type PduInfoType* are passed as parameters [SWS_FrIf_05047]. The caller provides a destination buffer via PduInfoPtr->SduDataPtr and indicates the available buffer size in PduInfoPtr->SduLength [SWS_FrIf_05047].

The called module of the upper layer checks whether the pending data fits into the specified buffer size [SWS_FrIf_05047]:

  • If the data fits, the module copies it into PduInfoPtr->SduDataPtr, updates PduInfoPtr->SduLength to the number of bytes actually copied, and returns E_OK [SWS_FrIf_05047].
  • If the data does not fit, the module returns E_NOT_OK without modifying PduInfoPtr [SWS_FrIf_05047].

Error Handling and Concurrency

In the event of an error (return value E_NOT_OK), no SDU data was copied. In this case, PduInfoPtr must not be used further, as it may contain a NULL pointer or point to invalid data [SWS_FrIf_05047].

The interface is reentrant for different PDU IDs, but non-reentrant for the same PDU ID [SWS_FrIf_05047]. The availability of the function is configurable [SWS_FrIf_05047].

This text was generated by an AI. All statements are based exclusively on the specifications of AUTOSAR release R20-11.

function <Free_Op_A> [SWS_FrIf_05316] 📄 PDF

void <Free_Op_A> (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

User defined communication operation in order to support hardware specific or additional communication controller features to increase performance.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8665c1e85fa1 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function <Free_Op_A> is designed as a user-defined communication operation in the FlexRay interface to support hardware-specific or additional performance features of the Communication Controller in order to increase overall performance [SWS_FrIf_05316]. The declaration of this interface is provided via the header FrIf_Externals.h [SWS_FrIf_05316].

Two functional input parameters are prescribed for the call [SWS_FrIf_05316]:

  • FrIf_CtrlIdx (type uint8): Designates as an index the specific FlexRay Communication Controller to be addressed [SWS_FrIf_05316].
  • FrIf_LPduIdx (type uint16): Serves as a unique index to identify the respective FlexRay frame [SWS_FrIf_05316].

The operation is executed synchronously and has no return value (void); input and output parameters are likewise not provided [SWS_FrIf_05316]. With respect to concurrency and call context, the function is reentrant for different values of FrIf_LPduIdx, but explicitly non-reentrant when using the same index FrIf_LPduIdx [SWS_FrIf_05316].

Specific error codes as well as mechanisms for error monitoring via the Default Error Tracer (DET) or the Diagnostic Event Manager (DEM) module are not specified in the specification [SWS_FrIf_05316]. Calling components must therefore ensure before execution that no concurrent accesses to the same frame index occur [SWS_FrIf_05316].

This usage note was generated automatically based on the AUTOSAR specification.

function <Free_Op_B> [SWS_FrIf_05317] 📄 PDF

void <Free_Op_B> (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

User defined communication operation in order to support hardware specific or additional communication controller features to increase performance.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: c7b423aeeb3d Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The user-defined function <Free_Op_B> is used to perform user-specific communication operations in the FlexRay interface [SWS_FrIf_05317]. Its purpose is to support hardware-specific or additional performance features of the FlexRay communication controller in order to increase communication performance [SWS_FrIf_05317]. The function declaration is provided via the header file FrIf_Externals.h [SWS_FrIf_05317].

Call and Parameters

The operation is called synchronously and provides no return value (void) [SWS_FrIf_05317]. It processes two input parameters, while neither input/output nor output parameters exist [SWS_FrIf_05317]:

  • FrIf_CtrlIdx: Index of the FlexRay communication controller to be addressed (type uint8) [SWS_FrIf_05317].
  • FrIf_LPduIdx: Unique index identifying the respective FlexRay frame (type uint16) [SWS_FrIf_05317].

Concurrency and Limitations

Regarding reentrancy, the function is reentrant for different LPdu indices (FrIf_LPduIdx), but is explicitly specified as non-reentrant for the same LPdu index [SWS_FrIf_05317]. Callers must therefore ensure that concurrent calls for the same PDU do not occur.

Interpretation: Since the operation is designated as user-defined and placed in FrIf_Externals.h, the actual implementation likely has to be provided in a user-specific or driver-extending manner. Question Q-6668832db63b9906 (open)

This text was generated by an AI. All information is based exclusively on the specifications of release R20-11.

function <UL_TxConflictNotification> [SWS_FrIf_91001] 📄 PDF

void <UL_TxConflictNotification> (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

Notification in case a Tx Conflict has been detected.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8333bc6757d5 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The notification function <UL_ Tx Conflict Notification> is called as soon as a transmission conflict (Tx Conflict) has been detected in the FlexRay interface [SWS_FrIf_91001]. The declaration of this interface is provided via the header file Fr If_ Externals.h [SWS_FrIf_91001].

The function has no return value and accepts two input parameters [SWS_FrIf_91001]:

  • Fr If_ Ctrl Idx: Identifier of the addressed FlexRay communication controller [SWS_FrIf_91001].
  • Fr If_ LPdu Idx: Identifier of the affected transmitted FlexRay frame [SWS_FrIf_91001].

Concurrency and Limitations

The call is performed with synchronous semantics [SWS_FrIf_91001]. Regarding concurrency, execution is reentrant for different indices of Fr If_ LPdu Idx, but explicitly non-reentrant for the same LPdu index [SWS_FrIf_91001]. In the implementation, it must therefore be ensured that concurrent calls for the same frame index are prevented.

Error Handling and Interaction

The specification defines no separate DET or DEM messages and no specific error codes for this callback interface [SWS_FrIf_91001]. Interpretation: The upper layer is likely to provide the call in order to be able to log or handle conflicts that have occurred directly on the FlexRay transmission path. Question Q-fc63c251dbc03307 (open)

This text was created by an AI and checked according to fixed guidelines. Technical evidence originates exclusively from the specification.

type FrIf_ConfigType [SWS_FrIf_05301] 📄 PDF

This type contains the implementation - specific post build time configuration structure. Only pointers of this type are allowed.

type FrIf_StateType [SWS_FrIf_05755] 📄 PDF

Variables of this type are used to represent the Fr If_ State of a Flex Ray CC.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: d7aa755fda7e Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Value Range

The enumeration type FrIf_StateType is defined in the header file FrIf.h and serves in the FlexRay Interface to represent the current operating state of a FlexRay Communication Controller (FlexRay CC) [SWS_FrIf_05755]. Variables of this type record whether a controller is ready for communication and whether synchronization with the FlexRay cluster exists [SWS_FrIf_05755].

The value range comprises two defined states [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: The FlexRay CC is not ready for communication, and the FlexRay cluster is not synchronized [SWS_FrIf_05755].
  • FRIF_STATE_ONLINE: The FlexRay CC is ready for communication, and the FlexRay cluster is synchronized [SWS_FrIf_05755].

Integration and Boundary Conditions

The states reflect fundamental communication phases: As long as FRIF_STATE_OFFLINE is present, no regular cluster communication can take place via the controller, whereas FRIF_STATE_ONLINE designates synchronized transmission and reception operation [SWS_FrIf_05755]. Since the specification excerpt mentions no further API signatures or error messages, the type is presumably used primarily in status queries or state transitions of the FlexRay Interface. Question Q-071cd300dcaa0a3b (open)

This text was generated by an AI and is based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I1)

type FrIf_StateTransitionType [SWS_FrIf_05303] 📄 PDF

Variables of this type are used to represent the Fr If_ State of a Flex Ray CC.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 17a8791d0e85 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The enumeration type FrIf_StateTransitionType is provided via the header file FrIf.h and serves according to [SWS_FrIf_05303] to represent or request state transitions for a FlexRay Communication Controller (FlexRay CC).

Usage and Value Range

Variables of this type take values to request specific state changes of a FlexRay CC [SWS_FrIf_05303]. The range of values comprises the following literals:

  • FRIF_GOTO_OFFLINE: Literal for requesting a transition to state FRIF_STATE_OFFLINE [SWS_FrIf_05303].
  • FRIF_GOTO_ONLINE: Literal for requesting a transition to state FRIF_STATE_ONLINE [SWS_FrIf_05303].

Context and Interaction

Although the formal description of the type speaks of representing the state of a FlexRay CC, the defined literals suggest the interpretation that this enumeration type primarily serves as a control parameter for requesting state changes (offline or online) [SWS_FrIf_05303]. Since the payload lists no further interfaces, reentrancy requirements, or error codes for this type, the general integration rules via the header file FrIf.h apply.

This text was generated by an AI. It is based on AUTOSAR R20-11 and requirement [SWS_FrIf_05303].

Implementer's Guide to follow (complexity I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_FrIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_FrIf@rel:R20-11#e39f638f
Content hash
e39f638f
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayInterface.pdf#nameddest=SWS_FrIf_05003

Initialization and status

Returns the version information of this module.

void FrIf_GetVersionInfo (Std_VersionInfoType* FrIf_VersionInfoPtr);
FrIf_Init function

Initializes the Flex Ray Interface.

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

Services · Get…

Wraps the Flex Ray Driver API function Fr_ Get Absolute Timer IRQStatus()

Std_ReturnType FrIf_GetAbsoluteTimerIRQStatus (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx, boolean* FrIf_IRQStatusPtr);

Wraps the Flex Ray Driver API function Fr_ Get Channel Status() and gets the channel status information.

Std_ReturnType FrIf_GetChannelStatus (uint8 FrIf_CtrlIdx, uint16* FrIf_ChannelAStatusPtr, uint16* FrIf_ChannelBStatusPtr);

Wraps the Flex Ray Driver API function Fr_ Get Clock Correction () and gets the current clock correction values.

Std_ReturnType FrIf_GetClockCorrection (uint8 FrIf_CtrlIdx, sint16* FrIf_RateCorrectionPtr, sint32* FrIf_OffsetCorrectionPtr);

This API returns the configured time of the configuration parameter "Gd Cycle" in nanoseconds for the Flex Ray controller with index Fr If_ Ctrl Idx.

uint32 FrIf_GetCycleLength (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Get Global Time(). Impo rtant Note: Fr If_ Get Global Time may be called within an exclusive area.

Std_ReturnType FrIf_GetGlobalTime (uint8 FrIf_CtrlIdx, uint8* FrIf_CyclePtr, uint16* FrIf_MacroTickPtr);

Retrieves the Duration of a Macrotick in ns

uint16 FrIf_GetMacrotickDuration (uint8 FrIf_CtrlIdx);

Retrieves the amount of Macroticks per Cycle

uint16 FrIf_GetMacroticksPerCycle (uint8 FrIf_CtrlIdx);

Derives the Flex Ray NM Vector. Av ailable via Fr If.h

Std_ReturnType FrIf_GetNmVector (uint8 FrIf_CtrlIdx, uint8* FrIf_NmVectorPtr);

Wraps the Flex Ray Driver API function Fr_ Get Num Of Startup Frames and gets a list of the current number of startup frames seen on the cluster. See variable v Startup Pairs of [12] for details.

Std_ReturnType FrIf_GetNumOfStartupFrames (uint8 FrIf_CtrlIdx, uint8* FrIf_NumOfStartupFramesPtr);

Wraps the Flex Ray Driver API function Fr_ Get POCStatus().

Std_ReturnType FrIf_GetPOCStatus (uint8 FrIf_CtrlIdx, Fr_POCStatusType* FrIf_POCStatusPtr);
FrIf_GetState function

Get current Fr If state.

Std_ReturnType FrIf_GetState (uint8 FrIf_ClstIdx, FrIf_StateType* FrIf_StatePtr);

Service FrIf_GetSyncFrameList.

Std_ReturnType FrIf_GetSyncFrameList (uint8 FrIf_CtrlIdx, uint8 FrIf_ListSize, uint16* FrIf_ChannelAEvenListPtr, uint16* FrIf_ChannelBEvenListPtr, uint16* FrIf_ChannelAOddListPtr, uint16* FrIf_ChannelBOddListPtr);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Get Transceiver Error. The enum value "FR_ CHANNEL_ AB" shall not be used.

Std_ReturnType FrIf_GetTransceiverError (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_BranchIdx, uint32* FrIf_BusErrorState);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Get Transceiver Mode(). The enum value "FR_ CHANNEL_ AB" shall not be used.

Std_ReturnType FrIf_GetTransceiverMode (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, FrTrcv_TrcvModeType* FrIf_TrcvModePtr);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Get Transceiver WUReason(). The enum value "FR_ CHANNEL_ AB" shall not be used.

Std_ReturnType FrIf_GetTransceiverWUReason (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, FrTrcv_TrcvWUReasonType* FrIf_TrcvWUReasonPtr);

Wraps the Flex Ray Driver API function Fr_ Get Wakeup Rx Status and gets the wakeup received information from the Flex Ray controller.

Std_ReturnType FrIf_GetWakeupRxStatus (uint8 FrIf_CtrlIdx, uint8* FrIf_WakeupRxStatusPtr);

Services · Set…

Wraps the Flex Ray Driver API function Fr_ Set Absolute Timer().

Std_ReturnType FrIf_SetAbsoluteTimer (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx, uint8 FrIf_Cycle, uint16 FrIf_Offset);
FrIf_SetState function

Requests Fr If state machine transition.

Std_ReturnType FrIf_SetState (uint8 FrIf_ClstIdx, FrIf_StateTransitionType FrIf_StateTransition);

Wraps the Flex Ray Transceiver Driver API function Fr

Std_ReturnType FrIf_SetTransceiverMode (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, Limited by st atic configuration [Configuration Parameter FrIfCounterLimit, see FrIf06076 ]); ⚠️

Wraps the Flex Ray Driver API functi on Fr_ Set Wakeup Channel(). The enum value "FR_ CHANNEL_ AB" shall not be used.

Std_ReturnType FrIf_SetWakeupChannel (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);

Services · Disable…

Wraps the Flex Ray Driver API function Fr_ Disable Absolute Timer IRQ().

Std_ReturnType FrIf_DisableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Wraps the Flex Ray Driver Function Fr_ Disable LPdu. It disables the hardware resource of an LPdu for transmission/ recept ion.

Std_ReturnType FrIf_DisableLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Disable Transceiver Branch. The enum value "FR_ CHANNEL_ AB" shall not be used.

Std_ReturnType FrIf_DisableTransceiverBranch (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_BranchIdx);

Services · Enable…

Service FrIf_EnableAbsoluteTimerIRQ.

Std_ReturnType FrIf_EnableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Enables or disables mirroring for all Flex Ray controllers connected to the addressed Flex Ray cluster.

Std_ReturnType FrIf_EnableBusMirroring (uint8 FrIf_ClstIdx, boolean FrIf_MirroringActive);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Enable Transceiver Branch. The enum value "FR_ CHANNEL_ AB" shall not be used.

Std_ReturnType FrIf_EnableTransceiverBranch (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_BranchIdx);

Services · More

Wraps the Flex Ray Driver API function Fr_ Abort Communication().

Std_ReturnType FrIf_AbortCommunication (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Ack Absolute Timer IRQ()

Std_ReturnType FrIf_AckAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Wraps the Flex Ray Driver API function Fr_ Allow Coldstart().

Std_ReturnType FrIf_AllowColdstart (uint8 FrIf_CtrlIdx);
FrIf_AllSlots function

Wraps the Flex Ray Driver API function Fr_ All Slots

Std_ReturnType FrIf_AllSlots (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Cancel Absolute Timer() .

Std_ReturnType FrIf_CancelAbsoluteTimer (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Requests cancellation of an ongoing transmission o f a PDU in a lower layer communication module.

Std_ReturnType FrIf_CancelTransmit (PduIdType TxPduId);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Check Wakeup By Transceiver(). The enum value "FR_ CHANNEL_ AB" shall not be used.

void FrIf_CheckWakeupByTransceiver (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);

Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Clear Transceiver Wakeup(). The enum value "FR_ CHANNEL_ AB" shall not be used. A vailable via Fr If.h

Std_ReturnType FrIf_ClearTransceiverWakeup (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);

Initialized a Flex Ray CC.

Std_ReturnType FrIf_ControllerInit (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Halt Communication().

Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Read CCConfig().

Std_ReturnType FrIf_ReadCCConfig (uint8 FrIf_CtrlIdx, uint8 FrIf_Config ParamIdx, uint32* FrIf_Config ParamValuePtr); ⚠️

Service FrIf_ReconfigLPdu.

Std_ReturnType FrIf_ReconfigLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx, uint16 FrIf_FrameId, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_CycleRepetition, uint8 FrIf_CycleOffset, uint8 FrIf_PayloadLength, uint16 FrIf_Header CRC); ⚠️
FrIf_SendWUP function

Wraps the Flex Ray Driver API function Fr_ Send WUP().

Std_ReturnType FrIf_SendWUP (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Start Communication().

Std_ReturnType FrIf_StartCommunication (uint8 FrIf_CtrlIdx);
FrIf_Transmit function

Requests transmission of a PDU.

Std_ReturnType FrIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Callouts and expected interfaces

<Free_Op_A> function

User defined communication operation in order to support hardware specific or additional communication controller features to increase performance.

void <Free_Op_A> (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);
<Free_Op_B> function

User defined communication operation in order to support hardware specific or additional communication controller features to increase performance.

void <Free_Op_B> (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

Notification in case a Tx Conflict has been detected.

void <UL_TxConflictNotification> (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

Indication of a received PDU from a lower layer communication interface module.

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Within this API, the upper lay er module (called module) shall check whether the AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayInterface available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual c opied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);

Types

This type contains the implementation - specific post build time configuration structure. Only pointers of this type are allowed.

Variables of this type are used to represent the Fr If_ State of a Flex Ray CC.

Variables of this type are used to represent the Fr If_ State of a Flex Ray CC.