DEENESPTFRRUARHIKOZHNL

FlexRay Interface (FrIf)

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

Руководство по модулюСОЗДАНО ИИ

Инкапсулирует драйверы и трансиверы FlexRay и управляет состоянием, трафиком PDU и выполнением списков задач (Job List) для каждого кластера.
СОЗДАНО ИИ не проверено Модель: 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). Службы запуска, останова и пробуждения работают асинхронно. Поэтому вызывающая сторона определяет достигнутое состояние POC с помощью FrIf_GetPOCStatus.

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 | 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() переводит каждый кластер в режим офлайн. Окружение запрашивает переходы с помощью FrIf_SetState и FRIF_GOTO_ONLINE или FRIF_GOTO_OFFLINE [SWS_FrIf_05174]. Только в режиме онлайн выполняются приём, отправка и подтверждение отправки. При переходе в режим офлайн верхние уровни получают для ожидающих подтверждений 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 прием, передача, подтверждение передачи (кластер синхронизирован) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) для каждого PDU с TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: нет перехода

Диаграмма состояний: каждый кластер запускается в режиме офлайн и переключается только по запросу через FrIf_SetState. Источники: [SWS_FrIf_05303], SWS FrIf с. 25

Процессом управляет FrSM. При запуске он переключает трансиверы в нормальный режим, запускает коммуникацию и при необходимости разрешает холодный старт. Затем он запрашивает статус POC до тех пор, пока не будет достигнуто FR_POCSTATE_NORMAL_ACTIVE, и лишь после этого переводит кластер в режим онлайн (SWS FrSM с. 50). Отключение происходит в два этапа: сначала переход в режим офлайн и остановка, затем повторная инициализация контроллеров и перевод трансиверов в режим ожидания (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). Другие пользователи имеют собственные задачи:

  • FrTSyn считывает информацию о времени и состоянии (SWS FrTSyn с. 13).
  • EcuM проверяет пробуждения трансивера (SWS EcuM с. 186).
  • Bus Mirroring переключает зеркалирование фреймов (SWS Mirror с. 31).
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 | 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

Один индекс контроллера для всех драйверов: принцип обёртки

Большинство служб управления адресуют Communication Controller (CC) через FrIf_CtrlIdx. Данный шаблон можно продемонстрировать на примере 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 — нет.

Состояние определяет, происходит ли обмен данными. В режиме офлайн FrIf не выполняет коммуникационные службы. В режиме онлайн он выполняет приём, отправку и подтверждение отправки (SWS FrIf с. 25). При переходе в режим офлайн 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 (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 прием, передача, подтверждение передачи (кластер синхронизирован) off->on (2) FrIf_SetState(FRIF_GOTO_ONLINE) on->off (3) FrIf_SetState(FRIF_GOTO_OFFLINE) для каждого PDU с TxConfCounter > 0: <UL>_TxConfirmation(id, E_NOT_OK) on->on FRIF_GOTO_ONLINE: нет перехода

Диаграмма состояний: каждый кластер запускается в режиме офлайн и переключается только по запросу через FrIf_SetState. При переходе в режим офлайн ожидающие подтверждения отправки завершаются отрицательно. Источники: [SWS_FrIf_05174], [SWS_FrIf_05303], [SWS_FrIf_05501], SWS FrIf с. 25

Запуск, пробуждение и отключение под управлением FrSM

EcuM инициализирует FrIf с помощью FrIf_Init, причём до 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.

Пассивный запуск (startup) после пробуждения по шине происходит в следующем порядке (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для всех 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)

Диаграмма последовательности: пассивный запуск до состояния online. FrIf выполняет только отдельные службы, управление последовательностью возложено на FrSM. Интерпретация: последовательность до запуска упрощена. Источники: SWS FrSM с. 50, SWS FrSM с. 21

Отключение происходит в два этапа. Сначала FrSM переводит кластер в режим offline с помощью FRIF_GOTO_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. Интерпретация: последовательность в рамках первой фазы упрощена. Источники: SWS FrSM с. 58, SWS FrSM с. 56

Обмен PDU: запрос на передачу и Job List Execution

FrIf_Transmit является синхронной и реэ enterable для различных TxPduId [SWS_FrIf_05033]. При развязанном доступе к буферу FrIf сохраняет только количество запросов на передачу в TrigTxCounter, но не сами данные (SWS FrIf с. 38). Для Immediate-PDU фиксированной длины FrIf проверяет переданную длину относительно конфигурации [SWS_FrIf_05757]. Текущую передачу можно прервать с помощью FrIf_CancelTransmit [SWS_FrIf_05070].

Непосредственная коммуникация по шине осуществляется в функции выполнения списка заданий FrIf_JobListExec_<FrIfCluster.ShortName>, которая существует для каждого кластера [SWS_FrIf_05040]. На диаграммах ее вызывает процедура обработки прерываний (Interrupt Service Routine) (SWS FrIf с. 102). Запуск этой процедуры, предположительно, осуществляется через Absolute Timer в CC [SWS_FrIf_05021]. Вопрос Q-d0a286cc1698d9d3 (открытый) Циклическая FrIf_MainFunction_<FrIfCluster.ShortName> [SWS_FrIf_05042] отслеживает непрерывное выполнение списка заданий, пока кластер находится online. Сюда также относится (ре-)синхронизация (SWS FrIf с. 26).

Каждая Communication Operation выполняется только в состоянии FRIF_STATE_ONLINE, иначе она игнорируется (SWS FrIf с. 37). Основные операции работают следующим образом:

  • Развязанная передача: для каждого PDU с TrigTxCounter > 0 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для каждой 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_OKUse 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 FrIf_State коммуникационного контроллера == FRIF_STATE_ONLINE? start->online ignore Communication Operation ignorieren online->ignore нет art Тип Communication Operation? online->art да ende следующая задача ignore->ende dtx DECOUPLED_TRANSMISSION: проверить TrigTxCounter для каждого PDU, <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 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_GetGlobalTime только в том случае, если FrIf_GetState возвращает значение FRIF_STATE_ONLINE. Только после этого 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 показывает структуру: имеется один или несколько FrIfController с FrIfCtrlIdx 0…31, каждый с количеством трансиверов до двух (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 | Fr_CtrlIdx) det->uebersetzen нет nok1 Возврат E_NOT_OK melden->nok1 treiber Вызвать Fr_<Dienst>(Fr_CtrlIdx, …) или FrTrcv_<Dienst> определенного драйвера 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]. Сообщение имеет вид DEM_EVENT_STATUS_PREFAILED, как только установлены биты ошибок, такие как vSS!SyntaxError [SWS_FrIf_05426] [SWS_FrIf_05428]. Результат запуска кластера, напротив, передает FrSM (SWS FrSM с. 50).

Дальнейшие подробные доказательства

Сгенерированное ИИ руководство на основе требований и фрагментов документов, содержащихся в полезной нагрузке (релиз R20-11). Фрагменты документов из других релизов помечены соответствующим образом; определяющей является спецификация.

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.

СОЗДАНО ИИ не проверено Модель: 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.

СОЗДАНО ИИ не проверено Модель: 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 и идентифицируется через Service-ID 0x03 [SWS_FrIf_05004].

Через входной параметр FrIf_CtrlIdx типа данных uint8 передается индекс адресуемого контроллера FlexRay [SWS_FrIf_05004]. Другие входные или выходные параметры для этого интерфейса отсутствуют [SWS_FrIf_05004].

Возвращаемое значение имеет тип Std_ReturnType и сообщает вызывающей стороне статус инициализации [SWS_FrIf_05004]:

  • E_OK: вызов API-сервиса базового драйвера FlexRay завершился успешно и вернул E_OK [SWS_FrIf_05004].
  • E_NOT_OK: API-сервис драйвера FlexRay вернул E_NOT_OK или в режиме разработки была обнаружена ошибка [SWS_FrIf_05004].

В отношении параллелизма FrIf_ControllerInit реентерабельна для различных индексов контроллеров (FrIf_CtrlIdx), однако нереентерабельна для идентичных значений FrIf_CtrlIdx [SWS_FrIf_05004]. Параллельные вызовы для одного и того же контроллера поэтому должны предотвращаться на уровне всей системы.

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция FrIf_EnableAbsoluteTimerIRQ [SWS_FrIf_05025] 📄 PDF

Std_ReturnType FrIf_EnableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);

Service FrIf_EnableAbsoluteTimerIRQ.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 517cedc33aed Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Функция FrIf_EnableAbsoluteTimerIRQ представляет собой синхронную службу с Service-ID 0x1d, предоставляемую через заголовочный файл FrIf.h [SWS_FrIf_05025]. Она выступает в роли обёртки вокруг интерфейса Fr_EnableAbsoluteTimerIRQ() драйвера FlexRay для активации прерывания абсолютного таймера [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()

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5371cc37b0bc Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная интерфейсная функция FrIf_AckAbsoluteTimerIRQ в качестве обёртки инкапсулирует API-вызов функции драйвера Fr_AckAbsoluteTimerIRQ() драйвера FlexRay [SWS_FrIf_05029]. Она имеет Service-ID 0x21, предоставляется через заголовочный файл FrIf.h и служит для подтверждения запроса на прерывание для абсолютного таймера коммуникационного контроллера FlexRay.

При вызове функции необходимо передать два входных параметра [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().

СОЗДАНО ИИ не проверено Модель: 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 и имеет Service-ID 0x04 [SWS_FrIf_05005]. Вызов обрабатывается асинхронно [SWS_FrIf_05005]. Единственным входным параметром служит FrIf_CtrlIdx (тип uint8), который определяет индекс управляемого коммуникационного контроллера FlexRay; входные/выходные или чисто выходные параметры отсутствуют [SWS_FrIf_05005].

Обработка ошибок и возвращаемые значения

Функция возвращает код состояния типа Std_ReturnType [SWS_FrIf_05005]:

  • E_OK: вызов базового API-сервиса в драйвере FlexRay прошел успешно и вернул 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.

Руководство разработчика реализации в подготовке (сложность I2)

функция FrIf_HaltCommunication [SWS_FrIf_05006] 📄 PDF

Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8fb366eaa447 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция FrIf_HaltCommunication (Service-ID 0x05) представляет собой во FlexRay Interface (FrIf) обертку для вызова функции API драйвера Fr_HaltCommunication() и объявляется через заголовочный файл FrIf.h [SWS_FrIf_05006]. Сервис выполняется с асинхронной семантикой [SWS_FrIf_05006]. В качестве единственного параметра передается входное значение FrIf_CtrlIdx, специфицирующее индекс соответствующего вызываемого FlexRay Communication Controller; входные/выходные или чисто выходные параметры для этого сервиса не определены [SWS_FrIf_05006].

Возвращаемое значение имеет тип Std_ReturnType и сигнализирует результат вызова [SWS_FrIf_05006]:

  • E_OK: вызов API-сервиса в драйвере FlexRay был успешным и вернул E_OK [SWS_FrIf_05006].
  • E_NOT_OK: API-вызов драйвера FlexRay вернул E_NOT_OK или в режиме разработки (Development Mode) была обнаружена ошибка [SWS_FrIf_05006].

В отношении параллелизма FrIf_HaltCommunication реентерабельна для различных значений индекса контроллера FrIf_CtrlIdx, однако нереентерабельна при идентичных значениях для FrIf_CtrlIdx [SWS_FrIf_05006]. Одновременные или прерывающие вызовы для одного и того же контроллера, следовательно, недопустимы и должны предотвращаться в контексте вызывающей стороны.

Этот текст был сгенерирован ИИ на основе спецификации 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().

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 7413742b3cdd Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Синхронная интерфейсная функция FrIf_AbortCommunication выступает в роли прямого обёрточного вызова для API-функции Fr_AbortCommunication() драйвера FlexRay [SWS_FrIf_05007]. Она объявлена в заголовочном файле FrIf.h и имеет Service-ID 0x06 [SWS_FrIf_05007].

Через входной параметр FrIf_CtrlIdx задаётся индекс адресуемого коммуникационного контроллера FlexRay [SWS_FrIf_05007]. Дополнительные входные или выходные параметры для этого интерфейса не определены [SWS_FrIf_05007].

Возвращаемые значения и обработка ошибок

Функция возвращает значение состояния типа Std_ReturnType [SWS_FrIf_05007]:

  • E_OK: вызов API-службы драйвера FlexRay прошёл успешно и вернул E_OK [SWS_FrIf_05007].
  • E_NOT_OK: API-служба драйвера FlexRay вернула 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.

СОЗДАНО ИИ не проверено Модель: 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 содержит недопустимое значение, функция сообщает код ошибки FRIF_E_INV_FRIF_STATE через Det_ReportError в модуль DET [SWS_FrIf_05037].

Взаимодействие при переходах в режим Offline

Если FrIf_SetState вызывается с параметром перехода FRIF_STATE_OFFLINE, FlexRay-интерфейс проверяет счетчик TxConfCounter для каждой PDU [SWS_FrIf_05501]. Если это значение для какой-либо PDU больше 0, модуль информирует вышележащий уровень с помощью вызова <UL>_TxConfirmation(id, E_NOT_OK) о сбое ожидающего подтверждения [SWS_FrIf_05501].

Этот текст был сгенерирован системой ИИ на основе спецификации 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().

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 198c69b5740a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция FrIf_SendWUP (Service-ID 0x0a) модуля FrIf доступна через заголовочный файл FrIf.h и служит интерфейсной оберткой для вызова API-функции Fr_SendWUP() нижележащего драйвера FlexRay [SWS_FrIf_05011].

Использование и параметры

Сервис выполняется асинхронно [SWS_FrIf_05011]. Единственным передаваемым параметром служит входной параметр FrIf_CtrlIdx типа uint8, который специфицирует индекс адресуемого FlexRay Communication Controller (FlexRay CC) [SWS_FrIf_05011]. Параметры Inout или Out не используются [SWS_FrIf_05011].

Возвращаемые значения и обработка ошибок

В качестве возвращаемого значения функция возвращает статус типа Std_ReturnType [SWS_FrIf_05011]:

  • E_OK: вызов API-сервиса драйвера FlexRay был выполнен успешно и вернул E_OK [SWS_FrIf_05011].
  • E_NOT_OK: вызов API-сервиса драйвера FlexRay вернул 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().

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f313d1af7873 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и принцип работы

Функция FrIf_AllowColdstart служит обёрткой для API драйвера FlexRay Fr_AllowColdstart() согласно [SWS_FrIf_05017]. Через входной параметр FrIf_CtrlIdx она адресует требуемый коммуникационный контроллер (CC) FlexRay [SWS_FrIf_05017]. Выполнение функции специфицировано как асинхронное [SWS_FrIf_05017].

Возвращаемые значения и обработка ошибок

Возвращаемое значение типа Std_ReturnType отражает результат выполнения [SWS_FrIf_05017]:

  • E_OK: базовый API-сервис драйвера FlexRay был успешно вызван и вернул E_OK [SWS_FrIf_05017].
  • E_NOT_OK: вызов драйвера завершился сбоем (возвращаемое значение E_NOT_OK), либо была обнаружена ошибка в режиме разработки (Development Mode) [SWS_FrIf_05017].

Интерпретация: обнаружение ошибок в Development Mode, предположительно, осуществляется через модуль Default Error Tracer (DET), хотя в выдержке из спецификации не задокументированы конкретные ID ошибок или проверки. Вопрос Q-5dffd71d66731cc9 (открытый)

Параллелизм и ограничения

Что касается реентерабельности, FrIf_AllowColdstart нереентерабельна для одинаковых значений FrIf_CtrlIdx, однако может вызываться параллельно для разных индексов контроллера [SWS_FrIf_05017]. Поэтому вызывающие стороны должны обеспечивать синхронизацию одновременных вызовов для одного и того же контроллера. Интерфейс предоставляется через заголовочный файл FrIf.h [SWS_FrIf_05017].

Данное указание по использованию создано ИИ и основано на данных спецификации из 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9cb8bddfea7e Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция FrIf_Transmit запрашивает передачу PDU через интерфейс FlexRay [SWS_FrIf_05033]. Она принимает ID передаваемой PDU (TxPduId), а также указатель на структуру PduInfoPtr, которая предоставляет длину PDU, указатель на данные и метаданные [SWS_FrIf_05033].

В отношении параллелизма и реентерабельности FrIf_Transmit реентерабельна для различных ID PDU, однако нереентерабельна для одного и того же ID PDU [SWS_FrIf_05033]. Вызов возвращает E_OK, как только запрос на передачу был принят, иначе E_NOT_OK [SWS_FrIf_05033].

Специфическая проверка ошибок выполняется для немедленных PDU (Immediate PDUs), если динамические длины L-SDU деактивированы конфигурационным параметром FrIfAllowDynamicLSduLength со значением FALSE [SWS_FrIf_05757]:

  • Переданная в PduInfoPtr длина проверяется на соответствие статически сконфигурированной длине PDU [SWS_FrIf_05757].
  • Если указание длины не совпадает, FrIf_Transmit прерывает передачу Immediate PDU и возвращает E_NOT_OK [SWS_FrIf_05757].
  • Если обнаружение ошибок разработки (FrIfDevErrorDetect == ON) активно, функция сообщает об ошибке разработки FRIF_E_INV_PDULENGTH через Det_ReportError в модуль DET [SWS_FrIf_05757].

Данный текст был сгенерирован ИИ на основе спецификации 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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e732fae6663a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный интерфейс FrIf_SetTransceiverMode с Service-ID 0x13 функционирует во FlexRay-интерфейсе как обертка для функции драйвера FrTrcv_SetTransceiverMode() драйвера трансивера FlexRay и доступен через заголовочный файл FrIf.h [SWS_FrIf_05034]. Он позволяет верхним уровням настраивать режим работы трансивера для определенного контроллера и канала FlexRay [SWS_FrIf_05034].

При вызове должны быть переданы три параметра: индекс контроллера FrIf_CtrlIdx для адресации FlexRay Communication Controller, индекс канала FrIf_ChnlIdx для определения канала FlexRay в области действия контроллера, а также желаемый режим трансивера FrIf_TrcvMode типа FrTrcv_TrcvModeType [SWS_FrIf_05034]. Входные/выходные или выходные параметры отсутствуют [SWS_FrIf_05034]. Для параметра FrIf_ChnlIdx действует обязательное требование, согласно которому значение перечисления FR_CHANNEL_AB ни в коем случае не должно использоваться [SWS_FrIf_05034].

Функция специфицирована как реентерабельная и синхронно перенаправляет смену режима в драйвер трансивера [SWS_FrIf_05034]. В качестве результата она возвращает статус Std_ReturnType: она сообщает E_OK, если вызов API-сервиса в драйвере трансивера успешно вернул 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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 983ace12320e Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция FrIf_ClearTransceiverWakeup (Service-ID 0x18) выступает в роли обёртки внутри интерфейса FlexRay и инкапсулирует вызов API-функции FrTrcv_ClearTransceiverWakeup() драйвера трансивера FlexRay [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]. В качестве существенного функционального ограничения спецификация предписывает, что значение перечисления FR_CHANNEL_AB не должно использоваться для параметра FrIf_ChnlIdx [SWS_FrIf_05039].

Результат операции синхронно возвращается как Std_ReturnType и напрямую отражает результат службы драйвера [SWS_FrIf_05039]:

  • E_OK: API-служба драйвера трансивера FlexRay была успешно выполнена и вернула E_OK [SWS_FrIf_05039].
  • E_NOT_OK: вызов службы драйвера завершился сбоем и вернул E_NOT_OK [SWS_FrIf_05039].

Это указание по использованию было сгенерировано ИИ на основе спецификации 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() .

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: aaee20f9db6d Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция FrIf_CancelAbsoluteTimer служит для синхронного прерывания сконфигурированного абсолютного таймера на коммуникационном контроллере FlexRay (CC) [SWS_FrIf_05023]. Она действует как оболочка вокруг соответствующей функции драйвера Fr_CancelAbsoluteTimer() драйвера FlexRay и доступна через заголовочный файл FrIf.h [SWS_FrIf_05023].

Параметры и возвращаемые значения

При вызове передаются два входных параметра [SWS_FrIf_05023]:

  • FrIf_CtrlIdx: индекс адресуемого FlexRay-контроллера.
  • FrIf_AbsTimerIdx: индекс прерываемого абсолютного таймера.

Функция возвращает статус типа Std_ReturnType [SWS_FrIf_05023]:

  • E_OK: базовый вызов API драйвера FlexRay успешно завершился с E_OK [SWS_FrIf_05023].
  • E_NOT_OK: вызов API драйвера завершился сбоем (возврат E_NOT_OK) или в режиме разработки (Development Mode) была обнаружена ошибка [SWS_FrIf_05023].

Параллелизм и ограничения

Выполнение происходит синхронно с идентификатором службы (Service ID) 0x1b [SWS_FrIf_05023]. В отношении реентерабельности служба реентерабельна для различных FlexRay CC, однако не должна вызываться параллельно для одного и того же FlexRay CC [SWS_FrIf_05023].

Этот текст был сгенерирован ИИ на основе спецификации 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().

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6362ca64b166 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция FrIf_DisableAbsoluteTimerIRQ является частью модуля интерфейса FlexRay и предоставляется через заголовочный файл FrIf.h [SWS_FrIf_05031]. Она служит синхронной оболочкой для функции Fr_DisableAbsoluteTimerIRQ() API драйвера FlexRay и перенаправляет запрос на деактивацию генерации прерываний адресуемого абсолютного таймера на уровень драйвера [SWS_FrIf_05031].

Контекст вызова и параметры

Вызов выполняется синхронно с использованием идентификатора службы (Service 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: сигнализирует о том, что вызов службы API драйвера FlexRay прошел успешно и вернул E_OK [SWS_FrIf_05031].
  • E_NOT_OK: указывает на то, что служба API драйвера FlexRay вернула 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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e0c30b766f1b Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный интерфейс FrIf_AllSlots служит в рамках интерфейса FlexRay оболочкой для вызова базовой функции драйвера Fr_AllSlots драйвера FlexRay [SWS_FrIf_05020]. Функция предоставляется через заголовочный файл FrIf.h и имеет идентификатор службы (Service ID) 0x33 [SWS_FrIf_05020]. В качестве единственного входного параметра ожидается FrIf_CtrlIdx, который определяет логический индекс адресуемого коммуникационного контроллера FlexRay (FlexRay Communication Controller) [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 (открытый)

Этот текст был создан ИИ; определяющим является стандарт 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.

СОЗДАНО ИИ не проверено Модель: 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 реентерабельна для различных ID PDU, но не реентерабельна для одного и того же TxPduId [SWS_FrIf_05070]. При вызовах из параллельных контекстов для одного и того же ID PDU со стороны вызывающего объекта, вероятно, потребуется внешняя синхронизация во избежание состояний гонки. Вопрос Q-38e799ac1564f60f (открытый)

Обработка ошибок и интеграция

Специфические коды ошибок DET или DEM в интерфейсе не определены; сбой отмены сигнализируется непосредственно через возвращаемое значение E_NOT_OK [SWS_FrIf_05070]. Сервис имеет Service-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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6dcfcbdfc95d Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция FrIf_DisableLPdu служит оберткой для функции драйвера Fr_DisableLPdu драйвера FlexRay и деактивирует базовый аппаратный ресурс L-PDU для передачи или приема [SWS_FrIf_05710].

Вызов и параметры

Вызов FrIf_DisableLPdu происходит синхронно через интерфейс FrIf.h с Service-ID 0x28 [SWS_FrIf_05710]. Функция ожидает два входных параметра:

  • FrIf_CtrlIdx: индекс FlexRay Communication Controller в контексте интерфейса FlexRay [SWS_FrIf_05710].
  • FrIf_LPduIdx: уникальный индекс для идентификации затрагиваемого фрейма FlexRay [SWS_FrIf_05710].

Возвращаемые значения и обработка ошибок

В качестве результата функция возвращает статус типа Std_ReturnType [SWS_FrIf_05710]:

  • E_OK: вызов API был успешно завершен [SWS_FrIf_05710].
  • E_NOT_OK: вызов API был прерван из-за ошибок [SWS_FrIf_05710].

Параллелизм и ограничения

В отношении поведения при параллелизме FrIf_DisableLPdu специфицирована как нереентерабельная для одного и того же устройства (Non Reentrant for the same device) [SWS_FrIf_05710]. Поэтому параллельные вызовы для одного и того же контроллера или одного и того же устройства должны избегаться или синхронизироваться на стороне вызывающего объекта.

Этот текст был создан автоматически и основан исключительно на данных спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

функция FrIf_GetTransceiverError [SWS_FrIf_05032] 📄 PDF

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 Error. The enum value "FR_ CHANNEL_ AB" shall not be used.

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e8dfbb0733ab Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция FrIf_EnableTransceiverBranch в качестве синхронной и реентерабельной функции-обёртки инкапсулирует вызов API FrTrcv_EnableTransceiverBranch нижележащего драйвера трансивера FlexRay [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].

Этот текст был сгенерирован ИИ на основе спецификации 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9edf0f22a2a3 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция FrIf_DisableTransceiverBranch инкапсулирует в качестве функции-обёртки службу FrTrcv_DisableTransceiverBranch драйвера трансивера FlexRay [SWS_FrIf_05028]. Она предоставляется через заголовочный файл FrIf.h, имеет Service-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 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6127b6f4417a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция FrIf_ReconfigLPdu служит для реконфигурации L-PDU в интерфейсе FlexRay (FrIf) и передает вызов напрямую в интерфейс драйвера Fr_ReconfigLPdu драйвера FlexRay [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: определяют новый идентификатор кадра (Frame ID) FlexRay, а также повторение и смещение механизма фильтрации циклов для L-PDU [SWS_FrIf_05048].
  • FrIf_ChnlIdx: определяет канал FlexRay типа Fr_ChannelType [SWS_FrIf_05048]. При этом строго задано, что значение перечисления FR_CHANNEL_AB использовать запрещено [SWS_FrIf_05048].
  • FrIf_PayloadLength и FrIf_HeaderCRC: задают длину полезных данных в байтах, а также соответствующий CRC заголовка, на которые должна быть настроена L-PDU [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().

СОЗДАНО ИИ не проверено Модель: 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]. Её основная задача состоит в том, чтобы в качестве обёртки вызывать функцию драйвера Fr_ReadCCConfig() базового драйвера FlexRay для считывания параметров конфигурации контроллера [SWS_FrIf_05313].

При вызове интерфейс ожидает три параметра [SWS_FrIf_05313]:

  • FrIf_CtrlIdx (вход): числовой индекс адресуемого коммуникационного контроллера (CC) FlexRay.
  • 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.

СОЗДАНО ИИ не проверено Модель: 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]. Интерпретация: указание спецификации FrIf_CtrlIdx для E_NOT_OK, несмотря на отличающееся обозначение, вероятно, относится к проверке индекса кластера FrIf_ClstIdx или назначенных контроллеров. Вопрос Q-9daba2ff2b1a3ff1 (открытый)

Параллелизм и интеграция

Функция объявлена как реентерабельная и имеет Service-ID 0x4b; она предоставляется через заголовочный файл FrIf.h [SWS_FrIf_05726]. Вызывающие стороны должны учитывать, что выполнение происходит синхронно. Дополнительные каналы ошибок через DET или DEM для этого сервиса не указаны.

Этот текст был создан ИИ; определяющей является спецификация 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 09a9e5676d66 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция FrIf_CheckWakeupByTransceiver (Service-ID 0x39) выступает в интерфейсе FlexRay синхронной оболочкой для функции FrTrcv_CheckWakeupByTransceiver() драйвера трансивера FlexRay [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 (открытый)

Этот текст был создан ИИ и основан на 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.

СОЗДАНО ИИ не проверено Модель: 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].

Параллелизм и конфигурация

С точки зрения реентерабельности функция является реентерабельной для различных ID PDU, однако не должна вызываться реентерабельно для одного и того же ID PDU [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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: befc612f1e10 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Конфигурируемая callback-функция <User_TxConfirmation> вызывается нижележащим модулем коммуникационного интерфейса для подтверждения завершения операции отправки для PDU [SWS_FrIf_05046]. Она синхронно сообщает вышестоящему уровню, успешно ли завершилась передача соответствующей PDU или произошел сбой [SWS_FrIf_05046].

Интерфейс не имеет возвращаемого значения (void) и ожидает два входных параметра [SWS_FrIf_05046]:

  • TxPduId (тип PduIdType): обозначает уникальный ID переданной PDU [SWS_FrIf_05046].
  • result (тип Std_ReturnType): указывает результат передачи, при этом E_OK подтверждает успешную передачу, а E_NOT_OK сообщает о сбое передачи PDU [SWS_FrIf_05046].

Функция работает синхронно [SWS_FrIf_05046]. С точки зрения параллелизма она реентерабельна для различных ID PDU, но не реентерабельна для одного и того же TxPduId [SWS_FrIf_05046]. Поэтому параллельные вызовы подтверждения для идентичных ID PDU должны быть исключены.

Специфические коды ошибок, помимо E_NOT_OK, или отдельные сообщения в DET или DEM для этого вызова не специфицированы [SWS_FrIf_05046]. Интерпретация: поскольку интерфейс обозначен как конфигурируемый, идентификатор <User_TxConfirmation>, вероятно, служит заполнителем для имени функции, фактически сконфигурированного на вышестоящем уровне [SWS_FrIf_05046]. Вопрос Q-f2a08258df49b3ec (открытый)

Этот текст был создан ИИ и служит вспомогательным материалом к спецификации 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: fac22c3dab8e Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная callback-функция <User_TriggerTransmit> вызывается для запроса данных SDU верхнего уровня для передачи [SWS_FrIf_05047]. В качестве параметров передаются идентификатор TxPduId отправляемой SDU, а также указатель PduInfoPtr типа PduInfoType* [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].

Интерфейс является реентерабельным для различных ID PDU, но не реентерабельным для одного и того же ID PDU [SWS_FrIf_05047]. Доступность функции является конфигурируемой [SWS_FrIf_05047].

Этот текст был создан ИИ. Все данные основаны исключительно на спецификациях релиза 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8665c1e85fa1 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция <Free_Op_A> спроектирована как определяемая пользователем коммуникационная операция в интерфейсе FlexRay для поддержки аппаратно-зависимых или дополнительных характеристик Communication Controller с целью повышения общей производительности [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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c7b423aeeb3d Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Пользовательская функция <Free_Op_B> служит для выполнения специфичных для приложения коммуникационных операций во FlexRay-интерфейсе [SWS_FrIf_05317]. Её назначение заключается в поддержке аппаратно-зависимых или дополнительных возможностей FlexRay Communication Controller с целью повышения производительности связи [SWS_FrIf_05317]. Объявление функции предоставляется через заголовочный файл FrIf_Externals.h [SWS_FrIf_05317].

Вызов и параметры

Операция вызывается синхронно и не возвращает значения (void) [SWS_FrIf_05317]. Она обрабатывает два входных параметра, при этом входно-выходные и выходные параметры отсутствуют [SWS_FrIf_05317]:

  • FrIf_CtrlIdx: индекс целевого FlexRay Communication Controller (тип uint8) [SWS_FrIf_05317].
  • FrIf_LPduIdx: уникальный индекс для идентификации соответствующего FlexRay-фрейма (тип uint16) [SWS_FrIf_05317].

Параллелизм и ограничения

В отношении реентерабельности функция специфицирована как реентерабельная для различных индексов LPdu (FrIf_LPduIdx), однако явно нереентерабельная для одного и того же индекса LPdu [SWS_FrIf_05317]. Поэтому вызывающие компоненты должны гарантировать отсутствие одновременных вызовов для одной и той же PDU.

Интерпретация: поскольку операция обозначена как пользовательская и расположена в FrIf_Externals.h, фактическая реализация, по-видимому, должна предоставляться пользователем или в качестве расширения драйвера. Вопрос Q-6668832db63b9906 (открытый)

Этот текст создан ИИ. Все данные основаны исключительно на спецификациях релиза 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.

СОЗДАНО ИИ не проверено Модель: 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]. Поэтому при реализации необходимо обеспечить предотвращение одновременных вызовов для одного и того же индекса фрейма.

Обработка ошибок и взаимодействие

Спецификация не определяет для этого callback-интерфейса отдельных сообщений DET или DEM, а также специфических кодов ошибок [SWS_FrIf_91001]. Интерпретация: вышестоящий уровень, вероятно, предоставляет вызов, чтобы иметь возможность непосредственно протоколировать или обрабатывать конфликты, возникшие на тракте передачи FlexRay. Вопрос Q-fc63c251dbc03307 (открытый)

Этот текст был создан ИИ и проверен по строгим правилам. Технические подтверждения взяты исключительно из спецификации.

тип 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.

СОЗДАНО ИИ не проверено Модель: 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 (открытый)

Этот текст был сгенерирован ИИ и основан на спецификации 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.

СОЗДАНО ИИ не проверено Модель: 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, определенные литералы дают основание интерпретировать, что этот тип перечисления в первую очередь служит управляющим параметром для запроса смен состояний (offline или online) [SWS_FrIf_05303]. Поскольку полезная нагрузка не содержит других интерфейсов, предписаний по реентерабельности или кодов ошибок для этого типа, действуют общие правила интеграции через заголовочный файл FrIf.h.

Этот текст был создан ИИ. Он основан на 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#fd72fcb3
Content hash
fd72fcb3
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayInterface.pdf#nameddest=SWS_FrIf_05003

Инициализация и состояние

FrIf_GetVersionInfo функция

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);
FrIf_GetChannelStatus функция

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);
FrIf_GetCycleLength функция

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);
FrIf_GetGlobalTime функция

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);
FrIf_GetNmVector функция

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);
FrIf_GetPOCStatus функция

Wraps the Flex Ray Driver API function Fr_ Get POCStatus().

Std_ReturnType FrIf_GetPOCStatus (uint8 FrIf_CtrlIdx, Fr_POCStatusType* FrIf_POCStatusPtr);
FrIf_GetState функция

Get current Fr If state.

Std_ReturnType FrIf_GetState (uint8 FrIf_ClstIdx, FrIf_StateType* FrIf_StatePtr);
FrIf_GetSyncFrameList функция

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);
FrIf_GetWakeupRxStatus функция

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…

FrIf_SetAbsoluteTimer функция

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

Std_ReturnType FrIf_SetAbsoluteTimer (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx, uint8 FrIf_Cycle, uint16 FrIf_Offset);
FrIf_SetState функция

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 ]); ⚠️
FrIf_SetWakeupChannel функция

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);
FrIf_DisableLPdu функция

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);
FrIf_AllowColdstart функция

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

Std_ReturnType FrIf_AllowColdstart (uint8 FrIf_CtrlIdx);
FrIf_AllSlots функция

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);
FrIf_CancelTransmit функция

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);
FrIf_ControllerInit функция

Initialized a Flex Ray CC.

Std_ReturnType FrIf_ControllerInit (uint8 FrIf_CtrlIdx);
FrIf_HaltCommunication функция

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

Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);
FrIf_ReadCCConfig функция

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); ⚠️
FrIf_ReconfigLPdu функция

Service FrIf_ReconfigLPdu.

Std_ReturnType FrIf_ReconfigLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx, uint16 FrIf_FrameId, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_CycleRepetition, uint8 FrIf_CycleOffset, uint8 FrIf_PayloadLength, uint16 FrIf_Header CRC); ⚠️
FrIf_SendWUP функция

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

Std_ReturnType FrIf_SendWUP (uint8 FrIf_CtrlIdx);

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

Std_ReturnType FrIf_StartCommunication (uint8 FrIf_CtrlIdx);
FrIf_Transmit функция

Requests transmission of a PDU.

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

Callout-функции и ожидаемые интерфейсы

<Free_Op_A> функция

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

void <Free_Op_A> (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);
<Free_Op_B> функция

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);
<User_RxIndication> функция

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

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
<User_TriggerTransmit> функция

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);
<User_TxConfirmation> функция

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.