DEENESPTFRRUARHIKOZHNL

FlexRay Interface (FrIf)

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

모듈 가이드AI 생성

FlexRay 드라이버와 트랜시버를 캡슐화하고 클러스터별로 상태, PDU 트래픽 및 Job List 실행을 제어합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: c9748455d0d4 출처 열린 질문 (4)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

FlexRay 드라이버와 트랜시버를 캡슐화하고 클러스터별로 상태, PDU 트래픽 및 Job List 실행을 제어합니다.

FlexRay Interface는 통일된 컨트롤러 인덱스 뒤에 FlexRay 및 트랜시버 드라이버를 캡슐화하고, 상위 계층과 버스 간에 PDU를 중계합니다. 클러스터별로 FRIF_STATE_OFFLINE 및 FRIF_STATE_ONLINE 상태를 갖는 상태 머신을 유지하며, FlexRay State Manager가 이를 FrIf_SetState을(를) 통해 전환합니다 [SWS_FrIf_05174]. 송신 및 수신은 클러스터의 Job List Execution 내에서 시간 기반으로 수행되며, 온라인 상태(SWS FrIf 37쪽)에서만 이루어집니다. 시작, 정지 및 웨이크업 서비스는 비동기식으로 동작합니다. 따라서 호출자는 FrIf_GetPOCStatus을(를) 통해 도달한 POC 상태를 확인합니다.

FlexRay Interface(FrIf)는 상위 통신 모듈과 드라이버 Fr 및 FrTrcv 사이에 위치합니다. 핵심 기능을 위해 Fr_ControllerInit, Fr_GetPOCStatus 및 Fr_ReceiveRxLPdu와(과) 같은 드라이버 서비스가 필요합니다 [SWS_FrIf_05043]. 대부분의 제어 서비스는 드라이버 서비스를 캡슐화합니다. 즉, 정적 구성을 기반으로 FrIf_CtrlIdx을(를) 튜플(FlexRay Driver | Fr_CtrlIdx)로 변환하고 드라이버의 결과를 반환합니다(SWS FrIf 55쪽). 시작, 정지, 콜드스타트 활성화 및 웨이크업은 비동기식으로 동작합니다 [SWS_FrIf_05005]. 따라서 호출자는 실제로 도달한 상태를 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_* (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

컨텍스트 다이어그램: FrIf는 한편으로는 FrSM, PDU 사용자, 시간 및 미러링 서비스와, 다른 한편으로는 드라이버 Fr 및 FrTrcv 사이를 중계합니다. 출처: [SWS_FrIf_05043], SWS FrSM 22쪽

FrIf는 클러스터별로 FRIF_STATE_OFFLINE 및 FRIF_STATE_ONLINE 상태를 갖는 상태 머신을 유지합니다 [SWS_FrIf_05755]. FrIf_Init()은(는) 각 클러스터를 Offline으로 설정합니다. 환경은 FrIf_SetState 및 FRIF_GOTO_ONLINE 또는 FRIF_GOTO_OFFLINE을(를) 사용하여 전이를 요청합니다 [SWS_FrIf_05174]. 수신, 송신 및 송신 확인은 온라인 상태에서만 실행됩니다. Offline으로 전환될 때 상위 계층은 대기 중인 확인에 대해 E_NOT_OK을(를) 수신합니다 [SWS_FrIf_05501].

frif_zustand start off FRIF_STATE_OFFLINE 통신 서비스 없음 (클러스터 동기화되지 않음) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: 전이 없음 on FRIF_STATE_ONLINE 수신, 전송, Tx 확인 (클러스터 동기화됨) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) TxConfCounter > 0인 PDU당: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: 전이 없음

상태 다이어그램: 각 클러스터는 오프라인에서 시작하며 FrIf_SetState을(를) 통한 요청 시에만 전환됩니다. 출처: [SWS_FrIf_05303], SWS FrIf 25쪽

시퀀스는 FrSM이 제어합니다. 시작 시 트랜시버를 Normal로 전환하고, 통신을 시작하며, 필요한 경우 콜드스타트를 활성화합니다. 그런 다음 FR_POCSTATE_NORMAL_ACTIVE에 도달할 때까지 POC 상태를 쿼리하고, 그 이후에야 클러스터를 온라인으로 설정합니다(SWS FrSM 50쪽). 종료는 2단계로 진행됩니다. 먼저 Offline 및 정지, 그 후 컨트롤러 재초기화 및 트랜시버 Standby입니다(SWS FrSM 58쪽).

FrIf_Transmit은(는) 초기에 송신 요청의 개수만 [SWS_FrIf_05033]합니다. 실제 전송은 클러스터별 Job List Execution에서 수행됩니다 [SWS_FrIf_05040]. FrIf는 그곳에서 TriggerTransmit을 통해 데이터를 가져오고, 전송을 확인하며, 수신을 통지합니다. 오류는 세 가지 범주로 보고됩니다: DET에 보고하는 개발 오류 [SWS_FrIf_05145], 런타임 오류 FRIF_E_JLE_SYNC [SWS_FrIf_05432], DEM에 채널별로 보고하는 프로덕션 오류 [SWS_FrIf_05146]입니다.

FlexRay 스택에서의 역할 및 시스템 경계

FlexRay Interface(FrIf)는 상위 통신 모듈과 하드웨어에 가까운 드라이버 사이에 위치합니다. 핵심 기능을 위해 FlexRay 드라이버의 서비스가 필요합니다. 여기에는 Fr_ControllerInit, Fr_GetPOCStatus, Fr_ReceiveRxLPdu, Fr_CheckTxLPduStatus 및 Det_ReportRuntimeError이(가) 포함됩니다 [SWS_FrIf_05043]. 선택적 서비스로는 Fr_AllSlots, Fr_CancelTxLPdu, Dem_SetEventStatus 등이 있습니다 [SWS_FrIf_05044]. 헤더 구조는 Fr.h, FrTrcv.h, PduR_FrIf.h, FrNm_Cbk.h 및 FrTp_Cbk.h의 포함 관계를 보여줍니다(SWS FrIf 18쪽).

라이프사이클은 FlexRay State Manager가 제어합니다. 이는 자신의 기능 요소를 FrIf 호출에 매핑합니다(SWS FrSM 22쪽). PDU 사용자는 구성 가능한 콜백을 통해 연결됩니다: <User_RxIndication>, <User_TxConfirmation> 및 <User_TriggerTransmit> [SWS_FrIf_05045] [SWS_FrIf_05046] [SWS_FrIf_05047]. 허용되는 대상에는 FrTSyn [SWS_FrIf_05434], FrNm 및 FrArTp 등이 있습니다. 유사한 인터페이스를 가진 복합 드라이버(Complex Driver)도 연결될 수 있습니다(SWS FrIf 97쪽). 다른 사용자들은 고유한 역할을 가집니다:

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_* (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

컨텍스트 다이어그램: FrIf는 한편으로는 상태 제어, PDU 사용자, 시간 및 미러링 서비스와, 다른 한편으로는 드라이버 Fr 및 FrTrcv 사이를 중계합니다. 오류는 DET 및 DEM에 보고합니다. 출처: [SWS_FrIf_05043], [SWS_FrIf_05045], SWS FrSM 22쪽, SWS FrIf 18쪽

모든 드라이버를 위한 단일 컨트롤러 인덱스: 래퍼 원칙

대부분의 제어 서비스는 FrIf_CtrlIdx을(를) 통해 통신 컨트롤러(CC)를 어드레싱합니다. FrIf_ControllerInit의 예를 통해 이 패턴을 볼 수 있습니다. 이 서비스는 정적 구성을 기반으로 인덱스를 튜플(FlexRay Driver | Fr_CtrlIdx)(으)로 변환합니다. 그런 다음 확인된 드라이버의 Fr_ControllerInit()을(를) 호출합니다(SWS FrIf 55쪽). 반환값은 드라이버 결과를 반영합니다 [SWS_FrIf_05004]. 동일한 패턴에 따라 다른 서비스들도 해당하는 드라이버 서비스를 캡슐화합니다: 시작, 정지, 중단, 콜드스타트 활성화, 웨이크업, POC 상태 및 글로벌 시간 [SWS_FrIf_05005] [SWS_FrIf_05006] [SWS_FrIf_05007] [SWS_FrIf_05017] [SWS_FrIf_05011] [SWS_FrIf_05014] [SWS_FrIf_05015]. 이는 절대 타이머 서비스 [SWS_FrIf_05021] [SWS_FrIf_05025] [SWS_FrIf_05029]에도 동일하게 적용됩니다.

호출자에게는 동기성이 매우 중요합니다. FrIf_StartCommunication, FrIf_HaltCommunication, FrIf_AllowColdstart 및 FrIf_SendWUP은(는) 비동기식으로 동작합니다 [SWS_FrIf_05005] [SWS_FrIf_05011]. 반면 FrIf_ControllerInit 및 FrIf_AbortCommunication은(는) 동기식으로 동작합니다 [SWS_FrIf_05007]. 비동기식 서비스에서 E_OK은(는) 드라이버 호출이 E_OK을(를) 반환했음만을 의미합니다. 실제로 도달한 POC 상태는 FrSM이 FrIf_GetPOCStatus을(를) 사용해 반복적으로 폴링하여 확인합니다(SWS FrSM 50쪽).

트랜시버 서비스는 추가로 채널 FrIf_ChnlIdx을(를) 어드레싱하며 FlexRay Transceiver Driver를 캡슐화합니다 [SWS_FrIf_05034] [SWS_FrIf_05036] [SWS_FrIf_05039]. 이때 값 FR_CHANNEL_AB은(는) 허용되지 않습니다(SWS FrIf 73쪽). FrIf_GetMacroticksPerCycle 또는 FrIf_GetCycleLength과(와) 같은 쿼리는 드라이버를 호출하지 않고 정적 구성을 읽습니다 [SWS_FrIf_05018] [SWS_FrIf_05239].

클러스터별 상태 머신: FRIF_STATE_OFFLINE 및 FRIF_STATE_ONLINE

FrIf는 FlexRay 클러스터별로 별도의 상태 머신을 유지합니다. FrIf_Init()은(는) 처음에 각 클러스터를 FRIF_STATE_OFFLINE(으)로 설정합니다(SWS FrIf 25쪽). 두 상태의 의미는 다음과 같습니다 [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: CC가 통신 준비 상태가 아니며 클러스터가 동기화되지 않았습니다.
  • FRIF_STATE_ONLINE: CC가 통신 준비 상태이며 클러스터가 동기화되었습니다.

환경은 리터럴 FRIF_GOTO_ONLINE 또는 FRIF_GOTO_OFFLINE을(를) 사용하여 FrIf_SetState(으)로 전이를 요청합니다 [SWS_FrIf_05174] [SWS_FrIf_05303]. 전이는 클러스터가 다른 쪽 상태에 있을 때만 발생합니다(SWS FrIf 25쪽). FrIf_GetState은(는) 재진입 가능(reentrant)하지만 [SWS_FrIf_05170], 반대로 FrIf_SetState은(는) 그렇지 않습니다.

상태는 데이터 트래픽의 발생 여부를 결정합니다. 오프라인 상태에서 FrIf는 통신 서비스를 실행하지 않습니다. 온라인 상태에서는 수신, 송신 및 송신 확인을 실행합니다(SWS FrIf 25쪽). Offline으로 전환할 때 FrIf는 각 PDU를 검사합니다. TxConfCounter > 0인 경우 상위 계층은 <UL>_TxConfirmation(id, E_NOT_OK)을(를) 수신합니다 [SWS_FrIf_05501]. R23-11부터 사양은 추가로 오프라인 상태에서 FrIf_Transmit()이(가) E_NOT_OK을(를) 반환하도록 요구합니다(SWS FrIf 68쪽). 이전 다이어그램에는 FRIF_STATE_HALT을(를) 포함한 4개의 상태가 표시되어 있습니다(SWS FrIf 28쪽). R20-11에서는 FrIf_StateType이(가) 두 가지 값만 가지므로 적용되지 않습니다 [SWS_FrIf_05755].

frif_zustand start off FRIF_STATE_OFFLINE 통신 서비스 없음 (클러스터 동기화되지 않음) start->off (1) FrIf_Init() off->off FRIF_GOTO_OFFLINE: 전이 없음 on FRIF_STATE_ONLINE 수신, 전송, Tx 확인 (클러스터 동기화됨) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) TxConfCounter > 0인 PDU당: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: 전이 없음

상태 다이어그램: 각 클러스터는 오프라인에서 시작하며 FrIf_SetState을(를) 통한 요청 시에만 전환됩니다. Offline으로 전환될 때 대기 중인 송신 확인은 부정적으로 완료됩니다. 출처: [SWS_FrIf_05174], [SWS_FrIf_05303], [SWS_FrIf_05501], SWS FrIf 25쪽

FrSM의 지휘 하에 이루어지는 시작, 웨이크업 및 종료

EcuM은 FrSM_Init 이전에 FrIf_Init(으)로 FrIf를 초기화합니다(SWS FrSM 46쪽). 이때 FrIf_ConfigType에 대한 포인터를 전달합니다 [SWS_FrIf_05003]. 모든 후속 단계는 FrSM이 기능 요소를 통해 제어합니다. 각 요소는 클러스터의 각 컨트롤러에 대해 연관된 FrIf 서비스를 호출합니다(SWS FrSM 22쪽):

  • FE_CONFIG은(는) FrIf_ControllerInit을(를) 호출합니다.
  • FE_START은(는) FrIf_StartCommunication을(를) 호출합니다.
  • FE_ALLOW_COLDSTART은(는) FrIf_AllowColdstart을(를) 호출하지만, FrSMIsColdstartEcu이(가) 설정된 경우에만 호출합니다.
  • FE_WAKEUP은(는) FrIf_SendWUP을(를) 호출합니다.
  • FE_HALT은(는) FrIf_HaltCommunication을(를) 호출합니다.

버스 웨이크업 후의 패시브 시작(passive startup)은 다음 순서로 진행됩니다(SWS FrSM 50쪽):

  1. 트랜시버가 FRTRCV_TRCVMODE_NORMAL(으)로 전환됩니다.
  2. 통신이 시작됩니다.
  3. 콜드스타트 노드는 추가로 콜드스타트를 활성화합니다.
  4. FrSM은 FR_POCSTATE_NORMAL_ACTIVE에 도달할 때까지 POC 상태를 쿼리합니다.
  5. 그 이후에야 FrIf_SetState(…, FRIF_GOTO_ONLINE)이(가) 이어집니다.

액티브 웨이크업 시 2채널 노드는 FrIf_SetWakeupChannel(으)로 웨이크업 채널을 선택합니다 [SWS_FrIf_05010]. FrIf_GetWakeupRxStatus은(는) 웨이크업이 수신된 채널을 비트 인코딩된 형태로 보고합니다 [SWS_FrIf_05102].

클러스터의 패시브 시작 (단일 채널, 버스 웨이크업)ComMSchMFrSMFrIfBswMDemFrSM_RequestComMode(network,COMM_FULL_COMMUNICATION)FrSM_MainFunction_<FrSMCluster.ShortName>()loop클러스터 CC의 모든 CtrlIdx 대상FrIf_GetTransceiverWUReason(CtrlIdx,ChnlIdx, TrcvWUReasonPtr)FRTRCV_WU_BY_BUSFrIf_SetTransceiverMode(CtrlIdx, ChnlIdx,FRTRCV_TRCVMODE_NORMAL)FrIf_StartCommunication(CtrlIdx)BswM_FrSM_CurrentState(FRSM_STARTUP)optFrSMIsColdstartEcu (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:작업 목록이 통신을 실행함Dem_SetEventStatus(FRSM_E_CLUSTER_STARTUP, PASSED)BswM_FrSM_CurrentState(FRSM_ONLINE)ComM_BusSM_ModeIndication(NetworkHandle, COMM_FULL_COM)

시퀀스 다이어그램: 온라인 상태까지의 패시브 시작. FrIf는 개별 서비스만 실행하며, 흐름 제어는 FrSM이 담당합니다. 해석: 시작 전 순서가 단순화되었습니다. 출처: SWS FrSM 50쪽, SWS FrSM 21쪽

종료는 2단계로 진행됩니다. 먼저 FrSM은 FRIF_GOTO_OFFLINE을(를) 사용하여 클러스터를 오프라인으로 설정하고 FrIf_HaltCommunication을(를) 호출합니다. 나중에 컨트롤러를 재초기화하고 트랜시버를 STANDBY 모드로 전환합니다(SWS FrSM 58쪽). 두 단계 사이의 지연 시간은 타이머 t_TrcvStdbyDelay이(가) 결정합니다(SWS FrSM 21쪽).

FullCom에서 NoCom으로의 전이ComMSchMFrSMFrIfBswMFrSM_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: 2단계: t_TrcvStdbyDelay 이후 재초기화 및 대기FrSM_MainFunction_<FrSMCluster.ShortName>()FrIf_GetPOCStatus(CtrlIdx, FrIf_POCStatusPtr)E_OKFrIf_ControllerInit(FrIf_CtrlIdx)FrIf_SetTransceiverMode(FrIf_CtrlIdx,FrIf_ChnlIdx, STANDBY)BswM_FrSM_CurrentState(READY)

시퀀스 다이어그램: FullCom에서 NoCom으로의 전이, 먼저 정지, 그 후 재초기화 및 Standby. 해석: 첫 번째 단계 내의 순서가 단순화되었습니다. 출처: SWS FrSM 58쪽, SWS FrSM 56쪽

PDU 트래픽: 송신 요청 및 Job List Execution

FrIf_Transmit은(는) 동기식이며 서로 다른 TxPduId에 대해 재진입 가능합니다 [SWS_FrIf_05033]. 디커플드 버퍼 액세스(decoupled buffer access) 시 FrIf는 TrigTxCounter에 송신 요청 수만 저장하고 데이터 자체는 저장하지 않습니다(SWS FrIf 38쪽). 고정 길이를 갖는 Immediate PDU의 경우 FrIf는 전달된 길이를 구성과 비교 검증합니다 [SWS_FrIf_05757]. 진행 중인 전송은 FrIf_CancelTransmit(으)로 중단할 수 있습니다 [SWS_FrIf_05070].

실제 버스 통신은 클러스터별로 존재하는 Job List Execution Function FrIf_JobListExec_<FrIfCluster.ShortName>에서 이루어집니다 [SWS_FrIf_05040]. 다이어그램에서 인터럽트 서비스 루틴이 이를 호출합니다(SWS FrIf 102쪽). 이 루틴은 CC의 절대 타이머를 통해 트리거되는 것으로 추정됩니다 [SWS_FrIf_05021]. 질문 Q-d0a286cc1698d9d3 (열림) 주기적인 FrIf_MainFunction_<FrIfCluster.ShortName> [SWS_FrIf_05042]은(는) 클러스터가 온라인인 동안 Job List의 지속적인 실행을 모니터링합니다. 여기에는 (재)동기화도 포함됩니다(SWS FrIf 26쪽).

각 Communication Operation은 FRIF_STATE_ONLINE 상태에서만 실행되며, 그렇지 않으면 무시됩니다(SWS FrIf 37쪽). 주요 작업은 다음과 같이 동작합니다:

  • 디커플드 송신: TrigTxCounter > 0인 각 PDU에 대해 FrIf는 <User_TriggerTransmit>을(를) 통해 데이터를 가져옵니다 [SWS_FrIf_05047]. 그런 다음 프레임을 Fr_TransmitTxLPdu()에 전달합니다. 드라이버가 거부하면 FrIf는 카운터를 이전 상태로 되돌립니다(SWS FrIf 102쪽).
  • TX_CONFIRMATION: 드라이버가 FR_TRANSMITTED을(를) 보고하면 FrIf는 <User_TxConfirmation>을(를) 통해 전송을 확인합니다 [SWS_FrIf_05046].
  • RECEIVE_AND_INDICATE: FrIf는 최대 FrIfRxComOpMaxLoop회 읽고 <User_RxIndication>을(를) 통해 각 수신을 보고합니다 [SWS_FrIf_05045](SWS FrIf 41쪽).

<Free_Op_A>과(와) 같은 하드웨어 고유 작업도 Job List에서 실행됩니다 [SWS_FrIf_05316]. FrIf는 <UL_TxConflictNotification>을(를) 통해 송신 충돌을 보고합니다 [SWS_FrIf_91001].

분리된 버퍼 접근(Decoupled Buffer Access)을 사용한 전송ComPduR (Upper Layer)FrIfInterrupt Service RoutineFrPduR_ComTransmit()FrIf_Transmit(TxPduId, PduInfoPtr)TrigTxCounter 증가(CounterLimit까지, 데이터는 저장하지 않음)E_OKUse Case: 작업 DECOUPLED_TRANSMISSION (FRIF_STATE_ONLINE 전용)FrIf_JobListExec_<FrIfCluster.ShortName>()loop프레임 내 PDU당altTrigTxCounter > 0 또는 FrIfNoneMode == trueTrigTxCounter dekrementierenPduR_<User:Lo>Triggertransmit()Com_TriggerTransmit()copy buffer()E_OKE_OKUpdate-Bit "up-to-date" setzen기타Update-Bit "outdated" setzenoptAlwaysTransmit == TRUE 또는 최소 하나의 PDU가 최신 상태임Fr_TransmitTxLPdu()TxConfCounter 증가;E_NOT_OK 시 카운터 롤백Use Case: Job TX_CONFIRMATIONFrIf_JobListExec_<FrIfCluster.ShortName>()Fr_CheckTxLPduStatus()FR_TRANSMITTEDPduR_<User:Lo>TxConfirmation()Com_TxConfirmation()

시퀀스 다이어그램: 디커플드 버퍼 액세스를 사용한 송신. 요청은 처음에 카운트만 되며, FrIf는 Job List에서 비로소 데이터를 가져옵니다. 최신 버전에서는 이때 LSduR을 통해 라우팅됩니다. 출처: [SWS_FrIf_05033], SWS FrIf 102쪽, SWS PduR 106쪽

frif_joblist start 작업 목록의 작업 만료 FrIf_JobListExec_<FrIfCluster.ShortName>() online CC의 FrIf_State == FRIF_STATE_ONLINE인가? start->online ignore Communication Operation ignorieren online->ignore 아니요 art 통신 작업의 유형은? online->art 예 ende 다음 작업 ignore->ende dtx DECOUPLED_TRANSMISSION: PDU당 TrigTxCounter 검사, <User_TriggerTransmit>, 업데이트 비트, Fr_TransmitTxLPdu() art->dtx txc TX_CONFIRMATION: Fr_CheckTxLPduStatus(); FR_TRANSMITTED 및 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(), 로컬 FrIf 버퍼로 PDU 복사 art->ras free <Free_Op_A> / <Free_Op_B>: hardwarespezifische Operation art->free dtx->ende txc->ende mirr 이 CC에 대해 버스 미러링이 활성화되어 있는가? rai->mirr Frame empfangen ras->mirr Frame empfangen free->ende report Mirror_ReportFlexRayFrame() mirr->report 예 mirr->ende 아니요 report->ende

액티비티 다이어그램: Job List 내 Communication Operation 처리. 클러스터의 상태가 먼저 판단되고, 그 다음 작업 유형이 판단됩니다. 출처: [SWS_FrIf_05040], SWS FrIf 37쪽, SWS FrIf 39쪽

시간 기준, 부가 서비스 및 구성

FrTSyn은 FrIf_GetState이(가) FRIF_STATE_ONLINE 값을 반환할 때만 FrIf_GetGlobalTime을(를) 호출합니다. 그 이후에야 CC가 글로벌 FlexRay 시간에 동기화됩니다(SWS FrTSyn 19쪽). FrIf_GetGlobalTime은(는) Exclusive Area 내에서도 호출될 수 있습니다(SWS FrIf 64쪽). FrNm도 이 서비스를 통해 현재 사이클을 확인합니다(SWS FrNm 38쪽). FrIf_GetNmVector [SWS_FrIf_05016]은(는) FrIfGetNmVectorSupport을(를) 통해 비활성화할 수 있습니다.

FrIf_EnableBusMirroring은(는) 송신되거나 수신된 각 프레임에 대해 Mirror_ReportFlexRayFrame이(가) 호출되는지 여부를 클러스터별로 정의합니다. FrIfBusMirroringSupport이(가) 전역적으로 비활성화된 경우, 이 서비스는 E_NOT_OK을(를) 반환합니다 [SWS_FrIf_05726]. 포스트 빌드(post-build) 구성은 구현에 따라 다르며 FrIf_ConfigType에 대한 포인터를 통해서만 접근할 수 있습니다 [SWS_FrIf_05301]. R22-11 이후의 다이어그램은 그 구조를 보여줍니다: FrIfCtrlIdx 0…31 범위를 갖는 하나 이상의 FrIfController이(가) 존재하며, 각자 최대 2개의 트랜시버를 가집니다(SWS FrIf 139쪽). FrIf_DisableLPdu [SWS_FrIf_05710]과(와) 같은 선택적 서비스는 사전 컴파일(pre-compile) 스위치를 통해 활성화되며, 여기서는 FrIfDisableLPduSupport을(를) 통해 이루어집니다(SWS FrIf 84쪽).

오류가 발생한 경우의 동작

FrIfDevErrorDetect이(가) ON으로 설정된 경우, 서비스는 개발 오류를 Det_ReportError에 보고합니다. 코드는 FRIF_E_PARAM_POINTER(0x01)부터 FRIF_E_INV_FRIF_STATE(0x0A)까지이며 FRIF_E_INV_CTRL_IDX 및 FRIF_E_UNINIT 등을 포함합니다 [SWS_FrIf_05145]. 주요 사례는 다음과 같습니다:

  • 잘못된 FrIf_CtrlIdx: 래퍼는 FRIF_E_INV_CTRL_IDX을(를) 보고하고 E_NOT_OK을(를) 반환합니다(SWS FrIf 55쪽).
  • FrIf_SetState에서의 잘못된 전이: 서비스가 FRIF_E_INV_FRIF_STATE을(를) 보고합니다 [SWS_FrIf_05037].
  • Immediate PDU의 잘못된 길이: FrIf_Transmit()이(가) E_NOT_OK을(를) 반환하고 FRIF_E_INV_PDULENGTH을(를) 보고합니다 [SWS_FrIf_05757].
frif_wrapper aufruf Aufruf FrIf_<Dienst>(FrIf_CtrlIdx, …) det FrIfDevErrorDetect == ON 및 초기화되지 않음 / 매개변수 유효하지 않음? aufruf->det melden Det_ReportError(FRIF_E_UNINIT, FRIF_E_INV_CTRL_IDX, FRIF_E_INV_CHNL_IDX, …) det->melden 예 uebersetzen 정적 구성을 통해 FrIf_CtrlIdx를 (FlexRay Driver | Fr_CtrlIdx)로 변환 det->uebersetzen 아니요 nok1 E_NOT_OK 반환 melden->nok1 treiber 결정된 드라이버의 Fr_<서비스>(Fr_CtrlIdx, …) 또는 FrTrcv_<서비스> 호출 uebersetzen->treiber erg 드라이버가 E_OK를 반환하는가? treiber->erg ok E_OK 반환 erg->ok 예 nok2 E_NOT_OK 반환 erg->nok2 아니요

액티비티 다이어그램: 매개변수 확인부터 인덱스 변환을 거쳐 드라이버 결과 반환까지의 래퍼 서비스 흐름. 출처: [SWS_FrIf_05004], [SWS_FrIf_05145], SWS FrIf 55쪽

명세에서는 FRIF_E_JLE_SYNC을(를) 런타임 오류로 정의합니다. 이는 Job List Execution이 FlexRay 시간에 대한 동기화를 잃을 때 발생합니다 [SWS_FrIf_05432]. 해석: 재개는 Main Function을 통한 (재)동기화의 작업일 것으로 추정됩니다 (SWS FrIf 26쪽). 질문 Q-9d075afc8e49d498 (열림)

FrIf는 채널별로 프로덕션 오류를 DEM에 보고합니다: FRIF_E_NIT_CH_A/B, FRIF_E_SW_CH_A/B 및 FRIF_E_ACS_CH_A/B [SWS_FrIf_05146]. vSS!SyntaxError와(과) 같은 오류 비트가 설정되는 즉시 DEM_EVENT_STATUS_PREFAILED(으)로 보고됩니다 [SWS_FrIf_05426] [SWS_FrIf_05428]. 반면 클러스터 시작 결과는 FrSM이 보고합니다 (SWS FrSM 50쪽).

더 자세한 증거

페이로드에 포함된 요구사항 및 문서 위치(릴리스 R20-11)를 기반으로 AI가 생성한 가이드입니다. 다른 릴리스의 문서 위치는 별도로 표시되어 있으며, 명세가 우선합니다.

FlexRay Interface (FrIf)

Abstracts FlexRay hardware controllers for upper layers.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 FrIf_Init [SWS_FrIf_05003] 📄 PDF

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

Initializes the Flex Ray Interface.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6689f83f9701 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_Init은 FlexRay 인터페이스 모듈([SWS_FrIf_05003])을 초기화하는 역할을 합니다. 호출은 동기식으로 수행되며 재진입 불가(Non Reentrant)로 명시되어 있습니다([SWS_FrIf_05003]).

매개변수 및 반환값

  • FrIf_ConfigPtr (입력 매개변수): FlexRay 인터페이스([SWS_FrIf_05003])의 구성 구조체에 대한 기본 포인터입니다.
  • 반환값: void – 이 함수는 반환값을 반환하지 않습니다([SWS_FrIf_05003]).

제약 사항 및 호출 조건

FrIf_Init은 재진입이 불가능하므로, 동일하거나 다른 스레드 또는 태스크에 의해 병렬로 또는 인터럽트 방식으로 언제든지 다시 호출되어서는 안 됩니다([SWS_FrIf_05003]). 호출은 FlexRay 인터페이스의 일반 서비스가 사용되기 전에 시스템 초기화 컨텍스트에서 수행되어야 합니다.

이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrIf_ControllerInit [SWS_FrIf_05004] 📄 PDF

Std_ReturnType FrIf_ControllerInit (uint8 FrIf_CtrlIdx);

Initialized a Flex Ray CC.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f399f6cb2b11 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 FrIf_ControllerInit은 FlexRay Communication Controller(FlexRay CC)를 초기화하는 역할을 합니다 [SWS_FrIf_05004]. 이는 헤더 파일 FrIf.h를 통해 사용할 수 있으며 서비스 ID 0x03으로 식별됩니다 [SWS_FrIf_05004].

데이터 타입 uint8의 입력 매개변수 FrIf_CtrlIdx을 통해 지정할 FlexRay 컨트롤러의 인덱스가 전달됩니다 [SWS_FrIf_05004]. 이 인터페이스에는 추가적인 입력 또는 출력 매개변수가 존재하지 않습니다 [SWS_FrIf_05004].

반환값은 Std_ReturnType 타입이며 초기화 상태를 호출자에게 다시 보고합니다 [SWS_FrIf_05004]:

  • E_OK: 하위 FlexRay 드라이버의 API 서비스 호출이 성공적이었으며 E_OK을 반환했습니다 [SWS_FrIf_05004].
  • E_NOT_OK: FlexRay 드라이버의 API 서비스가 E_NOT_OK을 반환했거나 개발 모드에서 오류가 감지되었습니다 [SWS_FrIf_05004].

동시성과 관련하여 FrIf_ControllerInit은 서로 다른 컨트롤러 인덱스에 대해 재진입 가능(FrIf_CtrlIdx)하지만, 동일한 FrIf_CtrlIdx 값에 대해서는 재진입 불가합니다 [SWS_FrIf_05004]. 따라서 동일한 컨트롤러에 대한 동시 호출은 전체 시스템에 의해 방지되어야 합니다.

이 텍스트는 AUTOSAR R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_EnableAbsoluteTimerIRQ [SWS_FrIf_05025] 📄 PDF

Std_ReturnType FrIf_EnableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Service FrIf_EnableAbsoluteTimerIRQ.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 517cedc33aed 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 FrIf_EnableAbsoluteTimerIRQ은 헤더 파일 FrIf.h를 통해 제공되는 서비스 ID 0x1d을 갖는 동기식 서비스를 나타냅니다 [SWS_FrIf_05025]. 절대 타이머의 인터럽트를 활성화하기 위한 FlexRay 드라이버의 인터페이스 Fr_EnableAbsoluteTimerIRQ()를 감싸는 래퍼 역할을 합니다 [SWS_FrIf_05025].

호출에는 두 개의 입력 매개변수가 필요합니다 [SWS_FrIf_05025]:

  • FrIf_CtrlIdx: 주소를 지정할 FlexRay 통신 컨트롤러(FlexRay CC)의 인덱스입니다 [SWS_FrIf_05025].
  • FrIf_AbsTimerIdx: 주소가 지정된 컨트롤러에서 활성화할 절대 타이머의 인덱스입니다 [SWS_FrIf_05025].

반환값 및 오류 처리

함수는 타입 Std_ReturnType의 상태 값을 반환합니다 [SWS_FrIf_05025]:

  • E_OK: 기본 드라이버 서비스 호출이 성공했으며 E_OK을(를) 반환했습니다 [SWS_FrIf_05025].
  • E_NOT_OK: 드라이버 함수가 E_NOT_OK을(를) 반환했거나 개발 모드(Development Mode)에서 오류가 감지되었습니다 [SWS_FrIf_05025].

동시성 및 재진입성

호출 컨텍스트와 관련하여 FrIf_EnableAbsoluteTimerIRQ은 동일한 FlexRay 컨트롤러에 대해 재진입이 불가능하지만, 서로 다른 FlexRay 컨트롤러에 대해서는 재진입 방식으로 호출될 수 있습니다 [SWS_FrIf_05025].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_AckAbsoluteTimerIRQ [SWS_FrIf_05029] 📄 PDF

Std_ReturnType FrIf_AckAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5371cc37b0bc 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 인터페이스 함수 FrIf_AckAbsoluteTimerIRQ은 FlexRay 드라이버 [SWS_FrIf_05029]의 드라이버 함수 Fr_AckAbsoluteTimerIRQ()에 대한 API 호출을 래퍼로서 캡슐화합니다. 서비스 ID 0x21을 가지며, 헤더 FrIf.h를 통해 제공되고, FlexRay Communication Controller의 절대 타이머에 대한 인터럽트 요청을 확인하는 역할을 합니다.

함수 호출 시 두 개의 입력 매개변수를 전달해야 합니다 [SWS_FrIf_05029]:

  • FrIf_CtrlIdx: 주소 지정할 FlexRay Communication Controller(CC)의 인덱스입니다.
  • FrIf_AbsTimerIdx: 인터럽트를 승인할 특정 절대 타이머의 인덱스입니다.

이 함수는 결과를 평가하기 위해 Std_ReturnType 타입의 반환값을 제공합니다 [SWS_FrIf_05029]:

  • E_OK: 드라이버 API Fr_AckAbsoluteTimerIRQ()의 호출이 성공적으로 수행되었습니다.
  • E_NOT_OK: 호출 시 FlexRay 드라이버가 E_NOT_OK을(를) 보고했거나, 개발 모드(Development Mode)에서 오류가 감지되었습니다.

동시성 동작과 관련하여 함수는 동기식으로 동작합니다. 서로 다른 FlexRay CC에 대한 호출은 재진입이 가능하지만, 동일한 FlexRay CC에 대한 동시 호출은 재진입이 불가능하므로 피해야 합니다 [SWS_FrIf_05029].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_StartCommunication [SWS_FrIf_05005] 📄 PDF

Std_ReturnType FrIf_StartCommunication (uint8 FrIf_CtrlIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ba57cfeb6d86 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_StartCommunication은 FlexRay 드라이버 함수 Fr_StartCommunication()의 래퍼 역할을 하며, 지정된 FlexRay 통신 컨트롤러의 통신 시작을 트리거합니다 [SWS_FrIf_05005].

사용법 및 호출 컨텍스트

인터페이스는 헤더 FrIf.h을 통해 선언되며 서비스 ID 0x04을 갖습니다 [SWS_FrIf_05005]. 호출은 비동기식으로 처리됩니다 [SWS_FrIf_05005]. 제어할 FlexRay 통신 컨트롤러의 인덱스를 지정하는 FrIf_CtrlIdx(타입 uint8)가 유일한 입력 매개변수 역할을 하며, 입출력 또는 순수 출력 매개변수는 존재하지 않습니다 [SWS_FrIf_05005].

오류 처리 및 반환값

함수는 Std_ReturnType 타입의 상태 코드를 반환합니다 [SWS_FrIf_05005]:

  • E_OK: FlexRay 드라이버 내 하위 API 서비스의 호출이 성공적으로 진행되었으며 E_OK을 반환했습니다 [SWS_FrIf_05005].
  • E_NOT_OK: 드라이버의 API 서비스가 E_NOT_OK을 보고했거나 개발 모드(Development Mode)에서 실행 중에 오류가 감지되었습니다 [SWS_FrIf_05005].

동시성 및 제약사항

재진입성과 관련하여 FrIf_StartCommunication은 서로 다른 컨트롤러 인덱스에 대해서는 재진입 가능(FrIf_CtrlIdx)하지만, 동일한 컨트롤러 값에 대해서는 재진입 불가합니다 [SWS_FrIf_05005]. 따라서 호출 모듈은 동시 접근 시 동일한 컨트롤러에 대해 동시 호출이 발생하지 않도록 보장해야 합니다.

이 사용 지침은 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrIf_HaltCommunication [SWS_FrIf_05006] 📄 PDF

Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8fb366eaa447 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_HaltCommunication(서비스 ID 0x05)은 FlexRay 인터페이스(FrIf)에서 드라이버 API 함수 Fr_HaltCommunication() 호출을 위한 래퍼 역할을 하며 헤더 FrIf.h을 통해 선언됩니다 [SWS_FrIf_05006]. 이 서비스는 비동기 시맨틱으로 실행됩니다 [SWS_FrIf_05006]. 각각 지정할 FlexRay Communication Controller의 인덱스를 지정하는 입력값 FrIf_CtrlIdx이 유일한 매개변수로 전달되며, 이 서비스에 대해 입출력 또는 순수 출력 매개변수는 정의되어 있지 않습니다 [SWS_FrIf_05006].

반환값은 Std_ReturnType 타입이며 호출 결과를 나타냅니다 [SWS_FrIf_05006]:

  • E_OK: FlexRay 드라이버 내 API 서비스의 호출이 성공적이었으며 E_OK을 반환했습니다 [SWS_FrIf_05006].
  • E_NOT_OK: FlexRay 드라이버의 API 호출이 E_NOT_OK을 반환했거나 개발 모드(Development Mode)에서 오류가 감지되었습니다 [SWS_FrIf_05006].

동시성과 관련하여 FrIf_HaltCommunication은 서로 다른 컨트롤러 인덱스 값에 대해서는 재진입 가능하지만 FrIf_CtrlIdx, FrIf_CtrlIdx의 동일한 값에 대해서는 재진입 불가합니다 [SWS_FrIf_05006]. 따라서 동일한 컨트롤러에 대한 동시 호출 또는 인터럽트 호출은 허용되지 않으며 호출자의 컨텍스트에서 방지되어야 합니다.

이 텍스트는 AUTOSAR CP R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_AbortCommunication [SWS_FrIf_05007] 📄 PDF

Std_ReturnType FrIf_AbortCommunication (uint8 FrIf_CtrlIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7413742b3cdd 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기식 인터페이스 함수 FrIf_AbortCommunication은 FlexRay 드라이버 [SWS_FrIf_05007]의 API 함수 Fr_AbortCommunication()에 대한 직접적인 래퍼 역할을 합니다. 헤더 파일 FrIf.h에 선언되어 있으며 서비스 ID 0x06를 갖습니다 [SWS_FrIf_05007].

입력 매개변수 FrIf_CtrlIdx을 통해 주소를 지정할 FlexRay Communication Controller의 인덱스가 지정됩니다 [SWS_FrIf_05007]. 이 인터페이스에 대해 추가 입력 또는 출력 매개변수는 정의되어 있지 않습니다 [SWS_FrIf_05007].

반환값 및 오류 처리

함수는 타입 Std_ReturnType의 상태 값을 반환합니다 [SWS_FrIf_05007]:

  • E_OK: FlexRay 드라이버의 API 서비스 호출이 성공했으며 E_OK을(를) 반환했습니다 [SWS_FrIf_05007].
  • E_NOT_OK: FlexRay 드라이버의 API 서비스가 E_NOT_OK을(를) 반환했거나 개발 모드에서 오류가 감지되었습니다 [SWS_FrIf_05007].

동시성 및 제약사항

FrIf_AbortCommunication의 실행은 동기식입니다 [SWS_FrIf_05007]. 이 함수는 서로 다른 FrIf_CtrlIdx 값에 대해서는 재진입이 가능하지만, 동일한 컨트롤러 인덱스에 대해서는 재진입이 불가능합니다 [SWS_FrIf_05007].

이 사용 지침은 AUTOSAR 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_SetState [SWS_FrIf_05174] 📄 PDF

Std_ReturnType FrIf_SetState (uint8 FrIf_ClstIdx, FrIf_StateTransitionType FrIf_StateTransition);

Requests Fr If state machine transition.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5873512292be 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 호출

동기식 함수 FrIf_SetState은 FlexRay 인터페이스의 상태 머신에서 상태 전이를 요청합니다 [SWS_FrIf_05174]. 매개변수로 클러스터 인덱스 FrIf_ClstIdx 및 원하는 전이 FrIf_StateTransition이(가) 전달됩니다. 이 함수는 호출이 성공적으로 실행되고 상태 변경이 수락된 경우 E_OK을(를) 반환하며, 오류 발생 시에는 E_NOT_OK이(가) 반환됩니다 [SWS_FrIf_05174].

오류 처리 및 제약 조건

이 함수는 재진입 불가(Non Reentrant)로 정의되어 있습니다 [SWS_FrIf_05174]. 개발 오류 감지가 활성화되어 있고(FrIfDevErrorDetect == ON) 매개변수 FrIf_StateTransition에 유효하지 않은 값이 포함되어 있으면, 함수는 Det_ReportError을(를) 통해 오류 코드 FRIF_E_INV_FRIF_STATE을(를) DET 모듈에 보고합니다 [SWS_FrIf_05037].

오프라인 전이 시의 상호작용

FrIf_SetState이(가) 전이 매개변수 FRIF_STATE_OFFLINE(으)로 호출되면, FlexRay 인터페이스는 각 PDU에 대해 카운터 TxConfCounter을(를) 확인합니다 [SWS_FrIf_05501]. 어떤 PDU에 대해 이 값이 0보다 크면 모듈은 <UL>_TxConfirmation(id, E_NOT_OK) 호출을 통해 보류 중인 확인의 실패를 상위 계층에 알립니다 [SWS_FrIf_05501].

이 텍스트는 AUTOSAR 명세 R20-11을 기반으로 AI 시스템에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrIf_SendWUP [SWS_FrIf_05011] 📄 PDF

Std_ReturnType FrIf_SendWUP (uint8 FrIf_CtrlIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 198c69b5740a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

모듈 FrIf의 함수 FrIf_SendWUP(서비스 ID 0x0a)은 헤더 파일 FrIf.h을 통해 사용할 수 있으며 하위 FlexRay 드라이버의 API 함수 Fr_SendWUP() 호출을 위한 인터페이스 래퍼 역할을 합니다 [SWS_FrIf_05011].

사용법 및 매개변수

서비스는 비동기식으로 실행됩니다 [SWS_FrIf_05011]. 지정할 FlexRay Communication Controller(FlexRay CC)의 인덱스를 지정하는 uint8 타입의 입력 매개변수 FrIf_CtrlIdx이 유일한 전달 매개변수로 사용됩니다 [SWS_FrIf_05011]. Inout 또는 Out 매개변수는 사용되지 않습니다 [SWS_FrIf_05011].

반환값 및 오류 처리

함수는 반환값으로 Std_ReturnType 타입의 상태를 반환합니다 [SWS_FrIf_05011]:

  • E_OK: FlexRay 드라이버의 API 서비스 호출이 성공적으로 실행되었으며 E_OK을 반환했습니다 [SWS_FrIf_05011].
  • E_NOT_OK: FlexRay 드라이버의 API 서비스 호출이 E_NOT_OK을 반환했거나 개발 모드(Development Mode)에서 오류가 감지되었습니다 [SWS_FrIf_05011].

동시성 및 재진입성

동시 접근과 관련하여 FrIf_SendWUP은 FrIf_CtrlIdx의 서로 다른 값으로 호출하는 경우 재진입 가능하지만, FrIf_CtrlIdx의 동일한 값에 대해서는 재진입 불가합니다 [SWS_FrIf_05011].

이 텍스트는 자동으로 생성되었으며 릴리스 R20-11용 AUTOSAR 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

함수 FrIf_AllowColdstart [SWS_FrIf_05017] 📄 PDF

Std_ReturnType FrIf_AllowColdstart (uint8 FrIf_CtrlIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f313d1af7873 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 작동 방식

함수 FrIf_AllowColdstart은 [SWS_FrIf_05017]에 따른 FlexRay 드라이버 API Fr_AllowColdstart()의 래퍼 역할을 합니다. 입력 매개변수 FrIf_CtrlIdx을 통해 주소를 지정할 FlexRay Communication Controller (CC)의 주소를 지정합니다 [SWS_FrIf_05017]. 함수의 실행은 비동기식으로 명시되어 있습니다 [SWS_FrIf_05017].

반환값 및 오류 처리

Std_ReturnType 타입의 반환값은 실행 결과를 반영합니다 [SWS_FrIf_05017]:

  • E_OK: 기본 FlexRay 드라이버의 API 서비스가 성공적으로 호출되었으며 E_OK을(를) 다시 보고했습니다 [SWS_FrIf_05017].
  • E_NOT_OK: 드라이버 호출이 실패했거나(반환값 E_NOT_OK) 개발 모드(Development Mode)에서 오류가 감지되었습니다 [SWS_FrIf_05017].

해석: 규격서 발췌본에 특정 오류 ID나 검사가 문서화되어 있지는 않지만, Development Mode에서의 오류 감지는 Default Error Tracer (DET) 모듈을 통해 이루어질 것으로 추정됩니다. 질문 Q-5dffd71d66731cc9 (열림)

동시성 및 제약사항

재진입성과 관련하여 FrIf_AllowColdstart은 동일한 FrIf_CtrlIdx 값에 대해서는 재진입이 불가능하지만, 서로 다른 컨트롤러 인덱스에 대해서는 병렬로 호출될 수 있습니다 [SWS_FrIf_05017]. 따라서 호출자는 동일한 컨트롤러에 대한 동시 호출이 동기화되도록 보장해야 합니다. 이 인터페이스는 헤더 FrIf.h을 통해 제공됩니다 [SWS_FrIf_05017].

이 사용 지침은 AI에 의해 작성되었으며 AUTOSAR CP R20-11의 규격 데이터를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_Transmit [SWS_FrIf_05033] 📄 PDF

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

Requests transmission of a PDU.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9cb8bddfea7e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 FrIf_Transmit은 FlexRay 인터페이스를 통한 PDU 전송을 요청합니다 [SWS_FrIf_05033]. 이 함수는 전송할 PDU의 ID(TxPduId) 및 PDU 길이, 데이터 포인터 및 메타데이터를 제공하는 구조체 PduInfoPtr에 대한 포인터를 받습니다 [SWS_FrIf_05033].

동시성 및 재진입성과 관련하여 FrIf_Transmit은 서로 다른 PDU ID에 대해서는 재진입 가능하지만 동일한 PDU ID에 대해서는 재진입 불가합니다 [SWS_FrIf_05033]. 호출은 전송 요청이 수락되는 즉시 E_OK를 반환하며, 그렇지 않은 경우 E_NOT_OK을 반환합니다 [SWS_FrIf_05033].

구성 매개변수 FrIfAllowDynamicLSduLength을 통해 동적 L-SDU 길이가 FALSE(으)로 비활성화된 경우 즉시 PDU(Immediate PDU)에 대해 특정 오류 검사가 수행됩니다 [SWS_FrIf_05757]:

  • PduInfoPtr에 전달된 길이가 정적으로 구성된 PDU 길이에 대해 검사됩니다 [SWS_FrIf_05757].
  • 길이 정보가 일치하지 않으면 FrIf_Transmit은 Immediate PDU의 전송을 중단하고 E_NOT_OK을 반환합니다 [SWS_FrIf_05757].
  • 개발 오류 감지(FrIfDevErrorDetect == ON)가 활성화되어 있는 경우, 함수는 Det_ReportError를 통해 DET 모듈에 개발 오류 FRIF_E_INV_PDULENGTH을 보고합니다 [SWS_FrIf_05757].

이 텍스트는 R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrIf_SetTransceiverMode [SWS_FrIf_05034] 📄 PDF

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

Wraps the Flex Ray Transceiver Driver API function Fr

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e732fae6663a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

서비스 ID 0x13을 갖는 동기 인터페이스 FrIf_SetTransceiverMode은 FlexRay 인터페이스에서 FlexRay 트랜시버 드라이버의 드라이버 함수 FrTrcv_SetTransceiverMode()에 대한 래퍼 역할을 하며 헤더 파일 FrIf.h을 통해 사용할 수 있습니다 [SWS_FrIf_05034]. 이를 통해 상위 계층은 특정 FlexRay 컨트롤러 및 채널에 대해 트랜시버의 동작 모드를 설정할 수 있습니다 [SWS_FrIf_05034].

호출 시 세 개의 매개변수를 전달해야 합니다: FlexRay Communication Controller의 주소 지정을 위한 컨트롤러 인덱스 FrIf_CtrlIdx, 해당 컨트롤러의 유효 범위 내에서 FlexRay 채널을 지정하기 위한 채널 인덱스 FrIf_ChnlIdx, 그리고 FrTrcv_TrcvModeType 타입의 원하는 트랜시버 모드 FrIf_TrcvMode [SWS_FrIf_05034]입니다. 입출력 매개변수나 출력 매개변수는 존재하지 않습니다 [SWS_FrIf_05034]. 매개변수 FrIf_ChnlIdx의 경우 열거형 값 FR_CHANNEL_AB을 어떠한 경우에도 사용해서는 안 된다는 구속력 있는 요구사항이 적용됩니다 [SWS_FrIf_05034].

해당 함수는 재진입 가능(reentrant)으로 명시되어 있으며, 모드 변경을 트랜시버 드라이버로 동기식으로 전달합니다 [SWS_FrIf_05034]. 결과로 상태 Std_ReturnType을 반환합니다: 트랜시버 드라이버의 API 서비스 호출이 성공하여 E_OK을 반환한 경우 E_OK를 보고하며, 해당 드라이버 호출이 실패하여 E_NOT_OK를 반환한 경우에도 마찬가지로 E_NOT_OK가 반환됩니다 [SWS_FrIf_05034].

이 사용 지침은 AUTOSAR 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

함수 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.

함수 FrIf_ClearTransceiverWakeup [SWS_FrIf_05039] 📄 PDF

Std_ReturnType FrIf_ClearTransceiverWakeup (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 983ace12320e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 FrIf_ClearTransceiverWakeup(서비스 ID 0x18)은 FlexRay 인터페이스 내에서 래퍼 역할을 하며 FlexRay 트랜시버 드라이버 [SWS_FrIf_05039]의 API 함수 FrTrcv_ClearTransceiverWakeup() 호출을 캡슐화합니다. 인터페이스는 헤더 파일 FrIf.h를 통해 사용할 수 있습니다 [SWS_FrIf_05039].

호출 시 이 함수는 정확히 두 개의 입력 매개변수를 기대합니다 [SWS_FrIf_05039]:

  • FrIf_CtrlIdx: 주소를 지정할 FlexRay Communication Controller의 인덱스입니다 [SWS_FrIf_05039].
  • FrIf_ChnlIdx: 컨트롤러 유효 범위 내에서 주소를 지정할 FlexRay 채널의 인덱스입니다 FrIf_CtrlIdx [SWS_FrIf_05039].

이 함수에 대해 추가 매개변수(inout 또는 out)는 정의되어 있지 않습니다 [SWS_FrIf_05039].

동시성 및 제약 조건과 관련하여 이 함수는 재진입 가능으로 분류됩니다 [SWS_FrIf_05039]. 중요한 기능적 제한 사항으로, 규격에서는 매개변수 FrIf_ChnlIdx에 대해 열거형 값 FR_CHANNEL_AB을 사용할 수 없도록 규정하고 있습니다 [SWS_FrIf_05039].

작업 결과는 Std_ReturnType(으)로 동기식으로 반환되며 드라이버 서비스의 결과를 직접 반영합니다 [SWS_FrIf_05039]:

  • E_OK: FlexRay 트랜시버 드라이버의 API 서비스가 성공적으로 실행되었으며 E_OK을(를) 반환했습니다 [SWS_FrIf_05039].
  • E_NOT_OK: 드라이버 서비스 호출이 실패했으며 E_NOT_OK을(를) 다시 보고했습니다 [SWS_FrIf_05039].

본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_CancelAbsoluteTimer [SWS_FrIf_05023] 📄 PDF

Std_ReturnType FrIf_CancelAbsoluteTimer (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: aaee20f9db6d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_CancelAbsoluteTimer은(는) FlexRay 통신 컨트롤러(CC)에서 구성된 절대 타이머를 동기적으로 취소하는 데 사용됩니다 [SWS_FrIf_05023]. 이 함수는 FlexRay 드라이버의 해당 드라이버 함수 Fr_CancelAbsoluteTimer()에 대한 래퍼 역할을 하며, 헤더 FrIf.h을(를) 통해 사용할 수 있습니다 [SWS_FrIf_05023].

매개변수 및 반환값

호출 시 두 개의 입력 매개변수가 전달됩니다 [SWS_FrIf_05023]:

  • FrIf_CtrlIdx: 주소를 지정할 FlexRay 컨트롤러의 인덱스.
  • FrIf_AbsTimerIdx: 취소할 절대 타이머의 인덱스입니다.

이 함수는 Std_ReturnType 타입의 상태를 반환합니다[SWS_FrIf_05023]:

  • E_OK: 기본 FlexRay 드라이버 API 호출이 E_OK과(와) 함께 성공적으로 완료되었습니다 [SWS_FrIf_05023].
  • E_NOT_OK: 드라이버 API 호출이 실패했거나(E_NOT_OK 반환), 개발 모드(Development Mode)에서 오류가 감지되었습니다 [SWS_FrIf_05023].

동시성 및 제약사항

실행은 서비스 ID 0x1b을(를) 사용하여 동기적으로 이루어집니다 [SWS_FrIf_05023]. 재진입성과 관련하여, 해당 서비스는 서로 다른 FlexRay CC에 대해서는 재진입 가능하지만, 동일한 FlexRay CC에 대해서는 동시에 호출할 수 없습니다 [SWS_FrIf_05023].

이 텍스트는 AUTOSAR Classic R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_DisableAbsoluteTimerIRQ [SWS_FrIf_05031] 📄 PDF

Std_ReturnType FrIf_DisableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6362ca64b166 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_DisableAbsoluteTimerIRQ은(는) FlexRay 인터페이스 모듈의 일부이며 헤더 파일 FrIf.h을(를) 통해 제공됩니다 [SWS_FrIf_05031]. 이 함수는 FlexRay 드라이버 API의 함수 Fr_DisableAbsoluteTimerIRQ()에 대한 동기식 래퍼 역할을 하며, 주소 지정된 절대 타이머의 인터럽트 생성 비활성화 요청을 드라이버 계층으로 전달합니다 [SWS_FrIf_05031].

호출 컨텍스트 및 매개변수

호출은 서비스 ID 0x23을(를) 사용하여 동기적으로 수행됩니다 [SWS_FrIf_05031]. 인터페이스에는 입출력 또는 순수 출력 매개변수가 없지만, 두 개의 필수 입력 매개변수가 필요합니다 [SWS_FrIf_05031]:

  • FrIf_CtrlIdx: 주소 지정할 FlexRay 통신 컨트롤러(CC)의 인덱스입니다 [SWS_FrIf_05031].
  • FrIf_AbsTimerIdx: 구성할 절대 타이머의 인덱스입니다 [SWS_FrIf_05031].

반환값 및 오류 처리

이 함수는 반환 타입 Std_ReturnType을(를) 통해 호출자에게 상태를 반환합니다 [SWS_FrIf_05031]:

  • E_OK: FlexRay 드라이버의 API 서비스 호출이 성공하여 E_OK을(를) 반환했음을 알립니다 [SWS_FrIf_05031].
  • E_NOT_OK: FlexRay 드라이버의 API 서비스가 E_NOT_OK을(를) 반환했거나 개발 모드(Development Mode)에서 오류가 감지되었음을 나타냅니다 [SWS_FrIf_05031].

동시성 및 재진입성

재진입성 규정에 따르면 FrIf_DisableAbsoluteTimerIRQ은(는) 동일한 FlexRay 통신 컨트롤러에 대해서는 비재진입이지만, 서로 다른 FlexRay CC에 대해서는 재진입 가능합니다 [SWS_FrIf_05031]. 따라서 동일한 컨트롤러 인스턴스에 대한 호출은 동기화 없이 서로 다른 컨텍스트에서 동시에 발생해서는 안 됩니다.

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

함수 FrIf_AllSlots [SWS_FrIf_05020] 📄 PDF

Std_ReturnType FrIf_AllSlots (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ All Slots

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e0c30b766f1b 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 인터페이스 FrIf_AllSlots은(는) FlexRay 인터페이스 내에서 FlexRay 드라이버의 기본 드라이버 함수 Fr_AllSlots 호출을 위한 래퍼 역할을 합니다 [SWS_FrIf_05020]. 이 함수는 헤더 파일 FrIf.h을(를) 통해 제공되며 서비스 ID 0x33을(를) 갖습니다 [SWS_FrIf_05020]. 유일한 전달 파라미터로 접근할 FlexRay Communication Controller의 논리적 인덱스를 정의하는 FrIf_CtrlIdx이(가) 요구됩니다 [SWS_FrIf_05020]. 이 서비스에는 입출력 파라미터(inout/out)가 제공되지 않습니다 [SWS_FrIf_05020].

반환값으로 이 함수는 다음과 같은 의미를 갖는 상태 Std_ReturnType을 반환합니다[SWS_FrIf_05020].

  • E_OK: 드라이버 API Fr_AllSlots 호출이 성공적이었으며 E_OK을(를) 반환했습니다 [SWS_FrIf_05020].
  • E_NOT_OK: FlexRay 드라이버 호출이 실패했거나 E_NOT_OK을(를) 반환했음, 또는 개발 모드에서 실행 중에 오류가 감지되었음 [SWS_FrIf_05020].

런타임 동작 및 동시성과 관련하여 FrIf_AllSlots은(는) 비재진입(non reentrant)으로 명시되어 있습니다 [SWS_FrIf_05020]. 따라서 호출 인스턴스는 해당 컨트롤러에 대해 동시 또는 중복 호출이 발생하지 않도록 보장해야 합니다. 해석: 인터페이스가 병렬 액세스 시 자체적인 재진입 관리를 제공하지 않으므로, 호출은 보호된 태스크 컨텍스트 내에서 수행되어야 할 것으로 보입니다. 질문 Q-e4ce542c60b470c8 (열림)

이 텍스트는 AI에 의해 생성되었으며, AUTOSAR 표준이 우선합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

함수 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.

함수 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.

함수 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.

함수 FrIf_CancelTransmit [SWS_FrIf_05070] 📄 PDF

Std_ReturnType FrIf_CancelTransmit (PduIdType TxPduId);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 93c4556124a6 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 함수 FrIf_CancelTransmit은 하위 통신 모듈에서 진행 중인 PDU 전송의 중단을 요청합니다 [SWS_FrIf_05070]. 입력 매개변수로 중단할 PDU를 식별하는 TxPduId이(가) 전달됩니다. 실행은 동기식으로 수행되며 Std_ReturnType 타입의 반환값을 제공합니다 [SWS_FrIf_05070]:

  • E_OK: 대상 모듈에 의해 전송 취소가 성공적으로 수행되었습니다.
  • E_NOT_OK: 중단이 대상 모듈에 의해 거부되었습니다.

동시성 및 제약사항

동시성과 관련하여 FrIf_CancelTransmit은 서로 다른 PDU ID에 대해서는 재진입이 가능하지만, 동일한 PDU ID에 대해서는 재진입이 불가능합니다 TxPduId [SWS_FrIf_05070]. 따라서 동일한 PDU ID에 대해 병렬 컨텍스트에서 호출할 경우 경쟁 상태(Race Condition)를 방지하기 위해 호출자 측에서 외부 동기화가 필요할 것으로 추정됩니다. 질문 Q-38e799ac1564f60f (열림)

오류 처리 및 통합

인터페이스에 특정 DET 또는 DEM 오류 코드는 정의되어 있지 않으며, 중단 실패는 반환값 E_NOT_OK을(를) 통해 즉시 신호됩니다 [SWS_FrIf_05070]. 이 서비스는 서비스 ID 0x4a을(를) 가지며 헤더 파일 FrIf.h을(를) 통해 제공됩니다 [SWS_FrIf_05070].

이 사용 지침은 사양을 바탕으로 자동 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrIf_DisableLPdu [SWS_FrIf_05710] 📄 PDF

Std_ReturnType FrIf_DisableLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6dcfcbdfc95d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_DisableLPdu은 FlexRay 드라이버의 드라이버 함수 Fr_DisableLPdu에 대한 래퍼 역할을 하며, 송신 또는 수신을 위한 L-PDU의 기본 하드웨어 리소스를 비활성화합니다 [SWS_FrIf_05710].

호출 및 매개변수

FrIf_DisableLPdu의 호출은 서비스 ID 0x28를 갖는 인터페이스 FrIf.h을 통해 동기식으로 수행됩니다 [SWS_FrIf_05710]. 이 함수는 두 개의 입력 매개변수를 받습니다:

  • FrIf_CtrlIdx: FlexRay 인터페이스 컨텍스트 내 FlexRay Communication Controller의 인덱스 [SWS_FrIf_05710].
  • FrIf_LPduIdx: 관련된 FlexRay 프레임을 식별하기 위한 고유 인덱스 [SWS_FrIf_05710].

반환값 및 오류 처리

이 함수는 결과로 Std_ReturnType 타입의 상태를 반환합니다 [SWS_FrIf_05710]:

동시성 및 제약사항

동시성 동작과 관련하여 FrIf_DisableLPdu은 동일한 장치에 대해 재진입 불가능(Non Reentrant for the same device)으로 명시되어 있습니다 [SWS_FrIf_05710]. 따라서 동일한 컨트롤러 또는 동일한 장치에 대한 병렬 호출은 호출자 측에서 방지하거나 동기화해야 합니다.

이 텍스트는 자동으로 생성되었으며 전적으로 명세서의 내용만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_EnableTransceiverBranch [SWS_FrIf_05085] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e8dfbb0733ab 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_EnableTransceiverBranch은(는) 동기식 및 재진입 가능 래퍼로서 하위 FlexRay 트랜시버 드라이버의 API 호출 FrTrcv_EnableTransceiverBranch을(를) 캡슐화합니다 [SWS_FrIf_05085]. 이 인터페이스를 통해 트랜시버의 특정 분기(예: 액티브 스타 컨텍스트)가 선택적으로 활성화됩니다 [SWS_FrIf_05085]. 함수 선언 및 관련 타입은 헤더 파일 FrIf.h을(를) 통해 제공됩니다 [SWS_FrIf_05085].

매개변수 및 호출 조건

호출 시 세 개의 입력 매개변수를 전달해야 합니다 [SWS_FrIf_05085]:

  • FrIf_CtrlIdx: 해당 FlexRay 통신 컨트롤러의 인덱스를 지정합니다 [SWS_FrIf_05085].
  • FrIf_ChnlIdx: 컨트롤러의 유효 범위 내에서 FlexRay 채널을 지정합니다 FrIf_CtrlIdx [SWS_FrIf_05085]. 이때 열거형 값 FR_CHANNEL_AB은(는) 사용할 수 없다는 필수 제한이 적용됩니다 [SWS_FrIf_05085].
  • FrIf_BranchIdx: 0부터 시작하는 인덱스를 통해 활성화가 적용될 트랜시버의 구체적인 분기를 결정합니다 [SWS_FrIf_05085].

반환값

이 함수는 전달된 드라이버 호출의 결과를 직접 반영하는 Std_ReturnType 타입의 상태값을 반환합니다 [SWS_FrIf_05085]:

  • E_OK: 드라이버 서비스 FrTrcv_EnableTransceiverBranch 호출이 성공하여 E_OK을(를) 보고했습니다 [SWS_FrIf_05085].
  • E_NOT_OK: 드라이버 서비스 호출이 E_NOT_OK을(를) 보고했습니다 [SWS_FrIf_05085].

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_DisableTransceiverBranch [SWS_FrIf_05028] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9edf0f22a2a3 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수 FrIf_DisableTransceiverBranch은 래퍼 함수로서 FlexRay 트랜시버 드라이버 [SWS_FrIf_05028]의 서비스 FrTrcv_DisableTransceiverBranch을 캡슐화합니다. 헤더 파일 FrIf.h을 통해 제공되고, 서비스 ID 0x37를 가지며, 능동형 스타 트랜시버의 특정 브랜치를 표적 비활성화하는 데 사용됩니다 [SWS_FrIf_05028].

호출 시 세 개의 입력 매개변수를 전달해야 합니다:

  • FrIf_CtrlIdx: 주소를 지정할 FlexRay 컨트롤러의 인덱스입니다 [SWS_FrIf_05028].
  • FrIf_ChnlIdx: 컨트롤러 유효 범위 내의 FlexRay 채널입니다. 이때 열거형 값 FR_CHANNEL_AB을 사용할 수 없다는 구속력 있는 규정이 적용됩니다 [SWS_FrIf_05028].
  • FrIf_BranchIdx: 작업이 적용될 트랜시버의 해당 브랜치를 식별하는 0 기반 인덱스입니다 [SWS_FrIf_05028].

반환값으로 인터페이스는 Std_ReturnType 타입의 상태를 반환합니다. 트랜시버 드라이버 호출이 성공한 경우 E_OK을(를) 반환하고, 드라이버 서비스가 E_NOT_OK을(를) 보고한 경우 E_NOT_OK을(를) 반환합니다 [SWS_FrIf_05028]. 특정 DET 또는 DEM 오류 메시지는 규격 범위에 문서화되어 있지 않으며, 실패는 하위 드라이버의 동작에서 직접 기인할 것으로 추정됩니다. 질문 Q-52d5e5fedd147532 (열림)

이 텍스트는 AUTOSAR R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrIf_ReconfigLPdu [SWS_FrIf_05048] 📄 PDF

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

Service FrIf_ReconfigLPdu.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6127b6f4417a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 FrIf_ReconfigLPdu은(는) FlexRay 인터페이스(FrIf)에서 L-PDU를 재구성하는 데 사용되며, 호출을 FlexRay 드라이버의 드라이버 인터페이스 Fr_ReconfigLPdu(으)로 직접 전달합니다 [SWS_FrIf_05048]. 이 인터페이스는 헤더 FrIf.h을(를) 통해 제공됩니다 [SWS_FrIf_05048].

매개변수 및 구성 제한사항

  • FrIf_CtrlIdx: FlexRay 드라이버 내의 FlexRay 통신 컨트롤러 인덱스를 지정합니다 [SWS_FrIf_05048].
  • FrIf_LPduIdx: 구성할 FlexRay 프레임을 식별하기 위한 고유한 인덱스를 결정합니다 [SWS_FrIf_05048].
  • FrIf_FrameId, FrIf_CycleRepetition, FrIf_CycleOffset: 새로운 FlexRay 프레임 ID와 L-PDU의 사이클 필터 메커니즘의 반복 및 오프셋을 정의합니다 [SWS_FrIf_05048].
  • FrIf_ChnlIdx: Fr_ChannelType 타입의 FlexRay 채널을 결정합니다 [SWS_FrIf_05048]. 이때 열거형 값 FR_CHANNEL_AB은(는) 사용할 수 없도록 엄격히 규정되어 있습니다 [SWS_FrIf_05048].
  • FrIf_PayloadLength 및 FrIf_HeaderCRC: L-PDU가 설정될 바이트 단위의 페이로드 길이 및 해당 헤더 CRC를 정의합니다 [SWS_FrIf_05048].

반환값 및 실행 컨텍스트

Std_ReturnType 타입의 반환값은 재구성 결과를 나타냅니다. E_OK은(는) API 호출의 성공적인 실행을 알리는 반면, E_NOT_OK은(는) 오류 중단을 나타냅니다 [SWS_FrIf_05048].

이 함수는 동기식이며 비재진입(Non Reentrant)으로 명시되어 있습니다 [SWS_FrIf_05048]. 따라서 동시에 호출되어서는 안 됩니다.

이 사용 지침은 AUTOSAR Classic R20-11 명세를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_ReadCCConfig [SWS_FrIf_05313] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a9635a600f61 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 FrIf_ReadCCConfig은(는) 서비스 ID 0x3b을(를) 갖는 FlexRay 인터페이스의 동기식 서비스를 나타내며 헤더 FrIf.h을(를) 통해 선언됩니다 [SWS_FrIf_05313]. 주요 역할은 래퍼로서 기본 FlexRay 드라이버의 드라이버 함수 Fr_ReadCCConfig()을(를) 호출하여 컨트롤러의 구성 매개변수를 읽는 것입니다 [SWS_FrIf_05313].

인터페이스는 호출 시 세 개의 매개변수를 예상합니다 [SWS_FrIf_05313]:

  • FrIf_CtrlIdx(입력): 주소 지정할 FlexRay 통신 컨트롤러(CC)의 숫자 인덱스입니다.
  • FrIf_ConfigParamIdx(입력): 값을 쿼리할 특정 구성 매개변수의 인덱스입니다.
  • FrIf_ConfigParamValuePtr(출력): 읽어온 32비트 구성 값이 저장될 메모리 위치에 대한 포인터입니다.

Std_ReturnType 타입의 반환값은 쿼리 결과를 알립니다 [SWS_FrIf_05313]:

  • E_OK: 드라이버 API Fr_ReadCCConfig() 호출이 성공적으로 실행되어 E_OK을(를) 반환했습니다.
  • E_NOT_OK: FlexRay 드라이버가 E_NOT_OK을(를) 보고했거나 개발 모드(Development Mode)에서 실행 중에 오류가 감지되었습니다.

동시성 및 실행 환경과 관련하여 FrIf_ReadCCConfig은(는) 동일한 FlexRay 컨트롤러에 대해서는 비재진입이지만, 서로 다른 컨트롤러에 대해서는 재진입 가능합니다 [SWS_FrIf_05313]. 따라서 동일한 컨트롤러에 액세스할 때 호출자는 적절한 동기화를 보장해야 합니다. 개발 모드에서 감지된 오류는 아마도 Default Error Tracer(DET)로 전달될 것으로 보입니다. 질문 Q-bfe56460515de4de (열림)

이 사용 지침은 AI에 의해 생성되었으며 AUTOSAR Classic Release R20-11의 사양 데이터에만 기반합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrIf_EnableBusMirroring [SWS_FrIf_05726] 📄 PDF

Std_ReturnType FrIf_EnableBusMirroring (uint8 FrIf_ClstIdx, boolean FrIf_MirroringActive);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 64884bdfc093 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기식 함수 FrIf_EnableBusMirroring은 전달된 FlexRay 클러스터에 연결된 모든 FlexRay 컨트롤러에 대해 버스 미러링을 전환합니다 [SWS_FrIf_05726]. 매개변수 FrIf_ClstIdx을(를) 통해 해당 클러스터의 주소가 지정됩니다. 부울 매개변수 FrIf_MirroringActive은(는) 모드를 결정합니다. TRUE 전달 시 컨트롤러에서 수신되거나 전송된 각 프레임에 대해 인터페이스 Mirror_ReportFlexRayFrame이(가) 호출됩니다. FALSE인 경우 미러 모듈로의 프레임 전달이 비활성화됩니다 [SWS_FrIf_05726].

반환값 및 오류 처리

함수 호출은 Std_ReturnType 타입의 상태를 반환합니다 [SWS_FrIf_05726]:

  • E_OK: 지정된 클러스터의 미러링 모드가 성공적으로 업데이트되었습니다 [SWS_FrIf_05726].
  • E_NOT_OK: 미러링 기능이 전역적으로 비활성화되어 있거나(구성 매개변수 FrIfBusMirroringSupport) 유효하지 않은 인덱스가 있는 경우 전환이 거부되었습니다 [SWS_FrIf_05726]. 해석: E_NOT_OK에서의 규격 명시 FrIf_CtrlIdx은(는) 명칭의 차이에도 불구하고 클러스터 인덱스 FrIf_ClstIdx 또는 할당된 컨트롤러의 검사를 가리키는 것으로 추정됩니다. 질문 Q-9daba2ff2b1a3ff1 (열림)

동시성 및 통합

이 함수는 재진입 가능으로 선언되어 있으며 서비스 ID 0x4b을(를) 갖습니다. 헤더 파일 FrIf.h을(를) 통해 제공됩니다 [SWS_FrIf_05726]. 호출자는 실행이 동기식으로 이루어진다는 점에 유의해야 합니다. 이 서비스에 대해 DET 또는 DEM을 통한 추가 오류 채널은 나열되어 있지 않습니다.

이 텍스트는 AI에 의해 작성되었으며, 공신력 있는 기준은 AUTOSAR 규격입니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrIf_CheckWakeupByTransceiver [SWS_FrIf_05041] 📄 PDF

void FrIf_CheckWakeupByTransceiver (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 09a9e5676d66 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 FrIf_CheckWakeupByTransceiver(서비스 ID 0x39)은(는) FlexRay 인터페이스에서 FlexRay 트랜시버 드라이버의 함수 FrTrcv_CheckWakeupByTransceiver()에 대한 동기식 래퍼 역할을 합니다 [SWS_FrIf_05041]. 헤더 FrIf.h을(를) 통해 제공되며 반환값이 없습니다 [SWS_FrIf_05041].

해당 하드웨어 인스턴스의 주소를 지정하기 위해 인터페이스에는 두 개의 필수 매개변수가 요구됩니다 [SWS_FrIf_05041]:

  • FrIf_CtrlIdx(입력 매개변수, uint8): 주소 지정할 FlexRay 통신 컨트롤러의 인덱스입니다 [SWS_FrIf_05041].
  • FrIf_ChnlIdx(입력 매개변수, Fr_ChannelType): 지정된 컨트롤러의 유효 범위 내에서 액세스할 FlexRay 채널의 인덱스입니다 FrIf_CtrlIdx [SWS_FrIf_05041].

동시성 및 제약사항

사양에서는 인터페이스를 재진입 가능으로 지정하므로 동기 호출을 동시에 실행할 수 있습니다 [SWS_FrIf_05041].

채널 매개변수 FrIf_ChnlIdx에 대해 엄격한 적용 제한이 존재합니다. 열거형 값 FR_CHANNEL_AB은(는) 전달되어서는 안 됩니다 [SWS_FrIf_05041]. 해석: 이는 기본 트랜시버 드라이버가 한 번의 호출로 두 채널의 결합된 웨이크업 검사를 지원하지 않으며, 두 개의 FlexRay 채널이 있는 시스템은 대신 순차적으로 또는 채널별로 별도로 검사해야 함을 의미할 가능성이 높습니다. 질문 Q-a30cf39f0d3ca295 (열림)

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 <User_RxIndication> [SWS_FrIf_05045] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 926106ed5433 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜백 함수 <User_RxIndication>은 그 아래에 있는 통신 인터페이스 계층으로부터 수신된 PDU를 신호하는 역할을 합니다 [SWS_FrIf_05045]. 해석: 이 식별자는 FlexRay 데이터 도착 시 통지받는 상위 계층의 구성 가능한 콜백을 나타내는 것으로 추정됩니다. 질문 Q-a9037bc7502dd9ea (열림)

사용법 및 매개변수

실행은 반환값 없이(void) 동기식으로 수행됩니다 [SWS_FrIf_05045]. 호출 시 두 개의 입력 매개변수가 전달됩니다 [SWS_FrIf_05045]:

  • RxPduId (PduIdType): 수신된 PDU의 고유 식별자입니다 [SWS_FrIf_05045].
  • PduInfoPtr (const PduInfoType*): 수신된 PDU의 길이(SduLength), 페이로드 데이터가 포함된 버퍼에 대한 포인터(SduDataPtr) 및 관련 메타데이터가 있는 구조체에 대한 포인터입니다 [SWS_FrIf_05045].

동시성 및 구성

재진입성과 관련하여 이 함수는 서로 다른 PDU ID에 대해서는 재진입이 가능하지만, 동일한 PDU ID에 대해서는 재진입 방식으로 호출될 수 없습니다 [SWS_FrIf_05045]. 인터페이스는 모듈 내에서 구성 가능하게 제공됩니다("Available via configurable") [SWS_FrIf_05045]. 출처에는 이 인터페이스에 대한 특정 오류 코드, 반환값 또는 DET 및 DEM에 대한 알림이 정의되어 있지 않습니다 [SWS_FrIf_05045].

이 텍스트는 자동으로 작성되었습니다. 모든 정보는 FrIf 모듈의 규격 데이터에만 기반합니다.

함수 <User_TxConfirmation> [SWS_FrIf_05046] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: befc612f1e10 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

구성 가능한 콜백 함수 <User_TxConfirmation>은 PDU에 대한 전송 프로세스의 완료를 확인하기 위해 하위 통신 인터페이스 모듈에 의해 호출됩니다 [SWS_FrIf_05046]. 이는 해당 PDU의 전송이 성공했는지 실패했는지를 상위 계층에 동기식으로 보고합니다 [SWS_FrIf_05046].

이 인터페이스는 반환값을 가지지 않으며(void) 두 개의 입력 매개변수를 기대합니다 [SWS_FrIf_05046]:

  • TxPduId (타입 PduIdType): 전송된 PDU의 고유 ID를 나타냅니다 [SWS_FrIf_05046].
  • result (타입 Std_ReturnType): 전송 결과를 나타내며, 여기서 E_OK은(는) 성공적인 전송을 확인하고 E_NOT_OK은(는) PDU 전송 실패를 보고합니다 [SWS_FrIf_05046].

이 함수는 동기식으로 동작합니다 [SWS_FrIf_05046]. 동시성과 관련하여 서로 다른 PDU ID에 대해서는 재진입이 가능하지만, 동일한 PDU ID에 대해서는 재진입이 불가능합니다 TxPduId [SWS_FrIf_05046]. 따라서 동일한 PDU ID에 대한 병렬 확인 호출은 배제되어야 합니다.

E_NOT_OK 외의 특정 오류 코드나 DET 또는 DEM에 대한 별도의 메시지는 이 호출에 대해 명시되어 있지 않습니다 [SWS_FrIf_05046]. 해석: 인터페이스가 구성 가능으로 지정되어 있으므로, 식별자 <User_TxConfirmation>는 상위 계층에서 실제로 구성된 함수 이름의 자리표시자 역할을 하는 것으로 추정됩니다 [SWS_FrIf_05046]. 질문 Q-f2a08258df49b3ec (열림)

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR 규격에 대한 도움말로 사용됩니다.

함수 <User_TriggerTransmit> [SWS_FrIf_05047] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fac22c3dab8e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 콜백 함수 <User_TriggerTransmit>은 전송을 위해 상위 계층의 SDU 데이터를 요청하기 위해 호출됩니다 [SWS_FrIf_05047]. 매개변수로 전송할 SDU의 식별자 TxPduId 및 PduInfoType* 타입의 포인터 PduInfoPtr이(가) 전달됩니다 [SWS_FrIf_05047]. 호출자는 PduInfoPtr->SduDataPtr을(를) 통해 대상 버퍼를 제공하고 PduInfoPtr->SduLength에 사용 가능한 버퍼 크기를 지정합니다 [SWS_FrIf_05047].

호출된 상위 계층 모듈은 준비된 데이터가 지정된 버퍼 크기에 맞는지 확인합니다 [SWS_FrIf_05047]:

  • 데이터가 맞는 경우 모듈은 이를 PduInfoPtr->SduDataPtr에 복사하고, PduInfoPtr->SduLength을(를) 실제로 복사된 바이트 수로 업데이트하며, E_OK을(를) 반환합니다 [SWS_FrIf_05047].
  • 데이터가 맞지 않는 경우 모듈은 PduInfoPtr을(를) 변경하지 않고 E_NOT_OK을(를) 반환합니다 [SWS_FrIf_05047].

오류 처리 및 동시성

오류 발생 시(반환값 E_NOT_OK) SDU 데이터는 복사되지 않았습니다. 이 경우 PduInfoPtr은(는) NULL 포인터를 포함하거나 유효하지 않은 데이터를 가리킬 수 있으므로 더 이상 사용해서는 안 됩니다 [SWS_FrIf_05047].

이 인터페이스는 서로 다른 PDU ID에 대해서는 재진입이 가능하지만, 동일한 PDU ID에 대해서는 재진입이 불가능합니다 [SWS_FrIf_05047]. 함수의 사용 가능 여부는 구성 가능합니다 [SWS_FrIf_05047].

이 텍스트는 AI에 의해 작성되었습니다. 모든 정보는 AUTOSAR 릴리스 R20-11의 규격에만 기반합니다.

함수 <Free_Op_A> [SWS_FrIf_05316] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8665c1e85fa1 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 <Free_Op_A>은 전반적인 성능 향상을 위해 Communication Controller의 하드웨어별 또는 추가 성능 기능을 지원하도록 FlexRay 인터페이스에서 사용자 정의 통신 작업으로 설계되었습니다 [SWS_FrIf_05316]. 이 인터페이스의 선언은 헤더 FrIf_Externals.h을(를) 통해 제공됩니다 [SWS_FrIf_05316].

호출에는 두 개의 기능적 입력 매개변수가 규정되어 있습니다 [SWS_FrIf_05316]:

  • FrIf_CtrlIdx (타입 uint8): 구체적으로 주소를 지정할 FlexRay Communication Controller를 인덱스로 식별합니다 [SWS_FrIf_05316].
  • FrIf_LPduIdx (타입 uint16): 해당 FlexRay 프레임을 식별하기 위한 고유 인덱스 역할을 합니다 [SWS_FrIf_05316].

이 작업은 동기식으로 실행되며 반환값을 가지지 않습니다(void). 입력 및 출력 매개변수 또한 제공되지 않습니다 [SWS_FrIf_05316]. 동시성 및 호출 컨텍스트와 관련하여 이 함수는 서로 다른 FrIf_LPduIdx 값에 대해서는 재진입이 가능하지만, 동일한 인덱스를 사용할 경우에는 명시적으로 재진입이 불가능합니다 FrIf_LPduIdx [SWS_FrIf_05316].

Default Error Tracer (DET) 또는 Diagnostic Event Manager (DEM) 모듈을 통한 오류 모니터링 메커니즘 및 특정 오류 코드는 규격에 명시되어 있지 않습니다 [SWS_FrIf_05316]. 따라서 호출 컴포넌트는 실행 전에 동일한 프레임 인덱스에 대한 경쟁적 접근이 발생하지 않도록 보장해야 합니다 [SWS_FrIf_05316].

이 사용 지침은 AUTOSAR 사양을 기반으로 자동 생성되었습니다.

함수 <Free_Op_B> [SWS_FrIf_05317] 📄 PDF

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

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c7b423aeeb3d 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용자 정의 함수 <Free_Op_B>은 FlexRay 인터페이스 [SWS_FrIf_05317]에서 사용자 맞춤형 통신 작업을 수행하는 역할을 합니다. 그 목적은 FlexRay 통신 컨트롤러의 하드웨어별 특성 또는 추가적인 성능 기능을 지원하여 통신 성능을 향상시키는 데 있습니다 [SWS_FrIf_05317]. 함수 선언은 헤더 파일 FrIf_Externals.h을 통해 제공됩니다 [SWS_FrIf_05317].

호출 및 매개변수

이 작업은 동기식으로 호출되며 반환값을 제공하지 않습니다(void) [SWS_FrIf_05317]. 입출력 매개변수나 출력 매개변수는 존재하지 않으며, 두 개의 입력 매개변수를 처리합니다 [SWS_FrIf_05317]:

  • FrIf_CtrlIdx: 지정할 FlexRay 통신 컨트롤러의 인덱스(uint8 타입) [SWS_FrIf_05317].
  • FrIf_LPduIdx: 해당 FlexRay 프레임을 식별하기 위한 고유 인덱스(uint16 타입) [SWS_FrIf_05317].

동시성 및 제약사항

재진입성과 관련하여, 이 함수는 서로 다른 LPdu 인덱스(FrIf_LPduIdx)에 대해서는 재진입 가능하지만 동일한 LPdu 인덱스에 대해서는 명시적으로 재진입 불가능하도록 지정되어 있습니다 [SWS_FrIf_05317]. 따라서 호출자는 동일한 PDU에 대한 동시 호출이 발생하지 않도록 해야 합니다.

해석: 이 작업은 사용자 정의로 표시되어 있고 FrIf_Externals.h에 배치되어 있으므로, 실제 구현은 사용자 맞춤형 또는 드라이버 확장 형태로 제공되어야 할 것으로 보입니다. 질문 Q-6668832db63b9906 (열림)

이 텍스트는 AI에 의해 작성되었습니다. 모든 내용은 릴리스 R20-11의 사양에만 기반합니다.

함수 <UL_TxConflictNotification> [SWS_FrIf_91001] 📄 PDF

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

Notification in case a Tx Conflict has been detected.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8333bc6757d5 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

알림 함수 <UL_ Tx Conflict Notification>은 FlexRay 인터페이스에서 전송 충돌(Tx Conflict)이 감지되는 즉시 호출됩니다 [SWS_FrIf_91001]. 이 인터페이스의 선언은 헤더 파일 Fr If_ Externals.h을(를) 통해 제공됩니다 [SWS_FrIf_91001].

이 함수는 반환값이 없으며 두 개의 입력 매개변수를 받습니다 [SWS_FrIf_91001]:

  • Fr If_ Ctrl Idx: 주소가 지정된 FlexRay Communication Controller의 식별자입니다 [SWS_FrIf_91001].
  • Fr If_ LPdu Idx: 영향을 받는 전송된 FlexRay 프레임의 식별자입니다 [SWS_FrIf_91001].

동시성 및 제약사항

호출은 동기식 시맨틱으로 수행됩니다 [SWS_FrIf_91001]. 동시성과 관련하여 실행은 서로 다른 Fr If_ LPdu Idx 인덱스에 대해서는 재진입이 가능하지만, 동일한 LPdu 인덱스에 대해서는 명시적으로 재진입이 불가능합니다 [SWS_FrIf_91001]. 따라서 구현 시 동일한 프레임 인덱스에 대한 동시 호출이 방지되도록 해야 합니다.

오류 처리 및 상호 작용

규격은 이 콜백 인터페이스에 대해 별도의 DET 또는 DEM 메시지 및 특정 오류 코드를 정의하지 않습니다 [SWS_FrIf_91001]. 해석: 상위 계층은 FlexRay 전송 경로에서 직접 발생한 충돌을 기록하거나 처리할 수 있도록 호출을 제공할 것으로 추정됩니다. 질문 Q-fc63c251dbc03307 (열림)

이 텍스트는 AI에 의해 작성되었으며 엄격한 지침에 따라 검토되었습니다. 전문적인 근거는 오로지 규격에서만 발췌되었습니다.

타입 FrIf_ConfigType [SWS_FrIf_05301] 📄 PDF

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

타입 FrIf_StateType [SWS_FrIf_05755] 📄 PDF

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d7aa755fda7e 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

열거형 타입 FrIf_StateType은 헤더 파일 FrIf.h에 정의되어 있으며, FlexRay Interface에서 FlexRay Communication Controller (FlexRay CC)의 현재 작동 상태를 나타내는 데 사용됩니다 [SWS_FrIf_05755]. 이 타입의 변수는 컨트롤러가 통신 작업을 수행할 준비가 되었는지와 FlexRay 클러스터와의 동기화가 이루어졌는지 여부를 기록합니다 [SWS_FrIf_05755].

값 범위는 두 가지 정의된 상태를 포함합니다 [SWS_FrIf_05755]:

  • FRIF_STATE_OFFLINE: FlexRay CC가 통신 준비 상태가 아니며, FlexRay 클러스터가 동기화되지 않았습니다 [SWS_FrIf_05755].
  • FRIF_STATE_ONLINE: FlexRay CC가 통신 준비 상태이며, FlexRay 클러스터가 동기화되었습니다 [SWS_FrIf_05755].

통합 및 제약 조건

이러한 상태는 근본적인 통신 단계를 반영합니다. FRIF_STATE_OFFLINE이(가) 인가되어 있는 동안에는 컨트롤러를 통한 정규 클러스터 통신이 불가능하지만, FRIF_STATE_ONLINE은(는) 동기화된 송수신 작업을 특징짓습니다 [SWS_FrIf_05755]. 규격서 발췌본에 추가 API 시그니처나 오류 메시지가 언급되어 있지 않으므로, 이 타입은 주로 FlexRay Interface의 상태 쿼리 또는 상태 전이에 사용될 것으로 추정됩니다. 질문 Q-071cd300dcaa0a3b (열림)

이 텍스트는 AI에 의해 생성되었으며 AUTOSAR R20-11 규격을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 FrIf_StateTransitionType [SWS_FrIf_05303] 📄 PDF

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 17a8791d0e85 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 FrIf_StateTransitionType은 헤더 파일 FrIf.h을 통해 제공되며, [SWS_FrIf_05303]에 따라 FlexRay Communication Controller (FlexRay CC)에 대한 상태 전이를 나타내거나 요청하는 데 사용됩니다.

사용 및 값 범위

이 타입의 변수는 FlexRay CC의 표적 상태 변경을 요청하기 위한 값을 갖습니다 [SWS_FrIf_05303]. 값 범위는 다음 리터럴을 포함합니다:

  • FRIF_GOTO_OFFLINE: FRIF_STATE_OFFLINE 상태로의 전이를 요청하기 위한 리터럴입니다 [SWS_FrIf_05303].
  • FRIF_GOTO_ONLINE: FRIF_STATE_ONLINE 상태로의 전이를 요청하기 위한 리터럴입니다 [SWS_FrIf_05303].

컨텍스트 및 상호작용

이 타입의 형식적 설명에서는 FlexRay CC의 상태 표현을 언급하고 있지만, 정의된 리터럴을 고려할 때 이 열거형 타입은 주로 상태 변경(오프라인 또는 온라인)을 지시하기 위한 제어 매개변수로 사용된다는 해석이 유력합니다 [SWS_FrIf_05303]. 페이로드에는 이 타입에 대한 추가 인터페이스, 재진입성 규정 또는 오류 코드가 나열되어 있지 않으므로, 헤더 파일 FrIf.h을 통한 일반적인 포함 규칙이 적용됩니다.

이 텍스트는 AI에 의해 작성되었습니다. 이는 AUTOSAR R20-11 및 요구사항 [SWS_FrIf_05303]을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 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#c4e98271
Content hash
c4e98271
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayInterface.pdf#nameddest=SWS_FrIf_05003

초기화 및 상태

Returns the version information of this module.

void FrIf_GetVersionInfo (Std_VersionInfoType* FrIf_VersionInfoPtr);
FrIf_Init 함수

Initializes the Flex Ray Interface.

void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);

서비스 · 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);

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

서비스 · 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);

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

서비스 · 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);

서비스 · 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);

서비스 · 기타

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

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

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

Requests transmission of a PDU.

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

콜아웃 및 예상 인터페이스

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

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

타입

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.