DEENESPTFRRUARHIKOZHNL

FlexRay Interface (FrIf)

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

Guía del móduloGENERADO POR IA

Encapsula los controladores y transceptores FlexRay y controla por cada clúster el estado, el tráfico de PDU y la ejecución de la lista de trabajos.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: c9748455d0d4 Procedencia Preguntas abiertas (4)
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Encapsula los controladores y transceptores FlexRay y controla por cada clúster el estado, el tráfico de PDU y la ejecución de la lista de trabajos.

La FlexRay Interface encapsula controladores FlexRay y de transceptor tras un índice de controlador uniforme y media las PDU entre las capas superiores y el bus. Para cada clúster mantiene una máquina de estados con los estados FRIF_STATE_OFFLINE y FRIF_STATE_ONLINE, que el FlexRay State Manager conmuta mediante FrIf_SetState [SWS_FrIf_05174]. La transmisión y recepción se realizan de forma temporizada en la ejecución de la lista de trabajos del clúster, y solo en el estado online (SWS FrIf p. 37). Los servicios de inicio, parada y wakeup funcionan de manera asíncrona. Por ello, el emisor de la llamada determina el estado de POC alcanzado mediante FrIf_GetPOCStatus.

La FlexRay Interface (FrIf) se sitúa entre los módulos de comunicación superiores y los controladores Fr y FrTrcv. Para su función principal requiere servicios del controlador como Fr_ControllerInit, Fr_GetPOCStatus y Fr_ReceiveRxLPdu [SWS_FrIf_05043]. La mayoría de los servicios de control encapsulan un servicio del controlador: traducen FrIf_CtrlIdx en función de la configuración estática a la tupla (FlexRay Driver | Fr_CtrlIdx) y devuelven el resultado del controlador (SWS FrIf p. 55). El inicio, la parada, la habilitación de arranque en frío y el wakeup funcionan de forma asíncrona [SWS_FrIf_05005]. Por tanto, el emisor de la llamada determina el estado realmente alcanzado con 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_* tras traducción de índices (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

Diagrama de contexto: el FrIf media entre FrSM, usuarios de PDU, servicios de tiempo y de espejado por un lado, y los controladores Fr y FrTrcv por el otro. Fuentes: [SWS_FrIf_05043], SWS FrSM p. 22

Para cada clúster, el FrIf mantiene una máquina de estados con los estados FRIF_STATE_OFFLINE y FRIF_STATE_ONLINE [SWS_FrIf_05755]. FrIf_Init() establece cada clúster en Offline. El entorno solicita transiciones con FrIf_SetState y FRIF_GOTO_ONLINE o FRIF_GOTO_OFFLINE [SWS_FrIf_05174]. La recepción, transmisión y confirmación de transmisión solo se ejecutan online. Al cambiar a Offline, las Upper Layers reciben E_NOT_OK para las confirmaciones pendientes [SWS_FrIf_05501].

frif_zustand start off FRIF_STATE_OFFLINE sin servicios de comunicación (clúster no sincronizado) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: ninguna transición on FRIF_STATE_ONLINE recepción, transmisión, confirmación Tx (clúster sincronizado) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) por cada PDU con TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: ninguna transición

Diagrama de estados: cada clúster se inicia en offline y solo cambia a petición a través de FrIf_SetState. Fuentes: [SWS_FrIf_05303], SWS FrIf p. 25

El FrSM controla la secuencia. Durante el arranque, conmuta los transceptores a Normal, inicia la comunicación y, si procede, habilita el arranque en frío. A continuación, sondea el estado de POC hasta que se alcanza FR_POCSTATE_NORMAL_ACTIVE, y solo después pone el clúster online (SWS FrSM p. 50). La desconexión se realiza en dos etapas: primero Offline y parada, después reinicialización de los controladores y standby del transceptor (SWS FrSM p. 58).

FrIf_Transmit inicialmente solo contabiliza solicitudes de transmisión [SWS_FrIf_05033]. La transmisión propiamente dicha tiene lugar en la ejecución de la lista de trabajos por clúster [SWS_FrIf_05040]. Allí, el FrIf obtiene los datos mediante TriggerTransmit, confirma transmisiones y notifica recepciones. Notifica errores en tres categorías: errores de desarrollo a DET [SWS_FrIf_05145], el error de tiempo de ejecución FRIF_E_JLE_SYNC [SWS_FrIf_05432] y errores de producción por canal a DEM [SWS_FrIf_05146].

Rol en la pila FlexRay y límite del sistema

La FlexRay Interface (FrIf) se sitúa entre los módulos de comunicación superiores y los controladores cercanos al hardware. Para su función principal requiere servicios del controlador FlexRay. Entre ellos se encuentran Fr_ControllerInit, Fr_GetPOCStatus, Fr_ReceiveRxLPdu y Fr_CheckTxLPduStatus, así como Det_ReportRuntimeError [SWS_FrIf_05043]. Opcionales son, entre otros, Fr_AllSlots, Fr_CancelTxLPdu y Dem_SetEventStatus [SWS_FrIf_05044]. La estructura de cabeceras muestra la integración de Fr.h, FrTrcv.h, PduR_FrIf.h, FrNm_Cbk.h y FrTp_Cbk.h (SWS FrIf p. 18).

El ciclo de vida es controlado por el FlexRay State Manager. Este asigna sus elementos funcionales a llamadas a FrIf (SWS FrSM p. 22). Los usuarios de PDU se conectan mediante callbacks configurables: <User_RxIndication>, <User_TxConfirmation> y <User_TriggerTransmit> [SWS_FrIf_05045] [SWS_FrIf_05046] [SWS_FrIf_05047]. Destinos admisibles son, entre otros, FrTSyn [SWS_FrIf_05434], FrNm y FrArTp. También pueden conectarse Complex Drivers con interfaces similares (SWS FrIf p. 97). Otros usuarios tienen tareas propias:

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_* tras traducción de índices (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

Diagrama de contexto: el FrIf media entre el control de estado, los usuarios de PDU, los servicios de tiempo y de espejado por un lado, y los controladores Fr y FrTrcv por el otro. Notifica errores a DET y DEM. Fuentes: [SWS_FrIf_05043], [SWS_FrIf_05045], SWS FrSM p. 22, SWS FrIf p. 18

Un índice de controlador para todos los controladores: el principio de wrapper

La mayoría de los servicios de control direccionan un Communication Controller (CC) mediante FrIf_CtrlIdx. El patrón puede mostrarse con el ejemplo de FrIf_ControllerInit. El servicio traduce el índice en función de la configuración estática a la tupla (FlexRay Driver | Fr_CtrlIdx). A continuación, llama a Fr_ControllerInit() del controlador determinado (SWS FrIf p. 55). El valor de retorno refleja el resultado del controlador [SWS_FrIf_05004]. Siguiendo el mismo patrón, otros servicios encapsulan sus homólogos del controlador: inicio, parada, cancelación, habilitación de arranque en frío, wakeup, estado de POC y tiempo global [SWS_FrIf_05005] [SWS_FrIf_05006] [SWS_FrIf_05007] [SWS_FrIf_05017] [SWS_FrIf_05011] [SWS_FrIf_05014] [SWS_FrIf_05015]. Lo mismo aplica a los servicios de temporizador absoluto [SWS_FrIf_05021] [SWS_FrIf_05025] [SWS_FrIf_05029].

Para los emisores de llamadas, la sincronicidad es determinante. FrIf_StartCommunication, FrIf_HaltCommunication, FrIf_AllowColdstart y FrIf_SendWUP funcionan de forma asíncrona [SWS_FrIf_05005] [SWS_FrIf_05011]. Por el contrario, FrIf_ControllerInit y FrIf_AbortCommunication funcionan de forma síncrona [SWS_FrIf_05007]. En los servicios asíncronos, E_OK solo indica que la llamada al controlador ha devuelto E_OK. El estado de POC realmente alcanzado lo determina el FrSM mediante consultas reiteradas con FrIf_GetPOCStatus (SWS FrSM p. 50).

Los servicios de transceptor direccionan adicionalmente un canal FrIf_ChnlIdx y encapsulan el FlexRay Transceiver Driver [SWS_FrIf_05034] [SWS_FrIf_05036] [SWS_FrIf_05039]. El valor FR_CHANNEL_AB no es admisible en este contexto (SWS FrIf p. 73). Consultas como FrIf_GetMacroticksPerCycle o FrIf_GetCycleLength no llaman a ningún controlador, sino que leen la configuración estática [SWS_FrIf_05018] [SWS_FrIf_05239].

Máquina de estados por cada clúster: FRIF_STATE_OFFLINE y FRIF_STATE_ONLINE

El FrIf mantiene su propia máquina de estados para cada clúster FlexRay. FrIf_Init() establece inicialmente cada clúster en FRIF_STATE_OFFLINE (SWS FrIf p. 25). Ambos estados tienen el siguiente significado [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: el CC no está listo para la comunicación, el clúster no está sincronizado.
  • FRIF_STATE_ONLINE: el CC está listo para la comunicación, el clúster está sincronizado.

El entorno solicita transiciones mediante FrIf_SetState, y concretamente con los literales FRIF_GOTO_ONLINE o FRIF_GOTO_OFFLINE [SWS_FrIf_05174] [SWS_FrIf_05303]. Una transición solo se produce si el clúster se encuentra en el otro estado respectivo (SWS FrIf p. 25). FrIf_GetState es reentrante [SWS_FrIf_05170], mientras que FrIf_SetState no lo es.

El estado determina si tiene lugar tráfico de datos. En Offline, el FrIf no ejecuta servicios de comunicación. En Online, ejecuta recepción, transmisión y confirmación de transmisión (SWS FrIf p. 25). Al cambiar a Offline, el FrIf comprueba cada PDU: si su TxConfCounter > 0, el Upper Layer recibe <UL>_TxConfirmation(id, E_NOT_OK) [SWS_FrIf_05501]. A partir de R23-11, la especificación exige además que FrIf_Transmit() devuelva E_NOT_OK en el estado Offline (SWS FrIf p. 68). Un diagrama más antiguo muestra cuatro estados, entre ellos FRIF_STATE_HALT (SWS FrIf p. 28). No es aplicable para R20-11, ya que aquí FrIf_StateType solo admite dos valores [SWS_FrIf_05755].

frif_zustand start off FRIF_STATE_OFFLINE sin servicios de comunicación (clúster no sincronizado) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: ninguna transición on FRIF_STATE_ONLINE recepción, transmisión, confirmación Tx (clúster sincronizado) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) por cada PDU con TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: ninguna transición

Diagrama de estados: cada clúster se inicia en offline y solo cambia a petición a través de FrIf_SetState. Al cambiar a Offline, las confirmaciones de transmisión pendientes se finalizan negativamente. Fuentes: [SWS_FrIf_05174], [SWS_FrIf_05303], [SWS_FrIf_05501], SWS FrIf p. 25

Arranque, wakeup y desconexión bajo la dirección del FrSM

El EcuM inicializa el FrIf con FrIf_Init, concretamente antes de FrSM_Init (SWS FrSM p. 46). Para ello transfiere un puntero a FrIf_ConfigType [SWS_FrIf_05003]. Todos los pasos posteriores son controlados por el FrSM a través de sus elementos funcionales. Cada elemento llama al servicio FrIf correspondiente para cada controlador del clúster (SWS FrSM p. 22):

  • FE_CONFIG llama a FrIf_ControllerInit.
  • FE_START llama a FrIf_StartCommunication.
  • FE_ALLOW_COLDSTART llama a FrIf_AllowColdstart, pero solo si FrSMIsColdstartEcu está establecido.
  • FE_WAKEUP llama a FrIf_SendWUP.
  • FE_HALT llama a FrIf_HaltCommunication.

El startup pasivo tras un wakeup del bus tiene lugar en este orden (SWS FrSM p. 50):

  1. Los transceptores se conmutan a FRTRCV_TRCVMODE_NORMAL.
  2. Se inicia la comunicación.
  3. Un nodo coldstart habilita adicionalmente el coldstart.
  4. El FrSM consulta el estado de POC hasta que se alcanza FR_POCSTATE_NORMAL_ACTIVE.
  5. Solo entonces sigue FrIf_SetState(…, FRIF_GOTO_ONLINE).

Durante el despertar activo, los nodos de dos canales seleccionan el canal de wakeup con FrIf_SetWakeupChannel [SWS_FrIf_05010]. FrIf_GetWakeupRxStatus notifica de forma codificada en bits en qué canal se recibió un wakeup [SWS_FrIf_05102].

Startup pasivo de un clúster (canal único, bus-wakeup)ComMSchMFrSMFrIfBswMDemFrSM_RequestComMode(network,COMM_FULL_COMMUNICATION)FrSM_MainFunction_<FrSMCluster.ShortName>()loopPara todos los CtrlIdx de los CC del clústerFrIf_GetTransceiverWUReason(CtrlIdx,ChnlIdx, TrcvWUReasonPtr)FRTRCV_WU_BY_BUSFrIf_SetTransceiverMode(CtrlIdx, ChnlIdx,FRTRCV_TRCVMODE_NORMAL)FrIf_StartCommunication(CtrlIdx)BswM_FrSM_CurrentState(FRSM_STARTUP)optFrSMIsColdstartEcu (inmediatamente si 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:La lista de trabajos ejecuta la comunicaciónDem_SetEventStatus(FRSM_E_CLUSTER_STARTUP, PASSED)BswM_FrSM_CurrentState(FRSM_ONLINE)ComM_BusSM_ModeIndication(NetworkHandle, COMM_FULL_COM)

Diagrama de secuencia: startup pasivo hasta el estado online. El FrIf solo ejecuta los servicios individuales; el control del flujo corresponde al FrSM. Interpretación: el orden antes del inicio está simplificado. Fuentes: SWS FrSM p. 50, SWS FrSM p. 21

La desconexión se desarrolla en dos etapas. Primero, el FrSM pone el cluster en offline con FRIF_GOTO_OFFLINE y llama a FrIf_HaltCommunication. Más tarde, reinicializa los controladores y sitúa los transceptores en el modo STANDBY (SWS FrSM p. 58). El temporizador t_TrcvStdbyDelay determina el retardo entre ambas etapas (SWS FrSM p. 21).

Transición de FullCom a 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: Fase 2: tras t_TrcvStdbyDelay, reiniciar y pasar a 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)

Diagrama de secuencia: transición de FullCom a NoCom, primero detención, luego reinicialización y standby. Interpretación: el orden dentro de la primera fase está simplificado. Fuentes: SWS FrSM p. 58, SWS FrSM p. 56

Tráfico de PDU: solicitud de transmisión y Job List Execution

FrIf_Transmit es síncrono y reentrante para diferentes TxPduId [SWS_FrIf_05033]. En el acceso desacoplado al búfer, el FrIf solo almacena el número de solicitudes de transmisión en TrigTxCounter, no los datos en sí (SWS FrIf p. 38). Para PDU de tipo Immediate con longitud fija, el FrIf comprueba la longitud pasada frente a la configuración [SWS_FrIf_05757]. Una transmisión en curso se puede cancelar con FrIf_CancelTransmit [SWS_FrIf_05070].

La comunicación de bus propiamente dicha se realiza en la Job List Execution Function FrIf_JobListExec_<FrIfCluster.ShortName>, que existe para cada cluster [SWS_FrIf_05040]. En los diagramas, una rutina de servicio de interrupción la llama (SWS FrIf p. 102). Es de suponer que esta rutina se activa a través de los Absolute Timers del CC [SWS_FrIf_05021]. Pregunta Q-d0a286cc1698d9d3 (abierta) La periódica FrIf_MainFunction_<FrIfCluster.ShortName> [SWS_FrIf_05042] supervisa la ejecución continua de la lista de trabajos mientras el cluster esté online. A esto pertenece también la (re)sincronización (SWS FrIf p. 26).

Cada Communication Operation solo se ejecuta en el estado FRIF_STATE_ONLINE; de lo contrario, se ignora (SWS FrIf p. 37). Las operaciones principales funcionan así:

  • Transmisión desacoplada: para cada PDU con TrigTxCounter > 0, el FrIf obtiene los datos mediante <User_TriggerTransmit> [SWS_FrIf_05047]. A continuación, entrega la trama a Fr_TransmitTxLPdu(). Si el controlador la rechaza, el FrIf restablece los contadores a su valor anterior (SWS FrIf p. 102).
  • TX_CONFIRMATION: si el controlador notifica FR_TRANSMITTED, el FrIf confirma la transmisión a través de <User_TxConfirmation> [SWS_FrIf_05046].
  • RECEIVE_AND_INDICATE: el FrIf lee hasta FrIfRxComOpMaxLoop veces y notifica cada recepción mediante <User_RxIndication> [SWS_FrIf_05045] (SWS FrIf p. 41).

Operaciones específicas del hardware como <Free_Op_A> también se ejecutan en la lista de trabajos [SWS_FrIf_05316]. El FrIf notifica conflictos de transmisión a través de <UL_TxConflictNotification> [SWS_FrIf_91001].

Transmisión con acceso desacoplado al búfer (Decoupled Buffer Access)ComPduR (Upper Layer)FrIfInterrupt Service RoutineFrPduR_ComTransmit()FrIf_Transmit(TxPduId, PduInfoPtr)Incrementar TrigTxCounter(hasta CounterLimit, no almacenar datos)E_OKUse Case: Trabajo DECOUPLED_TRANSMISSION (solo FRIF_STATE_ONLINE)FrIf_JobListExec_<FrIfCluster.ShortName>()loopPor cada PDU en la tramaaltTrigTxCounter > 0 o FrIfNoneMode == trueTrigTxCounter dekrementierenPduR_<User:Lo>Triggertransmit()Com_TriggerTransmit()copy buffer()E_OKE_OKUpdate-Bit "up-to-date" setzenEn caso contrarioUpdate-Bit "outdated" setzenoptAlwaysTransmit == TRUE o al menos una PDU actualizadaFr_TransmitTxLPdu()Incrementar TxConfCounter;en caso de E_NOT_OK, revertir contadorUse Case: Job TX_CONFIRMATIONFrIf_JobListExec_<FrIfCluster.ShortName>()Fr_CheckTxLPduStatus()FR_TRANSMITTEDPduR_<User:Lo>TxConfirmation()Com_TxConfirmation()

Diagrama de secuencia: transmisión con acceso desacoplado al búfer. Inicialmente solo se contabiliza la solicitud; el FrIf no recupera los datos hasta la lista de trabajos. Las versiones más recientes derivan en este caso a través del LSduR. Fuentes: [SWS_FrIf_05033], SWS FrIf p. 102, SWS PduR p. 106

frif_joblist start Trabajo de la lista de trabajos vencido FrIf_JobListExec_<FrIfCluster.ShortName>() online ¿FrIf_State del CC == FRIF_STATE_ONLINE? start->online ignore Communication Operation ignorieren online->ignore No art ¿Tipo de Communication Operation? online->art Sí ende Siguiente trabajo ignore->ende dtx DECOUPLED_TRANSMISSION: comprobar TrigTxCounter por cada PDU, <User_TriggerTransmit>, bits de actualización, Fr_TransmitTxLPdu() art->dtx txc TX_CONFIRMATION: Fr_CheckTxLPduStatus(); en caso de FR_TRANSMITTED y 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() en búfer temporal, copiar PDUs a los búferes locales de FrIf art->ras free <Free_Op_A> / <Free_Op_B>: hardwarespezifische Operation art->free dtx->ende txc->ende mirr ¿Bus Mirroring activo para este CC? rai->mirr Frame empfangen ras->mirr Frame empfangen free->ende report Mirror_ReportFlexRayFrame() mirr->report Sí mirr->ende No report->ende

Diagrama de actividades: procesamiento de una Communication Operation en la lista de trabajos. El estado del cluster decide en primer lugar, seguido del tipo de operación. Fuentes: [SWS_FrIf_05040], SWS FrIf p. 37, SWS FrIf p. 39

Base de tiempos, servicios adicionales y configuración

FrTSyn llama a FrIf_GetGlobalTime únicamente si FrIf_GetState devuelve el valor FRIF_STATE_ONLINE. Solo entonces el CC está sincronizado con el tiempo global de FlexRay (SWS FrTSyn p. 19). FrIf_GetGlobalTime también se puede llamar dentro de una Exclusive Area (SWS FrIf p. 64). FrNm también determina el ciclo actual mediante este servicio (SWS FrNm p. 38). FrIf_GetNmVector [SWS_FrIf_05016] se puede desactivar mediante FrIfGetNmVectorSupport.

FrIf_EnableBusMirroring define para cada cluster si se llama a Mirror_ReportFlexRayFrame para cada trama transmitida o recibida. Si FrIfBusMirroringSupport está desactivado globalmente, el servicio devuelve E_NOT_OK [SWS_FrIf_05726]. La configuración post-build es específica de la implementación y solo es accesible mediante punteros a FrIf_ConfigType [SWS_FrIf_05301]. Un diagrama a partir de R22-11 muestra la estructura: existen uno o varios FrIfController con FrIfCtrlIdx de 0 a 31, cada uno con hasta dos transceptores (SWS FrIf p. 139). Los servicios opcionales como FrIf_DisableLPdu [SWS_FrIf_05710] se activan mediante conmutadores de precompilación, aquí mediante FrIfDisableLPduSupport (SWS FrIf p. 84).

Comportamiento en caso de error

Si FrIfDevErrorDetect está ajustado en ON, los servicios notifican errores de desarrollo a Det_ReportError. Los códigos van desde FRIF_E_PARAM_POINTER (0x01) hasta FRIF_E_INV_FRIF_STATE (0x0A) e incluyen, entre otros, FRIF_E_INV_CTRL_IDX y FRIF_E_UNINIT [SWS_FrIf_05145]. Los casos más importantes:

  • FrIf_CtrlIdx no válido: los wrappers notifican FRIF_E_INV_CTRL_IDX y devuelven E_NOT_OK (SWS FrIf p. 55).
  • Transición no válida a FrIf_SetState: el servicio notifica FRIF_E_INV_FRIF_STATE [SWS_FrIf_05037].
  • Longitud incorrecta de una PDU de tipo Immediate: FrIf_Transmit() devuelve E_NOT_OK y notifica FRIF_E_INV_PDULENGTH [SWS_FrIf_05757].
frif_wrapper aufruf Aufruf FrIf_<Dienst>(FrIf_CtrlIdx, …) det ¿FrIfDevErrorDetect == ON y no inicializado / parámetro no válido? aufruf->det melden Det_ReportError(FRIF_E_UNINIT, FRIF_E_INV_CTRL_IDX, FRIF_E_INV_CHNL_IDX, …) det->melden Sí uebersetzen Traducir FrIf_CtrlIdx mediante configuración estática a (FlexRay Driver | Fr_CtrlIdx) det->uebersetzen No nok1 Retorno E_NOT_OK melden->nok1 treiber Llamar a Fr_<servicio>(Fr_CtrlIdx, …) o bien FrTrcv_<servicio> del driver determinado uebersetzen->treiber erg ¿El driver devuelve E_OK? treiber->erg ok Retorno E_OK erg->ok Sí nok2 Retorno E_NOT_OK erg->nok2 No

Diagrama de actividades: secuencia de un servicio wrapper, desde la comprobación de parámetros y la conversión de índices hasta el retorno del resultado del controlador. Fuentes: [SWS_FrIf_05004], [SWS_FrIf_05145], SWS FrIf p. 55

La especificación define FRIF_E_JLE_SYNC como error de tiempo de ejecución. Ocurre cuando la Job List Execution pierde la sincronización con el tiempo de FlexRay [SWS_FrIf_05432]. Interpretación: la reanudación debería ser tarea de la (re)sincronización a través de la Main Function (SWS FrIf p. 26). Pregunta Q-9d075afc8e49d498 (abierta)

El FrIf notifica errores de producción canal por canal al DEM: FRIF_E_NIT_CH_A/B, FRIF_E_SW_CH_A/B y FRIF_E_ACS_CH_A/B [SWS_FrIf_05146]. La notificación es DEM_EVENT_STATUS_PREFAILED en cuanto se establecen bits de error como vSS!SyntaxError [SWS_FrIf_05426] [SWS_FrIf_05428]. Por el contrario, el FrSM notifica el resultado del startup del cluster (SWS FrSM p. 50).

Más evidencia detallada

Guía generada por IA sobre la base de los requisitos y pasajes de documentos incluidos en el payload (Release R20-11). Los pasajes de documentos procedentes de otras releases se identifican como tales; rige la especificación.

FlexRay Interface (FrIf)

Abstracts FlexRay hardware controllers for upper layers.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función FrIf_Init [SWS_FrIf_05003] 📄 PDF

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

Initializes the Flex Ray Interface.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6689f83f9701 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_Init sirve para inicializar el módulo FlexRay Interface ([SWS_FrIf_05003]). La llamada se realiza de forma síncrona y está especificada como no reentrante (Non Reentrant) ([SWS_FrIf_05003]).

Parámetros y valores de retorno

  • FrIf_ConfigPtr (parámetro de entrada): puntero base a la estructura de configuración de la interfaz FlexRay ([SWS_FrIf_05003]).
  • Valor de retorno: void: la función no devuelve ningún valor de retorno ([SWS_FrIf_05003]).

Restricciones y condiciones de llamada

Dado que FrIf_Init no es reentrante, la función no debe volver a llamarse en ningún momento de forma paralela o con interrupción por el mismo u otro subproceso o tarea ([SWS_FrIf_05003]). La llamada debe realizarse en el contexto de inicialización del sistema, antes de hacer uso de servicios regulares de la interfaz FlexRay.

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación de AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I2)

función FrIf_ControllerInit [SWS_FrIf_05004] 📄 PDF

Std_ReturnType FrIf_ControllerInit (uint8 FrIf_CtrlIdx);

Initialized a Flex Ray CC.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f399f6cb2b11 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrIf_ControllerInit sirve para inicializar un FlexRay Communication Controller (FlexRay CC) [SWS_FrIf_05004]. Está disponible a través del archivo de cabecera FrIf.h y se identifica mediante el ID de servicio 0x03 [SWS_FrIf_05004].

A través del parámetro de entrada FrIf_CtrlIdx de tipo de datos uint8 se transfiere el índice del controlador FlexRay que se va a direccionar [SWS_FrIf_05004]. No existen más parámetros de entrada o de salida para esta interfaz [SWS_FrIf_05004].

El valor de retorno es de tipo Std_ReturnType y devuelve el estado de la inicialización al llamador [SWS_FrIf_05004]:

  • E_OK: la llamada al servicio de API del controlador FlexRay subyacente fue exitosa y devolvió E_OK [SWS_FrIf_05004].
  • E_NOT_OK: el servicio de API del controlador FlexRay devolvió E_NOT_OK o se detectó un error en el modo de desarrollo [SWS_FrIf_05004].

En cuanto a la concurrencia, FrIf_ControllerInit es reentrante para diferentes índices de controlador (FrIf_CtrlIdx), pero no reentrante para valores idénticos de FrIf_CtrlIdx [SWS_FrIf_05004]. Por lo tanto, el sistema global debe evitar las llamadas concurrentes para el mismo controlador.

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función FrIf_EnableAbsoluteTimerIRQ [SWS_FrIf_05025] 📄 PDF

Std_ReturnType FrIf_EnableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Service FrIf_EnableAbsoluteTimerIRQ.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 517cedc33aed Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función FrIf_EnableAbsoluteTimerIRQ representa un servicio síncrono con el ID de servicio 0x1d, proporcionado mediante el archivo de encabezado FrIf.h [SWS_FrIf_05025]. Actúa como envoltorio alrededor de la interfaz Fr_EnableAbsoluteTimerIRQ() del controlador FlexRay para activar la interrupción de un temporizador absoluto [SWS_FrIf_05025].

La llamada requiere dos parámetros de entrada [SWS_FrIf_05025]:

  • FrIf_CtrlIdx: Índice del controlador de comunicación FlexRay (FlexRay CC) al que se debe acceder [SWS_FrIf_05025].
  • FrIf_AbsTimerIdx: Índice del temporizador absoluto que se va a activar en el controlador direccionado [SWS_FrIf_05025].

Valores de retorno y tratamiento de errores

La función devuelve un valor de estado del tipo Std_ReturnType [SWS_FrIf_05025]:

  • E_OK: La llamada al servicio del controlador subyacente fue exitosa y devolvió E_OK [SWS_FrIf_05025].
  • E_NOT_OK: La función del controlador devolvió E_NOT_OK o se detectó un error en el modo de desarrollo (Development Mode) [SWS_FrIf_05025].

Concurrencia y reentrancia

Con respecto al contexto de llamada, FrIf_EnableAbsoluteTimerIRQ no es reentrante para el mismo controlador FlexRay, pero puede invocarse de forma reentrante para diferentes controladores FlexRay [SWS_FrIf_05025].

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función 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()

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5371cc37b0bc Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función de interfaz síncrona FrIf_AckAbsoluteTimerIRQ encapsula como envoltorio la llamada a la API de la función de controlador Fr_AckAbsoluteTimerIRQ() del controlador FlexRay [SWS_FrIf_05029]. Posee el ID de servicio 0x21, se proporciona mediante el encabezado FrIf.h y sirve para confirmar una solicitud de interrupción para un temporizador absoluto de un FlexRay Communication Controller.

Al invocar la función deben pasarse dos parámetros de entrada [SWS_FrIf_05029]:

  • FrIf_CtrlIdx: índice del FlexRay Communication Controller (CC) que se debe direccionar.
  • FrIf_AbsTimerIdx: Índice del temporizador absoluto específico cuya interrupción debe confirmarse.

La función suministra un valor de retorno del tipo Std_ReturnType para la evaluación del resultado [SWS_FrIf_05029]:

  • E_OK: La llamada a la API del controlador Fr_AckAbsoluteTimerIRQ() se realizó con éxito.
  • E_NOT_OK: El controlador FlexRay notificó E_NOT_OK en la llamada, o se detectó un error en el modo de desarrollo (Development Mode).

En cuanto al comportamiento de concurrencia, la función opera de forma síncrona. Las llamadas para diferentes FlexRay CC son reentrantes, mientras que las llamadas simultáneas para el mismo FlexRay CC no son reentrantes y deben evitarse [SWS_FrIf_05029].

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función FrIf_StartCommunication [SWS_FrIf_05005] 📄 PDF

Std_ReturnType FrIf_StartCommunication (uint8 FrIf_CtrlIdx);

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ba57cfeb6d86 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_StartCommunication actúa como encapsulación de la función del controlador FlexRay Fr_StartCommunication() e inicia el comienzo de la comunicación de un controlador de comunicación FlexRay direccionado [SWS_FrIf_05005].

Uso y contexto de llamada

La interfaz está declarada a través de la cabecera FrIf.h y posee el ID de servicio 0x04 [SWS_FrIf_05005]. La invocación se procesa de forma asíncrona [SWS_FrIf_05005]. Como único parámetro de entrada sirve FrIf_CtrlIdx (tipo uint8), el cual define el índice del controlador de comunicación FlexRay que se va a controlar; no existen parámetros de entrada/salida ni de salida pura [SWS_FrIf_05005].

Tratamiento de errores y valores de retorno

La función devuelve un código de estado de tipo Std_ReturnType [SWS_FrIf_05005]:

  • E_OK: la invocación del servicio de API subyacente en el controlador FlexRay se realizó con éxito y devolvió E_OK [SWS_FrIf_05005].
  • E_NOT_OK: el servicio de API del controlador notificó E_NOT_OK o se detectó un error durante la ejecución en modo de desarrollo (Development Mode) [SWS_FrIf_05005].

Concurrencia y restricciones

Con respecto a la reentrancia, FrIf_StartCommunication es reentrante para índices de controlador que difieran entre sí (FrIf_CtrlIdx), pero no reentrante para valores de controlador idénticos [SWS_FrIf_05005]. Por lo tanto, en caso de accesos simultáneos, los módulos llamadores deben asegurarse de que no se produzcan llamadas concurrentes para el mismo controlador.

Esta nota de uso fue generada por una IA sobre la base de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I2)

función FrIf_HaltCommunication [SWS_FrIf_05006] 📄 PDF

Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8fb366eaa447 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_HaltCommunication (ID de servicio 0x05) representa en la FlexRay Interface (FrIf) un wrapper para la llamada a la función de la API del controlador Fr_HaltCommunication() y se declara a través de la cabecera FrIf.h [SWS_FrIf_05006]. El servicio se ejecuta con semántica asíncrona [SWS_FrIf_05006]. Como único parámetro se pasa el valor de entrada FrIf_CtrlIdx, que especifica el índice del FlexRay Communication Controller que se debe direccionar en cada caso; para este servicio no se definen parámetros de entrada/salida ni parámetros de salida puros [SWS_FrIf_05006].

El valor de retorno es de tipo Std_ReturnType y señaliza el resultado de la invocación [SWS_FrIf_05006]:

  • E_OK: la invocación del servicio de API en el controlador FlexRay fue exitosa y devolvió E_OK [SWS_FrIf_05006].
  • E_NOT_OK: la llamada a la API del controlador FlexRay devolvió E_NOT_OK o se detectó un error en el modo de desarrollo (Development Mode) [SWS_FrIf_05006].

En relación con la concurrencia, FrIf_HaltCommunication es reentrante para diferentes valores del índice del controlador FrIf_CtrlIdx, pero no reentrante con valores idénticos para FrIf_CtrlIdx [SWS_FrIf_05006]. Por consiguiente, las llamadas simultáneas o que originen interrupciones para el mismo controlador no están permitidas y deben evitarse en el contexto del llamador.

Este texto fue generado por una IA basándose en la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función FrIf_AbortCommunication [SWS_FrIf_05007] 📄 PDF

Std_ReturnType FrIf_AbortCommunication (uint8 FrIf_CtrlIdx);

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7413742b3cdd Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función de interfaz síncrona FrIf_AbortCommunication actúa como wrapper directo para la función de API Fr_AbortCommunication() del controlador FlexRay [SWS_FrIf_05007]. Está declarada en el archivo de cabecera FrIf.h y posee el ID de servicio 0x06 [SWS_FrIf_05007].

A través del parámetro de entrada FrIf_CtrlIdx se especifica el índice del FlexRay Communication Controller al que se desea acceder [SWS_FrIf_05007]. Para esta interfaz no se definen parámetros adicionales de entrada o salida [SWS_FrIf_05007].

Valores de retorno y tratamiento de errores

La función devuelve un valor de estado del tipo Std_ReturnType [SWS_FrIf_05007]:

  • E_OK: la llamada al servicio de API del controlador FlexRay fue correcta y devolvió E_OK [SWS_FrIf_05007].
  • E_NOT_OK: el servicio de API del controlador FlexRay devolvió E_NOT_OK o se detectó un error en el modo de desarrollo [SWS_FrIf_05007].

Concurrencia y restricciones

La ejecución de FrIf_AbortCommunication es síncrona [SWS_FrIf_05007]. La función es reentrante para diferentes valores de FrIf_CtrlIdx, pero no reentrante para índices de controlador idénticos [SWS_FrIf_05007].

Esta nota de uso fue generada automáticamente a partir de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función FrIf_SetState [SWS_FrIf_05174] 📄 PDF

Std_ReturnType FrIf_SetState (uint8 FrIf_ClstIdx, FrIf_StateTransitionType FrIf_StateTransition);

Requests Fr If state machine transition.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5873512292be Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y llamada

La función síncrona FrIf_SetState solicita una transición de estado en la máquina de estados de la interfaz FlexRay [SWS_FrIf_05174]. Como parámetros se pasan el índice del clúster FrIf_ClstIdx y la transición deseada FrIf_StateTransition. La función devuelve E_OK si la llamada se ejecutó con éxito y se aceptó el cambio de estado; en caso de error se devuelve E_NOT_OK [SWS_FrIf_05174].

Tratamiento de errores y condiciones límite

La función se define como no reentrante (Non Reentrant) [SWS_FrIf_05174]. Si el control de desarrollo está activado (FrIfDevErrorDetect == ON) y el parámetro FrIf_StateTransition contiene un valor no válido, la función notifica el código de error FRIF_E_INV_FRIF_STATE a través de Det_ReportError al módulo DET [SWS_FrIf_05037].

Interacción en transiciones a offline

Si se invoca FrIf_SetState con el parámetro de transición FRIF_STATE_OFFLINE, la interfaz FlexRay comprueba el contador TxConfCounter para cada PDU [SWS_FrIf_05501]. Si este valor es mayor que 0 para una PDU, el módulo informa a la capa superior con la llamada <UL>_TxConfirmation(id, E_NOT_OK) sobre el fallo de la confirmación pendiente [SWS_FrIf_05501].

Este texto fue generado por un sistema de IA sobre la base de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función FrIf_SendWUP [SWS_FrIf_05011] 📄 PDF

Std_ReturnType FrIf_SendWUP (uint8 FrIf_CtrlIdx);

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 198c69b5740a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_SendWUP (ID de servicio 0x0a) del módulo FrIf está disponible a través del archivo de cabecera FrIf.h y sirve como wrapper de interfaz para la llamada a la función de API Fr_SendWUP() del controlador FlexRay subyacente [SWS_FrIf_05011].

Uso y parámetros

El servicio se ejecuta de forma asíncrona [SWS_FrIf_05011]. Como único parámetro de transferencia sirve el parámetro de entrada FrIf_CtrlIdx de tipo uint8, que especifica el índice del FlexRay Communication Controller (FlexRay CC) que se va a direccionar [SWS_FrIf_05011]. No se utilizan parámetros de entrada/salida (inout) ni de salida (out) [SWS_FrIf_05011].

Valores de retorno y tratamiento de errores

Como valor de retorno, la función proporciona un estado de tipo Std_ReturnType [SWS_FrIf_05011]:

  • E_OK: la llamada al servicio de API del controlador FlexRay se ejecutó con éxito y notificó E_OK [SWS_FrIf_05011].
  • E_NOT_OK: la llamada al servicio de API del controlador FlexRay devolvió E_NOT_OK o se detectó un error en el modo de desarrollo (Development Mode) [SWS_FrIf_05011].

Concurrencia y reentrancia

Con respecto al acceso simultáneo, FrIf_SendWUP es reentrante para llamadas con diferentes valores para FrIf_CtrlIdx, pero no reentrante para valores idénticos de FrIf_CtrlIdx [SWS_FrIf_05011].

Este texto se generó automáticamente y se basa en las especificaciones de AUTOSAR para la versión R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

función FrIf_AllowColdstart [SWS_FrIf_05017] 📄 PDF

Std_ReturnType FrIf_AllowColdstart (uint8 FrIf_CtrlIdx);

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f313d1af7873 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y funcionamiento

La función FrIf_AllowColdstart sirve como wrapper para la API del controlador FlexRay Fr_AllowColdstart() conforme a [SWS_FrIf_05017]. Direcciona a través del parámetro de entrada FrIf_CtrlIdx el FlexRay Communication Controller (CC) al que se desea acceder [SWS_FrIf_05017]. La ejecución de la función está especificada como asíncrona [SWS_FrIf_05017].

Valores de retorno y tratamiento de errores

El valor de retorno de tipo Std_ReturnType refleja el resultado de la ejecución [SWS_FrIf_05017]:

  • E_OK: El servicio API subyacente del controlador FlexRay se invocó con éxito y notificó E_OK [SWS_FrIf_05017].
  • E_NOT_OK: La llamada al controlador falló (valor de retorno E_NOT_OK) o se detectó un error en el modo de desarrollo (Development Mode) [SWS_FrIf_05017].

Interpretación: La detección de errores en el Development Mode probablemente se realice a través del módulo Default Error Tracer (DET), aunque en el extracto de la especificación no se documentan ID de error ni comprobaciones específicas. Pregunta Q-5dffd71d66731cc9 (abierta)

Concurrencia y restricciones

En cuanto a la reentrancia, FrIf_AllowColdstart no es reentrante para valores idénticos de FrIf_CtrlIdx, pero puede invocarse en paralelo para diferentes índices de controlador [SWS_FrIf_05017]. Por lo tanto, los llamadores deben asegurarse de sincronizar las llamadas concurrentes para el mismo controlador. La interfaz se proporciona mediante el encabezado FrIf.h [SWS_FrIf_05017].

Esta nota de uso fue creada por una IA y se basa en los datos de especificación de AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función FrIf_Transmit [SWS_FrIf_05033] 📄 PDF

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

Requests transmission of a PDU.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9cb8bddfea7e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrIf_Transmit solicita la transmisión de una PDU a través de la FlexRay Interface [SWS_FrIf_05033]. Recibe el ID de la PDU que se va a transmitir (TxPduId), así como un puntero a la estructura PduInfoPtr, la cual proporciona la longitud de la PDU, el puntero de datos y los metadatos [SWS_FrIf_05033].

En lo referente a concurrencia y reentrancia, FrIf_Transmit es reentrante para diferentes ID de PDU, pero no reentrante para el mismo ID de PDU [SWS_FrIf_05033]. La invocación devuelve E_OK en cuanto se acepta la solicitud de transmisión; de lo contrario, E_NOT_OK [SWS_FrIf_05033].

Se lleva a cabo una comprobación de error específica en las PDU inmediatas (Immediate PDUs), siempre que las longitudes dinámicas de L-SDU estén desactivadas estableciendo el parámetro de configuración FrIfAllowDynamicLSduLength en FALSE [SWS_FrIf_05757]:

  • La longitud transferida en PduInfoPtr se comprueba frente a la longitud de PDU configurada estáticamente [SWS_FrIf_05757].
  • Si el valor de longitud no coincide, FrIf_Transmit cancela la transmisión de la Immediate PDU y devuelve E_NOT_OK [SWS_FrIf_05757].
  • Siempre que la detección de desarrollo (FrIfDevErrorDetect == ON) esté activa, la función notifica el error de desarrollo FRIF_E_INV_PDULENGTH a través de Det_ReportError al módulo DET [SWS_FrIf_05757].

Este texto ha sido generado por una IA a partir de la especificación R20-11.

Guía del implementador pendiente (complejidad I2)

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e732fae6663a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La interfaz síncrona FrIf_SetTransceiverMode con el ID de servicio 0x13 actúa en la interfaz FlexRay como un wrapper para la función de controlador FrTrcv_SetTransceiverMode() del controlador de transceptor FlexRay y está disponible a través del archivo de cabecera FrIf.h [SWS_FrIf_05034]. Permite a las capas superiores configurar el modo de funcionamiento de un transceptor para un controlador FlexRay y un canal determinados [SWS_FrIf_05034].

Durante la llamada se deben pasar tres parámetros: el índice de controlador FrIf_CtrlIdx para direccionar el FlexRay Communication Controller, el índice de canal FrIf_ChnlIdx para determinar el canal FlexRay dentro del ámbito del controlador, así como el modo de transceptor deseado FrIf_TrcvMode de tipo FrTrcv_TrcvModeType [SWS_FrIf_05034]. No existen parámetros de entrada/salida ni de salida [SWS_FrIf_05034]. Para el parámetro FrIf_ChnlIdx rige el requisito vinculante de que el valor de enumeración FR_CHANNEL_AB no se debe utilizar bajo ningún concepto [SWS_FrIf_05034].

La función está especificada como reentrante y reenvía el cambio de modo de forma síncrona al controlador del transceptor [SWS_FrIf_05034]. Como resultado, devuelve el estado Std_ReturnType: notifica E_OK si la llamada al servicio de API en el controlador del transceptor devolvió con éxito E_OK; si esta llamada al controlador falla y devuelve E_NOT_OK, también se devuelve E_NOT_OK [SWS_FrIf_05034].

Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I2)

función 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.

función 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.

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 983ace12320e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrIf_ClearTransceiverWakeup (ID de servicio 0x18) actúa como envoltorio dentro de la interfaz FlexRay y encapsula la llamada a la función de API FrTrcv_ClearTransceiverWakeup() del controlador del transceptor FlexRay [SWS_FrIf_05039]. La interfaz está disponible a través del archivo de encabezado FrIf.h [SWS_FrIf_05039].

Al invocarse, la función espera exactamente dos parámetros de entrada [SWS_FrIf_05039]:

  • FrIf_CtrlIdx: Índice del FlexRay Communication Controller al que se debe direccionar [SWS_FrIf_05039].
  • FrIf_ChnlIdx: Índice del canal FlexRay al que se debe acceder dentro del ámbito del controlador FrIf_CtrlIdx [SWS_FrIf_05039].

No se definen otros parámetros (inout u out) para la función [SWS_FrIf_05039].

En lo relativo a la concurrencia y las restricciones, la función está clasificada como reentrante [SWS_FrIf_05039]. Como restricción funcional fundamental, la especificación estipula que el valor de enumeración FR_CHANNEL_AB no debe utilizarse para el parámetro FrIf_ChnlIdx [SWS_FrIf_05039].

El resultado de la operación se devuelve de forma síncrona como Std_ReturnType y refleja directamente el resultado del servicio del controlador [SWS_FrIf_05039]:

  • E_OK: El servicio API del controlador del transceptor FlexRay se ejecutó con éxito y devolvió E_OK [SWS_FrIf_05039].
  • E_NOT_OK: La llamada al servicio del controlador falló y notificó E_NOT_OK [SWS_FrIf_05039].

Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función 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() .

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: aaee20f9db6d Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_CancelAbsoluteTimer sirve para la cancelación síncrona de un temporizador absoluto configurado en un controlador de comunicación (CC) FlexRay [SWS_FrIf_05023]. Actúa como wrapper en torno a la correspondiente función de controlador Fr_CancelAbsoluteTimer() del controlador FlexRay y está disponible a través de la cabecera FrIf.h [SWS_FrIf_05023].

Parámetros y valores de retorno

Al invocarla se transfieren dos parámetros de entrada [SWS_FrIf_05023]:

  • FrIf_CtrlIdx: índice del controlador FlexRay que se va a direccionar.
  • FrIf_AbsTimerIdx: índice del temporizador absoluto que se va a cancelar.

La función devuelve un estado de tipo Std_ReturnType [SWS_FrIf_05023]:

  • E_OK: la llamada subyacente a la API del controlador FlexRay finalizó con éxito con E_OK [SWS_FrIf_05023].
  • E_NOT_OK: la llamada a la API del controlador falló (devolución E_NOT_OK) o se detectó un error en el modo de desarrollo (Development Mode) [SWS_FrIf_05023].

Concurrencia y restricciones

La ejecución se realiza de forma síncrona con el Service-ID 0x1b [SWS_FrIf_05023]. En cuanto a la reentrancia, el servicio es reentrante para diferentes FlexRay CC, pero no debe invocarse concurrentemente para el mismo FlexRay CC [SWS_FrIf_05023].

Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función 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().

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6362ca64b166 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_DisableAbsoluteTimerIRQ forma parte del módulo de interfaz FlexRay y se proporciona mediante el archivo de cabecera FrIf.h [SWS_FrIf_05031]. Sirve como wrapper síncrono para la función Fr_DisableAbsoluteTimerIRQ() de la API del controlador FlexRay y reenvía al nivel de controlador la solicitud para desactivar la generación de interrupciones del temporizador absoluto direccionado [SWS_FrIf_05031].

Contexto de llamada y parámetros

La llamada se realiza de forma síncrona utilizando el Service-ID 0x23 [SWS_FrIf_05031]. La interfaz no dispone de parámetros de entrada/salida ni exclusivamente de salida, pero exige dos parámetros de entrada obligatorios [SWS_FrIf_05031]:

  • FrIf_CtrlIdx: índice del controlador de comunicación (CC) FlexRay que se desea abordar [SWS_FrIf_05031].
  • FrIf_AbsTimerIdx: índice del temporizador absoluto que se va a configurar [SWS_FrIf_05031].

Valores de retorno y tratamiento de errores

La función devuelve el estado a la entidad llamante mediante el tipo de retorno Std_ReturnType [SWS_FrIf_05031]:

  • E_OK: señala que la llamada al servicio de API del controlador FlexRay fue exitosa y devolvió E_OK [SWS_FrIf_05031].
  • E_NOT_OK: indica que el servicio de API del controlador FlexRay devolvió E_NOT_OK o que se detectó un error en el modo de desarrollo (Development Mode) [SWS_FrIf_05031].

Concurrencia y reentrancia

Conforme a los requisitos de reentrancia, FrIf_DisableAbsoluteTimerIRQ es no reentrante para el mismo controlador de comunicación FlexRay, pero reentrante para diferentes FlexRay CC [SWS_FrIf_05031]. Por tanto, las llamadas para la misma instancia de controlador no deben realizarse concurrentemente desde diferentes contextos sin sincronización.

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

función FrIf_AllSlots [SWS_FrIf_05020] 📄 PDF

Std_ReturnType FrIf_AllSlots (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ All Slots

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e0c30b766f1b Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La interfaz síncrona FrIf_AllSlots sirve dentro de la interfaz FlexRay como wrapper para la llamada a la función de controlador subyacente Fr_AllSlots del controlador FlexRay [SWS_FrIf_05020]. La función se proporciona a través del archivo de cabecera FrIf.h y posee el Service-ID 0x33 [SWS_FrIf_05020]. Como único parámetro de transferencia se espera FrIf_CtrlIdx, el cual define el índice lógico del controlador de comunicación FlexRay que se desea abordar [SWS_FrIf_05020]. Para este servicio no están previstos parámetros de entrada/salida ni de salida (inout/out) [SWS_FrIf_05020].

Como valor de retorno, la función proporciona el estado Std_ReturnType con los siguientes significados [SWS_FrIf_05020]:

  • E_OK: la llamada a la API del controlador Fr_AllSlots fue exitosa y devolvió E_OK [SWS_FrIf_05020].
  • E_NOT_OK: la llamada al controlador FlexRay falló o bien devolvió E_NOT_OK, o se detectó un error durante la ejecución en modo de desarrollo [SWS_FrIf_05020].

Respecto al comportamiento en tiempo de ejecución y a la concurrencia, FrIf_AllSlots está especificada como no reentrante (non reentrant) [SWS_FrIf_05020]. Por tanto, la entidad llamante debe garantizar que queden excluidas llamadas simultáneas o superpuestas para el controlador afectado. Interpretación: Es de suponer que la llamada debe tener lugar desde un contexto de tarea protegido, ya que la interfaz no proporciona una gestión propia de reentrancia en caso de accesos paralelos. Pregunta Q-e4ce542c60b470c8 (abierta)

Este texto fue creado por una IA; el estándar AUTOSAR es determinante.

Guía del implementador pendiente (complejidad I1)

función 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.

función 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.

función 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.

función 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.

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 93c4556124a6 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona FrIf_CancelTransmit solicita la cancelación de una transmisión de PDU en curso en un módulo de comunicación subyacente [SWS_FrIf_05070]. Como parámetro de entrada se pasa TxPduId, que identifica la PDU que se va a cancelar. La ejecución se realiza de forma síncrona y devuelve un valor de retorno de tipo Std_ReturnType [SWS_FrIf_05070]:

  • E_OK: La cancelación de la transmisión fue ejecutada con éxito por el módulo de destino.
  • E_NOT_OK: La cancelación fue rechazada por el módulo de destino.

Concurrencia y restricciones

En cuanto a la concurrencia, FrIf_CancelTransmit es reentrante para diferentes ID de PDU, pero no es reentrante para la misma TxPduId [SWS_FrIf_05070]. Por lo tanto, en caso de llamadas desde contextos paralelos para la misma ID de PDU, probablemente sea necesaria una sincronización externa por parte del llamador a fin de evitar condiciones de carrera (race conditions). Pregunta Q-38e799ac1564f60f (abierta)

Tratamiento de errores e integración

En la interfaz no se definen códigos de error específicos de DET o DEM; el fallo de una cancelación se señala directamente mediante el valor de retorno E_NOT_OK [SWS_FrIf_05070]. El servicio posee el ID de servicio 0x4a y se proporciona mediante el archivo de encabezado FrIf.h [SWS_FrIf_05070].

Esta nota de uso se ha creado automáticamente a partir de la especificación.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6dcfcbdfc95d Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_DisableLPdu sirve como wrapper para la función de controlador Fr_DisableLPdu del controlador FlexRay y desactiva el recurso de hardware subyacente de una L-PDU para la transmisión o la recepción [SWS_FrIf_05710].

Invocación y parámetros

La llamada a FrIf_DisableLPdu se realiza de forma síncrona a través de la interfaz FrIf.h con el ID de servicio 0x28 [SWS_FrIf_05710]. La función espera dos parámetros de entrada:

  • FrIf_CtrlIdx: índice del FlexRay Communication Controller en el contexto de la interfaz FlexRay [SWS_FrIf_05710].
  • FrIf_LPduIdx: índice unívoco para la identificación de la trama FlexRay afectada [SWS_FrIf_05710].

Valores de retorno y tratamiento de errores

La función devuelve como resultado un estado de tipo Std_ReturnType [SWS_FrIf_05710]:

Concurrencia y restricciones

En cuanto al comportamiento de concurrencia, FrIf_DisableLPdu está especificada como no reentrante para el mismo dispositivo (Non Reentrant for the same device) [SWS_FrIf_05710]. Por lo tanto, las llamadas paralelas para el mismo controlador o el mismo dispositivo deben evitarse o sincronizarse en el lado del llamador.

Este texto se ha generado automáticamente y se basa exclusivamente en las indicaciones de la especificación.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e8dfbb0733ab Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_EnableTransceiverBranch encapsula, como wrapper síncrono y reentrante, la llamada a la API FrTrcv_EnableTransceiverBranch del controlador del transceptor FlexRay subyacente [SWS_FrIf_05085]. A través de esta interfaz se activa de manera selectiva una rama determinada de un transceptor, por ejemplo en el contexto de una estrella activa [SWS_FrIf_05085]. La declaración de la función y los tipos correspondientes se proporcionan mediante el archivo de encabezado FrIf.h [SWS_FrIf_05085].

Parámetros y condiciones de llamada

En la llamada deben transferirse tres parámetros de entrada [SWS_FrIf_05085]:

  • FrIf_CtrlIdx: direcciona el índice del FlexRay Communication Controller respectivo [SWS_FrIf_05085].
  • FrIf_ChnlIdx: especifica el canal FlexRay dentro del ámbito de validez del controlador FrIf_CtrlIdx [SWS_FrIf_05085]. En este caso se aplica la restricción obligatoria de que no se debe utilizar el valor de enumeración FR_CHANNEL_AB [SWS_FrIf_05085].
  • FrIf_BranchIdx: determina, a través de un índice basado en cero, la rama concreta del transceptor sobre la cual se aplica la activación [SWS_FrIf_05085].

Valores de retorno

La función devuelve un valor de estado de tipo Std_ReturnType, el cual refleja directamente el resultado de la llamada redirigida al controlador [SWS_FrIf_05085]:

  • E_OK: la llamada al servicio del controlador FrTrcv_EnableTransceiverBranch fue correcta y devolvió E_OK [SWS_FrIf_05085].
  • E_NOT_OK: la llamada al servicio del controlador notificó E_NOT_OK [SWS_FrIf_05085].

Este texto fue generado por una IA a partir de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9edf0f22a2a3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y reentrante FrIf_DisableTransceiverBranch encapsula, como función envoltorio, el servicio FrTrcv_DisableTransceiverBranch del controlador del transceptor FlexRay [SWS_FrIf_05028]. Se proporciona a través del archivo de encabezado FrIf.h, posee el ID de servicio 0x37 y sirve para desactivar de forma selectiva una rama específica de un transceptor en estrella activo [SWS_FrIf_05028].

En la llamada deben pasarse tres parámetros de entrada:

  • FrIf_CtrlIdx: Índice del controlador FlexRay al que se debe direccionar [SWS_FrIf_05028].
  • FrIf_ChnlIdx: Canal FlexRay dentro del ámbito del controlador. En este caso rige el requisito vinculante de que no debe utilizarse el valor de enumeración FR_CHANNEL_AB [SWS_FrIf_05028].
  • FrIf_BranchIdx: Índice basado en cero que identifica la rama respectiva del transceptor sobre la cual debe aplicarse la operación [SWS_FrIf_05028].

Como valor de retorno, la interfaz devuelve un estado de tipo Std_ReturnType. Devuelve E_OK si la llamada al controlador del transceptor fue exitosa, y E_NOT_OK si el servicio del controlador notificó E_NOT_OK [SWS_FrIf_05028]. En el alcance de la especificación no se documentan notificaciones de error específicas de DET o DEM; un fallo probablemente resulte directamente del comportamiento del controlador subyacente. Pregunta Q-52d5e5fedd147532 (abierta)

Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6127b6f4417a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrIf_ReconfigLPdu sirve para reconfigurar una L-PDU en la interfaz FlexRay (FrIf) y reenvía la llamada directamente a la interfaz de controlador Fr_ReconfigLPdu del controlador FlexRay [SWS_FrIf_05048]. La interfaz se pone a disposición mediante el encabezado FrIf.h [SWS_FrIf_05048].

Parámetros y restricciones de configuración

  • FrIf_CtrlIdx: direcciona el índice del controlador de comunicación FlexRay dentro del controlador FlexRay [SWS_FrIf_05048].
  • FrIf_LPduIdx: determina el índice unívoco para la identificación de la trama FlexRay que se va a configurar [SWS_FrIf_05048].
  • FrIf_FrameId, FrIf_CycleRepetition, FrIf_CycleOffset: definen el nuevo ID de trama FlexRay, así como la repetición y el desplazamiento del mecanismo de filtrado de ciclos de la L-PDU [SWS_FrIf_05048].
  • FrIf_ChnlIdx: determina el canal FlexRay de tipo Fr_ChannelType [SWS_FrIf_05048]. En este caso se prescribe estrictamente que no se debe utilizar el valor de enumeración FR_CHANNEL_AB [SWS_FrIf_05048].
  • FrIf_PayloadLength y FrIf_HeaderCRC: establecen la longitud de datos útiles en bytes, así como el CRC de encabezado correspondiente, a los que se debe ajustar la L-PDU [SWS_FrIf_05048].

Valores de retorno y contexto de ejecución

El valor de retorno de tipo Std_ReturnType indica el resultado de la reconfiguración: E_OK señaliza la ejecución correcta de la llamada a la API, mientras que E_NOT_OK indica una cancelación por error [SWS_FrIf_05048].

La función es síncrona y está especificada como no reentrante (Non Reentrant) [SWS_FrIf_05048]. Por consiguiente, no se debe llamar de forma concurrente.

Esta nota de uso se basa en la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función 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().

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a9635a600f61 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función FrIf_ReadCCConfig representa un servicio síncrono de la interfaz FlexRay con el Service-ID 0x3b y está declarada mediante el encabezado FrIf.h [SWS_FrIf_05313]. Su cometido principal consiste en actuar como wrapper llamando a la función de controlador Fr_ReadCCConfig() del controlador FlexRay subyacente para leer parámetros de configuración de un controlador [SWS_FrIf_05313].

La interfaz espera tres parámetros al invocarse [SWS_FrIf_05313]:

  • FrIf_CtrlIdx (entrada): el índice numérico del controlador de comunicación FlexRay (CC) al que se debe acceder.
  • FrIf_ConfigParamIdx (entrada): el índice del parámetro de configuración específico cuyo valor se va a consultar.
  • FrIf_ConfigParamValuePtr (salida): un puntero a la ubicación de memoria en la que se depositará el valor de configuración de 32 bits leído.

El valor de retorno de tipo Std_ReturnType señaliza el resultado de la consulta [SWS_FrIf_05313]:

  • E_OK: la llamada a la API del controlador Fr_ReadCCConfig() se ejecutó correctamente y devolvió E_OK.
  • E_NOT_OK: el controlador FlexRay notificó E_NOT_OK o se detectó un error durante la ejecución en modo de desarrollo (Development Mode).

En lo que respecta a la concurrencia y al entorno de ejecución, FrIf_ReadCCConfig es no reentrante para el mismo controlador FlexRay, pero reentrante para controladores diferentes [SWS_FrIf_05313]. En caso de accesos al mismo controlador, el llamador debe garantizar, por tanto, una sincronización adecuada. Se asume que un error detectado en modo de desarrollo probablemente se reenvíe al Default Error Tracer (DET). Pregunta Q-bfe56460515de4de (abierta)

Esta nota de uso fue generada por una IA y se basa exclusivamente en los datos de especificación de AUTOSAR Classic Release R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 64884bdfc093 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

La función síncrona FrIf_EnableBusMirroring conmuta el mirroring del bus para todos los controladores FlexRay conectados al clúster FlexRay transmitido [SWS_FrIf_05726]. Mediante el parámetro FrIf_ClstIdx se direcciona el clúster respectivo. El parámetro booleano FrIf_MirroringActive determina el modo: al pasar TRUE, se invoca la interfaz Mirror_ReportFlexRayFrame para cada trama recibida o enviada en los controladores; con FALSE, se desactiva el reenvío de las tramas al módulo de Mirror [SWS_FrIf_05726].

Valores de retorno y tratamiento de errores

La llamada a la función devuelve un estado del tipo Std_ReturnType [SWS_FrIf_05726]:

  • E_OK: El modo de duplicación para el clúster especificado se actualizó correctamente [SWS_FrIf_05726].
  • E_NOT_OK: La conmutación fue rechazada si la función de duplicación está desactivada globalmente (parámetro de configuración FrIfBusMirroringSupport) o si se presenta un índice no válido [SWS_FrIf_05726]. Interpretación: la indicación de especificación FrIf_CtrlIdx en E_NOT_OK probablemente se refiera, a pesar de la denominación discrepante, a la verificación del índice de clúster FrIf_ClstIdx o de los controladores asignados. Pregunta Q-9daba2ff2b1a3ff1 (abierta)

Concurrencia e integración

La función está declarada como reentrante y posee el Service-ID 0x4b; se proporciona a través del archivo de cabecera FrIf.h [SWS_FrIf_05726]. Los llamantes deben tener en cuenta que la ejecución se realiza de forma síncrona. No se listan canales de error adicionales mediante DET o DEM para este servicio.

Este texto ha sido generado por una IA; el texto vinculante es la especificación AUTOSAR.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 09a9e5676d66 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función FrIf_CheckWakeupByTransceiver (Service-ID 0x39) actúa en la interfaz FlexRay como un wrapper síncrono para la función FrTrcv_CheckWakeupByTransceiver() del controlador del transceptor FlexRay [SWS_FrIf_05041]. Se proporciona mediante el encabezado FrIf.h y no tiene valor de retorno [SWS_FrIf_05041].

Para direccionar la instancia de hardware respectiva, la interfaz requiere dos parámetros obligatorios [SWS_FrIf_05041]:

  • FrIf_CtrlIdx (parámetro de entrada, uint8): índice del FlexRay Communication Controller que se va a direccionar [SWS_FrIf_05041].
  • FrIf_ChnlIdx (parámetro de entrada, Fr_ChannelType): índice del canal FlexRay al que se debe acceder dentro del ámbito de validez del controlador especificado FrIf_CtrlIdx [SWS_FrIf_05041].

Concurrencia y restricciones

La especificación clasifica la interfaz como reentrante, de modo que las llamadas síncronas se pueden emitir de forma concurrente [SWS_FrIf_05041].

Para el parámetro de canal FrIf_ChnlIdx existe una restricción de uso estricta: el valor de enumeración FR_CHANNEL_AB no se debe transferir [SWS_FrIf_05041]. Interpretación: esto probablemente signifique que el controlador de transceptor subyacente no admite una comprobación combinada de reactivación (wakeup) de ambos canales en una sola llamada y que, en su lugar, los sistemas con dos canales FlexRay deben comprobarse secuencialmente o por separado para cada canal. Pregunta Q-a30cf39f0d3ca295 (abierta)

Este texto ha sido creado por una IA y se basa en AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función <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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 926106ed5433 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función de callback <User_RxIndication> sirve para señalar la recepción de una PDU procedente de la capa de interfaz de comunicación subyacente [SWS_FrIf_05045]. Interpretación: El identificador probablemente represente un callback configurable de una capa superior al que se le notifica a la llegada de datos FlexRay. Pregunta Q-a9037bc7502dd9ea (abierta)

Uso y parámetros

La ejecución se realiza de forma síncrona sin valor de retorno (void) [SWS_FrIf_05045]. En la llamada se pasan dos parámetros de entrada [SWS_FrIf_05045]:

  • RxPduId (PduIdType): Identificador único de la PDU recibida [SWS_FrIf_05045].
  • PduInfoPtr (const PduInfoType*): Puntero a una estructura con la longitud de la PDU recibida (SduLength), un puntero al búfer con los datos útiles (SduDataPtr), así como los metadatos correspondientes [SWS_FrIf_05045].

Concurrencia y configuración

En cuanto a la reentrancia, la función es reentrante para diferentes ID de PDU, pero no debe invocarse de forma reentrante para la misma ID de PDU [SWS_FrIf_05045]. La interfaz está disponible de forma configurable en el módulo (“Available via configurable”) [SWS_FrIf_05045]. En las fuentes no se definen códigos de error específicos, valores de retorno ni notificaciones a DET y DEM para esta interfaz [SWS_FrIf_05045].

Este texto ha sido generado automáticamente. Todos los datos se basan exclusivamente en las especificaciones del módulo FrIf.

función <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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: befc612f1e10 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función de callback configurable <User_TxConfirmation> es invocada por el módulo de interfaz de comunicación subyacente para confirmar la finalización de un proceso de envío para una PDU [SWS_FrIf_05046]. Notifica de forma síncrona a la capa superior si la transmisión de la PDU correspondiente se ha realizado correctamente o ha fallado [SWS_FrIf_05046].

La interfaz no posee valor de retorno (void) y espera dos parámetros de entrada [SWS_FrIf_05046]:

  • TxPduId (tipo PduIdType): Designa el ID único de la PDU transmitida [SWS_FrIf_05046].
  • result (tipo Std_ReturnType): Indica el resultado de la transmisión, donde E_OK confirma la transmisión exitosa y E_NOT_OK notifica el fallo de la transmisión de la PDU [SWS_FrIf_05046].

La función opera de forma síncrona [SWS_FrIf_05046]. Respecto a la concurrencia, es reentrante para diferentes ID de PDU, pero no reentrante para la misma TxPduId [SWS_FrIf_05046]. Por tanto, deben excluirse las llamadas de confirmación paralelas para ID de PDU idénticos.

Para esta llamada no se especifican códigos de error concretos además de E_NOT_OK ni notificaciones específicas a DET o DEM [SWS_FrIf_05046]. Interpretación: Dado que la interfaz se indica como configurable, el identificador <User_TxConfirmation> probablemente sirva como marcador de posición para el nombre de función configurado realmente en la capa superior [SWS_FrIf_05046]. Pregunta Q-f2a08258df49b3ec (abierta)

Este texto fue creado por una IA y sirve como ayuda para la especificación AUTOSAR.

función <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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fac22c3dab8e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función de callback síncrona <User_TriggerTransmit> se invoca para solicitar datos de SDU de una capa superior para su transmisión [SWS_FrIf_05047]. Como parámetros se pasan el identificador TxPduId de la SDU a enviar, así como el puntero PduInfoPtr de tipo PduInfoType* [SWS_FrIf_05047]. El llamador proporciona un búfer de destino mediante PduInfoPtr->SduDataPtr e indica en PduInfoPtr->SduLength el tamaño de búfer disponible [SWS_FrIf_05047].

El módulo invocado de la capa superior comprueba si los datos disponibles caben en el tamaño de búfer especificado [SWS_FrIf_05047]:

  • Si los datos caben, el módulo los copia en PduInfoPtr->SduDataPtr, actualiza PduInfoPtr->SduLength con el número de bytes realmente copiados y devuelve E_OK [SWS_FrIf_05047].
  • Si los datos no caben, el módulo devuelve E_NOT_OK sin modificar PduInfoPtr [SWS_FrIf_05047].

Tratamiento de errores y concurrencia

En caso de error (valor de retorno E_NOT_OK), no se han copiado datos de SDU. En este caso, no se debe seguir utilizando PduInfoPtr, ya que puede contener un puntero NULL o apuntar a datos no válidos [SWS_FrIf_05047].

La interfaz es reentrante para diferentes ID de PDU, pero no reentrante para el mismo ID de PDU [SWS_FrIf_05047]. La disponibilidad de la función es configurable [SWS_FrIf_05047].

Este texto fue creado por una IA. Todos los datos se basan exclusivamente en las especificaciones del release R20-11 de AUTOSAR.

función <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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8665c1e85fa1 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función <Free_Op_A> está diseñada como una operación de comunicación definida por el usuario en la interfaz FlexRay para admitir características específicas del hardware o de rendimiento adicionales del Communication Controller a fin de incrementar el rendimiento global [SWS_FrIf_05316]. La declaración de esta interfaz se proporciona a través del encabezado FrIf_Externals.h [SWS_FrIf_05316].

Para la llamada se prescriben dos parámetros funcionales de entrada [SWS_FrIf_05316]:

  • FrIf_CtrlIdx (tipo uint8): Identifica como índice el FlexRay Communication Controller concreto al que se debe acceder [SWS_FrIf_05316].
  • FrIf_LPduIdx (tipo uint16): Sirve como índice unívoco para identificar la trama FlexRay respectiva [SWS_FrIf_05316].

La operación se ejecuta de forma síncrona y no tiene valor de retorno (void); tampoco están previstos parámetros de entrada y salida [SWS_FrIf_05316]. En cuanto a la concurrencia y al contexto de llamada, la función es reentrante para diferentes valores de FrIf_LPduIdx, pero explícitamente no reentrante si se utiliza el mismo índice FrIf_LPduIdx [SWS_FrIf_05316].

En la especificación no se indican códigos de error específicos ni mecanismos de supervisión de errores a través del módulo Default Error Tracer (DET) o Diagnostic Event Manager (DEM) [SWS_FrIf_05316]. Por lo tanto, los componentes llamantes deben asegurarse antes de la ejecución de que no se produzcan accesos concurrentes al mismo índice de trama [SWS_FrIf_05316].

Esta nota de uso se ha creado de forma automatizada sobre la base de la especificación de AUTOSAR.

función <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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c7b423aeeb3d Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función definida por el usuario <Free_Op_B> sirve para llevar a cabo operaciones de comunicación específicas del usuario en la interfaz FlexRay [SWS_FrIf_05317]. Su propósito consiste en admitir características de rendimiento adicionales o específicas del hardware del controlador de comunicación FlexRay, con el fin de incrementar el rendimiento de la comunicación [SWS_FrIf_05317]. La declaración de la función se proporciona a través del archivo de cabecera FrIf_Externals.h [SWS_FrIf_05317].

Invocación y parámetros

La operación se invoca de forma síncrona y no proporciona ningún valor de retorno (void) [SWS_FrIf_05317]. Procesa dos parámetros de entrada, mientras que no existen parámetros de entrada/salida ni de salida [SWS_FrIf_05317]:

  • FrIf_CtrlIdx: índice del controlador de comunicación FlexRay al que se debe acceder (tipo uint8) [SWS_FrIf_05317].
  • FrIf_LPduIdx: índice unívoco para identificar la trama FlexRay correspondiente (tipo uint16) [SWS_FrIf_05317].

Concurrencia y restricciones

En lo que respecta a la reentrancia, la función está especificada como reentrante para diferentes índices de LPdu (FrIf_LPduIdx), pero explícitamente como no reentrante para el mismo índice de LPdu [SWS_FrIf_05317]. Por lo tanto, los llamadores deben asegurarse de que no se produzcan llamadas simultáneas para la misma PDU.

Interpretación: Dado que la operación está marcada como definida por el usuario y se encuentra en FrIf_Externals.h, es de suponer que la implementación real deba proporcionarse de forma específica para el usuario o ampliando el controlador. Pregunta Q-6668832db63b9906 (abierta)

Este texto ha sido elaborado por una IA. Todos los datos se basan exclusivamente en las especificaciones de la versión R20-11.

función <UL_TxConflictNotification> [SWS_FrIf_91001] 📄 PDF

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

Notification in case a Tx Conflict has been detected.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8333bc6757d5 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función de notificación <UL_ Tx Conflict Notification> se invoca en cuanto se detecta un conflicto de transmisión (Tx Conflict) en la interfaz FlexRay [SWS_FrIf_91001]. La declaración de esta interfaz se pone a disposición a través del archivo de cabecera Fr If_ Externals.h [SWS_FrIf_91001].

La función no tiene valor de retorno y recibe dos parámetros de entrada [SWS_FrIf_91001]:

  • Fr If_ Ctrl Idx: Identificador del FlexRay Communication Controller direccionado [SWS_FrIf_91001].
  • Fr If_ LPdu Idx: Identificador de la trama FlexRay transmitida afectada [SWS_FrIf_91001].

Concurrencia y restricciones

La llamada se realiza con semántica síncrona [SWS_FrIf_91001]. En lo relativo a la concurrencia, la ejecución es reentrante para diferentes índices de Fr If_ LPdu Idx, pero explícitamente no reentrante para el mismo índice LPdu [SWS_FrIf_91001]. Por lo tanto, durante la implementación debe asegurarse de evitar llamadas simultáneas para el mismo índice de trama.

Tratamiento de errores e interacción

La especificación no define para esta interfaz de callback ningún mensaje DET o DEM por separado ni códigos de error específicos [SWS_FrIf_91001]. Interpretación: es probable que la capa superior proporcione la llamada para poder registrar o tratar los conflictos que hayan surgido de forma directa en el tramo de transmisión FlexRay. Pregunta Q-fc63c251dbc03307 (abierta)

Este texto ha sido generado por una IA y revisado según directrices fijas. Las justificaciones técnicas proceden exclusivamente de la especificación.

tipo FrIf_ConfigType [SWS_FrIf_05301] 📄 PDF

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

tipo FrIf_StateType [SWS_FrIf_05755] 📄 PDF

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d7aa755fda7e Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y rango de valores

El tipo de enumeración FrIf_StateType se define en el archivo de cabecera FrIf.h y sirve en la interfaz FlexRay para representar el estado operativo actual de un FlexRay Communication Controller (FlexRay CC) [SWS_FrIf_05755]. Las variables de este tipo registran si un controlador está listo para el servicio de comunicación y si existe sincronización con el clúster FlexRay [SWS_FrIf_05755].

El rango de valores comprende dos estados definidos [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: El FlexRay CC no está listo para la comunicación y el clúster FlexRay no está sincronizado [SWS_FrIf_05755].
  • FRIF_STATE_ONLINE: El FlexRay CC está listo para la comunicación y el clúster FlexRay está sincronizado [SWS_FrIf_05755].

Integración y condiciones de contorno

Los estados reflejan fases fundamentales de la comunicación: mientras esté presente FRIF_STATE_OFFLINE, no puede tener lugar una comunicación regular del clúster a través del controlador, mientras que FRIF_STATE_ONLINE caracteriza el funcionamiento sincronizado de transmisión y recepción [SWS_FrIf_05755]. Dado que el extracto de la especificación no menciona otras firmas de API ni mensajes de error, es de suponer que el tipo se utilice primordialmente en consultas de estado o transiciones de estado de la interfaz FlexRay. Pregunta Q-071cd300dcaa0a3b (abierta)

Este texto ha sido generado por una IA y se basa en la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

tipo FrIf_StateTransitionType [SWS_FrIf_05303] 📄 PDF

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 17a8791d0e85 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración FrIf_StateTransitionType se proporciona a través del archivo de encabezado FrIf.h y sirve, según [SWS_FrIf_05303], para la representación o solicitud de transiciones de estado para un FlexRay Communication Controller (FlexRay CC).

Uso y rango de valores

Las variables de este tipo toman valores para solicitar cambios de estado específicos de un FlexRay CC [SWS_FrIf_05303]. El rango de valores comprende los siguientes literales:

  • FRIF_GOTO_OFFLINE: Literal para solicitar una transición al estado FRIF_STATE_OFFLINE [SWS_FrIf_05303].
  • FRIF_GOTO_ONLINE: Literal para solicitar una transición al estado FRIF_STATE_ONLINE [SWS_FrIf_05303].

Contexto e interacción

Aunque la descripción formal del tipo habla de la representación del estado de un FlexRay CC, los literales definidos sugieren la interpretación de que este tipo de enumeración sirve primordialmente como parámetro de control para ordenar cambios de estado (offline u online) [SWS_FrIf_05303]. Dado que el payload no enumera otras interfaces, requisitos de reentrancia ni códigos de error para este tipo, se aplican las reglas generales de inclusión mediante el archivo de encabezado FrIf.h.

Este texto ha sido generado por una IA. Se basa en AUTOSAR R20-11 y en el requisito [SWS_FrIf_05303].

Guía del implementador pendiente (complejidad 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#6ba299ce
Content hash
6ba299ce
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayInterface.pdf#nameddest=SWS_FrIf_05003

Inicialización y estado

Returns the version information of this module.

void FrIf_GetVersionInfo (Std_VersionInfoType* FrIf_VersionInfoPtr);
FrIf_Init función

Initializes the Flex Ray Interface.

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

Servicios · 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 función

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);

Servicios · 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 función

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);

Servicios · 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);

Servicios · 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);

Servicios · Otros

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 función

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 función

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 función

Requests transmission of a PDU.

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

Callouts e interfaces esperadas

<Free_Op_A> función

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> función

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);

Tipos

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.