DEENESPTFRRUARHIKOZHNL

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

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);
Fr_AllSlots دالة

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

Service Fr_GetSyncFrameList.

Std_ReturnType Fr_GetSyncFrameList (uint8 Fr_CtrlIdx, uint8 Fr_ListSize, uint16* Fr_ChannelAEvenListPtr, uint16* Fr_ChannelBEvenListPtr, uint16* Fr_ChannelAOddListPtr, uint16* Fr_ChannelBOddListPtr);

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);
Fr_Init دالة

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); ⚠️
Fr_SendWUP دالة

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);
FrArTp_Init دالة

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

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

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

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

This API returns the configured time of the configuration parameter "Gd Cycle" in nanoseconds for the Flex Ray controller with index Fr If_ Ctrl Idx.

uint32 FrIf_GetCycleLength (uint8 FrIf_CtrlIdx);

Wraps the Flex Ray Driver API function Fr_ Get Global Time(). Impo rtant Note: Fr If_ Get Global Time may be called within an exclusive area.

Std_ReturnType FrIf_GetGlobalTime (uint8 FrIf_CtrlIdx, uint8* FrIf_CyclePtr, uint16* FrIf_MacroTickPtr);

Retrieves the Duration of a Macrotick in ns

uint16 FrIf_GetMacrotickDuration (uint8 FrIf_CtrlIdx);

Retrieves the amount of Macroticks per Cycle

uint16 FrIf_GetMacroticksPerCycle (uint8 FrIf_CtrlIdx);

Derives the Flex Ray NM Vector. Av ailable via Fr If.h

Std_ReturnType FrIf_GetNmVector (uint8 FrIf_CtrlIdx, uint8* FrIf_NmVectorPtr);

Wraps the Flex Ray Driver API function Fr_ Get Num Of Startup Frames and gets a list of the current number of startup frames seen on the cluster. See variable v Startup Pairs of [12] for details.

Std_ReturnType FrIf_GetNumOfStartupFrames (uint8 FrIf_CtrlIdx, uint8* FrIf_NumOfStartupFramesPtr);

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

Std_ReturnType FrIf_GetPOCStatus (uint8 FrIf_CtrlIdx, Fr_POCStatusType* FrIf_POCStatusPtr);
FrIf_GetState دالة

Get current Fr If state.

Std_ReturnType FrIf_GetState (uint8 FrIf_ClstIdx, FrIf_StateType* FrIf_StatePtr);

Service FrIf_GetSyncFrameList.

Std_ReturnType FrIf_GetSyncFrameList (uint8 FrIf_CtrlIdx, uint8 FrIf_ListSize, uint16* FrIf_ChannelAEvenListPtr, uint16* FrIf_ChannelBEvenListPtr, uint16* FrIf_ChannelAOddListPtr, uint16* FrIf_ChannelBOddListPtr);

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

Std_ReturnType FrIf_GetTransceiverError (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, uint8 FrIf_BranchIdx, uint32* FrIf_BusErrorState);

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

Std_ReturnType FrIf_GetTransceiverMode (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, FrTrcv_TrcvModeType* FrIf_TrcvModePtr);

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

Std_ReturnType FrIf_GetTransceiverWUReason (uint8 FrIf_CtrlIdx, Fr_ChannelType FrIf_ChnlIdx, FrTrcv_TrcvWUReasonType* FrIf_TrcvWUReasonPtr);

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);
FrIf_Init دالة

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

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);
FrIf_Transmit دالة

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);
FrNm_GetState دالة

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);
FrNm_Init دالة

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);
FrNm_Transmit دالة

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

FrSm_AllSlots دالة

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);
FrSm_Init دالة

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);
FrTp_Init دالة

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);
FrTp_Shutdown دالة

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);
FrTp_Transmit دالة

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);
FrTrcv_Init دالة

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.

دليل العنقودمولَّد بالذكاء الاصطناعي

ينسق اتصالات FlexRay المحددة مسبقاً (Deterministic)، وأوضاع الناقل، ونقل البيانات المقسم إلى أجزاء عبر دورات TDMA.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 1e01dd1630aa المصدر أسئلة مفتوحة (2)
المرساة السببية: R20-11 صالح اعتبارًا من R20-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

ينسق اتصالات FlexRay المحددة مسبقاً (Deterministic)، وأوضاع الناقل، ونقل البيانات المقسم إلى أجزاء عبر دورات TDMA.

تحقق حزمة وحدات FlexRay Communication تبادل البيانات المحدد مسبقاً وفق أسلوب TDMA، بالإضافة إلى عمليات نقل التشخيص المقسمة إلى أجزاء وفق المعيار ISO 10681-2 في AUTOSAR Classic R20-11 [SWS_FrIf_05001] SWS FlexRayInterface ص. 170. وهي تنسق عبر الوحدات Fr وFrTrcv وFrIf وFrSM وFrTp إدارة الأوضاع على مستوى الحزمة، وأنماط إيقاظ الناقل، ومزامنة العتاد. ويفرض قيد زمني صارم استدعاء الدالة الرئيسية للنقل مرة واحدة على الأقل في كل دورة اتصال FlexRay [SWS_FrTp_01152].

تضمن حزمة الوحدات FlexRay Communication في AUTOSAR Classic R20-11 الاتصال المحدد مسبقاً والقائم على TDMA عبر نظام ناقل FlexRay SWS FlexRayInterface ص. 170. وتنقسم إلى برامج تشغيل العتاد fr (Communication Controller) وfrtrcv (جهاز الإرسال والاستقبال)، وطبقة التجريد المركزية frif، ومدير الحالة frsm، بالإضافة إلى بروتوكول النقل ISO 10681-2 frtp [SWS_FrIf_05001] [SWS_FrTp_01028].

FrClusterArch ComM ComM FrSM FrSM ComM->FrSM FrIf FrIf FrSM->FrIf BswM BswM BswM->FrSM PduR PduR FrTp FrTp PduR->FrTp PduR->FrIf FrTp->FrIf Fr Fr FrIf->Fr FrTrcv FrTrcv FrIf->FrTrcv HW_CC HW_CC Fr->HW_CC HW_Trcv HW_Trcv FrTrcv->HW_Trcv

مخطط البنية المعمارية: بنية الطبقات وعلاقات الواجهات لوحدات 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 ضمن المهل المحددة. سؤال (مفتوح)

يتم تنسيق انتقالات الحالة، وتسلسلات الإيقاظ (أحادية القناة ومزدوجة القناة)، وبدء تشغيل الحزمة بواسطة FrSM، الذي يتحكم في حالات POC للمتحكم عبر FrIf وFr، وينقل الحالة إلى ComM وBswM [SWS_FrSM_00013] [SWS_Fr_00010] SWS FlexRayStateManager ص. 50.

بدء تشغيل تكتل FlexRay والاستيقاظComMBswMFrSMFrIfFrFrTrcvFrSM_RequestComMode(Network, COMM_FULL_COM)FrIf_SetTransceiverMode(Ctrl, Chnl, NORMAL)FrTrcv_SetTransceiverMode(TrcvIdx, NORMAL)FrIf_SendWUP(CtrlIdx)Fr_SendWUP(CtrlIdx)BswM_FrSM_CurrentState(FRSM_WAKEUP)Use Case: بدء التشغيل والمزامنةFrIf_StartCommunication(CtrlIdx)Fr_StartCommunication(CtrlIdx)FrIf_GetPOCStatus(CtrlIdx, POCStatusPtr)Fr_GetPOCStatus(CtrlIdx, POCStatusPtr)POC:normal activeE_OK (POC:normal active)FrIf_SetState(ClstIdx, FRIF_GOTO_ONLINE)BswM_FrSM_CurrentState(FRSM_ONLINE)

مخطط التسلسل: مسار الإيقاظ وبدء تشغيل الحزمة عبر FrSM وFrIf وFr وFrTrcv. المصادر: [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 SWS FlexRayInterface ص. 170. وتطبق أسلوب الإرسال المعتمد على TDMA (النفاذ المتعدد بتقسيم الوقت) بالإضافة إلى طبقة النقل وفق المعيار ISO 10681-2. وتشتمل الحزمة على خمس وحدات أساسية: برنامج تشغيل FlexRay (fr)، وبرنامج تشغيل جهاز إرسال واستقبال FlexRay (frtrcv)، وواجهة FlexRay (frif)، ومدير حالة FlexRay (frsm)، وطبقة النقل FlexRay ISO Transport Layer (frtp) [SWS_FrIf_05001].

تتوزع الوحدات على طبقات AUTOSAR Basic Software: ينتمي برنامج تشغيل FlexRay fr إلى Microcontroller Abstraction Layer (MCAL) ويتحكم مباشرة في وحدة التحكم بالاتصال (CC) وفي التحكم في تشغيل البروتوكول (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 وتوفر خدمات التجزئة وإعادة التجميع والتحكم في التدفق لكميات البيانات الأكبر (للتشخيص عبر DCM أو لوحدات SDU التطبيقية المعقدة مثلاً) أعلى موجه PDU (PduR) [SWS_FrTp_01028] SWS FlexRayStateManager ص. 35.

FrClusterArch ComM ComM FrSM FrSM ComM->FrSM FrIf FrIf FrSM->FrIf BswM BswM BswM->FrSM PduR PduR FrTp FrTp PduR->FrTp PduR->FrIf FrTp->FrIf Fr Fr FrIf->Fr FrTrcv FrTrcv FrIf->FrTrcv HW_CC HW_CC Fr->HW_CC HW_Trcv HW_Trcv FrTrcv->HW_Trcv

مخطط البنية المعمارية: بنية الطبقات الثابتة وعلاقات التفاعل للوحدات الخمس في حزمة AUTOSAR FlexRay. المصادر: [SWS_FrIf_05001]، [SWS_FrSM_00199]، [SWS_FrTp_01028].

التكامل ومسارات التفاعل بين الوحدات

يبدأ تدفق بيانات الإرسال العادي عند الطبقات العليا (مثل COM أو FrTp)، التي تمرر وحدات PDU باستخدام FrIf_Transmit [SWS_FrIf_05033]. وتتحقق FrIf من حالة اتصال الحزمة (Online) وتمرر الطلب إلى برنامج تشغيل FlexRay. وفي حالة وحدات PDU الخاصة بالنقل، تطلب FrTp البيانات عبر الراية TX_SDU_AVAILABLE والواجهة PduR_FrTpCopyTxData، وتتحكم في تخصيص موارد Tx-PDU المتاحة [SWS_FrTp_00416] [SWS_FrTp_01038]. تفسير: عند التفاعل بين FrTp وFrIf، يُرجَّح أن يؤدي تكوين تجمعات PDU (PDU pools) وأوضاع الوصول إلى المخزن المؤقت (Immediate مقابل 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]. وأثناء وقت التشغيل، يمكن ضبط التحكم في التدفق ديناميكياً عبر معلمات التحكم في عرض النطاق الترددي (BC) عن طريق FrTp_ChangeParameter [SWS_FrTp_00242] AUTOSAR SWS FlexRay ISO TP ص. 27.

نقل بيانات FrTp والتحكم في التدفق (ISO 10681-2)PduRFrTpFrIfFrTp_Transmit(TxSduId, PduInfo)Kanal belegen & TX_SDU_AVAILABLE setzenPduR_FrTpCopyTxData(TxSduId, ...)BUFREQ_OK (StartFrame Payload)FrIf_Transmit(TxPduId, PduInfo)FrTp_TxConfirmation(TxPduId, E_OK)Use Case: Empfang von Flow Control (FC)FrTp_RxIndication(RxPduId, FC.CTS)PduR_FrTpCopyTxData(TxSduId, ...)BUFREQ_OK (ConsecutiveFrame)FrIf_Transmit(TxPduId, CF N-PDU)FrTp_TxConfirmation(TxPduId, E_OK)PduR_FrTpTxConfirmation(TxSduId, E_OK)

مخطط التسلسل: نقل البيانات المقسم والتحكم في التدفق وفق المعيار ISO 10681-2 بين PduR وFrTp وFrIf. المصادر: [SWS_FrTp_01009]، [SWS_FrTp_00152]، [SWS_FrIf_05033].

المزامنة، وقابلية إعادة الدخول، وسياقات المهام

يرتبط التنفيذ في حزمة FlexRay ارتباطاً وثيقاً بقاعدة وقت الاتصال الثابتة. وتدير الدوال الرئيسية الدورية المهام المنتظمة: يقوم FrTrcv_MainFunction بأخذ عينات من حالات جهاز الإرسال والاستقبال وأحداث الإيقاظ [SWS_FrTrcv_00330]، بينما يجب تنفيذ FrTp_MainFunction مرة واحدة على الأقل في كل دورة اتصال FlexRay [SWS_FrTp_01152] [SWS_FrTp_00162]. تفسير: يُرجَّح أن يضمن تنفيذ FrTp_MainFunction مرة واحدة على الأقل في كل دورة اتصال FlexRay تحديثاً في الوقت المناسب لمؤقتات البروتوكول (مثل Timeout_BS وTimeout_CR) بشكل متزامن مع شبكة TDMA الثابتة SWS FlexRayISOTransportLayer ص. 88. سؤال Q-c7a18cbb3c37b980 (مفتوح)

توفر الحزمة مؤقتات مطلقة للمزامنة الزمنية والتحكم في المسار ضمن شبكة TDMA. ويتم تكوين مقاطعات المؤقت في CC وتأكيدها عبر FrIf_SetAbsoluteTimer وFrIf_EnableAbsoluteTimerIRQ وFrIf_AckAbsoluteTimerIRQ [SWS_Fr_00034] [SWS_FrIf_05021]. علاوة على ذلك، توفر FrIf خدمات متزامنة للاستعلام عن الوقت الشامل (FrIf_GetGlobalTime)، وطول الدورة (FrIf_GetCycleLength)، وعلامات الماكروتيك (FrIf_GetMacrotickDuration، FrIf_GetMacroticksPerCycle) [SWS_FrIf_05015] [SWS_FrIf_05018] SWS FlexRayInterface ص. 56.

فيما يتعلق بقابلية إعادة الدخول (Reentrancy) وسياقات الاستدعاء: تكون واجهات برمجة التطبيقات (APIs) لبرنامج التشغيل للوحدة fr في المعتاد غير قابلة لإعادة الدخول لنفس مثيل وحدة التحكم (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_OFF إلى FRTP_ON عبر FrTp_Init [SWS_FrTp_01032] SWS FlexRayStateManager ص. 35.

تمر وحدة التحكم بالاتصال عبر آلة حالة POC (التحكم في تشغيل البروتوكول) وفقاً لمواصفات FlexRay: من الحالة POC:ready، يطلق الأمر RUN عبر Fr_StartCommunication الانتقال إلى POC:startup [SWS_Fr_00010]. وإذا كانت وحدة التحكم الإلكترونية (ECU) مهيأة كعقدة بدء بارد (Coldstart node)، يُرسَل أمر CHI ALLOW_COLDSTART عبر Fr_AllowColdstart [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 إلى وضع عدم الاتصال (Offline) باستخدام 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.

بدء تشغيل تكتل FlexRay والاستيقاظComMBswMFrSMFrIfFrFrTrcvFrSM_RequestComMode(Network, COMM_FULL_COM)FrIf_SetTransceiverMode(Ctrl, Chnl, NORMAL)FrTrcv_SetTransceiverMode(TrcvIdx, NORMAL)FrIf_SendWUP(CtrlIdx)Fr_SendWUP(CtrlIdx)BswM_FrSM_CurrentState(FRSM_WAKEUP)Use Case: بدء التشغيل والمزامنةFrIf_StartCommunication(CtrlIdx)Fr_StartCommunication(CtrlIdx)FrIf_GetPOCStatus(CtrlIdx, POCStatusPtr)Fr_GetPOCStatus(CtrlIdx, POCStatusPtr)POC:normal activeE_OK (POC:normal active)FrIf_SetState(ClstIdx, FRIF_GOTO_ONLINE)BswM_FrSM_CurrentState(FRSM_ONLINE)

مخطط التسلسل: التفاعل بين ComM وBswM وFrSM وFrIf وFr وFrTrcv أثناء بدء تشغيل الحزمة والإيقاظ. المصادر: [SWS_FrSM_00013]، [SWS_FrIf_05005]، [SWS_Fr_00010].

معالجة الأخطاء، وتتبع DET، والتدهور التدريجي للخدمة (Degradation)

تُلتقط أخطاء الاستخدام غير الصحيح ومعلمات API غير الصالحة عبر متتبع أخطاء التطوير (DET). وإذا مُررت فهارس وحدات تحكم أو قنوات غير صالحة أو استُدعيت واجهات برمجة التطبيقات قبل تهيئة الوحدة، فإن FrIf وFrTp وFrTrcv وFrSM تبلغ DET بأخطاء معيارية مثل FRIF_E_INV_CTRL_IDX أو FRTP_E_INVALID_PDU_SDU_ID أو FRTRCV_E_UNINIT أو FRSM_E_INV_HANDLE [SWS_FrIf_05158] [SWS_FrTp_01143] [SWS_FrTrcv_00462] [SWS_FrSM_00168] SWS FlexRayISOTransportLayer ص. 77.

تُبلَّغ أخطاء وقت التشغيل والعتاد الجسيمة إلى Diagnostic Event Manager (DEM). وتشير اختبارات العتاد للمتحكم إلى الأخطاء عبر الحدث FR_E_CTRL_TESTRESULT بالحالة DEM_EVENT_STATUS_FAILED [SWS_Fr_00181] [SWS_Fr_00297]. وإذا فشل بدء تشغيل الحزمة داخل FrSM، يُبلَّغ عن حدث التشخيص FRSM_E_CLUSTER_STARTUP SWS FlexRayStateManager ص. 50.

لأغراض خفض الأداء التدريجي (Degradation) وتحمل الأخطاء، توفر الحزمة آليات عزل مستهدفة: في أجهزة الإرسال والاستقبال ذات قارنات التوصيل النجمية النشطة (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.

تم إنشاء هذا الدليل بواسطة ذكاء اصطناعي استناداً إلى مواصفات AUTOSAR للإصدار R20-11.

Module im Cluster

FlexRay Driver (Fr)

Provides hardware-dependent access to FlexRay communication controllers.

BSW ID 81 42 APIs (32 Funktionen, 10 Typen) #include "Fr.h"

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

BSW ID 38 10 APIs (10 Funktionen, 0 Typen) #include "FrArTp.h"

FlexRay Interface (FrIf)

Abstracts FlexRay hardware controllers for upper layers.

BSW ID 61 52 APIs (49 Funktionen, 3 Typen) #include "FrIf.h"

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

BSW ID 32 32 APIs (32 Funktionen, 0 Typen) #include "FrNm.h"

FlexRay State Manager (FrSM)

Controls the operational states and startup/wakeup of FlexRay clusters.

BSW ID 142 8 APIs (6 Funktionen, 2 Typen) #include "FrSM.h"

FlexRay Transport Layer (FrTp)

Provides segmented data transmission over FlexRay (ISO 10681-2).

BSW ID 36 12 APIs (11 Funktionen, 1 Typen) #include "FrTp.h"

FlexRay Transceiver Driver (FrTrcv)

Controls physical bus transceiver states and bus diagnostics on FlexRay lines.

BSW ID 71 15 APIs (11 Funktionen, 4 Typen) #include "FrTrcv.h"