DEENESPTFRRUARHIKOZHNL

FlexRay Interface (FrIf)

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

Guia do móduloGERADO POR IA

Encapsula drivers e transceivers FlexRay e controla, por cluster, estado, tráfego de PDU e execução de Job List.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: c9748455d0d4 Procedência Perguntas em aberto (4)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Encapsula drivers e transceivers FlexRay e controla, por cluster, estado, tráfego de PDU e execução de Job List.

O FlexRay Interface encapsula drivers FlexRay e de transceivers por trás de um índice de controller uniforme e intermedeia PDUs entre as camadas superiores e o barramento. Para cada cluster, ele mantém uma máquina de estados com os estados FRIF_STATE_OFFLINE e FRIF_STATE_ONLINE, que o FlexRay State Manager comuta via FrIf_SetState [SWS_FrIf_05174]. A transmissão e recepção ocorrem de forma temporizada na execução da Job List do cluster, e isso apenas no estado online (SWS FrIf p. 37). Serviços de partida, parada e wakeup operam de forma assíncrona. Por esse motivo, o chamador determina o estado POC alcançado via FrIf_GetPOCStatus.

A FlexRay Interface (FrIf) situa-se entre os módulos superiores de comunicação e os drivers Fr e FrTrcv. Para a sua função principal, ela necessita de serviços de driver como Fr_ControllerInit, Fr_GetPOCStatus e Fr_ReceiveRxLPdu [SWS_FrIf_05043]. A maioria dos serviços de controle encapsula um serviço de driver: eles traduzem FrIf_CtrlIdx com base na configuração estática na tupla (FlexRay Driver | Fr_CtrlIdx) e retornam o resultado do driver (SWS FrIf p. 55). Inicialização, parada, liberação de coldstart e wakeup operam de forma assíncrona [SWS_FrIf_05005]. Por essa razão, o chamador determina o estado efetivamente alcançado por meio de 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_* após tradução de índice (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: O FrIf intermedeia entre o FrSM, os usuários de PDU e os serviços de tempo e mirroring, de um lado, e os drivers Fr e FrTrcv, do outro. Fontes: [SWS_FrIf_05043], SWS FrSM p. 22

Por cluster, o FrIf executa uma máquina de estados com os estados FRIF_STATE_OFFLINE e FRIF_STATE_ONLINE [SWS_FrIf_05755]. FrIf_Init() define cada cluster como offline. O ambiente solicita transições por meio de FrIf_SetState e FRIF_GOTO_ONLINE ou FRIF_GOTO_OFFLINE [SWS_FrIf_05174]. A recepção, o envio e a confirmação de transmissão ocorrem apenas online. Na transição para offline, as Upper Layers recebem E_NOT_OK para confirmações pendentes [SWS_FrIf_05501].

frif_zustand start off FRIF_STATE_OFFLINE nenhum serviço de comunicação (cluster não sincronizado) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: nenhuma transição on FRIF_STATE_ONLINE recepção, transmissão, confirmação de Tx (cluster sincronizado) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) por PDU com TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: nenhuma transição

Diagrama de estados: Cada cluster inicia offline e muda apenas mediante solicitação via FrIf_SetState. Fontes: [SWS_FrIf_05303], SWS FrIf p. 25

O FrSM controla o fluxo. Durante a inicialização, ele comuta os transceptores para Normal, inicia a comunicação e, se aplicável, libera o coldstart. Em seguida, consulta o status do POC até que FR_POCSTATE_NORMAL_ACTIVE seja alcançado e apenas depois disso coloca o cluster online (SWS FrSM p. 50). O desligamento ocorre em duas etapas: primeiro offline e parada, seguido pela reinicialização dos controladores e standby dos transceptores (SWS FrSM p. 58).

FrIf_Transmit inicialmente apenas conta as solicitações de envio [SWS_FrIf_05033]. A transmissão propriamente dita ocorre na Job List Execution por cluster [SWS_FrIf_05040]. Nela, o FrIf obtém os dados via TriggerTransmit, confirma transmissões e reporta recepções. Ele relata erros em três categorias: erros de desenvolvimento ao DET [SWS_FrIf_05145], o erro de tempo de execução FRIF_E_JLE_SYNC [SWS_FrIf_05432] e erros de produção por canal ao DEM [SWS_FrIf_05146].

Papel na pilha FlexRay e limite do sistema

A FlexRay Interface (FrIf) situa-se entre os módulos superiores de comunicação e os drivers de baixo nível. Para a sua função principal, ela necessita de serviços do driver FlexRay. Estes incluem Fr_ControllerInit, Fr_GetPOCStatus, Fr_ReceiveRxLPdu e Fr_CheckTxLPduStatus, bem como Det_ReportRuntimeError [SWS_FrIf_05043]. São opcionais, entre outros, Fr_AllSlots, Fr_CancelTxLPdu e Dem_SetEventStatus [SWS_FrIf_05044]. A estrutura dos headers mostra a integração de Fr.h, FrTrcv.h, PduR_FrIf.h, FrNm_Cbk.h e FrTp_Cbk.h (SWS FrIf p. 18).

O ciclo de vida é controlado pelo FlexRay State Manager. Ele mapeia seus elementos funcionais para chamadas do FrIf (SWS FrSM p. 22). Os usuários de PDU são conectados por meio de callbacks configuráveis: <User_RxIndication>, <User_TxConfirmation> e <User_TriggerTransmit> [SWS_FrIf_05045] [SWS_FrIf_05046] [SWS_FrIf_05047]. Destinos permitidos incluem FrTSyn [SWS_FrIf_05434], FrNm e FrArTp. Complex Drivers com interfaces semelhantes também podem ser conectados (SWS FrIf p. 97). Outros usuários têm tarefas próprias:

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_* após tradução de índice (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: O FrIf intermedeia entre o controle de estados, os usuários de PDU e os serviços de tempo e mirroring, de um lado, e os drivers Fr e FrTrcv, do outro. Ele reporta erros ao DET e ao DEM. Fontes: [SWS_FrIf_05043], [SWS_FrIf_05045], SWS FrSM p. 22, SWS FrIf p. 18

Um índice de controlador para todos os drivers: o princípio de wrapper

A maioria dos serviços de controle endereça um Communication Controller (CC) via FrIf_CtrlIdx. O padrão pode ser demonstrado com o exemplo de FrIf_ControllerInit. O serviço traduz o índice com base na configuração estática na tupla (FlexRay Driver | Fr_CtrlIdx). Em seguida, chama Fr_ControllerInit() do driver identificado (SWS FrIf p. 55). O valor de retorno reflete o resultado do driver [SWS_FrIf_05004]. De acordo com o mesmo padrão, outros serviços encapsulam seus equivalentes no driver: inicialização, parada, aborto, liberação de coldstart, wakeup, status do POC e tempo global [SWS_FrIf_05005] [SWS_FrIf_05006] [SWS_FrIf_05007] [SWS_FrIf_05017] [SWS_FrIf_05011] [SWS_FrIf_05014] [SWS_FrIf_05015]. O mesmo se aplica aos serviços de Absolute Timer [SWS_FrIf_05021] [SWS_FrIf_05025] [SWS_FrIf_05029].

Para os chamadores, a sincronicidade é decisiva. FrIf_StartCommunication, FrIf_HaltCommunication, FrIf_AllowColdstart e FrIf_SendWUP operam de forma assíncrona [SWS_FrIf_05005] [SWS_FrIf_05011]. Em contrapartida, FrIf_ControllerInit e FrIf_AbortCommunication operam de forma síncrona [SWS_FrIf_05007]. Nos serviços assíncronos, E_OK significa apenas que a chamada do driver retornou E_OK. O estado efetivamente alcançado do POC é determinado pelo FrSM por meio de consultas repetidas com FrIf_GetPOCStatus (SWS FrSM p. 50).

Os serviços de transceptor endereçam adicionalmente um canal FrIf_ChnlIdx e encapsulam o FlexRay Transceiver Driver [SWS_FrIf_05034] [SWS_FrIf_05036] [SWS_FrIf_05039]. O valor FR_CHANNEL_AB é inválido nesse contexto (SWS FrIf p. 73). Consultas como FrIf_GetMacroticksPerCycle ou FrIf_GetCycleLength não chamam nenhum driver, mas leem a configuração estática [SWS_FrIf_05018] [SWS_FrIf_05239].

Máquina de estados por cluster: FRIF_STATE_OFFLINE e FRIF_STATE_ONLINE

O FrIf mantém uma máquina de estados própria para cada cluster FlexRay. FrIf_Init() define inicialmente cada cluster como FRIF_STATE_OFFLINE (SWS FrIf p. 25). Os dois estados têm o seguinte significado [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: O CC não está pronto para comunicação, o cluster não está sincronizado.
  • FRIF_STATE_ONLINE: O CC está pronto para comunicação, o cluster está sincronizado.

O ambiente solicita transições por meio de FrIf_SetState, utilizando os literais FRIF_GOTO_ONLINE ou FRIF_GOTO_OFFLINE [SWS_FrIf_05174] [SWS_FrIf_05303]. Uma transição ocorre apenas se o cluster estiver no respectivo outro estado (SWS FrIf p. 25). FrIf_GetState é reentrante [SWS_FrIf_05170]; FrIf_SetState, por outro lado, não é.

O estado determina se ocorre tráfego de dados. Em offline, o FrIf não executa serviços de comunicação. Em online, ele executa recepção, envio e confirmação de transmissão (SWS FrIf p. 25). Na mudança para offline, o FrIf verifica cada PDU: se o seu TxConfCounter > 0, a Upper Layer recebe <UL>_TxConfirmation(id, E_NOT_OK) [SWS_FrIf_05501]. A partir de R23-11, a especificação exige adicionalmente que FrIf_Transmit() retorne E_NOT_OK no estado offline (SWS FrIf p. 68). Um diagrama mais antigo mostra quatro estados, entre eles FRIF_STATE_HALT (SWS FrIf p. 28). Ele não se aplica ao R20-11, pois FrIf_StateType conhece apenas dois valores aqui [SWS_FrIf_05755].

frif_zustand start off FRIF_STATE_OFFLINE nenhum serviço de comunicação (cluster não sincronizado) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: nenhuma transição on FRIF_STATE_ONLINE recepção, transmissão, confirmação de Tx (cluster sincronizado) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) por PDU com TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: nenhuma transição

Diagrama de estados: Cada cluster inicia offline e muda apenas mediante solicitação via FrIf_SetState. Na transição para offline, confirmações de transmissão pendentes são finalizadas negativamente. Fontes: [SWS_FrIf_05174], [SWS_FrIf_05303], [SWS_FrIf_05501], SWS FrIf p. 25

Inicialização, wakeup e desligamento sob o comando do FrSM

O EcuM inicializa o FrIf com FrIf_Init, especificamente antes de FrSM_Init (SWS FrSM p. 46). Ao fazer isso, ele passa um ponteiro para FrIf_ConfigType [SWS_FrIf_05003]. Todas as etapas seguintes são controladas pelo FrSM por meio de seus elementos funcionais. Cada elemento chama o respectivo serviço do FrIf para cada controlador do cluster (SWS FrSM p. 22):

  • FE_CONFIG chama FrIf_ControllerInit.
  • FE_START chama FrIf_StartCommunication.
  • FE_ALLOW_COLDSTART chama FrIf_AllowColdstart, mas apenas com FrSMIsColdstartEcu definido.
  • FE_WAKEUP chama FrIf_SendWUP.
  • FE_HALT chama FrIf_HaltCommunication.

A inicialização passiva após um wakeup de barramento ocorre nesta sequência (SWS FrSM p. 50):

  1. Os transceptores são comutados para FRTRCV_TRCVMODE_NORMAL.
  2. A comunicação é iniciada.
  3. Um nó de coldstart libera adicionalmente o coldstart.
  4. O FrSM consulta o status do POC até que FR_POCSTATE_NORMAL_ACTIVE seja alcançado.
  5. Apenas então segue FrIf_SetState(…, FRIF_GOTO_ONLINE).

No despertar ativo, nós de dois canais selecionam o canal de wakeup com FrIf_SetWakeupChannel [SWS_FrIf_05010]. FrIf_GetWakeupRxStatus reporta de forma codificada em bits em qual canal um wakeup foi recebido [SWS_FrIf_05102].

Startup passivo de um cluster (canal único, bus-wakeup)ComMSchMFrSMFrIfBswMDemFrSM_RequestComMode(network,COMM_FULL_COMMUNICATION)FrSM_MainFunction_<FrSMCluster.ShortName>()looppara todos os CtrlIdx dos CCs do clusterFrIf_GetTransceiverWUReason(CtrlIdx,ChnlIdx, TrcvWUReasonPtr)FRTRCV_WU_BY_BUSFrIf_SetTransceiverMode(CtrlIdx, ChnlIdx,FRTRCV_TRCVMODE_NORMAL)FrIf_StartCommunication(CtrlIdx)BswM_FrSM_CurrentState(FRSM_STARTUP)optFrSMIsColdstartEcu (imediatamente se 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:Lista de jobs executa a comunicaçãoDem_SetEventStatus(FRSM_E_CLUSTER_STARTUP, PASSED)BswM_FrSM_CurrentState(FRSM_ONLINE)ComM_BusSM_ModeIndication(NetworkHandle, COMM_FULL_COM)

Diagrama de sequência: Inicialização passiva até o estado online. O FrIf executa apenas os serviços individuais; o controle do fluxo cabe ao FrSM. Interpretação: A sequência antes da inicialização está simplificada. Fontes: SWS FrSM p. 50, SWS FrSM p. 21

O desligamento ocorre em duas etapas. Primeiro, o FrSM define o cluster como offline com FRIF_GOTO_OFFLINE e chama FrIf_HaltCommunication. Mais tarde, ele reinicializa os controladores e coloca os transceptores no modo STANDBY (SWS FrSM p. 58). O atraso entre as duas etapas é determinado pelo temporizador t_TrcvStdbyDelay (SWS FrSM p. 21).

Transição de FullCom para 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: após t_TrcvStdbyDelay reinicializar e 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 sequência: Transição de FullCom para NoCom, primeiro parada, depois reinicialização e standby. Interpretação: A sequência dentro da primeira fase está simplificada. Fontes: SWS FrSM p. 58, SWS FrSM p. 56

Tráfego de PDUs: solicitação de envio e Job List Execution

FrIf_Transmit é síncrono e reentrante para diferentes TxPduId [SWS_FrIf_05033]. No acesso desacomplado ao buffer, o FrIf armazena apenas a quantidade de solicitações de envio no TrigTxCounter, e não os dados em si (SWS FrIf p. 38). Para PDUs imediatas com comprimento fixo, o FrIf verifica o comprimento fornecido em relação à configuração [SWS_FrIf_05757]. Uma transmissão em andamento pode ser cancelada com FrIf_CancelTransmit [SWS_FrIf_05070].

A comunicação de barramento propriamente dita ocorre na Job List Execution Function FrIf_JobListExec_<FrIfCluster.ShortName>, que existe para cada cluster [SWS_FrIf_05040]. Nos diagramas, uma Interrupt Service Routine a chama (SWS FrIf p. 102). Presumivelmente, essa rotina é acionada por meio dos Absolute Timers do CC [SWS_FrIf_05021]. Pergunta Q-d0a286cc1698d9d3 (aberta) A FrIf_MainFunction_<FrIfCluster.ShortName> cíclica [SWS_FrIf_05042] monitora a execução contínua da job list enquanto o cluster estiver online. Isso inclui também a (re)sincronização (SWS FrIf p. 26).

Cada Communication Operation é executada apenas no estado FRIF_STATE_ONLINE; caso contrário, é ignorada (SWS FrIf p. 37). As operações mais importantes funcionam da seguinte forma:

  • Envio desacomplado: Para cada PDU com TrigTxCounter > 0, o FrIf obtém os dados via <User_TriggerTransmit> [SWS_FrIf_05047]. Em seguida, entrega o frame para Fr_TransmitTxLPdu(). Se o driver recusar, o FrIf restaura os contadores para o estado anterior (SWS FrIf p. 102).
  • TX_CONFIRMATION: Se o driver reportar FR_TRANSMITTED, o FrIf confirma a transmissão via <User_TxConfirmation> [SWS_FrIf_05046].
  • RECEIVE_AND_INDICATE: O FrIf lê até FrIfRxComOpMaxLoop vezes e reporta cada recepção via <User_RxIndication> [SWS_FrIf_05045] (SWS FrIf p. 41).

Operações específicas de hardware, como <Free_Op_A>, também são executadas na job list [SWS_FrIf_05316]. O FrIf reporta conflitos de envio via <UL_TxConflictNotification> [SWS_FrIf_91001].

Transmissão com acesso desacomplado ao buffer (Decoupled Buffer Access)ComPduR (Upper Layer)FrIfInterrupt Service RoutineFrPduR_ComTransmit()FrIf_Transmit(TxPduId, PduInfoPtr)Incrementar TrigTxCounter(até CounterLimit, não armazenar dados)E_OKUse Case: Job DECOUPLED_TRANSMISSION (apenas FRIF_STATE_ONLINE)FrIf_JobListExec_<FrIfCluster.ShortName>()looppor PDU no quadroaltTrigTxCounter > 0 ou FrIfNoneMode == trueTrigTxCounter dekrementierenPduR_<User:Lo>Triggertransmit()Com_TriggerTransmit()copy buffer()E_OKE_OKUpdate-Bit "up-to-date" setzencaso contrárioUpdate-Bit "outdated" setzenoptAlwaysTransmit == TRUE ou pelo menos uma PDU atualFr_TransmitTxLPdu()Incrementar TxConfCounter;em caso de E_NOT_OK reverter contadorUse Case: Job TX_CONFIRMATIONFrIf_JobListExec_<FrIfCluster.ShortName>()Fr_CheckTxLPduStatus()FR_TRANSMITTEDPduR_<User:Lo>TxConfirmation()Com_TxConfirmation()

Diagrama de sequência: Envio com acesso desacomplado ao buffer. A solicitação é inicialmente apenas contada; o FrIf busca os dados apenas na job list. Versões mais recentes encaminham através do LSduR. Fontes: [SWS_FrIf_05033], SWS FrIf p. 102, SWS PduR p. 106

frif_joblist start Job da lista de jobs vencido FrIf_JobListExec_<FrIfCluster.ShortName>() online FrIf_State do CC == FRIF_STATE_ONLINE? start->online ignore Communication Operation ignorieren online->ignore não art Tipo da Communication Operation? online->art sim ende próximo job ignore->ende dtx DECOUPLED_TRANSMISSION: verificar TrigTxCounter por PDU, <User_TriggerTransmit>, bits de atualização, Fr_TransmitTxLPdu() art->dtx txc TX_CONFIRMATION: Fr_CheckTxLPduStatus(); com FR_TRANSMITTED e 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() em buffer temporário, copiar PDUs para buffers FrIf locais art->ras free <Free_Op_A> / <Free_Op_B>: hardwarespezifische Operation art->free dtx->ende txc->ende mirr Bus Mirroring ativo para este CC? rai->mirr Frame empfangen ras->mirr Frame empfangen free->ende report Mirror_ReportFlexRayFrame() mirr->report sim mirr->ende não report->ende

Diagrama de atividades: Processamento de uma Communication Operation na job list. O estado do cluster decide primeiro, seguido pelo tipo de operação. Fontes: [SWS_FrIf_05040], SWS FrIf p. 37, SWS FrIf p. 39

Base de tempo, serviços adicionais e configuração

O FrTSyn chama FrIf_GetGlobalTime apenas se FrIf_GetState retornar o valor FRIF_STATE_ONLINE. Somente então o CC estará síncrono com o tempo global do FlexRay (SWS FrTSyn p. 19). FrIf_GetGlobalTime também pode ser chamado dentro de uma Exclusive Area (SWS FrIf p. 64). O FrNm também determina o ciclo atual por meio deste serviço (SWS FrNm p. 38). FrIf_GetNmVector [SWS_FrIf_05016] pode ser desativado via FrIfGetNmVectorSupport.

FrIf_EnableBusMirroring define por cluster se Mirror_ReportFlexRayFrame é chamado para cada frame enviado ou recebido. Se FrIfBusMirroringSupport estiver desativado globalmente, o serviço retorna E_NOT_OK [SWS_FrIf_05726]. A configuração post-build é específica da implementação e acessível apenas por meio de ponteiro para FrIf_ConfigType [SWS_FrIf_05301]. Um diagrama a partir de R22-11 mostra a estrutura: existem um ou mais FrIfController com FrIfCtrlIdx 0…31, cada um com até dois transceptores (SWS FrIf p. 139). Serviços opcionais como FrIf_DisableLPdu [SWS_FrIf_05710] são ativados por chave de pré-compilação, neste caso via FrIfDisableLPduSupport (SWS FrIf p. 84).

Comportamento em caso de erro

Se FrIfDevErrorDetect estiver definido como ON, os serviços reportam erros de desenvolvimento ao Det_ReportError. Os códigos variam de FRIF_E_PARAM_POINTER (0x01) a FRIF_E_INV_FRIF_STATE (0x0A) e abrangem, entre outros, FRIF_E_INV_CTRL_IDX e FRIF_E_UNINIT [SWS_FrIf_05145]. Os casos mais importantes:

  • FrIf_CtrlIdx inválido: Os wrappers reportam FRIF_E_INV_CTRL_IDX e retornam E_NOT_OK (SWS FrIf p. 55).
  • Transição inválida em FrIf_SetState: O serviço reporta FRIF_E_INV_FRIF_STATE [SWS_FrIf_05037].
  • Comprimento incorreto de uma PDU imediata: FrIf_Transmit() retorna E_NOT_OK e reporta FRIF_E_INV_PDULENGTH [SWS_FrIf_05757].
frif_wrapper aufruf Aufruf FrIf_<Dienst>(FrIf_CtrlIdx, …) det FrIfDevErrorDetect == ON e não inicializado / parâmetro inválido? aufruf->det melden Det_ReportError(FRIF_E_UNINIT, FRIF_E_INV_CTRL_IDX, FRIF_E_INV_CHNL_IDX, …) det->melden sim uebersetzen Traduzir FrIf_CtrlIdx por configuração estática para (FlexRay Driver | Fr_CtrlIdx) det->uebersetzen não nok1 Retorno E_NOT_OK melden->nok1 treiber Chamar Fr_<serviço>(Fr_CtrlIdx, …) ou FrTrcv_<serviço> do driver determinado uebersetzen->treiber erg Driver retorna E_OK? treiber->erg ok Retorno E_OK erg->ok sim nok2 Retorno E_NOT_OK erg->nok2 não

Diagrama de atividades: Fluxo de um serviço wrapper desde a verificação de parâmetros e a tradução do índice até o retorno do resultado do driver. Fontes: [SWS_FrIf_05004], [SWS_FrIf_05145], SWS FrIf p. 55

A especificação define FRIF_E_JLE_SYNC como erro de tempo de execução. Ele ocorre quando a Job List Execution perde a sincronização com o tempo do FlexRay [SWS_FrIf_05432]. Interpretação: A recuperação provavelmente é tarefa da (re)sincronização pela Main Function (SWS FrIf p. 26). Pergunta Q-9d075afc8e49d498 (aberta)

O FrIf reporta erros de produção por canal ao DEM: FRIF_E_NIT_CH_A/B, FRIF_E_SW_CH_A/B e FRIF_E_ACS_CH_A/B [SWS_FrIf_05146]. A notificação é DEM_EVENT_STATUS_PREFAILED assim que bits de erro como vSS!SyntaxError estiverem definidos [SWS_FrIf_05426] [SWS_FrIf_05428]. Em contrapartida, o resultado da inicialização do cluster é reportado pelo FrSM (SWS FrSM p. 50).

Evidências mais detalhadas

Guia gerado por IA com base nos requisitos e passagens de documentos contidos no payload (Release R20-11). Passagens de documentos de outras releases estão identificadas como tal; o texto determinante é o da especificação.

FlexRay Interface (FrIf)

Abstracts FlexRay hardware controllers for upper layers.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função FrIf_Init [SWS_FrIf_05003] 📄 PDF

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

Initializes the Flex Ray Interface.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6689f83f9701 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_Init serve para a inicialização do módulo FlexRay Interface ([SWS_FrIf_05003]). A chamada ocorre de forma síncrona e é especificada como não reentrante (Non Reentrant) ([SWS_FrIf_05003]).

Parâmetros e valores de retorno

  • FrIf_ConfigPtr (parâmetro de entrada): Ponteiro base para a estrutura de configuração da FlexRay Interface ([SWS_FrIf_05003]).
  • Valor de retorno: void – a função não retorna nenhum valor de retorno ([SWS_FrIf_05003]).

Restrições e condições de chamada

Como FrIf_Init não é reentrante, a função não deve, em momento algum, ser chamada novamente em paralelo ou de forma interruptiva pela mesma ou por outra thread ou tarefa ([SWS_FrIf_05003]). A chamada deve ocorrer no contexto de inicialização do sistema, antes que os serviços regulares da FlexRay Interface sejam utilizados.

Esta nota de uso foi gerada de forma automatizada com base na especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I2)

função FrIf_ControllerInit [SWS_FrIf_05004] 📄 PDF

Std_ReturnType FrIf_ControllerInit (uint8 FrIf_CtrlIdx);

Initialized a Flex Ray CC.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f399f6cb2b11 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrIf_ControllerInit serve para a inicialização de um FlexRay Communication Controller (FlexRay CC) [SWS_FrIf_05004]. Ela está disponível através do arquivo de cabeçalho FrIf.h e é identificada através do Service-ID 0x03 [SWS_FrIf_05004].

Através do parâmetro de entrada FrIf_CtrlIdx do tipo de dados uint8 é passado o índice do controlador FlexRay a ser endereçado [SWS_FrIf_05004]. Não existem outros parâmetros de entrada ou saída para esta interface [SWS_FrIf_05004].

O valor de retorno é do tipo Std_ReturnType e reporta o status da inicialização de volta ao chamador [SWS_FrIf_05004]:

  • E_OK: A chamada do serviço de API do driver FlexRay subjacente foi bem-sucedida e forneceu E_OK [SWS_FrIf_05004].
  • E_NOT_OK: O serviço de API do driver FlexRay retornou E_NOT_OK ou foi detectado um erro no modo de desenvolvimento [SWS_FrIf_05004].

Em relação à concorrência, FrIf_ControllerInit é reentrante para índices de controladores diferentes (FrIf_CtrlIdx), porém não é reentrante para valores idênticos de FrIf_CtrlIdx [SWS_FrIf_05004]. Chamadas concorrentes para o mesmo controlador devem, portanto, ser evitadas pelo sistema geral.

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função FrIf_EnableAbsoluteTimerIRQ [SWS_FrIf_05025] 📄 PDF

Std_ReturnType FrIf_EnableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Service FrIf_EnableAbsoluteTimerIRQ.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 517cedc33aed Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função FrIf_EnableAbsoluteTimerIRQ representa um serviço síncrono com o ID de serviço 0x1d, disponibilizado por meio do arquivo de cabeçalho FrIf.h [SWS_FrIf_05025]. Ela atua como um wrapper em torno da interface Fr_EnableAbsoluteTimerIRQ() do driver FlexRay para ativação da interrupção de um temporizador absoluto [SWS_FrIf_05025].

A chamada requer dois parâmetros de entrada [SWS_FrIf_05025]:

  • FrIf_CtrlIdx: Índice do controlador de comunicação FlexRay (FlexRay CC) a ser endereçado [SWS_FrIf_05025].
  • FrIf_AbsTimerIdx: Índice do temporizador absoluto a ser ativado no controlador endereçado [SWS_FrIf_05025].

Valores de retorno e tratamento de erros

A função retorna um valor de status do tipo Std_ReturnType [SWS_FrIf_05025]:

  • E_OK: A chamada do serviço de driver subjacente foi bem-sucedida e retornou E_OK [SWS_FrIf_05025].
  • E_NOT_OK: A função do driver retornou E_NOT_OK ou foi detectado um erro no modo de desenvolvimento (Development Mode) [SWS_FrIf_05025].

Concorrência e reentrância

Em relação ao contexto de chamada, FrIf_EnableAbsoluteTimerIRQ não é reentrante para o mesmo controlador FlexRay, mas pode ser chamado de forma reentrante para diferentes controladores FlexRay [SWS_FrIf_05025].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função 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()

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5371cc37b0bc Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de interface síncrona FrIf_AckAbsoluteTimerIRQ encapsula como wrapper a chamada de API da função de driver Fr_AckAbsoluteTimerIRQ() do driver FlexRay [SWS_FrIf_05029]. Ela possui o ID de serviço 0x21, é disponibilizada por meio do cabeçalho FrIf.h e serve para confirmar uma solicitação de interrupção para um temporizador absoluto de um FlexRay Communication Controller.

Ao chamar a função, devem ser passados dois parâmetros de entrada [SWS_FrIf_05029]:

  • FrIf_CtrlIdx: índice do FlexRay Communication Controller (CC) a endereçar.
  • FrIf_AbsTimerIdx: Índice do temporizador absoluto específico cuja interrupção deve ser confirmada.

A função fornece um valor de retorno do tipo Std_ReturnType para avaliação do resultado [SWS_FrIf_05029]:

  • E_OK: A chamada da API do driver Fr_AckAbsoluteTimerIRQ() foi executada com sucesso.
  • E_NOT_OK: O driver FlexRay reportou E_NOT_OK na chamada, ou foi detectado um erro no modo de desenvolvimento (Development Mode).

Em relação ao comportamento de concorrência, a função opera de forma síncrona. Chamadas para diferentes FlexRay CCs são reentrantes, enquanto chamadas simultâneas para o mesmo FlexRay CC não são reentrantes e devem ser evitadas [SWS_FrIf_05029].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função FrIf_StartCommunication [SWS_FrIf_05005] 📄 PDF

Std_ReturnType FrIf_StartCommunication (uint8 FrIf_CtrlIdx);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ba57cfeb6d86 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_StartCommunication atua como encapsulamento da função do driver FlexRay Fr_StartCommunication() e inicia o estabelecimento da comunicação de um controlador de comunicação FlexRay endereçado [SWS_FrIf_05005].

Utilização e contexto de chamada

A interface é declarada através do cabeçalho FrIf.h e possui o Service-ID 0x04 [SWS_FrIf_05005]. A chamada é processada de forma assíncrona [SWS_FrIf_05005]. Como único parâmetro de entrada serve FrIf_CtrlIdx (tipo uint8), que define o índice do controlador de comunicação FlexRay a ser acionado; parâmetros de entrada/saída ou puramente de saída não existem [SWS_FrIf_05005].

Tratamento de erros e valores de retorno

A função retorna um código de status do tipo Std_ReturnType [SWS_FrIf_05005]:

  • E_OK: A chamada do serviço de API subjacente no driver FlexRay decorreu com sucesso e retornou E_OK [SWS_FrIf_05005].
  • E_NOT_OK: O serviço de API do driver reportou E_NOT_OK ou foi detectado um erro durante a execução no modo de desenvolvimento (Development Mode) [SWS_FrIf_05005].

Simultaneidade e restrições

No que diz respeito à reentrância, FrIf_StartCommunication é reentrante para índices de controladores divergentes entre si (FrIf_CtrlIdx), porém não é reentrante para valores de controladores idênticos [SWS_FrIf_05005]. Módulos chamadores devem, portanto, assegurar em acessos simultâneos que não ocorram chamadas concorrentes para o mesmo controlador.

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I2)

função FrIf_HaltCommunication [SWS_FrIf_05006] 📄 PDF

Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8fb366eaa447 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_HaltCommunication (Service-ID 0x05) representa no FlexRay Interface (FrIf) um wrapper para a chamada da função de API do driver Fr_HaltCommunication() e é declarada através do cabeçalho FrIf.h [SWS_FrIf_05006]. O serviço é executado com semântica assíncrona [SWS_FrIf_05006]. Como único parâmetro é passado o valor de entrada FrIf_CtrlIdx, que especifica o índice do respectivo FlexRay Communication Controller a ser acessado; parâmetros de entrada/saída ou puramente de saída não estão definidos para este serviço [SWS_FrIf_05006].

O valor de retorno é do tipo Std_ReturnType e sinaliza o resultado da chamada [SWS_FrIf_05006]:

  • E_OK: A chamada do serviço de API no driver FlexRay foi bem-sucedida e retornou E_OK [SWS_FrIf_05006].
  • E_NOT_OK: A chamada de API do driver FlexRay retornou E_NOT_OK ou foi detectado um erro no modo de desenvolvimento (Development Mode) [SWS_FrIf_05006].

No que diz respeito à concorrência, FrIf_HaltCommunication é reentrante para valores diferentes do índice do controlador FrIf_CtrlIdx, porém não é reentrante com valores idênticos para FrIf_CtrlIdx [SWS_FrIf_05006]. Chamadas simultâneas ou interruptivas para o mesmo controlador são, consequentemente, inadmissíveis e devem ser evitadas no contexto do chamador.

Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função FrIf_AbortCommunication [SWS_FrIf_05007] 📄 PDF

Std_ReturnType FrIf_AbortCommunication (uint8 FrIf_CtrlIdx);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 7413742b3cdd Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função de interface síncrona FrIf_AbortCommunication atua como um invólucro direto para a função de API Fr_AbortCommunication() do driver FlexRay [SWS_FrIf_05007]. Ela está declarada no arquivo de cabeçalho FrIf.h e possui o Service-ID 0x06 [SWS_FrIf_05007].

Por meio do parâmetro de entrada FrIf_CtrlIdx, é indicado o índice do FlexRay Communication Controller a ser acessado [SWS_FrIf_05007]. Parâmetros adicionais de entrada ou de saída não estão definidos para esta interface [SWS_FrIf_05007].

Valores de retorno e tratamento de erros

A função retorna um valor de status do tipo Std_ReturnType [SWS_FrIf_05007]:

  • E_OK: A chamada do serviço de API do driver FlexRay foi bem-sucedida e retornou E_OK [SWS_FrIf_05007].
  • E_NOT_OK: O serviço de API do driver FlexRay retornou E_NOT_OK ou foi detectado um erro no modo de desenvolvimento [SWS_FrIf_05007].

Simultaneidade e restrições

A execução de FrIf_AbortCommunication é síncrona [SWS_FrIf_05007]. A função é reentrante para valores diferentes de FrIf_CtrlIdx, mas não é reentrante para índices idênticos de controlador [SWS_FrIf_05007].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função FrIf_SetState [SWS_FrIf_05174] 📄 PDF

Std_ReturnType FrIf_SetState (uint8 FrIf_ClstIdx, FrIf_StateTransitionType FrIf_StateTransition);

Requests Fr If state machine transition.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5873512292be Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Uso e chamada

A função síncrona FrIf_SetState solicita uma transição de estado na máquina de estados da interface FlexRay [SWS_FrIf_05174]. Como parâmetros, são passados o índice do cluster FrIf_ClstIdx e a transição desejada FrIf_StateTransition. A função retorna E_OK se a chamada foi executada com sucesso e a alteração de estado foi aceita; em caso de erro, é retornado E_NOT_OK [SWS_FrIf_05174].

Tratamento de erros e condições de contorno

A função está definida como não reentrante (Non Reentrant) [SWS_FrIf_05174]. Se o controle de desenvolvimento estiver ativado (FrIfDevErrorDetect == ON) e o parâmetro FrIf_StateTransition contiver um valor inválido, a função reporta o código de erro FRIF_E_INV_FRIF_STATE por meio de Det_ReportError ao módulo DET [SWS_FrIf_05037].

Interação em transições offline

Se FrIf_SetState for chamado com o parâmetro de transição FRIF_STATE_OFFLINE, a interface FlexRay verifica para cada PDU o contador TxConfCounter [SWS_FrIf_05501]. Se esse valor for maior que 0 para uma PDU, o módulo informa a camada superior com a chamada <UL>_TxConfirmation(id, E_NOT_OK) sobre a falha da confirmação pendente [SWS_FrIf_05501].

Este texto foi gerado por um sistema de IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função FrIf_SendWUP [SWS_FrIf_05011] 📄 PDF

Std_ReturnType FrIf_SendWUP (uint8 FrIf_CtrlIdx);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 198c69b5740a Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_SendWUP (Service-ID 0x0a) do módulo FrIf está disponível através do arquivo de cabeçalho FrIf.h e serve como wrapper de interface para a chamada da função de API Fr_SendWUP() do driver FlexRay subjacente [SWS_FrIf_05011].

Utilização e parâmetros

O serviço é executado assincronamente [SWS_FrIf_05011]. Como único parâmetro de passagem serve o parâmetro de entrada FrIf_CtrlIdx do tipo uint8, que especifica o índice do FlexRay Communication Controller (FlexRay CC) a ser endereçado [SWS_FrIf_05011]. Não são utilizados parâmetros inout ou out [SWS_FrIf_05011].

Valores de retorno e tratamento de erros

Como valor de retorno a função fornece um status do tipo Std_ReturnType [SWS_FrIf_05011]:

  • E_OK: A chamada do serviço de API do driver FlexRay foi executada com sucesso e reportou E_OK [SWS_FrIf_05011].
  • E_NOT_OK: A chamada do serviço de API do driver FlexRay retornou E_NOT_OK ou foi detectado um erro no modo de desenvolvimento (Development Mode) [SWS_FrIf_05011].

Concorrência e reentrância

Em relação ao acesso simultâneo, FrIf_SendWUP é reentrante para chamadas com valores diferentes para FrIf_CtrlIdx, porém não é reentrante para valores idênticos de FrIf_CtrlIdx [SWS_FrIf_05011].

Este texto foi gerado automaticamente e baseia-se nas especificações AUTOSAR para o Release R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

função FrIf_AllowColdstart [SWS_FrIf_05017] 📄 PDF

Std_ReturnType FrIf_AllowColdstart (uint8 FrIf_CtrlIdx);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f313d1af7873 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e funcionamento

A função FrIf_AllowColdstart serve como invólucro para a API do driver FlexRay Fr_AllowColdstart() de acordo com [SWS_FrIf_05017]. Ela endereça o FlexRay Communication Controller (CC) a ser acessado por meio do parâmetro de entrada FrIf_CtrlIdx [SWS_FrIf_05017]. A execução da função é especificada como assíncrona [SWS_FrIf_05017].

Valores de retorno e tratamento de erros

O valor de retorno do tipo Std_ReturnType reflete o resultado da execução [SWS_FrIf_05017]:

  • E_OK: O serviço de API subjacente do driver FlexRay foi chamado com sucesso e retornou E_OK [SWS_FrIf_05017].
  • E_NOT_OK: A chamada do driver falhou (valor de retorno E_NOT_OK) ou um erro foi detectado no modo de desenvolvimento (Development Mode) [SWS_FrIf_05017].

Interpretação: A detecção de erros no Development Mode provavelmente ocorre por meio do módulo Default Error Tracer (DET), embora nenhum ID de erro específico ou verificações estejam documentados no excerto da especificação. Pergunta Q-5dffd71d66731cc9 (aberta)

Simultaneidade e restrições

Em relação à reentrância, FrIf_AllowColdstart não é reentrante para valores idênticos de FrIf_CtrlIdx, mas pode ser chamado em paralelo para diferentes índices de controladores [SWS_FrIf_05017]. Os chamadores devem, portanto, assegurar que chamadas simultâneas para o mesmo controlador sejam sincronizadas. A interface é disponibilizada por meio do cabeçalho FrIf.h [SWS_FrIf_05017].

Esta nota de uso foi gerada por uma IA e baseia-se nos dados de especificação do AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função FrIf_Transmit [SWS_FrIf_05033] 📄 PDF

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

Requests transmission of a PDU.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9cb8bddfea7e Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrIf_Transmit solicita a transmissão de uma PDU através da interface FlexRay [SWS_FrIf_05033]. Ela recebe o ID da PDU a ser transmitida (TxPduId), bem como um ponteiro para a estrutura PduInfoPtr, que fornece o comprimento da PDU, ponteiros de dados e metadados [SWS_FrIf_05033].

Em relação à concorrência e reentrância, FrIf_Transmit é reentrante para IDs de PDU diferentes, porém não é reentrante para o mesmo ID de PDU [SWS_FrIf_05033]. A chamada retorna E_OK assim que a solicitação de transmissão for aceita; caso contrário, retorna E_NOT_OK [SWS_FrIf_05033].

Uma verificação de erro específica ocorre para PDUs imediatas (Immediate PDUs), caso comprimentos dinâmicos de L-SDU estejam desativados para FALSE por meio do parâmetro de configuração FrIfAllowDynamicLSduLength [SWS_FrIf_05757]:

  • O comprimento passado em PduInfoPtr é verificado contra o comprimento de PDU estaticamente configurado [SWS_FrIf_05757].
  • Se a indicação de comprimento não coincidir, FrIf_Transmit aborta a transmissão da Immediate PDU e retorna E_NOT_OK [SWS_FrIf_05757].
  • Se a detecção de desenvolvimento (FrIfDevErrorDetect == ON) estiver ativa, a função reporta o erro de desenvolvimento FRIF_E_INV_PDULENGTH através de Det_ReportError ao módulo DET [SWS_FrIf_05757].

Este texto foi gerado por uma IA com base na especificação R20-11.

Guia do implementador em breve (complexidade I2)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e732fae6663a Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A interface síncrona FrIf_SetTransceiverMode com o Service-ID 0x13 atua no FlexRay Interface como wrapper para a função de driver FrTrcv_SetTransceiverMode() do driver do transceptor FlexRay e está disponível através do arquivo de cabeçalho FrIf.h [SWS_FrIf_05034]. Ela possibilita que camadas superiores configurem o modo de operação de um transceptor para um determinado controlador e canal FlexRay [SWS_FrIf_05034].

Durante a chamada, três parâmetros devem ser passados: o índice do controlador FrIf_CtrlIdx para endereçar o FlexRay Communication Controller, o índice do canal FrIf_ChnlIdx para determinar o canal FlexRay no escopo de validade do controlador, bem como o modo de transceiver desejado FrIf_TrcvMode do tipo FrTrcv_TrcvModeType [SWS_FrIf_05034]. Não existem parâmetros de entrada/saída nem de saída [SWS_FrIf_05034]. Para o parâmetro FrIf_ChnlIdx aplica-se a exigência vinculativa de que o valor de enumeração FR_CHANNEL_AB não deve de forma alguma ser utilizado [SWS_FrIf_05034].

A função é especificada como reentrante e encaminha a mudança de modo de forma síncrona ao driver do transceiver [SWS_FrIf_05034]. Como resultado, ela retorna o status Std_ReturnType: informa E_OK se a chamada do serviço de API no driver do transceiver tiver retornado E_OK com sucesso; se essa chamada do driver falhar e retornar E_NOT_OK, também será retornado E_NOT_OK [SWS_FrIf_05034].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I2)

função 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.

função 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.

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 983ace12320e Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrIf_ClearTransceiverWakeup (ID de serviço 0x18) atua como um wrapper dentro da interface FlexRay e encapsula a chamada da função de API FrTrcv_ClearTransceiverWakeup() do driver do transceptor FlexRay [SWS_FrIf_05039]. A interface está disponível por meio do arquivo de cabeçalho FrIf.h [SWS_FrIf_05039].

Ao ser chamada, a função espera exatamente dois parâmetros de entrada [SWS_FrIf_05039]:

  • FrIf_CtrlIdx: Índice do FlexRay Communication Controller a ser endereçado [SWS_FrIf_05039].
  • FrIf_ChnlIdx: Índice do canal FlexRay a ser acessado no escopo do controlador FrIf_CtrlIdx [SWS_FrIf_05039].

Outros parâmetros (inout ou out) não estão definidos para a função [SWS_FrIf_05039].

Em relação à concorrência e condições de contorno, a função é classificada como reentrante [SWS_FrIf_05039]. Como restrição funcional essencial, a especificação determina que o valor de enumeração FR_CHANNEL_AB não deve ser utilizado para o parâmetro FrIf_ChnlIdx [SWS_FrIf_05039].

O resultado da operação é retornado de forma síncrona como Std_ReturnType e reflete diretamente o resultado do serviço de driver [SWS_FrIf_05039]:

  • E_OK: O serviço de API do driver do transceptor FlexRay foi executado com sucesso e retornou E_OK [SWS_FrIf_05039].
  • E_NOT_OK: A chamada do serviço de driver falhou e reportou E_NOT_OK [SWS_FrIf_05039].

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função 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() .

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: aaee20f9db6d Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_CancelAbsoluteTimer serve para cancelar de forma síncrona um temporizador absoluto configurado em um FlexRay Communication Controller (CC) [SWS_FrIf_05023]. Ela funciona como um wrapper em torno da função de driver correspondente Fr_CancelAbsoluteTimer() do FlexRay Driver e está disponível por meio do cabeçalho FrIf.h [SWS_FrIf_05023].

Parâmetros e valores de retorno

Na chamada, são transmitidos dois parâmetros de entrada [SWS_FrIf_05023]:

  • FrIf_CtrlIdx: Índice do controlador FlexRay a endereçar.
  • FrIf_AbsTimerIdx: índice do temporizador absoluto a ser cancelado.

A função retorna um status do tipo Std_ReturnType [SWS_FrIf_05023]:

  • E_OK: a chamada subjacente da API do FlexRay Driver foi concluída com sucesso com E_OK [SWS_FrIf_05023].
  • E_NOT_OK: a chamada da API do driver falhou (retorno E_NOT_OK) ou um erro foi detectado no modo de desenvolvimento (Development Mode) [SWS_FrIf_05023].

Simultaneidade e restrições

A execução ocorre de forma síncrona com o Service ID 0x1b [SWS_FrIf_05023]. Em relação à reentrância, o serviço é reentrante para diferentes FlexRay CCs, mas não pode ser chamado concorrentemente para o mesmo FlexRay CC [SWS_FrIf_05023].

Este texto foi gerado por uma IA com base na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função 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().

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6362ca64b166 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_DisableAbsoluteTimerIRQ é parte do módulo FlexRay Interface e é disponibilizada por meio do arquivo de cabeçalho FrIf.h [SWS_FrIf_05031]. Ela serve como wrapper síncrono para a função Fr_DisableAbsoluteTimerIRQ() da API do FlexRay Driver e encaminha a requisição de desativação da geração de interrupção do temporizador absoluto endereçado para o nível do driver [SWS_FrIf_05031].

Contexto de chamada e parâmetros

A chamada ocorre de forma síncrona utilizando o Service ID 0x23 [SWS_FrIf_05031]. A interface não possui parâmetros de entrada/saída ou puramente de saída, mas exige dois parâmetros de entrada obrigatórios [SWS_FrIf_05031]:

  • FrIf_CtrlIdx: índice do FlexRay Communication Controller (CC) a ser acessado [SWS_FrIf_05031].
  • FrIf_AbsTimerIdx: índice do temporizador absoluto a ser configurado [SWS_FrIf_05031].

Valores de retorno e tratamento de erros

A função retorna o status para o chamador por meio do tipo de retorno Std_ReturnType [SWS_FrIf_05031]:

  • E_OK: sinaliza que a chamada do serviço de API do FlexRay Driver foi bem-sucedida e retornou E_OK [SWS_FrIf_05031].
  • E_NOT_OK: indica que o serviço de API do FlexRay Driver retornou E_NOT_OK ou que foi detectado um erro no modo de desenvolvimento (Development Mode) [SWS_FrIf_05031].

Concorrência e reentrância

De acordo com as diretrizes de reentrância, FrIf_DisableAbsoluteTimerIRQ não é reentrante para o mesmo FlexRay Communication Controller, mas é reentrante para diferentes FlexRay CCs [SWS_FrIf_05031]. Chamadas para a mesma instância de controlador não devem, portanto, ocorrer concorrentemente a partir de contextos diferentes sem sincronização.

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

função FrIf_AllSlots [SWS_FrIf_05020] 📄 PDF

Std_ReturnType FrIf_AllSlots (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ All Slots

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e0c30b766f1b Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A interface síncrona FrIf_AllSlots serve, dentro do FlexRay Interface, como wrapper para a chamada da função de driver subjacente Fr_AllSlots do FlexRay Driver [SWS_FrIf_05020]. A função é disponibilizada por meio do arquivo de cabeçalho FrIf.h e possui o Service ID 0x33 [SWS_FrIf_05020]. Como único parâmetro de passagem, espera-se FrIf_CtrlIdx, o qual define o índice lógico do FlexRay Communication Controller a ser acessado [SWS_FrIf_05020]. Parâmetros de entrada e saída (inout/out) não estão previstos para este serviço [SWS_FrIf_05020].

Como valor de retorno, a função fornece o estado Std_ReturnType com os seguintes significados [SWS_FrIf_05020]:

  • E_OK: a chamada da API do driver Fr_AllSlots foi bem-sucedida e retornou E_OK [SWS_FrIf_05020].
  • E_NOT_OK: a chamada do FlexRay Driver falhou ou retornou E_NOT_OK, ou um erro foi detectado durante a execução em modo de desenvolvimento [SWS_FrIf_05020].

Em relação ao comportamento em tempo de execução e à concorrência, FrIf_AllSlots está especificado como não reentrante (non reentrant) [SWS_FrIf_05020]. A instância chamadora deve, portanto, garantir que chamadas simultâneas ou sobrepostas para o controlador afetado estejam excluídas. Interpretação: Provavelmente, a chamada deve ocorrer a partir de um contexto de tarefa protegido, pois a interface não disponibiliza um gerenciamento próprio de reentrância em caso de acesso paralelo. Pergunta Q-e4ce542c60b470c8 (aberta)

Este texto foi gerado por uma IA; o padrão AUTOSAR é a referência determinante.

Guia do implementador em breve (complexidade I1)

função 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.

função 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.

função 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.

função 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.

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 93c4556124a6 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona FrIf_CancelTransmit solicita o cancelamento de uma transmissão de PDU em andamento em um módulo de comunicação subjacente [SWS_FrIf_05070]. Como parâmetro de entrada, é passado TxPduId, que identifica a PDU a ser cancelada. A execução ocorre de forma síncrona e fornece um valor de retorno do tipo Std_ReturnType [SWS_FrIf_05070]:

  • E_OK: O cancelamento da transmissão foi executado com sucesso pelo módulo de destino.
  • E_NOT_OK: O cancelamento foi rejeitado pelo módulo de destino.

Simultaneidade e restrições

Em relação à concorrência, FrIf_CancelTransmit é reentrante para diferentes IDs de PDU, mas não reentrante para o mesmo TxPduId [SWS_FrIf_05070]. Em chamadas a partir de contextos paralelos para o mesmo ID de PDU, uma sincronização externa provavelmente deve ser necessária por parte do chamador para evitar race conditions. Pergunta Q-38e799ac1564f60f (aberta)

Tratamento de erros e integração

Códigos de erro específicos de DET ou DEM não estão definidos na interface; a falha de um cancelamento é sinalizada diretamente por meio do valor de retorno E_NOT_OK [SWS_FrIf_05070]. O serviço possui o ID de serviço 0x4a e é disponibilizado por meio do arquivo de cabeçalho FrIf.h [SWS_FrIf_05070].

Esta nota de utilização foi gerada automaticamente com base na especificação.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6dcfcbdfc95d Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_DisableLPdu serve como wrapper para a função de driver Fr_DisableLPdu do driver FlexRay e desativa o recurso de hardware subjacente de uma L-PDU para a transmissão ou a recepção [SWS_FrIf_05710].

Chamada e parâmetros

A chamada de FrIf_DisableLPdu ocorre de forma síncrona através da interface FrIf.h com o service ID 0x28 [SWS_FrIf_05710]. A função espera dois parâmetros de entrada:

  • FrIf_CtrlIdx: índice do FlexRay Communication Controller no contexto da FlexRay Interface [SWS_FrIf_05710].
  • FrIf_LPduIdx: índice exclusivo para a identificação do frame FlexRay afetado [SWS_FrIf_05710].

Valores de retorno e tratamento de erros

A função retorna como resultado um status do tipo Std_ReturnType [SWS_FrIf_05710]:

Simultaneidade e restrições

Em relação ao comportamento de concorrência, FrIf_DisableLPdu é especificada como não reentrante para o mesmo dispositivo (Non Reentrant for the same device) [SWS_FrIf_05710]. Chamadas paralelas para o mesmo controlador ou para o mesmo dispositivo devem, portanto, ser evitadas ou sincronizadas pelo chamador.

Este texto foi gerado automaticamente e baseia-se exclusivamente nas informações da especificação.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e8dfbb0733ab Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Como wrapper síncrono e reentrante, a função FrIf_EnableTransceiverBranch encapsula a chamada de API FrTrcv_EnableTransceiverBranch do driver de transceptor FlexRay subjacente [SWS_FrIf_05085]. Através desta interface, uma ramificação específica de um transceptor, por exemplo no contexto de uma estrela ativa, é ativada de forma direcionada [SWS_FrIf_05085]. A declaração da função e os tipos associados são disponibilizados através do arquivo de cabeçalho FrIf.h [SWS_FrIf_05085].

Parâmetros e condições de chamada

Na chamada, três parâmetros de entrada devem ser passados [SWS_FrIf_05085]:

  • FrIf_CtrlIdx: Endereça o índice do respectivo FlexRay Communication Controller [SWS_FrIf_05085].
  • FrIf_ChnlIdx: Especifica o canal FlexRay dentro do escopo de validade do controlador FrIf_CtrlIdx [SWS_FrIf_05085]. Aplica-se aqui a restrição obrigatória de que o valor enum FR_CHANNEL_AB não deve ser utilizado [SWS_FrIf_05085].
  • FrIf_BranchIdx: Determina, através de um índice baseado em zero, a ramificação concreta do transceptor à qual a ativação é aplicada [SWS_FrIf_05085].

Valores de retorno

A função retorna um valor de status do tipo Std_ReturnType, que mapeia diretamente o resultado da chamada de driver encaminhada [SWS_FrIf_05085]:

  • E_OK: A chamada do serviço de driver FrTrcv_EnableTransceiverBranch foi bem-sucedida e reportou E_OK de volta [SWS_FrIf_05085].
  • E_NOT_OK: A chamada do serviço de driver reportou E_NOT_OK [SWS_FrIf_05085].

Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9edf0f22a2a3 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante FrIf_DisableTransceiverBranch encapsula, como função wrapper, o serviço FrTrcv_DisableTransceiverBranch do driver do transceptor FlexRay [SWS_FrIf_05028]. Ela é disponibilizada por meio do arquivo de cabeçalho FrIf.h, possui o ID de serviço 0x37 e destina-se a desativar pontualmente uma ramificação específica de um transceptor estrela ativo [SWS_FrIf_05028].

Na chamada, devem ser passados três parâmetros de entrada:

  • FrIf_CtrlIdx: Índice do controlador FlexRay a ser endereçado [SWS_FrIf_05028].
  • FrIf_ChnlIdx: Canal FlexRay no escopo do controlador. Aplica-se aqui a exigência obrigatória de que o valor de enum FR_CHANNEL_AB não deve ser utilizado [SWS_FrIf_05028].
  • FrIf_BranchIdx: Índice baseado em zero que identifica a respectiva ramificação do transceptor sobre a qual a operação deve ser aplicada [SWS_FrIf_05028].

Como valor de retorno, a interface retorna um status do tipo Std_ReturnType. Ela retorna E_OK se a chamada ao driver do transceptor foi bem-sucedida, e E_NOT_OK caso o serviço de driver tenha reportado E_NOT_OK [SWS_FrIf_05028]. Mensagens de erro específicas de DET ou DEM não estão documentadas no escopo da especificação; uma falha provavelmente resulta diretamente do comportamento do driver subjacente. Pergunta Q-52d5e5fedd147532 (aberta)

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6127b6f4417a Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrIf_ReconfigLPdu serve para a reconfiguração de uma L-PDU na FlexRay Interface (FrIf) e encaminha a chamada diretamente para a interface de driver Fr_ReconfigLPdu do driver FlexRay [SWS_FrIf_05048]. A interface é disponibilizada através do cabeçalho FrIf.h [SWS_FrIf_05048].

Parâmetros e restrições de configuração

  • FrIf_CtrlIdx: Endereça o índice do controlador de comunicação FlexRay dentro do driver FlexRay [SWS_FrIf_05048].
  • FrIf_LPduIdx: Determina o índice exclusivo para a identificação do frame FlexRay a ser configurado [SWS_FrIf_05048].
  • FrIf_FrameId, FrIf_CycleRepetition, FrIf_CycleOffset: Definem o novo ID de frame FlexRay, bem como a repetição e o deslocamento do mecanismo de filtro de ciclo da L-PDU [SWS_FrIf_05048].
  • FrIf_ChnlIdx: Determina o canal FlexRay do tipo Fr_ChannelType [SWS_FrIf_05048]. Aqui é estritamente estipulado que o valor enum FR_CHANNEL_AB não deve ser utilizado [SWS_FrIf_05048].
  • FrIf_PayloadLength e FrIf_HeaderCRC: Definem o comprimento dos dados úteis em bytes, bem como o CRC de cabeçalho associado, para os quais a L-PDU deve ser ajustada [SWS_FrIf_05048].

Valores de retorno e contexto de execução

O valor de retorno do tipo Std_ReturnType indica o resultado da reconfiguração: E_OK sinaliza a realização bem-sucedida da chamada de API, enquanto E_NOT_OK indica uma interrupção por erro [SWS_FrIf_05048].

A função é síncrona e especificada como não reentrante (Non Reentrant) [SWS_FrIf_05048]. Consequentemente, não deve ser chamada concorrentemente.

Esta nota de uso baseia-se na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função 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().

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a9635a600f61 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função FrIf_ReadCCConfig representa um serviço síncrono da FlexRay Interface com o service ID 0x3b e está declarada através do cabeçalho FrIf.h [SWS_FrIf_05313]. Sua tarefa primária consiste em atuar como wrapper chamando a função de driver Fr_ReadCCConfig() do driver FlexRay subjacente para ler parâmetros de configuração de um controlador [SWS_FrIf_05313].

A interface aguarda três parâmetros na chamada [SWS_FrIf_05313]:

  • FrIf_CtrlIdx (entrada): O índice numérico do controlador de comunicação (CC) FlexRay a ser acessado.
  • FrIf_ConfigParamIdx (entrada): O índice do parâmetro de configuração específico cujo valor deve ser consultado.
  • FrIf_ConfigParamValuePtr (saída): Um ponteiro para a posição de memória na qual o valor de configuração de 32 bits lido é armazenado.

O valor de retorno do tipo Std_ReturnType sinaliza o resultado da consulta [SWS_FrIf_05313]:

  • E_OK: A chamada da API de driver Fr_ReadCCConfig() foi executada com sucesso e retornou E_OK.
  • E_NOT_OK: O driver FlexRay reportou E_NOT_OK ou foi detectado um erro durante a execução no modo de desenvolvimento (Development Mode).

Em relação à concorrência e ao ambiente de execução, FrIf_ReadCCConfig é não reentrante para o mesmo controlador FlexRay, porém reentrante para controladores diferentes [SWS_FrIf_05313]. Em acessos ao mesmo controlador, o chamador deve, portanto, garantir uma sincronização adequada. Um erro detectado no modo de desenvolvimento provavelmente deve ser encaminhado ao Default Error Tracer (DET). Pergunta Q-bfe56460515de4de (aberta)

Esta nota de uso foi gerada por uma IA e baseia-se exclusivamente nos dados de especificação do AUTOSAR Classic Release R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 64884bdfc093 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função síncrona FrIf_EnableBusMirroring comuta o espelhamento de barramento para todos os controladores FlexRay conectados ao cluster FlexRay fornecido [SWS_FrIf_05726]. O respectivo cluster é endereçado por meio do parâmetro FrIf_ClstIdx. O parâmetro booleano FrIf_MirroringActive determina o modo: com a passagem de TRUE, a interface Mirror_ReportFlexRayFrame é chamada para cada frame recebido ou enviado nos controladores; com FALSE, o encaminhamento dos frames para o módulo Mirror é desativado [SWS_FrIf_05726].

Valores de retorno e tratamento de erros

A chamada da função retorna um status do tipo Std_ReturnType [SWS_FrIf_05726]:

  • E_OK: O modo de espelhamento para o cluster especificado foi atualizado com sucesso [SWS_FrIf_05726].
  • E_NOT_OK: A comutação foi rejeitada se a função de espelhamento estiver globalmente desativada (parâmetro de configuração FrIfBusMirroringSupport) ou se houver um índice inválido [SWS_FrIf_05726]. Interpretação: A indicação de especificação FrIf_CtrlIdx em E_NOT_OK provavelmente se refere, apesar da designação divergente, à verificação do índice de cluster FrIf_ClstIdx ou dos controladores atribuídos. Pergunta Q-9daba2ff2b1a3ff1 (aberta)

Simultaneidade e integração

A função está declarada como reentrante e possui o ID de serviço 0x4b; ela é disponibilizada por meio do arquivo de cabeçalho FrIf.h [SWS_FrIf_05726]. Os chamadores devem observar que a execução ocorre de forma síncrona. Canais de erro adicionais via DET ou DEM não estão listados para este serviço.

Este texto foi gerado por uma IA; prevalece a especificação AUTOSAR.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 09a9e5676d66 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função FrIf_CheckWakeupByTransceiver (Service ID 0x39) funciona no FlexRay Interface como wrapper síncrono para a função FrTrcv_CheckWakeupByTransceiver() do driver de transceptor FlexRay [SWS_FrIf_05041]. Ela é disponibilizada por meio do cabeçalho FrIf.h e não possui valor de retorno [SWS_FrIf_05041].

Para o endereçamento da respectiva instância de hardware, a interface exige dois parâmetros obrigatórios [SWS_FrIf_05041]:

  • FrIf_CtrlIdx (parâmetro de entrada, uint8): índice do FlexRay Communication Controller a ser endereçado [SWS_FrIf_05041].
  • FrIf_ChnlIdx (parâmetro de entrada, Fr_ChannelType): índice do canal FlexRay a ser acessado dentro do escopo de validade do controlador especificado FrIf_CtrlIdx [SWS_FrIf_05041].

Simultaneidade e restrições

A especificação classifica a interface como reentrante, de modo que chamadas síncronas podem ser emitidas concorrentemente [SWS_FrIf_05041].

Existe uma restrição estrita de aplicação para o parâmetro de canal FrIf_ChnlIdx: o valor de enumeração FR_CHANNEL_AB não pode ser transmitido [SWS_FrIf_05041]. Interpretação: Isso provavelmente significa que o driver de transceptor subjacente não suporta uma verificação combinada de wakeup de ambos os canais em uma única chamada e que sistemas com dois canais FlexRay devem, em vez disso, ser verificados sequencialmente ou separadamente por canal. Pergunta Q-a30cf39f0d3ca295 (aberta)

Este texto foi elaborado por uma IA e baseia-se no AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função <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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 926106ed5433 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de callback <User_RxIndication> serve para sinalizar uma PDU recebida a partir da camada de interface de comunicação subjacente [SWS_FrIf_05045]. Interpretação: O identificador provavelmente representa um callback configurável de uma camada superior que é notificado na chegada de dados FlexRay. Pergunta Q-a9037bc7502dd9ea (aberta)

Utilização e parâmetros

A execução ocorre de forma síncrona sem valor de retorno (void) [SWS_FrIf_05045]. Na chamada, são passados dois parâmetros de entrada [SWS_FrIf_05045]:

  • RxPduId (PduIdType): Identificador único da PDU recebida [SWS_FrIf_05045].
  • PduInfoPtr (const PduInfoType*): Ponteiro para uma estrutura com o comprimento da PDU recebida (SduLength), um ponteiro para o buffer com os dados úteis (SduDataPtr), bem como metadados associados [SWS_FrIf_05045].

Simultaneidade e configuração

Em relação à reentrância, a função é reentrante para diferentes IDs de PDU, mas não deve ser chamada de forma reentrante para o mesmo ID de PDU [SWS_FrIf_05045]. A interface está disponível no módulo como configurável ("Available via configurable") [SWS_FrIf_05045]. Códigos de erro específicos, valores de retorno ou notificações ao DET e DEM não estão definidos nas fontes para esta interface [SWS_FrIf_05045].

Este texto foi gerado automaticamente. Todas as informações baseiam-se exclusivamente nos dados de especificação do módulo FrIf.

função <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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: befc612f1e10 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de callback configurável <User_TxConfirmation> é chamada pelo módulo de interface de comunicação subjacente para confirmar a conclusão de um processo de envio de uma PDU [SWS_FrIf_05046]. Ela reporta à camada superior de forma síncrona se a transmissão da respectiva PDU ocorreu com sucesso ou falhou [SWS_FrIf_05046].

A interface não possui valor de retorno (void) e espera dois parâmetros de entrada [SWS_FrIf_05046]:

  • TxPduId (tipo PduIdType): Designa o ID exclusivo da PDU transmitida [SWS_FrIf_05046].
  • result (tipo Std_ReturnType): Indica o resultado da transmissão, onde E_OK confirma a transmissão bem-sucedida e E_NOT_OK reporta a falha na transmissão da PDU [SWS_FrIf_05046].

A função opera de forma síncrona [SWS_FrIf_05046]. Quanto à concorrência, ela é reentrante para diferentes IDs de PDU, mas não é reentrante para o mesmo TxPduId [SWS_FrIf_05046]. Chamadas de confirmação paralelas para IDs de PDU idênticos devem, portanto, ser excluídas.

Códigos de erro específicos além de E_NOT_OK ou mensagens separadas para DET ou DEM não são especificados para esta chamada [SWS_FrIf_05046]. Interpretação: Como a interface é indicada como configurável, o identificador <User_TxConfirmation> provavelmente serve como um placeholder para o nome de função efetivamente configurado na camada superior [SWS_FrIf_05046]. Pergunta Q-f2a08258df49b3ec (aberta)

Este texto foi gerado por uma IA e serve como auxílio à especificação AUTOSAR.

função <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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: fac22c3dab8e Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função de callback síncrona <User_TriggerTransmit> é chamada para solicitar dados de SDU de uma camada superior para transmissão [SWS_FrIf_05047]. Como parâmetros, são passados o identificador TxPduId da SDU a ser enviada e o ponteiro PduInfoPtr do tipo PduInfoType* [SWS_FrIf_05047]. O chamador fornece um buffer de destino por meio de PduInfoPtr->SduDataPtr e especifica em PduInfoPtr->SduLength o tamanho do buffer disponível [SWS_FrIf_05047].

O módulo chamado da camada superior verifica se os dados disponíveis cabem no tamanho de buffer especificado [SWS_FrIf_05047]:

  • Se os dados couberem, o módulo os copia para PduInfoPtr->SduDataPtr, atualiza PduInfoPtr->SduLength para a quantidade de bytes efetivamente copiados e retorna E_OK [SWS_FrIf_05047].
  • Se os dados não couberem, o módulo retorna E_NOT_OK sem alterar PduInfoPtr [SWS_FrIf_05047].

Tratamento de erros e simultaneidade

Em caso de erro (valor de retorno E_NOT_OK), nenhum dado de SDU foi copiado. Nesse caso, PduInfoPtr não deve continuar a ser utilizado, pois pode conter um ponteiro NULL ou referenciar dados inválidos [SWS_FrIf_05047].

A interface é reentrante para diferentes IDs de PDU, mas não é reentrante para o mesmo ID de PDU [SWS_FrIf_05047]. A disponibilidade da função é configurável [SWS_FrIf_05047].

Este texto foi gerado por uma IA. Todas as informações baseiam-se exclusivamente nas especificações da release AUTOSAR R20-11.

função <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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8665c1e85fa1 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função <Free_Op_A> foi concebida como uma operação de comunicação definida pelo usuário na interface FlexRay para suportar recursos específicos de hardware ou adicionais de desempenho do Communication Controller para o aumento do desempenho geral [SWS_FrIf_05316]. A declaração desta interface é disponibilizada por meio do cabeçalho FrIf_Externals.h [SWS_FrIf_05316].

Para a chamada, são prescritos dois parâmetros funcionais de entrada [SWS_FrIf_05316]:

  • FrIf_CtrlIdx (tipo uint8): Identifica como índice o FlexRay Communication Controller concreto a ser acessado [SWS_FrIf_05316].
  • FrIf_LPduIdx (tipo uint16): Serve como índice exclusivo para a identificação do respectivo frame FlexRay [SWS_FrIf_05316].

A operação é executada de forma síncrona e não possui valor de retorno (void); parâmetros de entrada e saída também não estão previstos [SWS_FrIf_05316]. No que diz respeito à concorrência e ao contexto de chamada, a função é reentrante para diferentes valores de FrIf_LPduIdx, mas explicitamente não reentrante no uso do mesmo índice FrIf_LPduIdx [SWS_FrIf_05316].

Códigos de erro específicos e mecanismos para monitoramento de erros por meio do módulo Default Error Tracer (DET) ou Diagnostic Event Manager (DEM) não estão indicados na especificação [SWS_FrIf_05316]. Os componentes chamadores devem, portanto, assegurar antes da execução que não ocorram acessos concorrentes ao mesmo índice de frame [SWS_FrIf_05316].

Esta nota de uso foi criada de forma automatizada com base na especificação AUTOSAR.

função <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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c7b423aeeb3d Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função definida pelo usuário <Free_Op_B> serve para a execução de operações de comunicação específicas do usuário no FlexRay Interface [SWS_FrIf_05317]. Seu propósito é suportar características de desempenho específicas do hardware ou adicionais do FlexRay Communication Controller para aumentar o desempenho da comunicação [SWS_FrIf_05317]. A declaração da função é disponibilizada por meio do arquivo de cabeçalho FrIf_Externals.h [SWS_FrIf_05317].

Chamada e parâmetros

A operação é chamada de forma síncrona e não fornece valor de retorno (void) [SWS_FrIf_05317]. Ela processa dois parâmetros de entrada, enquanto não existem parâmetros de entrada/saída nem de saída [SWS_FrIf_05317]:

  • FrIf_CtrlIdx: índice do FlexRay Communication Controller a ser endereçado (tipo uint8) [SWS_FrIf_05317].
  • FrIf_LPduIdx: índice exclusivo para identificação do respectivo frame FlexRay (tipo uint16) [SWS_FrIf_05317].

Simultaneidade e restrições

Em relação à reentrância, a função é especificada como reentrante para índices de LPdu diferentes (FrIf_LPduIdx), porém explicitamente como não reentrante para o mesmo índice de LPdu [SWS_FrIf_05317]. Os chamadores devem, portanto, assegurar que chamadas simultâneas para a mesma PDU não ocorram.

Interpretação: Como a operação é marcada como definida pelo usuário e alocada em FrIf_Externals.h, a implementação real provavelmente deve ser fornecida de forma específica pelo usuário ou estendendo o driver. Pergunta Q-6668832db63b9906 (aberta)

Este texto foi criado por uma IA. Todas as informações baseiam-se exclusivamente nas especificações do Release R20-11.

função <UL_TxConflictNotification> [SWS_FrIf_91001] 📄 PDF

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

Notification in case a Tx Conflict has been detected.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8333bc6757d5 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função de notificação <UL_ Tx Conflict Notification> é chamada assim que for constatado um conflito de transmissão (Tx Conflict) na interface FlexRay [SWS_FrIf_91001]. A declaração desta interface é disponibilizada por meio do arquivo de cabeçalho Fr If_ Externals.h [SWS_FrIf_91001].

A função não possui valor de retorno e recebe dois parâmetros de entrada [SWS_FrIf_91001]:

  • Fr If_ Ctrl Idx: Identificador do FlexRay Communication Controller endereçado [SWS_FrIf_91001].
  • Fr If_ LPdu Idx: Identificador do frame FlexRay transmitido afetado [SWS_FrIf_91001].

Simultaneidade e restrições

A chamada ocorre com semântica síncrona [SWS_FrIf_91001]. Em relação à concorrência, a execução é reentrante para diferentes índices de Fr If_ LPdu Idx, mas explicitamente não reentrante para o mesmo índice de LPdu [SWS_FrIf_91001]. Na implementação, deve-se, portanto, assegurar que chamadas simultâneas para o mesmo índice de frame sejam evitadas.

Tratamento de erros e interação

A especificação não define mensagens separadas de DET ou DEM nem códigos de erro específicos para esta interface de callback [SWS_FrIf_91001]. Interpretação: A camada superior provavelmente disponibiliza a chamada para poder registrar ou tratar conflitos ocorridos imediatamente no enlace de transmissão FlexRay. Pergunta Q-fc63c251dbc03307 (aberta)

Este texto foi gerado por uma IA e verificado de acordo com diretrizes fixas. As evidências técnicas provêm exclusivamente da especificação.

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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: d7aa755fda7e Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e gama de valores

O tipo de enumeração FrIf_StateType é definido no arquivo de cabeçalho FrIf.h e serve, na FlexRay Interface, para mapear o estado operacional atual de um FlexRay Communication Controller (FlexRay CC) [SWS_FrIf_05755]. Variáveis desse tipo registram se um controlador está pronto para a operação de comunicação e se há sincronização com o cluster FlexRay [SWS_FrIf_05755].

A faixa de valores compreende dois estados definidos [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: O FlexRay CC não está pronto para comunicação e o cluster FlexRay não está sincronizado [SWS_FrIf_05755].
  • FRIF_STATE_ONLINE: O FlexRay CC está pronto para comunicação e o cluster FlexRay está sincronizado [SWS_FrIf_05755].

Integração e condições de contorno

Os estados refletem fases fundamentais de comunicação: enquanto FRIF_STATE_OFFLINE estiver presente, nenhuma comunicação regular de cluster pode ocorrer por meio do controlador, enquanto FRIF_STATE_ONLINE caracteriza a operação sincronizada de envio e recepção [SWS_FrIf_05755]. Como o excerto da especificação não menciona outras assinaturas de API ou mensagens de erro, o tipo provavelmente é utilizado principalmente em consultas de status ou transições de estado da FlexRay Interface. Pergunta Q-071cd300dcaa0a3b (aberta)

Este texto foi gerado por uma IA e baseia-se na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 17a8791d0e85 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo de enumeração FrIf_StateTransitionType é disponibilizado por meio do arquivo de cabeçalho FrIf.h e serve, de acordo com [SWS_FrIf_05303], para a representação ou solicitação de transições de estado para um FlexRay Communication Controller (FlexRay CC).

Utilização e gama de valores

Variáveis desse tipo assumem valores para solicitar mudanças de estado direcionadas de um FlexRay CC [SWS_FrIf_05303]. A faixa de valores abrange os seguintes literais:

  • FRIF_GOTO_OFFLINE: Literal para solicitar uma transição para o estado FRIF_STATE_OFFLINE [SWS_FrIf_05303].
  • FRIF_GOTO_ONLINE: Literal para solicitar uma transição para o estado FRIF_STATE_ONLINE [SWS_FrIf_05303].

Contexto e interação

Embora a descrição formal do tipo fale da representação do estado de um FlexRay CC, os literais definidos sugerem a interpretação de que este tipo de enumeração serve primariamente como parâmetro de controle para a solicitação de mudanças de estado (offline ou online) [SWS_FrIf_05303]. Como o payload não lista outras interfaces, diretrizes de reentrância ou códigos de erro para este tipo, aplicam-se as regras gerais de inclusão por meio do arquivo de cabeçalho FrIf.h.

Este texto foi gerado por uma IA. Ele baseia-se no AUTOSAR R20-11 e no requisito [SWS_FrIf_05303].

Guia do implementador em breve (complexidade 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#2621c608
Content hash
2621c608
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayInterface.pdf#nameddest=SWS_FrIf_05003

Inicialização e estado

Returns the version information of this module.

void FrIf_GetVersionInfo (Std_VersionInfoType* FrIf_VersionInfoPtr);
FrIf_Init função

Initializes the Flex Ray Interface.

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

Serviços · 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 função

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

Serviços · 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 função

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

Serviços · 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);

Serviços · 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);

Serviços · Outros

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 função

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 função

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 função

Requests transmission of a PDU.

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

Callouts e interfaces esperadas

<Free_Op_A> função

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> função

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.