DEENESPTFRRUARHIKOZHNL

FlexRay Transceiver Driver (FrTrcv)

ModulFrTrcv (FlexRay Transceiver Driver)
BSW-Modul-ID71
Standard-Header#include "FrTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_FlexRayTransceiverDriver.pdf
ClusterFlexRay

Module guideAI-GENERATED

Controls FlexRay transceiver hardware: sets operating modes, detects wakeup events, and reports bus errors.
AI-GENERATED unreviewed Model: claude-opus-5-5 · Effort: high · Temperature: not controllable · Prompt: d2a3c22cd47c Provenance Open questions (6)
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

Controls FlexRay transceiver hardware: sets operating modes, detects wakeup events, and reports bus errors.

The FlexRay transceiver driver controls the transceiver devices of an ECU via Dio or Spi and offers the modes NORMAL, RECEIVEONLY, STANDBY, and SLEEP in ACTIVE [SWS_FrTrcv_00481]. It sets and reads modes, detects wakeup events via cyclic polling or notification, reports them to EcuM, and provides the wakeup reason. For active stars, it polls bus errors per branch and switches branches off or on. If a mode change fails, it returns E_NOT_OK and leaves the previous state unchanged [SWS_FrTrcv_00323].

The FlexRay transceiver driver controls the transceiver devices of an ECU. It addresses each device via the zero-based index FrTrcv_TrcvIdx [SWS_FrTrcv_00323]. Toward the bottom, it accesses the hardware via Dio or Spi, depending on the configuration SWS FrTrcv Fig. 10.4 p. 77. In addition, it uses Icu, EcuM, Dem, and Det [SWS_FrTrcv_00334]. Toward the top, FrIf is likely to use the services primarily on behalf of the FlexRay State Manager (interpretation) SWS FrSM p. 20. Question (open)

kontext FrSM FrSM FrIf FrIf FrSM->FrIf FrIf_GetTransceiverWUReason u. a. FrTrcv FrTrcv (FlexRay-Transceivertreiber) FrIf->FrTrcv Modus, Weckgrund, Zweige (Interpretation) EcuM EcuM EcuM->FrTrcv FrTrcv_Init (Interpretation) SchM BSW-Scheduler SchM->FrTrcv FrTrcv_MainFunction FrTrcv->EcuM EcuM_SetWakeupEvent Dio Dio FrTrcv->Dio Dio-Zugriff (FrTrcvAccess) Spi Spi FrTrcv->Spi SPI-Sequenz (FrTrcvAccess) Icu Icu FrTrcv->Icu Icu_Enable/DisableNotification Tm Tm FrTrcv->Tm Tm_BusyWait1us16bit Dem DEM FrTrcv->Dem Dem_SetEventStatus Det DET FrTrcv->Det Det_ReportError / Det_ReportRuntimeError

Context diagram: FrTrcv between FrIf/FrSM, the hardware drivers, and the services EcuM, DEM, and DET. Sources: [SWS_FrTrcv_00334], SWS FrSM p. 20

After power-on, the driver is in NOT_ACTIVE and transitions to ACTIVE with FrTrcv_Init SWS FrTrcv Fig. 7.1 p. 23. The modes NORMAL, RECEIVEONLY, STANDBY, and SLEEP apply there [SWS_FrTrcv_00481]. FrTrcv_SetTransceiverMode transitions between them. If the transition fails, the service returns E_NOT_OK and leaves the previous state unchanged. The driver implements wait times using Tm_BusyWait1us16bit [SWS_FrTrcv_00485]. In STANDBY, the ICU wakeup channels are enabled; in NORMAL, they are disabled [SWS_FrTrcv_00491] [SWS_FrTrcv_00492].

modi cluster_power_on POWER_ON cluster_active ACTIVE Aus Supply off NOT_ACTIVE NOT_ACTIVE Aus->NOT_ACTIVE Power On NORMAL NORMAL NOT_ACTIVE->NORMAL FrTrcv_Init() RECEIVEONLY RECEIVEONLY NORMAL->RECEIVEONLY FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_RECEIVEONLY) STANDBY STANDBY NORMAL->STANDBY FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_STANDBY) SLEEP SLEEP NORMAL->SLEEP FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_SLEEP) RECEIVEONLY->NORMAL FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_NORMAL) STANDBY->NORMAL FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_NORMAL) STANDBY->SLEEP FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_SLEEP)

State diagram: The four ACTIVE modes can only be reached after FrTrcv_Init. The edges are partially reconstructed (interpretation). Sources: SWS FrTrcv Fig. 7.1 p. 23, [SWS_FrTrcv_00481]

The driver detects wakeup events in two ways: via cyclic FrTrcv_MainFunction [SWS_FrTrcv_00330] or via notification. After FrTrcv_CheckWakeupByTransceiver, it reports the event to EcuM SWS FrTrcv p. 46. FrTrcv_GetTransceiverWUReason provides the reason, such as FRTRCV_WU_BY_BUS, insofar as the hardware can distinguish it [SWS_FrTrcv_00074]. FrTrcv_ClearTransceiverWakeup clears all pending events [SWS_FrTrcv_00329].

For active stars, optional services query bus errors per branch and switch branches off or back on [SWS_FrTrcv_00419] [SWS_FrTrcv_00442] [SWS_FrTrcv_00443]. For error handling, the following applies:

  • Development errors such as FRTRCV_E_UNINIT go to DET [SWS_FrTrcv_00085].
  • Runtime errors such as FRTRCV_E_FR_NO_CONTROL_TRCV pass via Det_ReportRuntimeError [SWS_FrTrcv_91001].
  • The driver reports Class A and Class B bus errors to DEM or to a configured substitute function [SWS_FrTrcv_00475].

Role: Hardware Abstraction for FlexRay Transceiver Devices

The FlexRay transceiver driver controls one or more FlexRay transceiver devices of an ECU. All channel-related services select the device via the zero-based index FrTrcv_TrcvIdx, which applies in the context of the driver [SWS_FrTrcv_00323]. The driver offers three groups of services:

FrTrcv_GetVersionInfo explicitly returns the version of the software module and not that of the transceiver hardware SWS FrTrcv p. 43.

Toward the bottom, the driver accesses the device via Dio or Spi. For wakeup notifications, it uses Icu; reports go to EcuM, Dem, and Det [SWS_FrTrcv_00334] [SWS_FrTrcv_00321]. The access type is defined by the choice container FrTrcvAccess: it allows exactly one of the two alternatives, i.e., Dio access or SPI sequence SWS FrTrcv Fig. 10.4 p. 77.

Toward the top, the FlexRay Interface is likely to use the services primarily. The FlexRay State Manager determines the wakeup reason per transceiver of a cluster via FrIf_GetTransceiverWUReason SWS FrSM p. 20. Interpretation: FrIf forwards these requests to FrTrcv. Question Q-29229b532631a6b5 (open) This is consistent with the fact that the shared types in Fr_GeneralTypes.h are protected by FR_GENERAL_TYPES so that multiple transceiver drivers and FrIf can share them SWS FrTrcv p. 34.

kontext FrSM FrSM FrIf FrIf FrSM->FrIf FrIf_GetTransceiverWUReason u. a. FrTrcv FrTrcv (FlexRay-Transceivertreiber) FrIf->FrTrcv Modus, Weckgrund, Zweige (Interpretation) EcuM EcuM EcuM->FrTrcv FrTrcv_Init (Interpretation) SchM BSW-Scheduler SchM->FrTrcv FrTrcv_MainFunction FrTrcv->EcuM EcuM_SetWakeupEvent Dio Dio FrTrcv->Dio Dio-Zugriff (FrTrcvAccess) Spi Spi FrTrcv->Spi SPI-Sequenz (FrTrcvAccess) Icu Icu FrTrcv->Icu Icu_Enable/DisableNotification Tm Tm FrTrcv->Tm Tm_BusyWait1us16bit Dem DEM FrTrcv->Dem Dem_SetEventStatus Det DET FrTrcv->Det Det_ReportError / Det_ReportRuntimeError

Context diagram: FrTrcv is located between FrIf/FrSM and the drivers Dio, Spi, and Icu and reports to EcuM, DEM, and DET. Sources: [SWS_FrTrcv_00334], [SWS_FrTrcv_00485], [SWS_FrTrcv_00330], SWS FrSM p. 20

Operating Modes Between NOT_ACTIVE and ACTIVE

Figure 7.1 of the specification describes the modes as a nested state machine. Within POWER_ON, the driver is in NOT_ACTIVE after power-on and transitions to ACTIVE with FrTrcv_Init() SWS FrTrcv Fig. 7.1 p. 23. Only in ACTIVE do the four values of FrTrcv_TrcvModeType apply: FRTRCV_TRCVMODE_NORMAL, FRTRCV_TRCVMODE_RECEIVEONLY, FRTRCV_TRCVMODE_STANDBY, and FRTRCV_TRCVMODE_SLEEP [SWS_FrTrcv_00481]. The calling layer switches between these modes with FrTrcv_SetTransceiverMode [SWS_FrTrcv_00323].

A mode change proceeds synchronously and is non-reentrant. Transitions to optional states may fail. In that case, the service returns E_NOT_OK, and the previous state is retained SWS FrTrcv p. 39. If the device requires wait times for a state transition, the driver implements them using the timer service Tm_BusyWait1us16bit [SWS_FrTrcv_00485]. FrTrcv_GetTransceiverMode reads the actual state. This service is reentrant and may therefore also be called concurrently [SWS_FrTrcv_00324].

modi cluster_power_on POWER_ON cluster_active ACTIVE Aus Supply off NOT_ACTIVE NOT_ACTIVE Aus->NOT_ACTIVE Power On NORMAL NORMAL NOT_ACTIVE->NORMAL FrTrcv_Init() RECEIVEONLY RECEIVEONLY NORMAL->RECEIVEONLY FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_RECEIVEONLY) STANDBY STANDBY NORMAL->STANDBY FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_STANDBY) SLEEP SLEEP NORMAL->SLEEP FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_SLEEP) RECEIVEONLY->NORMAL FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_NORMAL) STANDBY->NORMAL FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_NORMAL) STANDBY->SLEEP FrTrcv_SetTransceiverMode (FRTRCV_TRCVMODE_SLEEP)

State diagram: Only after FrTrcv_Init can the four ACTIVE modes be reached via FrTrcv_SetTransceiverMode. The selection of transitions is partially reconstructed (interpretation). Sources: SWS FrTrcv Fig. 7.1 p. 23, [SWS_FrTrcv_00481]

Startup and commencement of bus communication

FrTrcv_Init receives a pointer to the selected configuration set and initializes the driver [SWS_FrTrcv_00322]. This separate function initializes variables and hardware resources. Drivers that serve wake-up sources are re-initialized in the restart block, thereby re-arming the triggering mechanism of the wake-up notification SWS FrTrcv p. 37. The driver supports the initialization sequence of the AUTOSAR stack. Interpretation: Within this sequence, the ECU State Manager presumably calls the function. Question Q-93ce1e5987a96873 (open)

The transition to NORMAL affects the wake-up paths. If FrTrcvIcuChannelRef is configured, the driver disables the ICU channels using Icu_DisableNotification [SWS_FrTrcv_00492]. Without this reference, it does not access ICU channels at all [SWS_FrTrcv_00490].

Startup and transition to NORMALEcuMFrIf / FrSMFrTrcvDio / SpiIcuTmUse Case: InitialisierungFrTrcv_Init(ConfigPtr)Variables and hardware resourcesinitialisieren (NOT_ACTIVE → ACTIVE)Use Case: Kommunikation aufnehmenFrTrcv_SetTransceiverMode(TrcvIdx,FRTRCV_TRCVMODE_NORMAL)Set mode pins or registersTm_BusyWait1us16bit(...)optFrTrcvIcuChannelRef konfiguriertIcu_DisableNotification(...)altWechsel erfolgreichE_OKWechsel fehlgeschlagenE_NOT_OK (state unchanged)

Sequence diagram: Initialization is followed by the transition to NORMAL with busy-wait and optional ICU disabling. A failure leaves the state unchanged. Sources: [SWS_FrTrcv_00322], [SWS_FrTrcv_00323], [SWS_FrTrcv_00485], [SWS_FrTrcv_00492]

Wake-up detection in STANDBY and SLEEP, wake-up reason

Upon transitioning to STANDBY, the driver re-enables the ICU channels [SWS_FrTrcv_00491]. Furthermore, upon every transition to STANDBY, FrTrcv_SetTransceiverMode clears the error history in the transceiver, provided the hardware supports it SWS FrTrcv p. 39.

Additionally, the driver can poll cyclically. For this purpose, it provides FrTrcv_MainFunction via SchM_FrTrcv.h [SWS_FrTrcv_00330]. According to the document passage from R23-11, the function scans all buses in STANDBY and SLEEP for wake-up events and stores detected events internally. The period is defined by the configuration. The function may run synchronously or asynchronously with respect to the FlexRay bus schedule SWS FrTrcv p. 49.

Transition to STANDBY and cyclic wake-up detectionFrIf / FrSMFrTrcvIcuDio / SpiBSW-SchedulerFrTrcv_SetTransceiverMode(TrcvIdx,FRTRCV_TRCVMODE_STANDBY)Clear error history in transceiver(if supported by hardware)optFrTrcvIcuChannelRef konfiguriertIcu_EnableNotification(...)E_OKloopCyclic, period according to configurationFrTrcv_MainFunction()Weckstatus aller Busse inSTANDBY/SLEEP lesenWeckereignis intern speichernPolling behavior according to document section R23-11;Independent of FlexRay bus schedule

Sequence diagram: Upon the transition to STANDBY, the error history is cleared and ICU notification is enabled. Subsequently, the main function cyclically searches for wake-up events. Sources: [SWS_FrTrcv_00491], [SWS_FrTrcv_00330], SWS FrTrcv p. 49

If the device detects a wake-up via the bus, the underlying SPI or DIO side notifies the driver. This can occur in interrupt context SWS FrTrcv p. 46. If FrTrcv_CheckWakeupByTransceiver is called subsequently [SWS_FrTrcv_00331], the driver reports the event to the ECU State Manager. For this purpose, EcuM_SetWakeupEvent is listed in the list of used interfaces [SWS_FrTrcv_00334]. Interpretation: EcuM presumably triggers the check call within its wake-up sequence. Question Q-d5873691a495bef0 (open)

FrTrcv_GetTransceiverWUReason provides the wake-up reason [SWS_FrTrcv_00325] as a value of FrTrcv_TrcvWUReasonType. Possible values are FRTRCV_WU_BY_BUS, FRTRCV_WU_BY_PIN, FRTRCV_WU_INTERNALLY, or FRTRCV_WU_NOT_SUPPORTED [SWS_FrTrcv_00074]. How finely the reasons are distinguished depends heavily on the hardware SWS FrTrcv p. 42. The document passage of later releases additionally mentions FRTRCV_WU_RESET and FRTRCV_WU_POWER_ON SWS FrTrcv p. 34. The R20-11 requirement text in the payload is truncated at this point.

The FrSM checks the wake-up reason per transceiver for FRTRCV_WU_BY_BUS. In this way, it distinguishes whether no, partial, or complete bus wake-up is present SWS FrSM p. 20. FrTrcv_ClearTransceiverWakeup subsequently clears all pending wake-up events [SWS_FrTrcv_00329]. The call is also permitted when wake-up notification is disabled SWS FrTrcv p. 44.

Detect, report, and evaluate wake-up eventIcu / Dio / SpiFrTrcvEcuMFrIf / FrSMUse Case: ErkennungWeck-Benachrichtigung(ggf. Interrupt-Kontext)FrTrcv_CheckWakeupByTransceiver(TrcvIdx)(Aufrufer: Interpretation)EcuM_SetWakeupEvent(...)Use Case: AuswertungFrTrcv_GetTransceiverWUReason(TrcvIdx, &Reason)altGrund in FrTrcv_TrcvWUReasonType definiertE_OK, z. B. FRTRCV_WU_BY_BUSReason not definedE_NOT_OK (output unchanged)FrTrcv_ClearTransceiverWakeup(TrcvIdx)E_OK (all pending wake-up events cleared)

Sequence diagram: Sequence from hardware notification via the EcuM report to querying and clearing the wake-up reason. The payload does not name the caller of the check function (interpretation). Sources: [SWS_FrTrcv_00331], [SWS_FrTrcv_00325], [SWS_FrTrcv_00329], SWS FrTrcv p. 46

Active stars: Monitoring, disabling, and enabling branches

For transceivers that serve multiple branches as an active star, three additional services exist. They are only available if branches are configured SWS FrTrcv p. 52. All three additionally address the branch via the zero-based index FrTrcv_BranchIdx and are non-reentrant [SWS_FrTrcv_00419] [SWS_FrTrcv_00442] [SWS_FrTrcv_00443].

FrTrcv_GetTransceiverError writes the error state of a branch as uint32 to FrTrcv_BusErrorState. All errors required by the FlexRay EPL that are supported by the hardware can be queried SWS FrTrcv p. 48. Faulty branches are disabled using FrTrcv_DisableTransceiverBranch SWS FrTrcv p. 50. FrTrcv_EnableTransceiverBranch re-enables them synchronously with the FlexRay bus schedule SWS FrTrcv p. 51. If an index is outside the valid range, both switching services return E_NOT_OK, and the branch state remains unchanged [SWS_FrTrcv_00442] [SWS_FrTrcv_00443].

zweig start Check branch state (calling layer, interpretation) get FrTrcv_GetTransceiverError (TrcvIdx, BranchIdx, &BusErrorState) start->get rc Return E_OK? get->rc na Error state not available or index out of range rc->na no fehler Zweig fehlerhaft? rc->fehler yes aktiv Zweig bleibt aktiv fehler->aktiv no dis FrTrcv_DisableTransceiverBranch (TrcvIdx, BranchIdx) fehler->dis yes wieder Re-enabling requested? dis->wieder aus Zweig bleibt abgeschaltet wieder->aus no en FrTrcv_EnableTransceiverBranch synchronous to FlexRay bus schedule wieder->en yes

Activity diagram: Error query per branch, disabling of faulty branches, and re-enabling synchronously with the bus schedule. That the calling layer decides is an interpretation. Sources: [SWS_FrTrcv_00419], SWS FrTrcv p. 50, SWS FrTrcv p. 51

Configuration, access type, and partitioning

FrTrcv_ConfigType is an implementation-specific structure [SWS_FrTrcv_00487]. The module contains one or more containers FrTrcvChannel, one per transceiver channel, as well as FrTrcvGeneral SWS FrTrcv p. 59. This document passage from R23-11/R25-11 furthermore only mentions VARIANT-PRE-COMPILE without post-build support. For R20-11, the payload contains no requirement regarding this.

Per transceiver, FrTrcvAccess selects either FrTrcvDioAccess or FrTrcvSpiSequence SWS FrTrcv Fig. 10.4 p. 77. Optional functions can be enabled and disabled at compile time SWS FrTrcv p. 52. FrTrcvIcuChannelRef links the ICU wake-up notification [SWS_FrTrcv_00490]. Using FrTrcvDemReportErrorStatusConfiguration, a custom function with the same signature can be employed instead of Dem_SetEventStatus [SWS_FrTrcv_00475].

In partitioned systems, the module operates as an independent instance per partition. An API call only affects the partition in which it occurs [SWS_FrTrcv_00494]. The module must reject partition assignments that the implementation does not support [SWS_FrTrcv_00497].

Behavior in the event of an error

The development errors are specified [SWS_FrTrcv_00085]:

  • FRTRCV_E_FR_INVALID_TRCVIDX (0x01),
  • FRTRCV_E_FR_INVALID_BRANCHIDX (0x02),
  • FRTRCV_E_UNINIT (0x10),
  • FRTRCV_E_PARAM_POINTER (0x15).

They are only reported when development error detection is enabled. Examples are FRTRCV_E_UNINIT for the branch services SWS FrTrcv p. 50 and the NULL pointer for FrTrcv_GetVersionInfo SWS FrTrcv p. 43.

As runtime errors, the driver reports calls in the wrong mode with FRTRCV_E_FR_TRCV_NOT_STANDBY to FRTRCV_E_FR_TRCV_NOT_RECEIVEONLY (0x11 to 0x14). Missing or faulty communication with the device is reported with FRTRCV_E_FR_NO_CONTROL_TRCV (0x16) [SWS_FrTrcv_91001]. These reports run via Det_ReportRuntimeError [SWS_FrTrcv_00493]. FrTrcv_GetTransceiverMode triggers the error FRTRCV_E_FR_NO_CONTROL_TRCV, for example upon an error in transceiver access SWS FrTrcv p. 41.

With E_NOT_OK, the output parameters remain unchanged, such as with FrTrcv_GetTransceiverMode and FrTrcv_GetTransceiverError SWS FrTrcv p. 48. A failed mode change leaves the previous state intact [SWS_FrTrcv_00323].

pruefung start Call of an FrTrcv service init Modul initialisiert? start->init e_uninit Det_ReportError: FRTRCV_E_UNINIT init->e_uninit no idx FrTrcv_TrcvIdx in range? init->idx yes r_nok Return E_NOT_OK (outputs or state unchanged) e_uninit->r_nok e_idx Det_ReportError: FRTRCV_E_FR_INVALID_TRCVIDX idx->e_idx no br Branch service: FrTrcv_BranchIdx in range? idx->br yes e_idx->r_nok e_br Det_ReportError: FRTRCV_E_FR_INVALID_BRANCHIDX br->e_br no ptr Zeigerparameter ungleich NULL? br->ptr ja / kein Zweigdienst e_br->r_nok e_ptr Det_ReportError: FRTRCV_E_PARAM_POINTER ptr->e_ptr no zugriff Access to transceiver (Dio / Spi) ptr->zugriff yes e_ptr->r_nok ok Zugriff fehlerfrei? zugriff->ok e_rt Det_ReportRuntimeError: FRTRCV_E_FR_NO_CONTROL_TRCV ok->e_rt no r_ok Return E_OK ok->r_ok yes e_rt->r_nok

Activity diagram: Parameter and initialization checks lead to development errors, access errors to a runtime error. The sequence of checks is an interpretation. DET checks only exist when error detection is enabled. Sources: [SWS_FrTrcv_00085], [SWS_FrTrcv_91001], [SWS_FrTrcv_00493]

For production diagnostics, the driver distinguishes two transceiver classes:

  • For GPIO-controlled transceivers of Class A, an active ERRN pin (low) signifies "Fail", an inactive pin (high) signifies "Pass" [SWS_FrTrcv_00489].
  • For SPI-controlled transceivers of Class B, each set bit 1…9 triggers a bus error [SWS_FrTrcv_00488].

Evaluation takes place upon an unexpected HALT or upon NORMAL_ACTIVE of the controller. In the case of a short circuit on the bus, a "Pass" from the driver alone is not sufficient as proof SWS FrTrcv p. 26. Dem_SetEventStatus is only available with STANDARD_REPORTING [SWS_FrTrcv_00334].

dem anlass Reason: unexpected HALT or NORMAL_ACTIVE of the controller klasse Transceiverklasse? anlass->klasse a Klasse A (GPIO): ERRN-Pin aktiv low? klasse->a A b Class B (SPI): any bit 1...9 set? klasse->b B fail_a Fail: FRTRCV_E_FR_ERRN_TRCV_<TrcvIdx> a->fail_a yes pass_a Pass: FRTRCV_E_FR_ERRN_TRCV_<TrcvIdx> a->pass_a no fail_b Fail: FRTRCV_E_FR_BUSERROR_TRCV_<TrcvIdx> b->fail_b yes pass_b Pass: FRTRCV_E_FR_BUSERROR_TRCV_<TrcvIdx> b->pass_b no cfg FrTrcvDemReportErrorStatusConfiguration konfiguriert? fail_a->cfg pass_a->cfg fail_b->cfg pass_b->cfg eigen Configured function (signature like Dem_SetEventStatus) cfg->eigen yes dem Dem_SetEventStatus (only with STANDARD_REPORTING) cfg->dem no

Activity diagram: Pass/Fail evaluation per transceiver class and reporting path to DEM or to the configured replacement function. Sources: [SWS_FrTrcv_00488], [SWS_FrTrcv_00489], [SWS_FrTrcv_00475]

Further detailed evidence

ReferenceClassification
[SWS_FrTrcv_00481], SWS FrTrcv Abb. 7.1 S. 23Operating modes and state machine
[SWS_FrTrcv_00323], SWS FrTrcv S. 39Mode change, failure, clearing of error history in STANDBY
[SWS_FrTrcv_00322], SWS FrTrcv S. 37Initialization and restart rule for wake-up sources
[SWS_FrTrcv_00330], [SWS_FrTrcv_00485]Cyclic polling and wait times
[SWS_FrTrcv_00331], [SWS_FrTrcv_00325], [SWS_FrTrcv_00074], [SWS_FrTrcv_00329]Wake-up path from detection to clearing
[SWS_FrTrcv_00490], [SWS_FrTrcv_00491], [SWS_FrTrcv_00492]ICU notification depending on mode
[SWS_FrTrcv_00419], [SWS_FrTrcv_00442], [SWS_FrTrcv_00443]Branch management for active stars
[SWS_FrTrcv_00085], [SWS_FrTrcv_91001], [SWS_FrTrcv_00493]Development and runtime errors
[SWS_FrTrcv_00488], [SWS_FrTrcv_00489], [SWS_FrTrcv_00475]Dem events and reporting path
[SWS_FrTrcv_00487], [SWS_FrTrcv_00494], [SWS_FrTrcv_00497]Configuration type and partitioning

AI-generated guide based on the R20-11 requirements and document passages contained in the payload. Document passages from later releases are identified as such. Solely the AUTOSAR specification is binding.

FlexRay Transceiver Driver (FrTrcv)

Controls physical bus transceiver states and bus diagnostics on FlexRay lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function FrTrcv_Init [SWS_FrTrcv_00322] 📄 PDF

void FrTrcv_Init (const FrTrcv_ConfigType* ConfigPtr);

This service initializes the Fr Trcv.

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

The synchronous function FrTrcv_Init initializes the FlexRay transceiver driver of the AUTOSAR Classic Platform ([SWS_FrTrcv_00322]). It has the service ID 0x00 and is provided via the header file FrTrcv.h ([SWS_FrTrcv_00322]). The module FrTrcv provides this service for configuring and initializing the transceiver hardware ([SWS_FrTrcv_00322]).

As its only parameter, the interface expects the pointer ConfigPtr of type const FrTrcv_ConfigType*, which points to the selected configuration dataset of the transceiver ([SWS_FrTrcv_00322]):

Since FrTrcv_Init is specified as non-reentrant (Non Reentrant), the function must under no circumstances be called concurrently or multiple times simultaneously ([SWS_FrTrcv_00322]). Execution is synchronous until initialization is completed ([SWS_FrTrcv_00322]).

The present specification makes no explicit statements regarding call context and sequence requirements; presumably, initialization is performed during system startup by the basic software state management prior to all regular communication activities. Question Q-5fa4966e37b10516 (open) Specific error codes, reactions to null pointers, and interactions with DET or DEM are not contained in the provided specification scope and are therefore not elaborated further ([SWS_FrTrcv_00322]).

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

Implementer's Guide to follow (complexity I1)

function FrTrcv_SetTransceiverMode [SWS_FrTrcv_00323] 📄 PDF

Std_ReturnType FrTrcv_SetTransceiverMode (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvModeType FrTrcv_TrcvMode);

This service sets the transceiver mode.

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

The synchronous function FrTrcv_SetTransceiverMode is used to switch the operating mode of a FlexRay transceiver [SWS_FrTrcv_00323]. The declaration of this service is provided via the header file FrTrcv.h [SWS_FrTrcv_00323].

Parameters and Control

The function expects two input parameters [SWS_FrTrcv_00323]:

  • FrTrcv_TrcvIdx: This zero-based index identifies the specific transceiver within the transceiver driver for which the state transition is to be performed [SWS_FrTrcv_00323].
  • FrTrcv_TrcvMode: Selects the target state to which the transceiver shall transition [SWS_FrTrcv_00323]. It should be noted that transitions to optional states may fail [SWS_FrTrcv_00323].

Return Values and Fault Behavior

The result of the mode switch is communicated synchronously via the return value of type Std_ReturnType [SWS_FrTrcv_00323]:

  • E_OK: Indicates that the state of the transceiver was successfully changed to the requested mode [SWS_FrTrcv_00323].
  • E_NOT_OK: Signals a failure of the state transition; the previous state of the transceiver remains unchanged [SWS_FrTrcv_00323].

Concurrency

The service is specified as non-reentrant (Non Reentrant) and has synchronous execution semantics [SWS_FrTrcv_00323]. Due to the Non Reentrant property, the calling context is presumably responsible for protecting against parallel or overlapping calls to the driver. Question Q-b83c7a2879a572b7 (open)

This usage note was generated automatically and is based exclusively on the specification data from AUTOSAR Release R20-11.

Implementer's Guide to follow (complexity I1)

function FrTrcv_GetTransceiverMode [SWS_FrTrcv_00324] 📄 PDF

Std_ReturnType FrTrcv_GetTransceiverMode (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvModeType* FrTrcv_TrcvModePtr);

This function returns the actual state of the transceiver.

function FrTrcv_GetTransceiverWUReason [SWS_FrTrcv_00325] 📄 PDF

Std_ReturnType FrTrcv_GetTransceiverWUReason (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvWUReasonType* FrTrcv_TrcvWUReasonPtr);

This function returns the wakeup reason.

function FrTrcv_ClearTransceiverWakeup [SWS_FrTrcv_00329] 📄 PDF

Std_ReturnType FrTrcv_ClearTransceiverWakeup (uint8 FrTrcv_TrcvIdx);

This function clears a pending wake up event.

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

Usage and Semantics

The synchronous function FrTrcv_ClearTransceiverWakeup is used to reset a pending wakeup event on a FlexRay transceiver [SWS_FrTrcv_00329]. It is declared in the header file FrTrcv.h and has the service ID 0x0c [SWS_FrTrcv_00329].

The zero-based input parameter FrTrcv_TrcvIdx specifies the transceiver in question within the driver [SWS_FrTrcv_00329].

Error Handling and Return Values

The return value of type Std_ReturnType provides information about the outcome of the operation [SWS_FrTrcv_00329]:

  • E_OK: The wakeup event of the transceiver wakeup source was successfully cleared [SWS_FrTrcv_00329].
  • E_NOT_OK: The parameter FrTrcv_TrcvIdx is outside the valid range; in this case, the wakeup status remains unchanged [SWS_FrTrcv_00329].

Concurrency and Limitations

The function is specified as non-reentrant [SWS_FrTrcv_00329]. Callers must therefore ensure that calls for the same instance do not occur preemptively or in parallel. Since the function is defined as synchronous, clearing the wakeup event is presumably completed immediately during the call at the driver level. Question Q-e548008f8bae0ff0 (open)

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

function FrTrcv_CheckWakeupByTransceiver [SWS_FrTrcv_00331] 📄 PDF

void FrTrcv_CheckWakeupByTransceiver (uint8 FrTrcv_TrcvIdx);

-

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

Usage and Call Context

The function FrTrcv_CheckWakeupByTransceiver belongs to the FlexRay transceiver driver (module FrTrcv) and is declared via the header file FrTrcv.h [SWS_FrTrcv_00331]. The function has the service ID 0x0e and is executed synchronously [SWS_FrTrcv_00331]. It takes as its only input parameter FrTrcv_TrcvIdx of type uint8, which as a zero-based index determines the respective transceiver in the context of the transceiver driver for which the operation is to be executed [SWS_FrTrcv_00331]. There are neither input/output parameters nor pure output parameters, and the function returns no value (void) [SWS_FrTrcv_00331].

No detailed functional description is stored in the specification data. Interpretation: Based on the naming, the function presumably serves to check whether a wakeup event is present at or was detected by the addressed transceiver hardware [SWS_FrTrcv_00331]. Question Q-9b8b5d8fb8e4543f (open)

Concurrency and Error Handling

Regarding concurrency behavior, FrTrcv_CheckWakeupByTransceiver is classified as reentrant [SWS_FrTrcv_00331]. This permits parallel calls for different transceiver instances in the system. Specific error handling mechanisms, such as checks for invalid indices or notifications to the Default Error Tracer (DET) or Diagnostic Event Manager (DEM), are not defined in this specification element [SWS_FrTrcv_00331].

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

function FrTrcv_GetTransceiverError [SWS_FrTrcv_00419] 📄 PDF

Std_ReturnType FrTrcv_GetTransceiverError (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx, uint32* FrTrcv_BusErrorState);

All mandatory errors defined by the Flex Ray EPL [5] which are supported by the Flex Ray transceiver hardware can be acce ssed via this API:In addition to errors on the physical layer and local to the ECU hardware, a global error flag is provided.

function FrTrcv_DisableTransceiverBranch [SWS_FrTrcv_00442] 📄 PDF

Std_ReturnType FrTrcv_DisableTransceiverBranch (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx);

This function disable s the specified branch on the addressed (active star) transceiver.

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

The synchronous function FrTrcv_DisableTransceiverBranch serves to disable an individual, specified branch on an addressed active star transceiver ([SWS_FrTrcv_00442]). It is provided via the header file FrTrcv.h and has service ID 0x0f ([SWS_FrTrcv_00442]).

Parameters and call context

The call takes place synchronously and is specified as non-reentrant (Non Reentrant) ([SWS_FrTrcv_00442]). The function expects two zero-based input parameters:

  • FrTrcv_TrcvIdx: Zero-based index identifying the transceiver in the context of the transceiver driver to which the operation shall be applied ([SWS_FrTrcv_00442]).
  • FrTrcv_BranchIdx: Zero-based index determining the branch of the addressed active star transceiver to be disabled ([SWS_FrTrcv_00442]).

Return Values and Error Handling

The result of the operation is signaled via the return type Std_ReturnType ([SWS_FrTrcv_00442]):

  • E_OK: The specified transceiver branch was successfully disabled ([SWS_FrTrcv_00442]).
  • E_NOT_OK: Parameter FrTrcv_TrcvIdx or FrTrcv_BranchIdx is outside the valid range ([SWS_FrTrcv_00442]). In this error case, the state of the transceiver branch remains unchanged ([SWS_FrTrcv_00442]).

Restrictions and Concurrency

Since FrTrcv_DisableTransceiverBranch is non-reentrant, calls must not be executed concurrently without protection ([SWS_FrTrcv_00442]). Callers must also ensure that both indices lie within the configured boundaries in order to avoid a rejection with an unchanged branch state ([SWS_FrTrcv_00442]).

This usage note is based on the specification SWS_FrTrcv_00442 from Release R20-11.

function FrTrcv_EnableTransceiverBranch [SWS_FrTrcv_00443] 📄 PDF

Std_ReturnType FrTrcv_EnableTransceiverBranch (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx);

This function enables the specified branch on the addressed (active star) transceiver.

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

The synchronous function FrTrcv_EnableTransceiverBranch serves to activate a specific branch on an addressed transceiver, typically in an active star topology (Active Star) [SWS_FrTrcv_00443].

Parameters and call context

  • FrTrcv_TrcvIdx: Zero-based index of the transceiver in the context of the driver [SWS_FrTrcv_00443].
  • FrTrcv_BranchIdx: Zero-based index of the specific transceiver branch to be activated [SWS_FrTrcv_00443].

Return Values and Error Handling

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

  • E_OK: The specified transceiver branch was successfully activated [SWS_FrTrcv_00443].
  • E_NOT_OK: One of the parameters (FrTrcv_TrcvIdx or FrTrcv_BranchIdx) is outside the valid range; in this case, the state of the branch remains unchanged [SWS_FrTrcv_00443].

Concurrency and Limitations

The call is executed synchronously and specified as non-reentrant (Non Reentrant) [SWS_FrTrcv_00443]. Callers must therefore ensure that the function is not called concurrently for the same or parallel contexts.

This usage note was generated automatically based on the specification.

function FrTrcv_MainFunction [SWS_FrTrcv_00330] 📄 PDF

void FrTrcv_MainFunction (void);

-

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

The function FrTrcv_MainFunction constitutes the periodic main function of the driver for the FlexRay transceiver (module FrTrcv) and is stored with service ID 0x0d [SWS_FrTrcv_00330]. The C interface is defined with signature void FrTrcv_MainFunction (void) as a parameterless function, which is why neither input parameters are passed upon the call nor does a status value exist as return type [SWS_FrTrcv_00330].

Header SchM_FrTrcv.h is specified as include file for the function [SWS_FrTrcv_00330]. The provision via the interface of the Schedule Manager substantiates the interpretation that the call during system operation typically occurs cyclically through the BSW Scheduler in the context of a configured operating system task.

In the absence of parameters and return values, upcoming control and monitoring procedures of the transceiver are expected to be executed autonomously within the module. Question Q-2710fa5096bf4d90 (open) The specification contains no stipulations at this point regarding aspects such as reentrancy, concurrency, DET error handling, or interactions with other driver interfaces [SWS_FrTrcv_00330].

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

type FrTrcv_TrcvModeType [SWS_FrTrcv_00481] 📄 PDF

Transceiver modes in state ACTIVE. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayTransceiverDriver

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

The enumeration type FrTrcv_TrcvModeType specifies the permitted operating modes of a FlexRay transceiver in the overarching operating state ACTIVE according to [SWS_FrTrcv_00481]. The typed definition is an integral part of the FlexRay transceiver driver FrTrcv and is provided platform-wide via the header file Fr_GeneralTypes.h for higher-level software modules [SWS_FrTrcv_00481].

The enumeration comprises four defined states for transceiver operation [SWS_FrTrcv_00481]:

  • FRTRCV_TRCVMODE_NORMAL: Indicates that the transceiver is in the regular operating state NORMAL [SWS_FrTrcv_00481].
  • FRTRCV_TRCVMODE_STANDBY: Indicates that the transceiver is in the power-saving standby state STANDBY [SWS_FrTrcv_00481].
  • FRTRCV_TRCVMODE_SLEEP: Indicates that the transceiver is in the idle state SLEEP [SWS_FrTrcv_00481].
  • FRTRCV_TRCVMODE_RECEIVEONLY: Indicates that the transceiver is in the RECEIVEONLY state, permitting reception operations only [SWS_FrTrcv_00481].

Regarding usage and interaction, the type acts as a central interface variable for controlling and acquiring the state of the FlexRay transceiver hardware (Interpretation: The enumeration values presumably serve as parameters for function calls to switch the operating mode as well as for feedback in status queries, since the payload contains no function signatures). Question Q-205f2b0575c32460 (open) Specific error codes, error handling via DET or DEM, and restrictions on reentrancy are not defined in the specifications for this elementary enumeration type [SWS_FrTrcv_00481].

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

Implementer's Guide to follow (complexity I1)

type FrTrcv_TrcvWUReasonType [SWS_FrTrcv_00074] 📄 PDF

This type to be used to specify the wake up reason detected by the FR transceiver in detail.

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

Record
AUTOSAR/AP/record/CP_MOD_FrTrcv
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_FrTrcv@rel:R20-11#4be977ac
Content hash
4be977ac
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayTransceiverDriver.pdf#nameddest=SWS_FrTrcv_00322

Initialization and status

This service returns the version information of this module.

void FrTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
FrTrcv_Init function

This service initializes the Fr Trcv.

void FrTrcv_Init (const FrTrcv_ConfigType* ConfigPtr);

Services

-

void FrTrcv_CheckWakeupByTransceiver (uint8 FrTrcv_TrcvIdx);

This function clears a pending wake up event.

Std_ReturnType FrTrcv_ClearTransceiverWakeup (uint8 FrTrcv_TrcvIdx);

This function disable s the specified branch on the addressed (active star) transceiver.

Std_ReturnType FrTrcv_DisableTransceiverBranch (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx);

This function enables the specified branch on the addressed (active star) transceiver.

Std_ReturnType FrTrcv_EnableTransceiverBranch (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx);

All mandatory errors defined by the Flex Ray EPL [5] which are supported by the Flex Ray transceiver hardware can be acce ssed via this API:In addition to errors on the physical layer and local to the ECU hardware, a global error flag is provided.

Std_ReturnType FrTrcv_GetTransceiverError (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx, uint32* FrTrcv_BusErrorState);

This function returns the actual state of the transceiver.

Std_ReturnType FrTrcv_GetTransceiverMode (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvModeType* FrTrcv_TrcvModePtr);

This function returns the wakeup reason.

Std_ReturnType FrTrcv_GetTransceiverWUReason (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvWUReasonType* FrTrcv_TrcvWUReasonPtr);

This service sets the transceiver mode.

Std_ReturnType FrTrcv_SetTransceiverMode (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvModeType FrTrcv_TrcvMode);

Cyclic

-

void FrTrcv_MainFunction (void);

Types

Configuration data structure of the Fr Trcv module.

Transceiver modes in state ACTIVE. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayTransceiverDriver

This type to be used to specify the wake up reason detected by the FR transceiver in detail.

Type ofaCfunctionwhichsubstitutesMultiplicityType.