AUTOSAR Classic FlexRay
Das FlexRay-Cluster bietet deterministische, fehlertolerante High-Speed-Kommunikation mit statischen und dynamischen Segmenten, Bus-Synchronisation, ISO 10681 Transportprotokoll und Transceiver-Diagnose.
초기화 및 상태
Fr_GetVersionInfoFr_InitFrArTp_GetVersionInfoFrArTp_InitFrIf_GetVersionInfoFrIf_InitFrNm_GetVersionInfoFrNm_InitFrSM_GetVersionInfoFrSm_InitFrTp_GetVersionInfoFrTp_InitFrTrcv_GetVersionInfoFrTrcv_Init서비스 · Get…
서비스 · Set…
서비스 · Cancel…
서비스 · Disable…
서비스 · Enable…
서비스 · Transmit…
서비스 · Check…
서비스 · All…
서비스 · Request…
서비스 · 기타
Fr_AbortCommunicationFr_AckAbsoluteTimerIRQFr_AllowColdstartFr_ControllerInitFr_HaltCommunicationFr_PrepareLPduFr_ReadCCConfigFr_ReceiveRxLPduFr_ReconfigLPduFr_SendWUPFr_StartCommunicationFrArTp_ChangeParameterFrArTp_ShutdownFrIf_AbortCommunicationFrIf_AckAbsoluteTimerIRQFrIf_AllowColdstartFrIf_ClearTransceiverWakeupFrIf_ControllerInitFrIf_HaltCommunicationFrIf_ReadCCConfigFrIf_ReconfigLPduFrIf_SendWUPFrIf_StartCommunicationFrNm_ActivateTxPnShutdownMsgFrNm_DeactivateTxPnShutdownMsgFrNm_NetworkReleaseFrNm_NetworkRequestFrNm_PassiveStartUpFrNm_PnLearningRequestFrNm_RepeatMessageRequestFrNm_StartupErrorFrTp_ChangeParameterFrTp_ShutdownFrTrcv_ClearTransceiverWakeup콜백
FrArTp_RxIndicationFrArTp_TxConfirmationFrNm_RxIndicationFrNm_TriggerTransmitFrNm_TxConfirmationFrTp_RxIndicationFrTp_TriggerTransmitFrTp_TxConfirmation콜아웃 및 예상 인터페이스
<Fr Nm Channel.Short Name><Free_Op_A><Free_Op_B><Nm_Network Start Indication><Nm_Pdu RxIndication><UL_Remote Sleep Cancellation><UL_Remote Sleep Indication><UL_Transmission Timeout Exception><UL_TxConflictNotification><User_RxIndication><User_TriggerTransmit><User_TxConfirmation>주기적
FrArTp_MainFunctionFrTp_MainFunctionFrTrcv_MainFunction타입
Fr_ChannelTypeFr_ConfigTypeFr_ErrorModeTypeFr_POCStatusTypeFr_RxLPduStatusTypeFr_SlotAssignmentTypeFr_SlotModeTypeFr_StartupStateTypeFr_TxLPduStatusTypeFr_WakeupStatusTypeFrArTp_ConfigTypeFrIf_ConfigTypeFrIf_StateTransitionTypeFrIf_StateTypeFrNm_ConfigTypeFrSM_BswM_StateTypeFrSM_ConfigTypeFrTp_ConfigTypeFrTrcv_ConfigTypeFrTrcv_TrcvModeTypeFrTrcv_TrcvWUReasonTypeofaCfunctionwhichsubstitutesMultiplicityType함수
<Fr Nm Channel.Short Name><Free_Op_A><Free_Op_B><Nm_Network Start Indication><Nm_Pdu RxIndication><UL_Remote Sleep Cancellation><UL_Remote Sleep Indication><UL_Transmission Timeout Exception><UL_TxConflictNotification><User_RxIndication><User_TriggerTransmit><User_TxConfirmation>Fr_AbortCommunicationFr_AckAbsoluteTimerIRQFr_AllowColdstartFr_AllSlotsFr_CancelAbsoluteTimerFr_CancelTxLPduFr_CheckTxLPduStatusFr_ControllerInitFr_DisableAbsoluteTimerIRQFr_DisableLPduFr_EnableAbsoluteTimerIRQFr_GetAbsoluteTimerIRQStatusFr_GetChannelStatusFr_GetClockCorrectionFr_GetGlobalTimeFr_GetNmVectorFr_GetNumOfStartupFramesFr_GetPOCStatusFr_GetSyncFrameListFr_GetVersionInfoFr_GetWakeupRxStatusFr_HaltCommunicationFr_InitFr_PrepareLPduFr_ReadCCConfigFr_ReceiveRxLPduFr_ReconfigLPduFr_SendWUPFr_SetAbsoluteTimerFr_SetWakeupChannelFr_StartCommunicationFr_TransmitTxLPduFrArTp_CancelReceiveFrArTp_CancelTransmitFrArTp_ChangeParameterFrArTp_GetVersionInfoFrArTp_InitFrArTp_MainFunctionFrArTp_RxIndicationFrArTp_ShutdownFrArTp_TransmitFrArTp_TxConfirmationFrIf_AbortCommunicationFrIf_AckAbsoluteTimerIRQFrIf_AllowColdstartFrIf_AllSlotsFrIf_CancelAbsoluteTimerFrIf_CancelTransmitFrIf_CheckWakeupByTransceiverFrIf_ClearTransceiverWakeupFrIf_ControllerInitFrIf_DisableAbsoluteTimerIRQFrIf_DisableLPduFrIf_DisableTransceiverBranchFrIf_EnableAbsoluteTimerIRQFrIf_EnableBusMirroringFrIf_EnableTransceiverBranchFrIf_GetAbsoluteTimerIRQStatusFrIf_GetChannelStatusFrIf_GetClockCorrectionFrIf_GetCycleLengthFrIf_GetGlobalTimeFrIf_GetMacrotickDurationFrIf_GetMacroticksPerCycleFrIf_GetNmVectorFrIf_GetNumOfStartupFramesFrIf_GetPOCStatusFrIf_GetStateFrIf_GetSyncFrameListFrIf_GetTransceiverErrorFrIf_GetTransceiverModeFrIf_GetTransceiverWUReasonFrIf_GetVersionInfoFrIf_GetWakeupRxStatusFrIf_HaltCommunicationFrIf_InitFrIf_ReadCCConfigFrIf_ReconfigLPduFrIf_SendWUPFrIf_SetAbsoluteTimerFrIf_SetStateFrIf_SetTransceiverModeFrIf_SetWakeupChannelFrIf_StartCommunicationFrIf_TransmitFrNm_ActivateTxPnShutdownMsgFrNm_CheckRemoteSleepIndicationFrNm_DeactivateTxPnShutdownMsgFrNm_DisableCommunicationFrNm_EnableCommunicationFrNm_GetLocalNodeIdentifierFrNm_GetNodeIdentifierFrNm_GetPduDataFrNm_GetStateFrNm_GetUserDataFrNm_GetVersionInfoFrNm_InitFrNm_NetworkReleaseFrNm_NetworkRequestFrNm_PassiveStartUpFrNm_PnLearningRequestFrNm_RepeatMessageRequestFrNm_RequestBusSynchronizationFrNm_RequestSynchronizedPncShutdownFrNm_RxIndicationFrNm_SetSleepReadyBitFrNm_SetUserDataFrNm_StartupErrorFrNm_TransmitFrNm_TriggerTransmitFrNm_TxConfirmationFrSm_AllSlotsFrSM_GetCurrentComModeFrSM_GetVersionInfoFrSm_InitFrSM_RequestComModeFrSm_SetEcuPassiveFrTp_CancelReceiveFrTp_CancelTransmitFrTp_ChangeParameterFrTp_GetVersionInfoFrTp_InitFrTp_MainFunctionFrTp_RxIndicationFrTp_ShutdownFrTp_TransmitFrTp_TriggerTransmitFrTp_TxConfirmationFrTrcv_CheckWakeupByTransceiverFrTrcv_ClearTransceiverWakeupFrTrcv_DisableTransceiverBranchFrTrcv_EnableTransceiverBranchFrTrcv_GetTransceiverErrorFrTrcv_GetTransceiverModeFrTrcv_GetTransceiverWUReasonFrTrcv_GetVersionInfoFrTrcv_InitFrTrcv_MainFunctionFrTrcv_SetTransceiverMode타입
Fr_ChannelTypeFr_ConfigTypeFr_ErrorModeTypeFr_POCStatusTypeFr_RxLPduStatusTypeFr_SlotAssignmentTypeFr_SlotModeTypeFr_StartupStateTypeFr_TxLPduStatusTypeFr_WakeupStatusTypeFrArTp_ConfigTypeFrIf_ConfigTypeFrIf_StateTransitionTypeFrIf_StateTypeFrNm_ConfigTypeFrSM_BswM_StateTypeFrSM_ConfigTypeFrTp_ConfigTypeFrTrcv_ConfigTypeFrTrcv_TrcvModeTypeFrTrcv_TrcvWUReasonTypeofaCfunctionwhichsubstitutesMultiplicityType주제 맵
Fr
42FrArTp
11FrIf
52FrNm
33FrSM
8FrTp
12FrTrcv
15이 릴리스에 대한 요소 데이터가 없습니다
Fr
Invokes the CC CHI command 'FREEZE'.
Std_ReturnType Fr_AbortCommunication (uint8 Fr_CtrlIdx);Service Fr_AckAbsoluteTimerIRQ.
Std_ReturnType Fr_AckAbsoluteTimerIRQ (uint8 Fr_CtrlIdx, uint8 Fr_AbsTimerIdx);Invokes the CC CHI command 'ALLOW_ COLDSTART'.
Std_ReturnType Fr_AllowColdstart (uint8 Fr_CtrlIdx);Invokes the CC CHI command 'ALL_ SLOTS'.
Std_ReturnType Fr_AllSlots (uint8 Fr_CtrlIdx);Stops an absolute timer.
Std_ReturnType Fr_CancelAbsoluteTimer (uint8 Fr_CtrlIdx, uint8 Fr_AbsTimerIdx);Cancels the already pending transmission of a LPdu contained in a controllers p hysical transmit resource (e.g. message buffer).
Std_ReturnType Fr_CancelTxLPdu (uint8 Fr_CtrlIdx, uint16 Fr_LPduIdx);Checks the transmit status of the LSdu.
Std_ReturnType* Fr_CheckTxLPduStatus (uint8 Fr_CtrlIdx, uint16 Fr_LPduIdx, Fr_TxLPduStatusType* Fr_TxLPduStatusPtr, Fr_SlotAssignmentType* Fr_SlotAssignmentPtr);Initialzes a F lex Ray CC.
Std_ReturnType Fr_ControllerInit (uint8 Fr_CtrlIdx);Disables the in terrupt line of an absolute timer.
Std_ReturnType Fr_DisableAbsoluteTimerIRQ (uint8 Fr_CtrlIdx, uint8 Fr_AbsTimerIdx);Disables the hardware resource of a LPdu for transmission/ reception.
Std_ReturnType Fr_DisableLPdu (uint8 Fr_CtrlIdx, uint16 Fr_LPduIdx);Service Fr_EnableAbsoluteTimerIRQ.
Std_ReturnType Fr_EnableAbsoluteTimerIRQ (uint8 Fr_CtrlIdx, uint8 Fr_AbsTimerIdx);Gets IRQ status of an absolute timer.
Std_ReturnType Fr_GetAbsoluteTimerIRQStatus (uint8 Fr_CtrlIdx, uint8 Fr_AbsTimerIdx, boolean* Fr_IRQStatusPtr);Gets the channe l status information. Specification of FlexRay Driver AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayDriver
Std_ReturnType Fr_GetChannelStatus (uint8 Fr_CtrlIdx, uint16* Fr_ChannelAStatusPtr, uint16* Fr_ChannelBStatusPtr);Gets the current clock correction values. See variables v Interim Rate Correction and v Interim Offset Correction of [12] for details.
Std_ReturnType Fr_GetClockCorrection (uint8 Fr_CtrlIdx, sint16* Fr_RateCorrectionPtr, sint32* Fr_OffsetCorrectionPtr);Gets the current global Flex Ray time. Important Note: Fr_ Get Global Time may be called within an exclusive area.
Std_ReturnType Fr_GetGlobalTime (uint8 Fr_CtrlIdx, uint8* Fr_CyclePtr, uint16* Fr_MacroTickPtr);Gets the network management vector of the last communication cycle.
Std_ReturnType Fr_GetNmVector (uint8 Fr_CtrlIdx, uint8* Fr_NmVectorPtr);Gets the current number of startup frames seen on the cluster. See variable v Startup Pairs of [12] for details.
Std_ReturnType Fr_GetNumOfStartupFrames (uint8 Fr_CtrlIdx, uint8* Fr_NumOfStartupFramesPtr);Gets the POC status.
Std_ReturnType Fr_GetPOCStatus (uint8 Fr_CtrlIdx, Fr_POCStatusType* Fr_POCStatusPtr);Returns the version information of this module.
void Fr_GetVersionInfo (Std_VersionInfoType* VersioninfoPtr);Gets the wakeup received information from the Flex Ray controller.
Std_ReturnType Fr_GetWakeupRxStatus (uint8 Fr_CtrlIdx, uint8* Fr_WakeupRxStatusPtr);Invokes the CC CHI command 'DEFERRED_ HALT'.
Std_ReturnType Fr_HaltCommunication (uint8 Fr_CtrlIdx);Initializes the Fr.
void Fr_Init (const Fr_ConfigType* Fr_ConfigPtr);Prepares a LPdu.
Std_ReturnType Fr_PrepareLPdu (uint8 Fr_CtrlIdx, uint16 Fr_LPduIdx);Service Fr_ReadCCConfig.
Std_ReturnType Fr_ReadCCConfig (uint8 Fr_CtrlIdx, uint8 Fr_Config ParamIdx, uint32* Fr_Config ParamValuePtr); ⚠️Service Fr_ReceiveRxLPdu.
Std_ReturnType Fr_ReceiveRxLPdu (uint8 Fr_CtrlIdx, uint16 Fr_LPduIdx, uint8* Fr_LSduPtr, Fr_RxLPduStatusType* Fr_LPduStatusPtr, uint8* Fr_LSduLengthPtr, Fr_SlotAssignmentType* Fr_SlotAssignmentPtr);Service Fr_ReconfigLPdu.
Std_ReturnType Fr_ReconfigLPdu (uint8 Fr_CtrlIdx, uint16 Fr_LPduIdx, uint16 Fr_FrameId, Fr_ChannelType Fr_ChnlIdx, uint8 Fr_CycleRepetition, uint8 Fr_CycleOffset, uint8 Fr_PayloadLength, uint16 Fr_Header CRC); ⚠️Invokes the CC CHI command 'WAKEUP'.
Std_ReturnType Fr_SendWUP (uint8 Fr_CtrlIdx);Sets the absolute Flex Ray timer.
Std_ReturnType Fr_SetAbsoluteTimer (uint8 Fr_CtrlIdx, uint8 Fr_AbsTimerIdx, uint8 Fr_Cycle, uint16 Fr_Offset);Sets a wakeup channel.
Std_ReturnType Fr_SetWakeupChannel (uint8 Fr_CtrlIdx, Fr_ChannelType Fr_ChnlIdx);Starts communication.
Std_ReturnType Fr_StartCommunication (uint8 Fr_CtrlIdx);Transmits data on the Flex Ray network.
Std_ReturnType Fr_TransmitTxLPdu (uint8 Fr_CtrlIdx, uint16 Fr_LPduIdx, const uint8* Fr_LSduPtr, uint8 Fr_LSduLength, Fr_SlotAssignmentType* Fr_SlotAssignmentPtr);FlexRay channel identifier: FR_CHANNEL_A, FR_CHANNEL_B, or FR_CHANNEL_AB.
This type contains the implementation - specific post build configuration structure.
This formal definition refers to the description of type T_ Error Mode in chapter 2.2.1.3 POC status of [12].
This formal definition refers to the description of type T_ POCStatus in chapter 2.2.1.3 POC status of [12].
These values are used to determine if a LPdu has been received or not.
This structure contains information about the assignment of a Flex Ray frame to a cycle and a slot ID.
This formal definition refers to the description of type T_ Slot Mode in chapter 2.2.1.3 POC status of [12]. Available Fr_ General Types.h For FlexRay 2.1 Rev A compliant FlexRay controllers see literal SINGL ESLOT instead of KEYSLOT in [14] . Specification of FlexRay Driver AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayDriver via
Type Fr_StartupStateType.
These values are used to determine whether a LPdu has been transmitted or not.
This formal definition refers to the description of type T_ Wakeup Status in chapter Specification of FlexRay Driver AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayDriver 2.2.1.3 POC status of [12].
FrArTp
Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.
Std_ReturnType FrArTp_CancelReceive(PduIdType RxPduId);Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.
Std_ReturnType FrArTp_CancelTransmit(PduIdType TxPduId);Request to change a specific transport protocol parameter (e.g. block size).
Std_ReturnType FrArTp_ChangeParameter(PduIdType id, TPParameterType parameter, uint16 value);Returns the version information.
void FrArTp_GetVersionInfo(Std_VersionInfoType* versioninfo);This service initializes all global variables of the Flex Ray AUTOSAR Transport Layer and sets all states to idle.
void FrArTp_Init(const FrArTp_ConfigType* configPtr);Schedules the Flex Ray TP. (Entry point for scheduling)
void FrArTp_MainFunction(void);Indication of a received PDU from a lower layer communication interface module.
void FrArTp_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr);This service closes all pending transport protocol connections by simply stopping operation, frees all resources and stops the Fr Ar Tp Module
void FrArTp_Shutdown(void);Requests transmission of a PDU.
Std_ReturnType FrArTp_Transmit(PduIdType TxPduId, const PduInfoType* PduInfoPtr);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
void FrArTp_TxConfirmation(PduIdType TxPduId, Std_ReturnType result);This is the base type for the configuration of the Flex Ray Transport Protocol. A pointer to an instance of this structure will be used in the initialization of the Flex Ray Transport Protocol. The outline of the structure is defined in chapter 10 Configuration Specification.
FrIf
Indication of a received PDU from a lower layer communication interface module.
void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);Within this API, the upper lay er module (called module) shall check whether the AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayInterface available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual c opied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.
Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);Wraps the Flex Ray Driver API function Fr_ Abort Communication().
Std_ReturnType FrIf_AbortCommunication (uint8 FrIf_CtrlIdx);Wraps the Flex Ray Driver API function Fr_ Ack Absolute Timer IRQ()
Std_ReturnType FrIf_AckAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);Wraps the Flex Ray Driver API function Fr_ Allow Coldstart().
Std_ReturnType FrIf_AllowColdstart (uint8 FrIf_CtrlIdx);Wraps the Flex Ray Driver API function Fr_ All Slots
Std_ReturnType FrIf_AllSlots (uint8 FrIf_CtrlIdx);Wraps the Flex Ray Driver API function Fr_ Cancel Absolute Timer() .
Std_ReturnType FrIf_CancelAbsoluteTimer (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);Requests cancellation of an ongoing transmission o f a PDU in a lower layer communication module.
Std_ReturnType FrIf_CancelTransmit (PduIdType TxPduId);Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Check Wakeup By Transceiver(). The enum value "FR_ CHANNEL_ AB" shall not be used.
void FrIf_CheckWakeupByTransceiver (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Clear Transceiver Wakeup(). The enum value "FR_ CHANNEL_ AB" shall not be used. A vailable via Fr If.h
Std_ReturnType FrIf_ClearTransceiverWakeup (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);Initialized a Flex Ray CC.
Std_ReturnType FrIf_ControllerInit (uint8 FrIf_CtrlIdx);Wraps the Flex Ray Driver API function Fr_ Disable Absolute Timer IRQ().
Std_ReturnType FrIf_DisableAbsoluteTimerIRQ (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx);Wraps the Flex Ray Driver Function Fr_ Disable LPdu. It disables the hardware resource of an LPdu for transmission/ recept ion.
Std_ReturnType FrIf_DisableLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx);Wraps the Flex Ray Transceiver Driver API function Fr Trcv_ Disable Transceiver Branch. The enum value "FR_ CHANNEL_ AB" shall not be used.
Std_ReturnType FrIf_DisableTransceiverBranch (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_BranchIdx);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_ Get Absolute Timer IRQStatus()
Std_ReturnType FrIf_GetAbsoluteTimerIRQStatus (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx, boolean* FrIf_IRQStatusPtr);Wraps the Flex Ray Driver API function Fr_ Get Channel Status() and gets the channel status information.
Std_ReturnType FrIf_GetChannelStatus (uint8 FrIf_CtrlIdx, uint16* FrIf_ChannelAStatusPtr, uint16* FrIf_ChannelBStatusPtr);Wraps the Flex Ray Driver API function Fr_ Get Clock Correction () and gets the current clock correction values.
Std_ReturnType FrIf_GetClockCorrection (uint8 FrIf_CtrlIdx, sint16* FrIf_RateCorrectionPtr, sint32* FrIf_OffsetCorrectionPtr);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);Derives the Flex Ray NM Vector. Av ailable via Fr If.h
Std_ReturnType FrIf_GetNmVector (uint8 FrIf_CtrlIdx, uint8* FrIf_NmVectorPtr);Wraps the Flex Ray Driver API function Fr_ Get Num Of Startup Frames and gets a list of the current number of startup frames seen on the cluster. See variable v Startup Pairs of [12] for details.
Std_ReturnType FrIf_GetNumOfStartupFrames (uint8 FrIf_CtrlIdx, uint8* FrIf_NumOfStartupFramesPtr);Wraps the Flex Ray Driver API function Fr_ Get POCStatus().
Std_ReturnType FrIf_GetPOCStatus (uint8 FrIf_CtrlIdx, Fr_POCStatusType* FrIf_POCStatusPtr);Get current Fr If state.
Std_ReturnType FrIf_GetState (uint8 FrIf_ClstIdx, FrIf_StateType* FrIf_StatePtr);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);Returns the version information of this module.
void FrIf_GetVersionInfo (Std_VersionInfoType* FrIf_VersionInfoPtr);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);Wraps the Flex Ray Driver API function Fr_ Halt Communication().
Std_ReturnType FrIf_HaltCommunication (uint8 FrIf_CtrlIdx);Initializes the Flex Ray Interface.
void FrIf_Init (const FrIf_ConfigType* FrIf_ConfigPtr);Wraps the Flex Ray Driver API function Fr_ Read CCConfig().
Std_ReturnType FrIf_ReadCCConfig (uint8 FrIf_CtrlIdx, uint8 FrIf_Config ParamIdx, uint32* FrIf_Config ParamValuePtr); ⚠️Service FrIf_ReconfigLPdu.
Std_ReturnType FrIf_ReconfigLPdu (uint8 FrIf_CtrlIdx, uint16 FrIf_LPduIdx, uint16 FrIf_FrameId, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_CycleRepetition, uint8 FrIf_CycleOffset, uint8 FrIf_PayloadLength, uint16 FrIf_Header CRC); ⚠️Wraps the Flex Ray Driver API function Fr_ Send WUP().
Std_ReturnType FrIf_SendWUP (uint8 FrIf_CtrlIdx);Wraps the Flex Ray Driver API function Fr_ Set Absolute Timer().
Std_ReturnType FrIf_SetAbsoluteTimer (uint8 FrIf_CtrlIdx, uint8 FrIf_AbsTimerIdx, uint8 FrIf_Cycle, uint16 FrIf_Offset);Requests Fr If state machine transition.
Std_ReturnType FrIf_SetState (uint8 FrIf_ClstIdx, FrIf_StateTransitionType FrIf_StateTransition);Wraps the Flex Ray Transceiver Driver API function Fr
Std_ReturnType FrIf_SetTransceiverMode (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, Limited by st atic configuration [Configuration Parameter FrIfCounterLimit, see FrIf06076 ]); ⚠️Wraps the Flex Ray Driver API functi on Fr_ Set Wakeup Channel(). The enum value "FR_ CHANNEL_ AB" shall not be used.
Std_ReturnType FrIf_SetWakeupChannel (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx);Wraps the Flex Ray Driver API function Fr_ Start Communication().
Std_ReturnType FrIf_StartCommunication (uint8 FrIf_CtrlIdx);Requests transmission of a PDU.
Std_ReturnType FrIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);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.
FrNm
Main function of Flex Ray NM.
void FrNm_MainFunction_< Fr Nm Channel.Short Name>(void);This API service of an upper layer Nm is called by the Flex Ray Network Management to indicate to this upper layer BSW module that a NM - message was successfully received and the Fr Nm is in the Bus - Sleep Mode.
void <Nm_Network Start Indication>(NetworkHandleType nmNetworkHandle);This API service of an upper NM is called by the Flex Ray Network Management to indicate to this upper layer BSW module Nm that a NM - message was successfully received (see FRNM190) This function is only available on the definition of _ PDU_ RX_ INDICATION_ ENABLED
void <Nm_Pdu RxIndication>(NetworkHandleType nmNetworkHandle);This API service of an upper layer BSW module <UL> (e.g. Com M) is called by the Flex Ray Network Management to indicate to this upper layer BSW module that the "Remote Sleep" has been cancelled as an NM - message with an indication to keep the bus awake has been received and the Remote Sleep indication has been previously detected .
void <UL_Remote Sleep Cancellation>(NetworkHandleType nmNetworkHandle);This API service of an upper layer BSW module <UL> (e.g. Com M) is called by the Flex Ray Network Management to indicate to this upper layer BSW module that all other nodes in the cluster are ready to sleep (the 'Remote Sleep Indication'), as no NM - messages with an indication to keep the bus awake are rece ived in the Normal Operation State for a configurable amount of time determined by the FRNM_ REMOTE_ SLEEP_ IND_ TIME (configuration parameter).
void <UL_Remote Sleep Indication>(NetworkHandleType nmNetworkHandle);This API service of an upper layer BSW module <UL> is called by the Flex Ray Network Management when Fr If calls Fr Nm_ Tx Confirmation with result E_ NOT_ OK to indicate to this upper layer BSW module that NM - message could not be transmitted successfully.
void <UL_Transmission Timeout Exception>(NetworkHandleType nmNetworkHandle);NM indicate to activate the transmission of PN shutdown messages on the given NM - Channel. This results in transmission of a NM - PDU wi th PNSR bit set to 1 (PN shutdown message).
Std_ReturnType FrNm_ActivateTxPnShutdownMsg(NetworkHandleType nmChannelHandle);This function checks if remote sleep indication has taken place or not.
Std_ReturnType FrNm_CheckRemoteSleepIndication(NetworkHandleType NetworkHandle, boolean* nmRemoteSleepIndPtr);NM indicate to deactive the transmission of PN shutdown messages on the given NM - Channel. This result in transmission of a usual NM - PDUs with PNSR bit set to 0.
Std_ReturnType FrNm_DeactivateTxPnShutdownMsg(NetworkHandleType nmChannelHandle);Disable the NM PDU transmission ability due to a ISO14229 Communication Control (28hex) service
Std_ReturnType FrNm_DisableCommunication(NetworkHandleType nmChannelHandle);Enable the NM PDU transmission ability due to a ISO14229 Communication Control (28hex) service
Std_ReturnType FrNm_EnableCommunication(NetworkHandleType nmChannelHandle);This function gets the node identifier configured for the local node.
Std_ReturnType FrNm_GetLocalNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);This function gets the node identifier from the last successfully received NM - message.
Std_ReturnType FrNm_GetNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);Gets PDU data.
Std_ReturnType FrNm_GetPduData(NetworkHandleType NetworkHandle, uint8* nmPduData);This function returns the state and the mode of the network management.
Std_ReturnType FrNm_GetState(NetworkHandleType NetworkHandle, Nm_StateType* nmStatePtr, Nm_ModeType* nmModePtr);This function gets user da ta from the last successfully received NM message.
Std_ReturnType FrNm_GetUserData(NetworkHandleType NetworkHandle, uint8* nmUserDataPtr);Returns the version information.
void FrNm_GetVersionInfo(Std_VersionInfoType* NmVerInfoPtr);Initializes the Flex Ray NM and its internal state machine.
void FrNm_Init(const FrNm_ConfigType* nmConfigPtr);This function releases the network because the ECU doesn't have to communicate on the bus. Network state shall be changed to 'released'.
Std_ReturnType FrNm_NetworkRelease(NetworkHandleType NetworkHandle);This function requests the network because the ECU needs to communicate on the bus. Network state shall be changed to 'requested'.
Std_ReturnType FrNm_NetworkRequest(NetworkHandleType NetworkHandle);Initiates the Passive Startup of the Flex Ray NM.
Std_ReturnType FrNm_PassiveStartUp(NetworkHandleType NetworkHandle);Set Repeat Message Request Bit and Partial Network Learning Bit for NM messa ges transmitted next on the bus. This will force all nodes to enter the PNC Learning Phase. This is needed for the optional Dynamic PNC - to - channel - mapping feature. Tags: atp.Status=draft
Std_ReturnType FrNm_PnLearningRequest(NetworkHandleType NetworkHandle);This function causes a Repeat Message Request to be transmitted next on the bus.
Std_ReturnType FrNm_RepeatMessageRequest(NetworkHandleType NetworkHandle);This function has no functionality - the service is provided only to be compatible to future extensions and to be compatible to the CAN - NM interface.
Std_ReturnType FrNm_RequestBusSynchronization(NetworkHandleType NetworkHandle);Requests transmission of a NM - PDU with PNSR bit set to 1 (PN shutdown message) Tags: atp.Status=draft
Std_ReturnType FrNm_RequestSynchronizedPncShutdown(NetworkHandleType nmChannelHandle, PNCHandleType pncId);Indication of a receive d PDU from a lower layer communication interface module.
void FrNm_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr);Set the NM Coordinator Sleep Ready bit in t he Control Bit Vector
Std_ReturnType FrNm_SetSleepReadyBit(NetworkHandleType nmChannelHandle, boolean nmSleepReadyBit);This function sets user data for NM - Data transmitted next on the bus.
Std_ReturnType FrNm_SetUserData(NetworkHandleType NetworkHandle, const uint8* nmUserDataPtr);This function is called by the Fr SM when synchronization of the Flex Ray cluster could not be achieved.
void FrNm_StartupError(NetworkHandleType NetworkHandle);Requests transmission of a PDU.
Std_ReturnType FrNm_Transmit(PduIdType TxPduId, const PduInfoType* PduInfoPtr);Within this API, the upper layer module (called module) shall check whether the 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 upd ate the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.
Std_ReturnType FrNm_TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
void FrNm_TxConfirmation(PduIdType TxPduId, Std_ReturnType result);Contains configuration parameters.
FrSM
Service FrSm_AllSlots.
Std_ReturnType FrSm_AllSlots (NetworkHandleType NetworkHandle);This API function can be used to determine the current communication mode of a Flex Ray cluster.
Std_ReturnType FrSM_GetCurrentComMode (NetworkHandleType NetworkHandle, ComM_ModeType* ComM_ModePtr);This service returns the version information of this module. The version information includes: Module Id Vendor Id Vendor specific version numbers (BSW00407 ). This function shall be pre compile time configurable On/ Off by the configuration parameter: FRSM_ VERSION_ INFO_ API Hint: If source code for caller and callee of this function is available this function should be realized as a macro. The macro should be defined in the modules header file.
void FrSM_GetVersionInfo (Std_VersionInfoType* versioninfo);Initializes the Flex Ray State Manager.
void FrSm_Init (const FrSM_ConfigType* FrSM_ConfigPtr);This API function is used by the Com M to startup or shutdown the communication on a Flex Ray cluster.
Std_ReturnType FrSM_RequestComMode (NetworkHandleType NetworkHandle, ComM_ModeType ComM_Mode);This API function can be used to set all Flex Ray clusters of the ECU to a receive AUTOSAR CP R20 - of Document ID : AUTOSAR_S WS_FlexRayStateManager only mode.
Std_ReturnType FrSm_SetEcuPassive (boolean FrSM_Passive);This type defines the states that are reported to the Bsw
This type contains the implementation - specific post build time configuration structure AUTOSAR CP R20 - of Document ID : AUTOSAR_S WS_FlexRayStateManager that is for Fr SM_ Init.
FrTp
Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.
Std_ReturnType FrTp_CancelReceive (PduIdType RxPduId);Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.
Std_ReturnType FrTp_CancelTransmit (PduIdType TxPduId);Request to change a specific transport protocol parameter (e.g. block size).
Std_ReturnType FrTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);Returns the version information.
void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);This service initializes all global variables of a Flex Ray Transport Layer instance and set it in the idle state. It has no return value because software errors in initialisation data shall be detected during configuration time (e.g. by configuration tool ).
void FrTp_Init (const FrTp_ConfigType* configPtr);Schedules the Flex Ray TP. (Entry point for scheduling)
void FrTp_MainFunction (void);Indication of a received PDU from a lower layer communication interface module.
void FrTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);This service closes all pending transport pro tocol connections by simply stopping operation, frees all resources and stops the Fr Tp Module
void FrTp_Shutdown (void);Requests transmission of a PDU.
Std_ReturnType FrTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Within this API , the upper layer module (called module) shall check whether the 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 copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.
Std_ReturnType FrTp_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
void FrTp_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);This is the base type for the configuration of the Flex Ray Transport Protocol A pointer to an instance of this structure will be used in the initialization of the Flex Ray Transport Protocol. The outline of the structure is defined in chapter 10 Configura tion Specification
FrTrcv
-
void FrTrcv_CheckWakeupByTransceiver (uint8 FrTrcv_TrcvIdx);This function clears a pending wake up event.
Std_ReturnType FrTrcv_ClearTransceiverWakeup (uint8 FrTrcv_TrcvIdx);This function disable s the specified branch on the addressed (active star) transceiver.
Std_ReturnType FrTrcv_DisableTransceiverBranch (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx);This function enables the specified branch on the addressed (active star) transceiver.
Std_ReturnType FrTrcv_EnableTransceiverBranch (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx);All mandatory errors defined by the Flex Ray EPL [5] which are supported by the Flex Ray transceiver hardware can be acce ssed via this API:In addition to errors on the physical layer and local to the ECU hardware, a global error flag is provided.
Std_ReturnType FrTrcv_GetTransceiverError (uint8 FrTrcv_TrcvIdx, uint8 FrTrcv_BranchIdx, uint32* FrTrcv_BusErrorState);This function returns the actual state of the transceiver.
Std_ReturnType FrTrcv_GetTransceiverMode (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvModeType* FrTrcv_TrcvModePtr);This function returns the wakeup reason.
Std_ReturnType FrTrcv_GetTransceiverWUReason (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvWUReasonType* FrTrcv_TrcvWUReasonPtr);This service returns the version information of this module.
void FrTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);This service initializes the Fr Trcv.
void FrTrcv_Init (const FrTrcv_ConfigType* ConfigPtr);-
void FrTrcv_MainFunction (void);This service sets the transceiver mode.
Std_ReturnType FrTrcv_SetTransceiverMode (uint8 FrTrcv_TrcvIdx, FrTrcv_TrcvModeType FrTrcv_TrcvMode);Configuration data structure of the Fr Trcv module.
Transceiver modes in state ACTIVE. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlexRayTransceiverDriver
This type to be used to specify the wake up reason detected by the FR transceiver in detail.
Type ofaCfunctionwhichsubstitutesMultiplicityType.
클러스터 가이드AI 생성
TDMA 주기 전반에 걸친 결정론적 FlexRay 통신, 버스 모드 및 세그먼트화된 데이터 전송을 조정합니다.
TDMA 주기 전반에 걸친 결정론적 FlexRay 통신, 버스 모드 및 세그먼트화된 데이터 전송을 조정합니다.
FlexRay Communication 모듈 클러스터는 AUTOSAR Classic R20-11에서 TDMA 방식에 따른 결정론적 데이터 교환 및 ISO 10681-2에 따른 세그먼트화된 진단 전송을 구현합니다 [SWS_FrIf_05001] SWS FlexRayInterface 170쪽. 이는 Fr, FrTrcv, FrIf, FrSM 및 FrTp 모듈을 통해 클러스터 전체의 모드 관리, 버스 웨이크업 패턴 및 하드웨어 동기화를 조정합니다. 엄격한 시간 제약 조건에 따라 전송 메인 함수는 최소 FlexRay 통신 주기당 한 번 호출되어야 합니다 [SWS_FrTp_01152].
FlexRay Communication 모듈 클러스터는 AUTOSAR Classic R20-11에서 FlexRay 버스 시스템을 통한 결정론적인 TDMA 기반 통신을 보장합니다 SWS FlexRayInterface 170쪽. 이는 하드웨어 드라이버인 fr(Communication Controller) 및 frtrcv(Transceiver), 중앙 추상화 계층인 frif, 상태 관리자인 frsm, 그리고 ISO 10681-2 전송 프로토콜인 frtp(으)로 구분됩니다 [SWS_FrIf_05001] [SWS_FrTp_01028].
아키텍처 다이어그램: FlexRay 모듈들의 계층 구조 및 인터페이스 관계. 출처: [SWS_FrIf_05001], [SWS_FrSM_00199].
데이터 경로는 FrIf_Transmit을(를) 통해 제어되며, FrTp는 진단 메시지 및 대용량 페이로드를 위한 세그먼테이션 및 리어셈블리 서비스를 제공합니다 [SWS_FrIf_05033] [SWS_FrTp_01009]. 런타임 시 동기화는 주기적인 TDMA 래스터를 통해 이루어지며, FrTp_MainFunction은(는) 규범적으로 최소 FlexRay 주기당 한 번 호출되어야 합니다 [SWS_FrTp_01152] SWS FlexRayISOTransportLayer 88쪽. 해석: 이는 ISO 10681-2 흐름 제어 및 응답 타이머의 적시 처리를 보장하기 위한 것으로 보입니다. 질문 (열림)
상태 전이, 웨이크업 시퀀스(단일 및 듀얼 채널) 및 클러스터 시작(Startup)은 FrSM에 의해 오케스트레이션되며, FrSM은 FrIf 및 Fr을(를) 통해 컨트롤러의 POC 상태를 제어하고 ComM 및 BswM에 상태를 전달합니다 [SWS_FrSM_00013] [SWS_Fr_00010] SWS FlexRayStateManager 50쪽.
시퀀스 다이어그램: FrSM, FrIf, Fr 및 FrTrcv를 통한 웨이크업 및 클러스터 시작(Startup) 흐름. 출처: [SWS_FrSM_00013], [SWS_FrIf_05005].
런타임 및 하드웨어 오류는 DET(예: FRIF_E_INV_CTRL_IDX을(를) 통한 잘못된 인덱스) 및 DEM(예: FR_E_CTRL_TESTRESULT, FRSM_E_CLUSTER_STARTUP)을 통해 격리됩니다 [SWS_FrIf_05158] [SWS_Fr_00181]. 활성 스타 커플러 브랜치에 장애가 발생할 경우 FrTrcv_DisableTransceiverBranch을(를) 통해 선택적으로 비활성화할 수 있습니다 [SWS_FrTrcv_00442] SWS FlexRayTransceiverDriver 50쪽.
시스템 아키텍처 & 모듈 클러스터의 역할
FlexRay Communication 모듈 클러스터는 AUTOSAR Classic Platform(릴리스 R20-11)에서 FlexRay 버스 시스템을 통한 결정론적이고 실시간성을 갖춘 결함 감내형(Fault-tolerant) 통신을 제공합니다 SWS FlexRayInterface 170쪽. 이는 TDMA 기반 전송 방식(Time Division Multiple Access) 및 ISO 10681-2에 따른 전송 계층을 구현합니다. 이 클러스터는 다섯 가지 핵심 모듈인 FlexRay 드라이버(fr), FlexRay 트랜시버 드라이버(frtrcv), FlexRay 인터페이스(frif), FlexRay State Manager(frsm) 및 FlexRay ISO Transport Layer(frtp)을(를) 포함합니다 [SWS_FrIf_05001].
이 모듈들은 AUTOSAR Basic Software 계층 전반에 걸쳐 분배됩니다: FlexRay 드라이버 fr은(는) Microcontroller Abstraction Layer(MCAL)에 속하며 Communication Controller(CC) 및 해당 Protocol Operation Control(POC)을 직접 제어합니다 [SWS_Fr_00510]. 트랜시버 드라이버 frtrcv은(는) 물리적 버스 트랜시버를 추상화하며 표준 채널 외에도 액티브 스타 커플러(Active Stars)를 지원합니다 [SWS_FrTrcv_00487]. FlexRay 인터페이스 frif은(는) 중앙 추상화 인스턴스로서 드라이버 접근을 캡슐화하고 컨트롤러 전반의 클러스터 작업을 제공하여 상위 계층을 하드웨어로부터 분리합니다 SWS FlexRayDriver 36쪽.
시스템 레벨에서 FlexRay State Manager frsm은(는) 시스템 서비스(Communication Manager ComM, Basic Software Mode Manager BswM)와 인터페이스 frif 간의 연결 고리 역할을 하여 전체 FlexRay 클러스터의 통신 상태를 제어하고 피드백합니다 [SWS_FrSM_00199]. FlexRay ISO Transport Layer frtp은(는) Communication Services에 위치하며, PDU 라우터(PduR) 상위에서 대용량 데이터(예: DCM을 통한 진단 또는 복잡한 애플리케이션 SDU)를 위한 세그먼테이션, 리어셈블리 및 흐름 제어 서비스를 제공합니다 [SWS_FrTp_01028] SWS FlexRayStateManager 35쪽.
아키텍처 다이어그램: AUTOSAR FlexRay 클러스터 내 5개 모듈의 정적 계층 구조 및 상호작용 관계. 출처: [SWS_FrIf_05001], [SWS_FrSM_00199], [SWS_FrTp_01028].
모듈 간 상호작용 & 인터랙션 경로
일반적인 송신 데이터 흐름은 상위 계층(예: COM 또는 FrTp)에서 시작되어 FrIf_Transmit을(를) 통해 PDU를 전달합니다 [SWS_FrIf_05033]. FrIf는 클러스터의 온라인 상태를 확인하고 요청을 FlexRay 드라이버로 전달합니다. 전송 PDU의 경우 FrTp는 플래그 TX_SDU_AVAILABLE 및 인터페이스 PduR_FrTpCopyTxData을(를) 통해 데이터를 요청하고 여유 Tx-PDU 리소스의 할당을 제어합니다 [SWS_FrTp_00416] [SWS_FrTp_01038]. 해석: FrTp와 FrIf 간의 상호작용에서 PDU 풀 및 버퍼 접근 모드(Immediate vs. Decoupled Buffer Access)의 구성은 페이로드가 호출 컨텍스트에서 직접 제공되는지, 아니면 Trigger-Transmit을 통해 시간적으로 디커플링되어 제공되는지를 주로 결정할 것으로 보입니다 SWS FlexRayInterface 68쪽. 질문 Q-f84c2cfb8cc303a6 (열림)
수신 측에서는 컨트롤러 및 드라이버가 FlexRay 프레임을 수신한 후 이를 FlexRay 인터페이스로 전달하고, 인터페이스는 구성된 수신 알림(예: FrTp_RxIndication)을 호출합니다 [SWS_FrTp_00152]. 세그먼트화된 데이터 스트림의 경우 FrTp는 수신된 N-PDU를 버퍼링하고 프로토콜 제어 정보(PCI)를 처리하며 PduR_FrTpStartOfReception 및 PduR_FrTpCopyRxData을(를) 통해 상위 계층의 버퍼 영역을 요청합니다 [SWS_FrTp_01074] SWS FlexRayISOTransportLayer 92쪽.
ISO 10681-2에 따른 전송 프로토콜은 StartFrame을 사용하는 비세그먼트 전송(확인 응답 없는 STFU, 확인 응답 있는 STFA)과 세그먼트화된 절차를 구별합니다 [SWS_FrTp_01007] [SWS_FrTp_01008]. 세그먼트 전송에서 수신기는 StartFrame 이후 흐름 제어 프레임(Flow Control, FC.CTS 또는 FC.WAIT)을 전송하며, 이에 따라 송신기는 Consecutive Frames(CF, CFEOB) 및 최종적으로 Last Frame(LF)을 전송합니다 [SWS_FrTp_01009]. 런타임 시 흐름 제어는 FrTp_ChangeParameter을(를) 통해 대역폭 제어 매개변수(BC)로 동적으로 조정될 수 있습니다 [SWS_FrTp_00242] AUTOSAR SWS FlexRay ISO TP 27쪽.
시퀀스 다이어그램: PduR, FrTp 및 FrIf 간의 ISO 10681-2에 따른 세그먼트화된 데이터 전송 및 흐름 제어. 출처: [SWS_FrTp_01009], [SWS_FrTp_00152], [SWS_FrIf_05033].
동기화, 재진입성 및 태스크 컨텍스트
FlexRay 클러스터에서의 실행은 정적 통신 시간 기준과 밀접하게 결합되어 있습니다. 주기적 메인 함수가 주기적 태스크를 제어합니다: FrTrcv_MainFunction은 트랜시버 상태와 웨이크업 이벤트를 샘플링하는([SWS_FrTrcv_00330]) 반면, FrTp_MainFunction는 FlexRay 통신 주기마다 최소 한 번 실행되어야 합니다([SWS_FrTp_01152] [SWS_FrTp_00162]). 해석: FlexRay 통신 주기마다 최소 한 번 FrTp_MainFunction을 실행하면 정적 TDMA 래스터와 동기화되어 프로토콜 타이머(Timeout_BS 및 Timeout_CR 등)가 적시에 갱신될 것으로 보입니다(SWS FlexRayISOTransportLayer 88쪽). 질문 Q-c7a18cbb3c37b980 (열림)
TDMA 래스터에서의 시간 동기화 및 시퀀스 제어를 위해 클러스터는 절대 타이머를 제공합니다. FrIf_SetAbsoluteTimer, FrIf_EnableAbsoluteTimerIRQ 및 FrIf_AckAbsoluteTimerIRQ를 통해 CC에서 타이머 인터럽트가 구성되고 확인(quittieren)됩니다([SWS_Fr_00034] [SWS_FrIf_05021]). 또한 FrIf는 글로벌 시간(FrIf_GetGlobalTime), 주기 길이(FrIf_GetCycleLength) 및 매크로틱(FrIf_GetMacrotickDuration, FrIf_GetMacroticksPerCycle)을 쿼리하기 위한 동기 서비스를 제공합니다([SWS_FrIf_05015] [SWS_FrIf_05018] SWS FlexRayInterface 56쪽).
재진입성 및 컨텍스트와 관련하여 다음이 적용됩니다: 모듈 fr의 드라이버 API는 일반적으로 동일한 컨트롤러 인스턴스(Non Reentrant for the same device)에 대해 비재진입적입니다([SWS_Fr_00034]). frif의 인터페이스는 서로 다른 클러스터 또는 컨트롤러 인덱스에 대해 재진입 가능하도록 설계되었습니다. FrIf_GetGlobalTime와 같은 특정 쿼리 함수는 배타적 영역 내에서 명시적으로 호출될 수 있습니다([SWS_FrIf_05015] SWS FlexRayInterface 64쪽).
일반적인 수명 주기 및 동작 모드
클러스터 초기화는 계층적으로 수행됩니다: BSW 초기화 시퀀스는 FrSM_Init으로 시작되며, 이를 통해 모든 클러스터 상태 머신이 기본 상태인 FRSM_READY로 전환됩니다([SWS_FrSM_00013] [SWS_FrSM_00126]). 그 후 컨트롤러는 FrIf_ControllerInit를 통해 초기화되고([SWS_FrIf_05004]), 모듈 FrTp는 FrTp_Init에 의해 FRTP_OFF 상태에서 FRTP_ON 상태로 전환됩니다([SWS_FrTp_01032] SWS FlexRayStateManager 35쪽).
이 과정에서 Communication Controller는 FlexRay 명세에 따라 POC(Protocol Operation Control) 상태 머신을 거칩니다: POC:ready 상태에서 RUN 명령은 Fr_StartCommunication를 통해 POC:startup으로의 전환을 시작합니다([SWS_Fr_00010]). 제어기(ECU)가 콜드스타트 노드로 구성된 경우, Fr_AllowColdstart를 통해 CHI 명령인 ALLOW_COLDSTART이 발행됩니다([SWS_Fr_00114]). 통합 및 동기화가 성공적으로 완료되면 컨트롤러는 POC:normal active 또는 POC:normal passive에 도달합니다([SWS_Fr_00507] [SWS_Fr_00509] SWS FlexRayDriver 42쪽).
통신을 시작하기 전에 슬립 상태의 버스는 웨이크업 시퀀스를 필요로 합니다: FrSM은 단일 채널 또는 듀얼 채널 웨이크업을 조정합니다. 웨이크업 채널은 FrIf_SetWakeupChannel을 통해 파라미터화되고, 트랜시버는 FRTRCV_TRCVMODE_NORMAL 상태로 전환되며, 웨이크업 패턴(WUP)은 FrIf_SendWUP 또는 Fr_SendWUP을 통해 버스로 전송됩니다([SWS_Fr_00009] [SWS_FrIf_05011] [SWS_FrIf_05034]). 웨이크업 원인은 FrTrcv_GetTransceiverWUReason을 통해 평가될 수 있습니다([SWS_FrTrcv_00325] SWS FlexRayStateManager 50쪽).
종료 시 FrSM은 ComM의 요청에 따라 COMM_FULL_COM에서 COMM_NO_COM로 전환됩니다. 통신은 FrIf_HaltCommunication를 통해 중지되고, FrIf는 FrIf_SetState(FRIF_GOTO_OFFLINE)을 통해 오프라인 모드로 전환되며, 트랜시버는 STANDBY 상태로 전환됩니다([SWS_FrIf_05006]). 진단 또는 보호 사례의 경우 클러스터는 FrSM_SetEcuPassive을 통해 순수 수신 모드(ECU Passive)로 전환될 수 있습니다([SWS_FrSM_00174]). 완전한 FrTp 정지는 FrTp_Shutdown을 통해 수행됩니다([SWS_FrTp_00148] SWS FlexRayStateManager 58쪽).
시퀀스 다이어그램: 클러스터 시작 및 웨이크업 시 ComM, BswM, FrSM, FrIf, Fr 및 FrTrcv의 상호 작용. 출처: [SWS_FrSM_00013], [SWS_FrIf_05005], [SWS_Fr_00010].
오류 처리, DET 추적 및 성능 저하
잘못된 조작 및 유효하지 않은 API 파라미터는 Development Error Tracer (DET)를 통해 감지됩니다. 유효하지 않은 컨트롤러 또는 채널 인덱스가 전달되거나 모듈 초기화 전에 API가 호출되면 FrIf, FrTp, FrTrcv 및 FrSM은 FRIF_E_INV_CTRL_IDX, FRTP_E_INVALID_PDU_SDU_ID, FRTRCV_E_UNINIT 또는 FRSM_E_INV_HANDLE과 같은 표준화된 오류를 DET에 보고합니다([SWS_FrIf_05158] [SWS_FrTp_01143] [SWS_FrTrcv_00462] [SWS_FrSM_00168] SWS FlexRayISOTransportLayer 77쪽).
중대한 런타임 및 하드웨어 오류는 Diagnostic Event Manager (DEM)에 보고됩니다. 컨트롤러의 하드웨어 테스트는 상태가 DEM_EVENT_STATUS_FAILED인 이벤트 FR_E_CTRL_TESTRESULT을 통해 오류를 신호합니다([SWS_Fr_00181] [SWS_Fr_00297]). FrSM 내에서 클러스터 시작이 실패하면 진단 이벤트 FRSM_E_CLUSTER_STARTUP가 보고됩니다(SWS FlexRayStateManager 50쪽).
저하 및 결함 허용을 위해 클러스터는 맞춤형 격리 메커니즘을 제공합니다: 능동 스타 커플러(Active Star)가 장착된 트랜시버의 경우 결함이 있는 라인 브랜치를 FrTrcv_DisableTransceiverBranch 또는 FrIf_DisableTransceiverBranch을 통해 비활성화하여 전체 클러스터의 교란을 방지할 수 있습니다([SWS_FrTrcv_00442] [SWS_FrIf_05028]). 진행 중인 전송은 FrTp_CancelTransmit 및 FrIf_CancelTransmit를 통해 선택적으로 중단될 수 있으며, 개별 하드웨어 버퍼는 FrIf_DisableLPdu을 통해 잠글 수 있습니다([SWS_FrTp_00150] [SWS_FrIf_05710] SWS FlexRayTransceiverDriver 50쪽).
이 가이드는 R20-11 릴리스용 AUTOSAR 명세를 기반으로 인공지능에 의해 생성되었습니다.
Module im Cluster
FlexRay Driver (Fr)
Provides hardware-dependent access to FlexRay communication controllers.
FlexRay AUTOSAR Transport Layer (FrArTp)
AUTOSAR Classic Communication Services-Modul FlexRay AUTOSAR Transport Layer (FrArTp, Spezifikation: AUTOSAR_CP_SWS_FlexRayARTransportLayer.pdf, AUTOSAR_SWS_FlexRayARTransportLayer.pdf).
FlexRay Interface (FrIf)
Abstracts FlexRay hardware controllers for upper layers.
FlexRay Network Management (FrNm)
AUTOSAR Classic Communication Services-Modul FlexRay Network Management (FrNm, Spezifikation: AUTOSAR_CP_SWS_FlexRayNetworkManagement.pdf, AUTOSAR_SWS_FlexRayNetworkManagement.pdf, AUTOSAR_SWS_FlexrayNM.pdf).
FlexRay State Manager (FrSM)
Controls the operational states and startup/wakeup of FlexRay clusters.
FlexRay Transport Layer (FrTp)
Provides segmented data transmission over FlexRay (ISO 10681-2).
FlexRay Transceiver Driver (FrTrcv)
Controls physical bus transceiver states and bus diagnostics on FlexRay lines.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문