DEENESPTFRRUARHIKOZHNL

FlexRay Interface (FrIf)

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

模块指南人工智能生成

封装 FlexRay 驱动程序和收发器,并针对每个集群控制状态、PDU 流量以及作业列表执行。
AI 生成 未审核 模型: claude-opus-5-5 · 推理强度: high · 温度: 不可控 · 提示词: c9748455d0d4 来源 未决问题(4)
因果锚点:R20-11 自 R20-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

封装 FlexRay 驱动程序和收发器,并针对每个集群控制状态、PDU 流量以及作业列表执行。

FlexRay Interface 将 FlexRay 驱动程序和收发器驱动程序封装在统一的控制器索引之后,并在上层与总线之间中继 PDU。它为每个集群维护一个包含状态 FRIF_STATE_OFFLINE 和 FRIF_STATE_ONLINE 的状态机,FlexRay State Manager 通过 FrIf_SetState 对其进行切换 [SWS_FrIf_05174]。发送和接收在集群的 Job List Execution 中按时间控制执行,并且仅在 online 状态下进行(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]。仅在 online 时才执行接收、发送和发送确认。在切换到 Offline 时,Upper Layers 会针对未决确认收到 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: 无迁移

状态图:每个集群都以 offline 启动,并且仅在通过 FrIf_SetState 提出请求时才发生转换。来源:[SWS_FrIf_05303]、SWS FrIf 第25页

整个流程由 FrSM 控制。在启动过程中,它将收发器切换到 Normal,启动通信,并在需要时释放冷启动。然后,它查询 POC 状态直至达到 FR_POCSTATE_NORMAL_ACTIVE,并在此之后才将集群设置为 online(SWS FrSM 第50页)。关闭过程分两个阶段进行:首先是 Offline 和 Halt,然后是控制器重新初始化和收发器 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 Drivers 也可以被连接(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 寻址 Communication Controller(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_SetState 请求状态转换,且使用字面量 FRIF_GOTO_ONLINE 或 FRIF_GOTO_OFFLINE [SWS_FrIf_05174] [SWS_FrIf_05303]。只有当集群处于另一种状态时,转换才会发生(SWS FrIf 第25页)。FrIf_GetState 是可重入的 [SWS_FrIf_05170],而 FrIf_SetState 则不可重入。

状态决定了是否发生数据通信。在 Offline 状态下,FrIf 不执行任何通信服务。在 Online 状态下,它执行接收、发送和发送确认(SWS FrIf 第25页)。在切换到 Offline 时,FrIf 会检查每个 PDU:如果其 TxConfCounter > 0,则 Upper Layer 会收到 <UL>_TxConfirmation(id, E_NOT_OK) [SWS_FrIf_05501]。从 R23-11 开始,规范还要求 FrIf_Transmit() 在状态 Offline 下返回 E_NOT_OK(SWS FrIf 第68页)。较早的示意图显示了四种状态,其中包括 FRIF_STATE_HALT(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: 无迁移

状态图:每个集群都以 offline 启动,并且仅在通过 FrIf_SetState 提出请求时才发生转换。在切换到 Offline 时,未决的发送确认会被否定终止。来源:[SWS_FrIf_05174]、[SWS_FrIf_05303]、[SWS_FrIf_05501]、SWS FrIf 第25页

由 FrSM 主导的启动、唤醒和关闭

EcuM 使用 FrIf_Init 初始化 FrIf,且在 FrSM_Init 之前进行(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。

总线唤醒后的被动启动按以下顺序进行(SWS FrSM 第50页):

  1. 收发器被切换到 FRTRCV_TRCVMODE_NORMAL。
  2. 启动通信。
  3. 冷启动节点还会释放冷启动。
  4. FrSM 查询 POC 状态,直至达到 FR_POCSTATE_NORMAL_ACTIVE。
  5. 只有在此之后才执行 FrIf_SetState(…, FRIF_GOTO_ONLINE)。

在主动唤醒时,双通道节点使用 FrIf_SetWakeupChannel 选择唤醒通道 [SWS_FrIf_05010]。FrIf_GetWakeupRxStatus 以位编码方式报告在哪个通道上接收到了唤醒 [SWS_FrIf_05102]。

集群的被动启动(单通道,总线唤醒)ComMSchMFrSMFrIfBswMDemFrSM_RequestComMode(network,COMM_FULL_COMMUNICATION)FrSM_MainFunction_<FrSMCluster.ShortName>()loop针对集群 CC 的所有 CtrlIdxFrIf_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)

时序图:直至 online 状态的被动启动。FrIf 仅执行单个服务,流程控制由 FrSM 负责。Interpretation:启动前的顺序经过了简化。来源:SWS FrSM 第50页、SWS FrSM 第21页

关闭过程分两个阶段进行。首先,FrSM 使用 FRIF_GOTO_OFFLINE 将集群置为 offline 并调用 FrIf_HaltCommunication。稍后,它重新初始化控制器并将收发器置于模式 STANDBY(SWS FrSM 第58页)。这两个阶段之间的延迟由定时器 t_TrcvStdbyDelay 决定(SWS FrSM 第21页)。

从 FullCom 迁移至 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: 阶段 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。Interpretation:第一阶段内部的顺序经过了简化。来源:SWS FrSM 第58页、SWS FrSM 第56页

PDU 通信:发送请求与 Job List Execution

FrIf_Transmit 是同步的,并且对于不同的 TxPduId 是可重入的 [SWS_FrIf_05033]。在解耦缓冲区访问时,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 的 Absolute Timer 触发的 [SWS_FrIf_05021]。 问题 Q-d0a286cc1698d9d3 (未决)只要集群处于在线状态,周期性 FrIf_MainFunction_<FrIfCluster.ShortName> [SWS_FrIf_05042] 就会监控作业列表的持续执行。这也包括(重新)同步(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> 等硬件特定操作同样在作业列表中运行 [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针对报文中的每个 PDUaltTrigTxCounter > 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 仅在作业列表中才获取数据。较新版本在此过程中会经由 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 Communication Operation 类型? 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() 至临时缓冲区, 将 PDU 复制到本地 FrIf 缓冲区 art->ras free <Free_Op_A> / <Free_Op_B>: hardwarespezifische Operation art->free dtx->ende txc->ende mirr 该 CC 的 Bus Mirroring 是否处于激活状态? rai->mirr Frame empfangen ras->mirr Frame empfangen free->ende report Mirror_ReportFlexRayFrame() mirr->report 是 mirr->ende 不 report->ende

活动图:在作业列表中处理 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,每个带有最多两个收发器(SWS FrIf 第139页)。诸如 FrIf_DisableLPdu [SWS_FrIf_05710] 等可选服务通过预编译开关启用,此处通过 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页)。

进一步详细证据

基于有效载荷中所含需求和文档出处的 AI 生成指南(Release R20-11)。来自其他 Release 的文档出处已作相应标记;以规范为准。

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 通信控制器(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]。因此,整个系统必须防止针对同一控制器的并发调用。

该文本由 AI 基于 AUTOSAR R20-11 规范生成。

实现者指南即将推出(复杂度 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代表具有服务ID 0x1d的同步服务,通过头文件FrIf.h提供[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驱动程序之驱动程序函数Fr_AckAbsoluteTimerIRQ()的API调用[SWS_FrIf_05029]。它具有服务ID 0x21,通过头文件FrIf.h提供,并用于确认FlexRay通信控制器的绝对定时器中断请求。

调用该函数时须传递两个输入参数[SWS_FrIf_05029]:

  • FrIf_CtrlIdx:要寻址的 FlexRay 通信控制器(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]。作为唯一的输入参数,FrIf_CtrlIdx(类型 uint8)用于指定待控制的 FlexRay 通信控制器索引;不存在输入/输出参数或纯输出参数[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]。因此,在发生并发访问时,调用模块必须确保不会针对同一控制器发生并发调用。

本使用说明由 AI 基于 AUTOSAR 规范生成。

实现者指南即将推出(复杂度 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]。作为唯一的参数,传递输入值 FrIf_CtrlIdx,该值指定各待寻址的 FlexRay 通信控制器的索引;未为该服务定义输入/输出参数或纯输出参数[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]。因此,针对同一控制器的同时或中断调用是不允许的,必须在调用方上下文中予以防止。

本段文本由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 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驱动程序API函数Fr_AbortCommunication()的直接包装器[SWS_FrIf_05007]。它在头文件FrIf.h中声明,具有服务ID 0x06 [SWS_FrIf_05007]。

通过输入参数FrIf_CtrlIdx指定要寻址的FlexRay通信控制器的索引[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 向 DET 模块报告错误代码 FRIF_E_INV_FRIF_STATE [SWS_FrIf_05037]。

离线转换时的相互作用

如果使用转换参数 FRIF_STATE_OFFLINE 调用 FrIf_SetState,则 FlexRay 接口会针对每个 PDU 检查计数器 TxConfCounter [SWS_FrIf_05501]。若某个 PDU 的该值大于 0,则模块通过调用 <UL>_TxConfirmation(id, E_NOT_OK) 通知上层未决确认失败 [SWS_FrIf_05501]。

本文字由 AI 系统基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 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]。作为唯一的传递参数,类型为 uint8 的输入参数 FrIf_CtrlIdx 指定了待寻址的 FlexRay 通信控制器(FlexRay CC)的索引[SWS_FrIf_05011]。不使用输入输出参数或输出参数[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]。

该文本由系统自动生成,基于 AUTOSAR R20-11 版本的规范。

实现者指南即将推出(复杂度 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 · 德文原文

使用与工作原理

根据[SWS_FrIf_05017],函数FrIf_AllowColdstart用作FlexRay驱动程序API Fr_AllowColdstart()的包装器。它通过输入参数FrIf_CtrlIdx寻址要访问的FlexRay通信控制器(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]。

解释:开发模式下的错误检测大概通过Default Error Tracer(DET)模块进行,尽管规范摘录中未记录具体的错误ID或检查。 问题 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)以及指向结构体 PduInfoPtr 的指针,该结构体提供 PDU 长度、数据指针和元数据[SWS_FrIf_05033]。

在并发性和可重入性方面,FrIf_Transmit 对于不同的 PDU ID 是可重入的,但对于相同的 PDU ID 是不可重入的[SWS_FrIf_05033]。一旦传输请求被接受,该调用便返回 E_OK,否则返回 E_NOT_OK [SWS_FrIf_05033]。

若动态 L-SDU 长度通过配置参数 FrIfAllowDynamicLSduLength 设置为 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]。

此文本由 AI 基于 R20-11 规范生成。

实现者指南即将推出(复杂度 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 通信控制器的控制器索引 FrIf_CtrlIdx、用于确定控制器有效范围内 FlexRay 通道的通道索引 FrIf_ChnlIdx,以及类型为 FrTrcv_TrcvModeType 的所需收发器模式 FrIf_TrcvMode [SWS_FrIf_05034]。既不存在输入/输出参数,也不存在输出参数[SWS_FrIf_05034]。对于参数 FrIf_ChnlIdx,存在强制性规定:绝不能使用枚举值 FR_CHANNEL_AB [SWS_FrIf_05034]。

该函数被指定为可重入,并将模式切换同步转发给收发器驱动程序[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收发器驱动程序API函数FrTrcv_ClearTransceiverWakeup()的调用[SWS_FrIf_05039]。该接口通过头文件FrIf.h提供[SWS_FrIf_05039]。

调用时,该函数恰好需要两个输入参数[SWS_FrIf_05039]:

  • FrIf_CtrlIdx:要寻址的FlexRay通信控制器的索引[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]。

本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 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]。

本说明由 AI 基于 AUTOSAR Classic R20-11 规范生成。

实现者指南即将推出(复杂度 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]。预期的唯一传入参数为 FrIf_CtrlIdx,用于定义要寻址的 FlexRay 通信控制器的逻辑索引 [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]。因此,调用方必须确保排除针对受影响控制器的并发或重叠调用。Interpretation:推测该调用必须从受保护的任​​务上下文中发起,因为该接口在并行访问时不提供自身的可重入性管理。 问题 Q-e4ce542c60b470c8 (未决)

本段文本由人工智能生成;以 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]。作为输入参数传递的 TxPduId 用于标识要中止的 PDU。执行以同步方式进行,并提供类型为 Std_ReturnType 的返回值 [SWS_FrIf_05070]:

  • E_OK:目标模块已成功执行传输的中止。
  • E_NOT_OK:中止已被目标模块拒绝。

并发性与限制

在并发性方面,FrIf_CancelTransmit 针对不同 PDU ID 是可重入的,但针对相同 TxPduId 是不可重入的 [SWS_FrIf_05070]。因此,在针对相同 PDU ID 从并行上下文进行调用时,调用方可能需要进行外部同步,以避免竞态条件。 问题 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 通信控制器索引[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:通过从零开始的索引确定应用激活的收发器具体分支 [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]。

此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 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收发器驱动程序的服务FrTrcv_DisableTransceiverBranch [SWS_FrIf_05028]。它通过头文件FrIf.h提供,具有服务ID 0x37,并用于有针对性地停用有源星型收发器的特定分支[SWS_FrIf_05028]。

调用时须传递三个输入参数:

  • FrIf_CtrlIdx:要寻址的FlexRay控制器的索引[SWS_FrIf_05028]。
  • FrIf_ChnlIdx:控制器有效范围内的FlexRay通道。此处存在强制性规定,即不得使用枚举值FR_CHANNEL_AB [SWS_FrIf_05028]。
  • FrIf_BranchIdx:从零开始的索引,用于标识要对其应用操作的收发器相应分支[SWS_FrIf_05028]。

该接口返回类型为Std_ReturnType的状态作为返回值。如果收发器驱动程序的调用成功,它将返回E_OK;如果驱动程序服务报告了E_NOT_OK,则返回E_NOT_OK [SWS_FrIf_05028]。在规范范围内未记录特定的DET或DEM错误消息;失败大概直接源于底层驱动程序的行为。 问题 Q-52d5e5fedd147532 (未决)

本文由 AI 基于 AUTOSAR R20-11 规范生成。

实现者指南即将推出(复杂度 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 代表 FlexRay 接口的一项同步服务,服务 ID 为 0x3b,并通过头文件 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 (未决)

本使用说明由人工智能生成,并且完全基于 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]。Interpretation:这推测意味着底层收发器驱动不支持在单次调用中对两个通道进行组合唤醒检查,具有两个 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]。
  • 若数据不适合,模块会返回 E_NOT_OK,而不修改 PduInfoPtr [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> 被设计为 FlexRay 接口中的用户自定义通信操作,以支持通信控制器的硬件特定或附加性能特性,从而提高整体性能 [SWS_FrIf_05316]。该接口的声明通过头文件 FrIf_Externals.h 提供 [SWS_FrIf_05316]。

调用规定了两个功能输入参数 [SWS_FrIf_05316]:

  • FrIf_CtrlIdx(类型 uint8):作为索引指示要具体寻址的 FlexRay 通信控制器 [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 · 德文原文

使用

一旦在 FlexRay 接口中检测到传输冲突(Tx Conflict),就会调用通知函数 <UL_ Tx Conflict Notification> [SWS_FrIf_91001]。该接口的声明通过头文件 Fr If_ Externals.h 提供 [SWS_FrIf_91001]。

该函数没有返回值,并接收两个输入参数 [SWS_FrIf_91001]:

  • Fr If_ Ctrl Idx:受寻址 FlexRay 通信控制器的标识符 [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 接口中反映 FlexRay 通信控制器(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 接口的状态查询或状态转换中。 问题 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 通信控制器(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#0c9a5c2a
Content hash
0c9a5c2a
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);

Callout 与预期接口

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.