DEENESPTFRRUARHIKOZHNL

AUTOSAR Classic Communication Services

Die Communication Services bilden das nachrichten- und signalbasierte Rückgrat der BSW: Signalextraktion, PDU-Routing ohne Payload-Inspektion (PduR) und ECU-weites Kommunikations- und Kanalmanagement (ComM).

Карта тем

Подробный вид

Выберите элемент в оглавлении.

Com

Com_CbkCounterErr функция

This function is called immediately, if the AUTOSAR COM module receives an I - PDU counter that differs from the expected one. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

void Com_CbkCounterErr (PduIdType ComPduId, uint8 ExpectedCounter, uint8 ReceivedCounter);
Com_CbkInv функция

This callback function corresponds to SWS_ Com_00680. It is called after recepti- on of an invalid signal or signal group respectively.

void Com_CbkInv (void);
Com_CbkRxAck функция

This callback represents notification class 1 of [17]. It is called immediately after the message has been stored in the receiving message object.

void Com_CbkRxAck (void);
Com_CbkRxTOut функция

This callback corresponds to notification class 3 of [17]. It is called immediately after a message reception error has been detected by the deadline monitoring mechanism.

void Com_CbkRxTOut (void);
Com_CbkTxAck функция

This callback represents notification class 2 of [17]. It is called immediately after successful transmission of the I - PDU containing the message.

void Com_CbkTxAck (void);
Com_CbkTxErr функция

This callback corresponds to notification class 4 of [17]. It is called in case the transmission is not possible because the corresponding I - PDU group is stopped.

void Com_CbkTxErr (void);
Com_CbkTxPrep функция

This callback function indicates that the signals/ signal groups of a dedicated Com_ Main Function Tx instance will now be prepared for transmission.

void Com_CbkTxPrep (void);
Com_CbkTxTOut функция

This callback corresponds to notification class 4 of [17]. It is called immediately after a message transmission error has been detected by the deadline monitoring mechanism.

void Com_CbkTxTOut (void);
Com_CopyRxData функция

Service Com_CopyRxData.

BufReq_ReturnType Com_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);
Com_CopyTxData функция

Service Com_CopyTxData.

BufReq_ReturnType Com_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);
Com_DeInit функция

This service stops the inter - ECU communication. All started I - PDU groups are stop- ped and have to be started again, if needed, after Com_ Init is called. By a call to Com_ De Init the AUTOSAR COM module is put into an not initialized state.

void Com_DeInit (void);
Com_DisableReceptionDM функция

Disables the reception deadline monitoring for the I - PDUs within the given I - PDU group.

void Com_DisableReceptionDM (Com_IpduGroupIdType IpduGroupId);
Com_EnableReceptionDM функция

Enables the reception deadline monitoring for the I - PDUs within the given I - PDU group.

void Com_EnableReceptionDM (Com_IpduGroupIdType IpduGroupId);
Com_GetStatus функция

Returns the status of the AUTOSAR COM module. Availab le via Com.h

Com_StatusType Com_GetStatus (void);
Com_GetVersionInfo функция

Returns the version information of this module.

void Com_GetVersionInfo (Std_VersionInfoType* versioninfo);
Com_Init функция

This service initializes internal and external interfaces and variables of the AUTO- SAR COM module layer for the further processing. After calling this function the inter - ECU communication is still disabled. In configurations, in which Com is assigned to mo re than one partition (i.e. Com_ Main Functions are mapped to partitions), Com may provide one init function per AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM partition.

void Com_Init (const Com_ConfigType* config);
Com_InvalidateSignal функция

The service Com_ In validate Signal invalidates the signal with the given Signal Id by setting its value to its configured Com Signal Data Invalid Value.

uint8 Com_InvalidateSignal (Com_SignalIdType SignalId);

The service Co m_ Invalidate Signal Group invalidates all group signals of the signal group with the given Signal Group Id by setting their values to their configured Com Signal Data Invalid Values.

uint8 Com_InvalidateSignalGroup (Com_SignalGroupIdType SignalGroupId);
Com_IpduGroupStart функция

Starts a preconfigured I - PDU group. For example, cyclic I - PDUs will be sent out cyclically after the call of Com_ Ipdu Group Start(). If Initialize is true all I - PDUs of the I - PDU group shall be (r e - )initialized before the I - PDU group is started. That is they shall behave like after a start - up of COM, for example the old_ value of the filter ob- jects and shadow buffers of signal groups have to be (re - )initialized.

void Com_IpduGroupStart (Com_IpduGroupIdType IpduGroupId, boolean initialize);
Com_IpduGroupStop функция

Stops a preconfigured I - PDU group. For example, cyclic I - PDUs will be stopped after the call of Com_ Ipdu Group Stop().

void Com_IpduGroupStop (Com_IpduGroupIdType IpduGroupId);

Calls the signal gateway part of the AUTOSAR COM module to forward received signals to be routed. Per configured Com Main Function Route Signals instance one Com_ Main Functi on Route Signals_ shall be implemented. Hereby is the short name of the Com Main Function Route Signals configuration container in the ECU configuration.

void Com_MainFunctionRouteSignals (void);
Com_MainFunctionRx функция

This function performs the processing of the AUTOSAR COM module's receive processing that are not directly handled within the COM's functions invoked by the PDU - R, for example Com_ Rx Indication. Per configured Com Main Function Rx instance one Com_ Main F unction Rx_ shall be implemented. Hereby is the short name of the Com Main Function Rx configuration container in the ECU configuration.

void Com_MainFunctionRx (void);
Com_MainFunctionTx функция

This function performs the processing of the AUTOSAR COM module's transmissi- on activities that are not directly handled within the COM's function invoked by the AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM RTE, for example Com_ Send Signal. Per configured Com Main Function Tx instance one Com_ Main F unction Tx_ shall be implemented. Hereby is the short name of the Com Main Function Tx configuration container in the ECU configuration.

void Com_MainFunctionTx (void);
Com_ReceiveDynSignal функция

Com_ Receive Dyn Signal copies the data of the signal identified by Signal Id to the lo cation specified by Signal Data Ptr and stores the length of the dynamical length signal at the position given by the Length parameter.

uint8 Com_ReceiveDynSignal (Com_SignalIdType SignalId, void* SignalDataPtr, uint16* Length);

Com_ Receive Dyn Signal With Meta Da ta copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr and stores the length of the dy- namical length signal at the position given by the Length parameter. The received meta data is stored at the position given by the Meta Data Ptr parameter.

uint8 Com_ReceiveDynSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint16* Length, uint8* MetaDataPtr);
Com_ReceiveSignal функция

Com_ Receive Signal copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr.

uint8 Com_ReceiveSignal (Com_SignalIdType SignalId, void* SignalDataPtr);
Com_ReceiveSignalGroup функция

The service Com_ Receive Signal Group copies the received signal group from the I - PDU to the shadow buffer.

uint8 Com_ReceiveSignalGroup (Com_SignalGroupIdType SignalGroupId);

The service Com_ Receive Signal Group Array copies the re ceived signal group array AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM representation from the PDU to the location designated by Signal Group Ar - ray Ptr.

uint8 Com_ReceiveSignalGroupArray (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr);

The service Com_ Receive Signal Group Array With Meta Data copies the received si gnal group array representation from the PDU to the location designated by Signal Group Ar - ray Ptr. The received meta data is stored at the position given by the Meta Data Ptr parameter.

void Com_ReceiveSignalGroupArrayWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr, uint8* MetaDataPtr);

The service Com_ Receive Signal Group With Meta Data copies the received signal group from the I - PDU to the shadow buffer. The received meta data is stored at the position given by the Meta Data Ptr parameter.

uint8 Com_ReceiveSignalGroupWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* MetaDataPtr);

Com_ Receive Signal With Meta Data copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr. The received meta data is stored at the position given by the Meta Data Ptr parameter. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

uint8 Com_ReceiveSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint8* MetaDataPtr);
Com_RxIndication функция

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

void Com_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
Com_RxIpduCallout функция

The I - PDU callout on receiver side can be configured to implement user - defined receive filtering mechanisms.

boolean Com_RxIpduCallout (PduIdType PduId, const PduInfoType* PduInfoPtr);
Com_SendDynSignal функция

The service Com_ Send Dyn Signal updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter.

uint8 Com_SendDynSignal (Com_SignalIdType SignalId, const void* SignalDataPtr, uint16 Length);

The service Com_ Send Dyn Signal With Meta Data updates the signal object identified by Signal Id wit h the signal referenced by the Signal Data Ptr parameter. The meta data is provided via the Meta Data Ptr parameter. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

uint8 Com_SendDynSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint16 Length, uint8* MetaDataPtr);
Com_SendSignal функция

The service Com_ Send Signal updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter. Avai lable via Com.h

uint8 Com_SendSignal (Com_SignalIdType SignalId, const void* SignalDataPtr);
Com_SendSignalGroup функция

The service Com_ Send Si gnal Group copies the content of the associated shadow buffer to the associated I - PDU.

uint8 Com_SendSignalGroup (Com_SignalGroupIdType SignalGroupId);

The service Com_ Send Signal Group Array copies the conte nt of the provided Signal Group Array Ptr to the associated I - PDU. The provided data shall correspond to the array representation of the signal group.

uint8 Com_SendSignalGroupArray (Com_SignalGroupIdType SignalGroupId, const uint8* SignalGroupArrayPtr);

The service Com_ Send Signal Group Array With Meta Data copies the content of the provided Signal Group Array Ptr to the associated I - PDU. The provided data shall c orrespond to the array representation of the signal group. The meta data is provi- ded via the Meta Data Ptr parameter.

uint8 Com_SendSignalGroupArrayWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr, uint8* MetaDataPtr);

The service Com_ Send Signal Group With Meta Data copies the content of the associated shadow buffer to the associated I - PDU. The meta data is provided via the Meta Data Ptr parameter.

uint8 Com_SendSignalGroupWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* MetaDataPtr);

The service Com_ Send Si gnal With Meta Data updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter. The meta data is provided via the Meta Data Ptr parameter.

uint8 Com_SendSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint8* MetaDataPtr);
Com_StartOfReception функция

Service Com_StartReception.

BufReq_ReturnType Com_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);
Com_SwitchIpduTxMode функция

The service Com_ Switch Ipdu Tx Mode sets the transmi ssion mode of the I - PDU refe- renced by Pdu Id to Mode. In case the transmission mode changes, the new mode shall immediately be effective (see SWS_ Com_00239). In case the requested transmission mode was already active for this I - PDU, the call will have no effect.

void Com_SwitchIpduTxMode (PduIdType PduId, booleanMode); ⚠️
Com_TpRxIndication функция

Called after an I - PDU has been received via the TP API, the result indicates whe- ther the transmission was successful or not.

void Com_TpRxIndication (PduIdType id, Std_ReturnType result);
Com_TpTxConfirmation функция

This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

void Com_TpTxConfirmation (PduIdType id, Std_ReturnType result);
Com_TriggerIPDUSend функция

By a call to Com_ Trigger IPDUSend the I - PDU with the given ID is triggered for transmission.

Std_ReturnType Com_TriggerIPDUSend (PduIdType PduId);

By a call to Com_ Trigger IPDUSend With Meta Data the AUTOSAR COM module updates its internal metadata for the I - PDU with the given ID by copying the metada- ta from the given position and with respect to length of the globally configured Meta Data Type of this I - PDU. Then the I - PDU is triggered for transmission.

Std_ReturnType Com_TriggerIPDUSendWithMetaData (PduIdType PduId, const uint8* MetaData);
Com_TriggerTransmit функция

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 Com_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);
Com_TxConfirmation функция

The lower layer communication interface module confirms the transmission of a AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM PDU, or the failure to transmit a PDU.

void Com_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);
Com_TxIpduCallout функция

The I - PDU callout on sender side can be configured for example to implement user - defined transmission filtering or user - defined pre - transmission - processing of the outgoing I - PDU.

boolean Com_TxIpduCallout (PduIdType PduId, PduInfoType* PduInfoPtr);

This is the type of the data structure containing the initialization data for COM.

The AUTOSAR COM I - PDU module's group object identifier.

The AUTOSAR COM module's signal group object identifier.

The AUTOSAR COM module's signal object identifier.

This is a status value returned by the API service Com_ Get Status().

ComM

Notification of the corresponding Bus State Manager that the actual bus mode is Bus - Sleep. Only applicable for Com M channels with Com MNm Variant set to SLAVE_ ACTIVE or SLAVE_ PASSIVE. E.g. LIN slaves (Com MNMVariant = SLAVE_ ACTIVE) or Ethernet channels with OA TC10 compliant Ethernet hardware which act as passive communication slave (Com MNMVariant = SLAVE_ PASSIVE and Eth Trcv Act As Slave Passive Enabled set to TRUE)

void ComM_BusSM_BusSleepMode (NetworkHandleType Channel);

Indication of the actual bus mode by the corresponding Bus State Manager. Com M shall propagate the indicated state to the users with means of the RTE and Bsw M.

void ComM_BusSM_ModeIndication (NetworkHandleType Channel, ComM_ModeType ComMode);

Ecu M or Bsw M shall indicate to Com M when communication is allowed. If Ecu M/ Flex is used: Bsw M AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COMManager

void ComM_CommunicationAllowed (NetworkHandleType Channel, boolean Allowed);

Indication of active diagnostic by the DCM.

void ComM_DCM_ActiveDiagnostic (NetworkHandleType Channel);

Indication of inactive diagnostic by the DCM.

void ComM_DCM_InactiveDiagnostic (NetworkHandleType Channel);
ComM_DeInit функция

This API de - initializes the AUTOSAR Communication Manager.

void ComM_DeInit (void);

Notification of a wake up on the corresponding partial network cluster.

void ComM_EcuM_PNCWakeUpIndication (PNCHandleType PNCid);

Notification of a wake up on the corresponding channel.

void ComM_EcuM_WakeUpIndication (NetworkHandleType Channel);
ComM_GetCurrentComMode функция

Function to query the current Communication Mode. Com M shall use the corresponding interfaces of the Bus State Managers to get the current Communication Mode of the network. (Call to Bus State Manager API: XXXSM _ Get Current Com Mode(...))

Std_ReturnType ComM_GetCurrentComMode (ComM_UserHandleType User, ComM_ModeType* ComMode);

The function returns the current Communication Mode of the corresponding PNC the affected user is assigned to.

Std_ReturnType ComM_GetCurrentPNCComMode (ComM_UserHandleType User, ComM_ModeType* ComMode);

Returns the inhibition status of a Com M channel.

Std_ReturnType ComM_GetInhibitionStatus (NetworkHandleType Channel, ComM_InhibitionStatusType* Status);
ComM_GetMaxComMode функция

Function t o query the maximum allowed Communication Mode of the corresponding user.

Std_ReturnType ComM_GetMaxComMode (ComM_UserHandleType User, ComM_ModeType* ComMode);

This function returns the current configuration of the ECUs PNC - to -

Std_ReturnType ComM_GetPncToChannelMapping (boolean* MappingTable, uint8* ChannelCnt, uint8* PncCnt);

Function to query the currently requested Communication Mode of the corresponding user. Availa ble via Com M.h

Std_ReturnType ComM_GetRequestedComMode (ComM_UserHandleType User, ComM_ModeType* ComMode);
ComM_GetStatus функция

Returns the initialization status of the AUTOSAR Communication Manager. After a call to Com M_ De Init() Com M should have status COMM_ UNINIT, and a new call to Com M_ Init needed to make sur e Com M restart internal state machines to defailt values.

Std_ReturnType ComM_GetStatus (ComM_InitStatusType* Status);
ComM_GetVersionInfo функция

This function returns the published information (for details refer to table 10.3)

void ComM_GetVersionInfo (Std_VersionInfoType* Versioninfo);
ComM_Init функция

Initializes the AUTOSAR Communication Manager and restarts the internal state machines.

void ComM_Init (const ComM_ConfigType* ConfigPtr);

Changes the inhibition status f or the channel for changing from COMM_ NO_ COMMUNICATION to a higher Communication Mode. (See also Com M_ Limit ECUTo No Com Mode, same functionality but for all channels)

Std_ReturnType ComM_LimitChannelToNoComMode (NetworkHandleType Channel, boolean Status);

Changes the inhibition status for the ECU (=all channels) for changing from COMM_ NO_ COMMUNICATION to a high er Communication Mode. (See also Com M_ Limit Channel To No Com Mode, same functionality but for a specific channels)

Std_ReturnType ComM_LimitECUToNoComMode (boolean Status);
ComM_Nm_BusSleepMode функция

Notification that the network management has entered Bus - Sleep Mode. This callback function should perform a transition of the hardware and transceiver to bus - sleep mode.

void ComM_Nm_BusSleepMode (NetworkHandleType Channel);

If an ECU in role of an intermediate PNC coordinator receives a PN shutdown message via a Nm, then Com M is immediately indicated via Com M_ Nm_ Forward Synchronized Pnc Shutdown to forward the request for a synchronized PNC shutdown of the affected PNCs. Therefore, Com M will immediately release the affected PNC state machines and forward the PN information to the affected Com M Channels and the corresponding NM channels, respectively. Note: This supports a nearly synchronized PNC shutdown across the PN topology from the top - level PNC coordinator down to the subordinated PNC node. Tags: atp.Stat us=draft

void ComM_Nm_ForwardSynchronizedPncShutdown (NetworkHandleType Channel);
ComM_Nm_NetworkMode функция

Notification that the network management has entered Network Mode.

void ComM_Nm_NetworkMode (NetworkHandleType Channel);

Indication that a NM - message has been received in the Bus Sleep Mode, what indicates that some nodes in the network have already entered the Network Mode.

void ComM_Nm_NetworkStartIndication (NetworkHandleType Channel);

Service to indicate that an NM message with set PNC Learning Bit has been received. Tags: atp.Status=draft

void ComM_Nm_PncLearningBitIndication (NetworkHandleType Channel);

Notification that the network management has entered Prepare Bus - Sleep Mode.

void ComM_Nm_PrepareBusSleepMode (NetworkHandleType Channel);

Notification that the state of all has left Repeat Message. This interface is used to indicate by the optional Dynamic PNC - to - channel - mapping feature to indicate that learning phase ends. Tags: atp.Status=draft

void ComM_Nm_RepeatMessageLeftIndication (NetworkHandleType Channel);

If Nm If has started to shut down the coordinated busses, AND not all coordinated busses have indicated bus sleep state, AND on at least on one of the coordinated busses NM is restarted, THEN the NM Interface shall call the callback function Com M_ Nm_ Res tart Indication with the nm Network Handle of the channels which have already indicated bus sleep state.

void ComM_Nm_RestartIndication (NetworkHandleType Channel);
ComM_PnLearningRequest функция

Triggers the NM to return into NM Repe at Message State and send the Partial Network Learning Bit (in order for receiving nodes to respond) together with the Repeat Message Request Bit (in order for receiving nodes to return into NM Repeat Message State). This function is used for the optional Dynamic PNC - to - channel - mapping feature. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COMManager Tags: atp.Status=draft

Std_ReturnType ComM_PnLearningRequest (void);
ComM_PreventWakeUp функция

Changes the inhibition status COMM_ NO_ WAKEUP for the corresponding channel.

Std_ReturnType ComM_PreventWakeUp (NetworkHandleType Channel, boolean Status);

This function returns the amount of rejected COMM_ FULL_ COMMUNICATION user requests.

Std_ReturnType ComM_ReadInhibitCounter (uint16* CounterValue);
ComM_RequestComMode функция

Requesting of a Communication Mode by a user. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COMManager Note: The following modes are no vaild user requests, since they are used as internal modes: - COMM_ SIL ENT_ COMMUNICATION (this mode is used for synchronization at shutdown) - COMM_ FULL_ COMMUNICATION_ WITH_ WAKEUP_ REQUEST (this mode is used internally within the Com M channel statemachine to trigger the lower layers to request a wakeup on the network if the used hardware support such a feature. (e.g. Ethernet hardware which is compatible with OA TC10). The following modes are valid user requests: - COMM_ NO_ COMMUNICATION - COMM_ FULL_ COMMUNICATION. The communication request could also be released due to

Std_ReturnType ComM_RequestComMode (ComM_UserHandleType User, ComM_ModeType ComMode);

This function resets the Inhibited COMM_ FULL_ COMMUNICATION request Counter.

Std_ReturnType ComM_ResetInhibitCounter (void);

This function resets dynamic entries within the ECUs PNC - to - channel - mapping to default values Tags: atp.Status=draft

Std_ReturnType ComM_ResetPncToChannelMapping (void);

Changes the ECU Group Classification status (see chapter 10.2.2)

Std_ReturnType ComM_SetECUGroupClassification (ComM_InhibitionStatusType Status);

This function is used by SWCs to update the PNC membership which is transmitted during PNC Learning. This function is used for the optional Dynamic PNC - to - channel - mapping feature. This function is used for the optional Dynamic PNC - to - channel - mapping feature. Tags: atp.Status=draft

Std_ReturnType ComM_UpdatePncMembership (boolean Control, const uint8* ComM_PncMembership);

This function can be used to set entries within the the ECUs PNC - to - channel -

Std_ReturnType ComM_UpdatePncToChannelMapping (const boolean* MappingTable, uint8 channelCnt, uint8 PncCnt);

This type contains the implementation - specific post build configuration structure.

Initialization status of Com M.

Current mode of the Communication Manager (main state of the state machine).

Array of uint8 with Elements that holds the current PNC Membership of the node.

Current mode of a PNC

State and sub - state of Com M state machine Com M states vs. Communication Modes: COMM_ NO_ COM* : Communication Mode='No Communication' COMM_ FULL_ COM*: Communication Mode='Full Communication' COMM_ SILENT_ COM: Communicatio Mode='Silent Communication'

number Of Requesters contains the number of valid user handle entries in the "handle Array" member. If no user keeps the channel requested, this is zero {LOWER - LIMIT=0, UPPER - LIMIT= MAX_ CHANNEL_ REQUESTER }

This element contains the user handles of the users which keep the channel requested (if any), starting in its first entries. The size of the array MAX_ CHANNE L_ REQUESTERS is the maximum of the number of users requesting a channel.

Handle to identify a user. For each user, a unique value must be defined at system generation time. Maximum number of users is 255. Legal user IDs are in the range 0 .. 254; user ID 255 is reserved and shall have the symbolic representation COMM_ NOT_ USED _ USER_ ID.

ComMMode тип

-

ComXf

ComXf_DeInit функция

This service deinitializes the transformer.

void ComXf_DeInit(void);
ComXf_GetVersionInfo функция

This service returns the version information of the called transformer module.

void ComXf_GetVersionInfo(Std_VersionInfoType* VersionInfo);
ComXf_Init функция

This service initializes the transformer for the further processing.

void ComXf_Init(const ComXf_ConfigType* config);

This function deserializes a Sender/Receiver communication using the deserialization of COM Based Transformer. It takes the uint8 array containing the serialized data as input and outputs the original data element which will be passed to the Rte.

uint8 ComXf_Inv_<transformerId>(const uint8* buffer, uint32 bufferLength, <type>* dataElement);
ComXf_transformerId функция

This function transforms a Sender/Receiver communication using the serialization of COM Based Transformer. It takes the data element as input and outputs a uint8 array containing the serialized data.

uint8 ComXf_<transformerId>(uint8* buffer, uint32* bufferLength, <paramtype> dataElement);

This is the type of the data structure containing the initialization data for the transformer.

E2EXf

E2EXf_DeInit функция

Deinitializes the E2E transformer.

void E2EXf_DeInit(void);
E2EXf_GetVersionInfo функция

Returns the version information of this module.

void E2EXf_GetVersionInfo(Std_VersionInfoType* versioninfo);
E2EXf_Init функция

Initializes the state of the E2E Transformer. The main part of it is the initialization of the E2E library state structures, which is done by calling all init-functions from E2E library.

void E2EXf_Init(const E2EXf_ConfigType* config);

Checks the received data. If the data can be used by the caller, then the function returns E_OK.

uint8 E2EXf_Inv_<transformerId>([Std_ExtractProtocolHeaderFieldsType extractProtocolHeaderFields], [E2EXf_CSTransactionHandleType* csTransactionHandle], uint8* buffer, uint32* bufferLength, [const uint8* inputBuffer], uint32 inputBufferLength);
E2EXf_transformerId функция

Protects the array/buffer to be transmitted, using the in-place transformation.

uint8 E2EXf_<transformerId>([Std_TransformerForwardCode forwardedCode], [Std_ExtractProtocolHeaderFieldsType extractProtocolHeaderFields], [const E2EXf_CSTransactionHandleType* csTransactionHandle], uint8* buffer, uint32* bufferLength, [const uint8* inputBuffer], uint32 inputBufferLength);

Parent container for the configuration of E2E Transformer. The content is implementation-specific.

Transaction handle for the C/S method call. - Used to tunnel the E2E Source ID and the E2E Counter from the request to the response at the server side via the RTE.

IpduM

IpduM_GetVersionInfo функция

Service returns the version information of this module.

void IpduM_GetVersionInfo(Std_VersionInfoType* versioninfo);
IpduM_Init функция

Initializes the I-PDU Multiplexer. In configurations, in which IpduM is assigned to more than one partition (i.e. IpduM_Main Functions are mapped to partitions), IpduM may provide one init function per partition.

void IpduM_Init(const IpduM_ConfigType* config);
IpduM_MainFunctionRx функция

This function performs the processing of the reception activities that are not directly handled within the calls from PduR. Per configured IpduMMainFunctionRx instance one IpduM_MainFunctionRx_<shortName> shall be implemented. Hereby <shortName> is the short name of the IpduMMainFunctionRx configuration container in the ECU configuration.

void IpduM_MainFunctionRx(void);
IpduM_MainFunctionTx функция

This function performs the processing of the transmission activities that are not directly handled within the calls from PduR. Per configured IpduMMainFunctionTx instance one IpduM_MainFunctionTx_<shortName> shall be implemented. Hereby <shortName> is the short name of the IpduMMainFunctionTx configuration container in the ECU configuration.

void IpduM_MainFunctionTx(void);
IpduM_RxIndication функция

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

void IpduM_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr);
IpduM_Transmit функция

Requests transmission of a PDU.

Std_ReturnType IpduM_Transmit(PduIdType TxPduId, const PduInfoType* PduInfoPtr);
IpduM_TriggerTransmit функция

Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->SduLength. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr.

Std_ReturnType IpduM_TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr);
IpduM_TxConfirmation функция

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

void IpduM_TxConfirmation(PduIdType TxPduId, Std_ReturnType result);

This is the type of the data structure containing the initialization data for the I-PDU multiplexer.

LdCom

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining data is written to the position indicated by bufferSizePtr. Tags: atp.Status=draft

BufReq_ReturnType <LdComUser_LdComCbkCopyRxData>(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr Tags: atp.Status=draft

BufReq_ReturnType <LdComUser_LdComCbkCopyTxData>(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

Indication of a received PDU from a lower layer communication interface module. Tags: atp.Status=draft

void <LdComUser_LdComCbkRxIndication>(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* PduInfoPtr);

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. Tags: atp.Status=draft

BufReq_ReturnType <LdComUser_LdComCbkStartOfReception>(CbkHandleIdType LdComUserCbkHandleId, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. Tags: atp.Status=draft

void <LdComUser_LdComCbkTpRxIndication>(CbkHandleIdType LdComUserCbkHandleId, Std_ReturnType result);

This function is called after a Signal has been transmitted via the TP-API on its network. Tags: atp.Status=draft

void <LdComUser_LdComCbkTpTxConfirmation>(CbkHandleIdType LdComUserCbkHandleId, Std_ReturnType result);

Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->SduLength. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr. Tags: atp.Status=draft

Std_ReturnType <LdComUser_LdComCbkTriggerTransmit>(CbkHandleIdType LdComUserCbkHandleId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. Tags: atp.Status=draft

void <LdComUser_LdComCbkTxConfirmation>(CbkHandleIdType LdComUserCbkHandleId, Std_ReturnType result);
LdCom_CopyRxData функция

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr.

BufReq_ReturnType LdCom_CopyRxData(PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);
LdCom_CopyTxData функция

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr.

BufReq_ReturnType LdCom_CopyTxData(PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);
LdCom_DeInit функция

With a call to LdCom_DeInit the AUTOSAR LdCom module is put into an not initialized state.

void LdCom_DeInit(void);
LdCom_GetVersionInfo функция

Returns the version information of this module.

void LdCom_GetVersionInfo(Std_VersionInfoType* versioninfo);
LdCom_Init функция

This service initializes internal and external interfaces and variables of the AUTOSAR LdCom module for the further processing.

void LdCom_Init(const LdCom_ConfigType* config);
LdCom_RxIndication функция

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

void LdCom_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr);
LdCom_StartOfReception функция

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0.

BufReq_ReturnType LdCom_StartOfReception(PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);
LdCom_TpRxIndication функция

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not.

void LdCom_TpRxIndication(PduIdType id, Std_ReturnType result);
LdCom_TpTxConfirmation функция

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

void LdCom_TpTxConfirmation(PduIdType id, Std_ReturnType result);
LdCom_Transmit функция

Requests transmission of a signal.

Std_ReturnType LdCom_Transmit(PduIdTypeId, const PduInfoType* InfoPtr);
LdCom_TriggerTransmit функция

Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->SduLength. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr.

Std_ReturnType LdCom_TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr);
LdCom_TxConfirmation функция

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

void LdCom_TxConfirmation(PduIdType TxPduId, Std_ReturnType result);

{OBSOLETE} Service Name Rte_ Ld Com Cbk Copy Rx Data_<sn> (obsolete) Syntax Buf Req_ Return Type Rte_ Ld Com Cbk Copy Rx Data_<sn> ( const Pdu Info Type* info, Pdu Length Type* buffer Size Ptr ) Sync/ Async Synchronous Reentrancy Non Reentrant for same sn, otherwise Reentrant Parameters (in) info Provides the source buffer (Sdu Data Ptr) and the number of bytes to be copied (Sdu Length). An Sdu Length of 0 can be used to query the current amount of available buffer in the upper layer module. In this case, the Sdu Data Ptr may be a NULL_ PTR. Param eters (inout) None Parameters (out) buffer Size Ptr Available receive buffer after data has been copied. Return value Buf Req _ - Return - Type BUFREQ_ OK: Data copied successfully BUFREQ_ E_ NOT_ OK: Data was not copied because an error occurred. Descript ion This function is called to provide the received data of an I - PDU segment (N - PDU) to the upper layer. Each call to this function provides the next part of the I - PDU data. The size of the remaining data is written to the position indicated by buffer Size Ptr. Tags: atp.Status=obsolete Available via Rte_ Cbk.h

BufReq_ReturnType Rte_LdComCbkCopyRxData_<sn>(const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to acquire the transmit data of an I - PDU segment (N - PDU). Each call to this function provides the next part of the I - PDU data u nless retry - >Tp Data State is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry - >Tx Tp Data Cnt. The size of the remaining data is written to the position indicated by av ailable Data Ptr Tags: atp.Status=obsolete

BufReq_ReturnType Rte_LdComCbkCopyTxData_<sn>(const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

This function is called at the start of receiving an N - SDU. The N - SDU might be fragmented into multiple N - PDUs (FF with one or more following CFs) or might consist of a single N - PDU (SF). The service shall provide the currently available maximum buffer size when invoked with Tp Sdu Length equal to 0. Tags: atp.Status=obsolete A vailable via Rte_ Cbk.h

BufReq_ReturnType Rte_LdComCbkStartOfReception_<sn>(const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Indication of a received PDU from a lower layer communication interface module. Tags: atp.Status=obsolete

void Rte_LdComCbkRxIndication_<sn>(const PduInfoType* PduInfoPtr);

Called after an I - PDU has been received via the TP API, the result indicates whether the transmission was successful or not. Tags: atp.Status=obsolete

void Rte_LdComCbkTpRxIndication_<sn>(Std_ReturnType result);

This function is called after a Signal has been transmitted via the TP - API on its network. Tags: atp.Status=obsolete

void Rte_LdComCbkTpTxConfirmation_<sn>(Std_ReturnType result);

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. Tags: atp.Status=obsolete

Std_ReturnType Rte_LdComCbkTriggerTransmit_<sn>(PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. Tags: atp.Status=obsolete

void Rte_LdComCbkTxConfirmation_<sn>(Std_ReturnType result);

This type contains the implementation-specific post build configuration structure.

Mirror

Creates a CAN ID mask filter.

Std_ReturnType Mirror_AddCanMaskFilter(NetworkHandleType network, uint8* filterId, Can_IdType id, Can_IdType mask);

Creates a CAN ID range filter.

Std_ReturnType Mirror_AddCanRangeFilter(NetworkHandleType network, uint8* filterId, Can_IdType lowerId, Can_IdType upperId);

Creates a FlexRay filter.

Std_ReturnType Mirror_AddFlexRayFilter(NetworkHandleType network, uint8* filterId, uint16 lowerSlotId, uint16 upperSlotId, uint8 lowerBaseCycle, uint8 upperBaseCycle, uint8 cycleRepetition, Fr_ChannelType frChannel);

Creates a LIN frame ID mask filter.

Std_ReturnType Mirror_AddLinMaskFilter(NetworkHandleType network, uint8* filterId, uint8 id, uint8 mask);

Creates a LIN frame ID range filter.

Std_ReturnType Mirror_AddLinRangeFilter(NetworkHandleType network, uint8* filterId, uint8 lowerId, uint8 upperId);
Mirror_DeInit функция

This function resets the Bus Mirroring module to the uninitialized state.

void Mirror_DeInit(void);
Mirror_GetDestNetwork функция

Returns the currently selected destination bus.

NetworkHandleType Mirror_GetDestNetwork(void);

Returns the network handle (ComMChannel) of the bus identified by the given network type and network ID, or MIRROR_INVALID_NETWORK.

NetworkHandleType Mirror_GetNetworkHandle(Mirror_NetworkType networkType, uint8 networkId);
Mirror_GetNetworkId функция

Returns the network ID of the given network.

uint8 Mirror_GetNetworkId(NetworkHandleType network);
Mirror_GetNetworkType функция

Returns the network type of the given network.

Mirror_NetworkType Mirror_GetNetworkType(NetworkHandleType network);

Returns the state of a pre-configured filter.

Std_ReturnType Mirror_GetStaticFilterState(NetworkHandleType network, uint8 filterId, boolean* isActive);
Mirror_GetVersionInfo функция

Returns the version information of this module.

void Mirror_GetVersionInfo(Std_VersionInfoType* versionInfo);
Mirror_Init функция

This function initializes the Bus Mirroring module. In configurations, in which Mirror is assigned to more than one partition (i.e. Mirror_Main Functions are mapped to partitions), Mirror may provide one init function per partition.

void Mirror_Init(const Mirror_ConfigType* configPtr);
Mirror_IsMirrorActive функция

Returns the global mirroring state.

boolean Mirror_IsMirrorActive(void);

Returns the state of a source bus.

boolean Mirror_IsSourceNetworkStarted(NetworkHandleType network);
Mirror_MainFunction функция

Main function of the Bus Mirroring module. Used for scheduling purposes and timeout supervision. Per configured MirrorMainFunction instance one Mirror_MainFunction_<shortName> shall be implemented. Hereby <shortName> is the short name of the MirrorMainFunction configuration container in the ECU configuration.

void Mirror_MainFunction(void);
Mirror_Offline функция

Completely disables any mirroring activities. Source buses are reset to disabled, queued messages are purged, and the destination bus is reset to the default destination. Pre-configured filters are disabled, and filters added at runtime are removed.

void Mirror_Offline(void);
Mirror_RemoveFilter функция

Removes a CAN, LIN, or FlexRay filter that was added at runtime.

Std_ReturnType Mirror_RemoveFilter(NetworkHandleType network, uint8 filterId);
Mirror_ReportCanFrame функция

Reports a received or transmitted CAN frame. All received CAN frames that pass the hardware acceptance filter are reported, independent of the software filter configuration. Transmitted CAN frames are reported when the transmission is confirmed.

void Mirror_ReportCanFrame(uint8 controllerId, Can_IdType canId, uint8 length, const uint8* payload);

Reports the aggregated channel status for FlexRay channels A and B of a cluster. The status is encoded as specified in SWS_Fr_00558.

void Mirror_ReportFlexRayChannelStatus(uint8 clusterId, uint16 channelAStatus, uint16 channelBStatus);

Reports a received or transmitted FlexRay frame or a Tx conflict.

void Mirror_ReportFlexRayFrame(uint8 controllerId, uint16 slotId, uint8 cycle, Fr_ChannelType frChannel, const PduInfoType* frame, boolean txConflict);
Mirror_ReportLinFrame функция

Reports a received or transmitted LIN frame.

void Mirror_ReportLinFrame(NetworkHandleType network, Lin_FramePidType pid, const PduInfoType* pdu, Lin_StatusType status);

Sets the state of a pre-configured filter.

Std_ReturnType Mirror_SetStaticFilterState(NetworkHandleType network, uint8 filterId, boolean isActive);

Activates a source bus.

Std_ReturnType Mirror_StartSourceNetwork(NetworkHandleType network);

Deactivates a source bus.

Std_ReturnType Mirror_StopSourceNetwork(NetworkHandleType network);

Changes the destination bus to the given ComM channel. The previously active destination bus and all source buses are disabled.

Std_ReturnType Mirror_SwitchDestNetwork(NetworkHandleType network);
Mirror_TriggerTransmit функция

Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->SduLength. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr.

Std_ReturnType Mirror_TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr);
Mirror_TxConfirmation функция

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

void Mirror_TxConfirmation(PduIdType TxPduId, Std_ReturnType result);

Local representation for Can_IdType Variation –

This is the base type for the configuration of the Bus Mirroring module. A pointer to an instance of this structure will be used in the initialization of the Bus Mirroring module. The content of this structure is defined in chapter 10 Configuration specification.

This type represents the assignment of a FlexRay frame to the channels A and B of a FlexRay network. Variation –

This type represents the bus types that are supported as source or destination buses for the Bus Mirroring module. The invalid type is used as a return value if a function cannot return a valid type. Variation –

Nm

<NmCarWakeUpCallout> функция

Callout function to be called by Nm_CarWakeUpIndication()

void <NmCarWakeUpCallout>(NetworkHandleType nmNetworkHandle);
Nm_BusSleepMode функция

Notification that the network management has entered Bus-Sleep Mode.

void Nm_BusSleepMode(NetworkHandleType nmNetworkHandle);
Nm_CarWakeUpIndication функция

This function is called by a <Bus>Nm to indicate reception of a CWU request.

void Nm_CarWakeUpIndication(NetworkHandleType nmChannelHandle);

Check if remote sleep indication takes place or not. For that purpose <Bus>Nm_CheckRemote SleepIndication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_CheckRemoteSleepIndication function is called if channel is configured as CAN).

Std_ReturnType Nm_CheckRemoteSleepIndication(NetworkHandleType nmNetworkHandle, boolean* nmRemoteSleepIndPtr);

Cancels an indication, when the NM Coordinator Sleep Ready bit in the Control Bit Vector is set back to 0.

void Nm_CoordReadyToSleepCancellation(NetworkHandleType nmChannelHandle);

Sets an indication, when the NM Coordinator Sleep Ready bit in the Control Bit Vector is set

void Nm_CoordReadyToSleepIndication(NetworkHandleType nmChannelHandle);

Disables the NM PDU transmission ability. For that purpose <Bus>Nm_DisableCommunication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_Disable Communication function is called if channel is configured as CAN).

Std_ReturnType Nm_DisableCommunication(NetworkHandleType NetworkHandle);
Nm_EnableCommunication функция

Enables the NM PDU transmission ability. For that purpose <Bus>Nm_EnableCommunication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_Enable Communication function is called if channel is configured as CAN).

Std_ReturnType Nm_EnableCommunication(NetworkHandleType NetworkHandle);

Notification that the network management has received a PN shutdown message on a particular NM-channel. This is used to grant a nearly synchronized PNC shutdown across the entire PN topology. Tags: atp.Status=draft

void Nm_ForwardSynchronizedPncShutdown(void);

Notification that the network management has received a PN shutdown message on a particular NM-channel. This is used to grant a nearly synchronized PNC shutdown across the entire PN topology.

void Nm_ForwardSynchronizedPncShutdown(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr);

Get node identifier configured for the local node. For that purpose <Bus>Nm_GetLocalNode Identifier shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. Can Nm_GetLocalNodeIdentifier function is called if channel is configured as CAN).

Std_ReturnType Nm_GetLocalNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);
Nm_GetNodeIdentifier функция

Get node identifier out of the last successfully received NM-message. The function <Bus>Nm_ GetNodeIdentifier shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetNodeIdentifier function is called if channel is configured as CAN).

Std_ReturnType Nm_GetNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);
Nm_GetPduData функция

Get the whole PDU data out of the most recently received NM message. For that purpose <Bus Nm>_GetPduData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetPduData function is called if channel is configured as CAN).

Std_ReturnType Nm_GetPduData(NetworkHandleType NetworkHandle, uint8* nmPduData);
Nm_GetState функция

Returns the state of the network management. The function <Bus>Nm_GetState shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetState function is called if channel is configured as CAN).

Std_ReturnType Nm_GetState(NetworkHandleType nmNetworkHandle, Nm_StateType* nmStatePtr, Nm_ModeType* nmModePtr);
Nm_GetUserData функция

Get user data out of the last successfully received NM message. For that purpose <Bus>Nm_ GetUserData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetUserData function is called if channel is configured as CAN).

Std_ReturnType Nm_GetUserData(NetworkHandleType NetworkHandle, uint8* nmUserDataPtr);
Nm_GetVersionInfo функция

This service returns the version information of this module.

void Nm_GetVersionInfo(Std_VersionInfoType* nmVerInfoPtr);
Nm_Init функция

Initializes the NM Interface.

void Nm_Init(const Nm_ConfigType* ConfigPtr);
Nm_MainFunction функция

This function implements the processes of the NM Interface, which need a fix cyclic scheduling.

void Nm_MainFunction(void);
Nm_NetworkMode функция

Notification that the network management has entered Network Mode.

void Nm_NetworkMode(NetworkHandleType nmNetworkHandle);
Nm_NetworkRelease функция

This function calls the <Bus>Nm_NetworkRelease bus specific function in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_NetworkRelease function is called if channel is configured as CAN).

Std_ReturnType Nm_NetworkRelease(NetworkHandleType NetworkHandle);
Nm_NetworkRequest функция

This function calls the <Bus>Nm_NetworkRequest (e.g. CanNm_NetworkRequest function is called if channel is configured as CAN) function in case NmBusType is not set to NM_BUSNM_ LOCALNM.

Std_ReturnType Nm_NetworkRequest(NetworkHandleType NetworkHandle);

Notification that a NM-message has been received in the Bus-Sleep Mode, what indicates that some nodes in the network have already entered the Network Mode.

void Nm_NetworkStartIndication(NetworkHandleType nmNetworkHandle);
Nm_PassiveStartUp функция

This function calls the <Bus>Nm_PassiveStartUp function in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_PassiveStartUp function is called for NM_BUSNM_ CANNM).

Std_ReturnType Nm_PassiveStartUp(NetworkHandleType NetworkHandle);
Nm_PduRxIndication функция

Notification that a NM message has been received.

void Nm_PduRxIndication(NetworkHandleType nmNetworkHandle);

Indication that a bus specific network management has received a NM message on a particular NM-channel that contain a PNC bit vector. This is used to aggregate the external PNC requests. The function evaluate if a relevant PNC request (PNC bit set to '1') is available in the given PNC bit vector. If a relevant PNC request is available (PNC bit passes the PNC bit vector filter), then the RelevantPncRequestDetectedPtr refers to a boolean with value set to TRUE. Otherwise refer to booelan with value set to FALSE. RelevantPncRequestDetectedPtr is evaluated by the callee <Bus>Nm module to qualify the further processing of the received NM-PDU.

void Nm_PncBitVectorRxIndication(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr, boolean* RelevantPncRequestDetectedPtr);

Function called by <Bus>Nms to confirm the state of the transmission for the given PNC bit vector on the given NM-Channel.

void Nm_PncBitVectorTxConfirmation(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr, Std_ReturnType result);

Function called by <Bus>Nms to request the aggregated internal PNC requests for transmission within the Nm message.

void Nm_PncBitVectorTxIndication(NetworkHandleType NetworkHandle, uint8* PncBitVectorPtr);
Nm_PnLearningRequest функция

Set Repeat Message Request Bit and Partial Network Learning Bit for NM messages transmitted next on the bus. For that purpose <Bus>Nm_PnLearningRequest shall be called (e.g. CanNm_PnLearningRequest function if channel is configured as CAN). This will force all nodes to enter the PNC Learning Phase and re-enter Repeat Message Stat. This is needed for the optional Dynamic PNC-to-channel-mapping feature.

Std_ReturnType Nm_PnLearningRequest(NetworkHandleType NetworkHandle);
Nm_PrepareBusSleepMode функция

Notification that the network management has entered Prepare Bus-Sleep Mode.

void Nm_PrepareBusSleepMode(NetworkHandleType nmNetworkHandle);

Notification that the network management has detected that not all other nodes on the network are longer ready to enter Bus-Sleep Mode.

void Nm_RemoteSleepCancellation(NetworkHandleType nmNetworkHandle);

Notification that the network management has detected that all other nodes on the network are ready to enter Bus-Sleep Mode.

void Nm_RemoteSleepIndication(NetworkHandleType nmNetworkHandle);

Service to indicate that an NM message with set Repeat Message Re- quest Bit has been received. This is needed for node detection and the Dynamic PNC-to-channel-mapping feature.

void Nm_RepeatMessageIndication(NetworkHandleType nmNetworkHandle, boolean pnLearningBitSet);

Set Repeat Message Request Bit for NM messages transmitted next on the bus. For that purpose <Bus>Nm_RepeatMessageRequest shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_RepeatMessageRequest function is called if channel is configured as CAN). This will force all nodes on the bus to transmit NM messages so that they can be identified.

Std_ReturnType Nm_RepeatMessageRequest(NetworkHandleType NetworkHandle);

This function store the request for a synchronized PNC shutdown of a particular PNC given by PncId per given NM-Channel. The handling of the synchronized PNC shutdown process is mainly done in the context of the Nm_Mainfunction. The function call is only valid if NmStandardBusType is not set to NM_BUSNM_LOCALNM as a <Bus>Nm like CanNm is needed to transmit the PNC shutdown requests.

Std_ReturnType Nm_RequestSynchronizedPncShutdown(NetworkHandleType NetworkHandle, PNCHandleType PncId);
Nm_SetUserData функция

Set user data for NM messages transmitted next on the bus. For that purpose <Bus>Nm_Set UserData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. Can Nm_SetUserData function is called if channel is configured as CAN).

Std_ReturnType Nm_SetUserData(NetworkHandleType NetworkHandle, const uint8* nmUserDataPtr);

Notification that the state of the lower layer <Bus>Nm has changed.

void Nm_StateChangeNotification(NetworkHandleType nmNetworkHandle, Nm_StateType nmPreviousState, Nm_StateType nmCurrentState);

Notification to the NM Coordinator functionality that this is a suitable point in time to initiate the coordinated shutdown on.

void Nm_SynchronizationPoint(NetworkHandleType nmNetworkHandle);
Nm_SynchronizeMode функция

Notification that the network management has entered Synchronize Mode.

void Nm_SynchronizeMode(NetworkHandleType nmNetworkHandle);
Nm_TxTimeoutException функция

Service to indicate that an attempt to send an NM message failed.

void Nm_TxTimeoutException(NetworkHandleType nmNetworkHandle);
Nm_UpdateIRA функция

Indication by ComM of internal PNC requests. This is used to aggregate the internal PNC requests.

void Nm_UpdateIRA(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr);

BusNm Type

Configuration data structure of the Nm module.

Operational modes of the network management.

States of the network management state machine.

PduR

PduR_DisableRouting функция

Disables a routing path group.

void PduR_DisableRouting (PduR_RoutingPathGroupIdType id, boolean initialize);
PduR_EnableRouting функция

Enables a routing path group.

void PduR_EnableRouting (PduR_RoutingPathGroupIdType id);

Returns the unique identifier of the post-build time configuration of the PDU Router

PduR_PBConfigIdType PduR_GetConfigurationId (void);
PduR_GetVersionInfo функция

Returns the version information of this module.

void PduR_GetVersionInfo (Std_VersionInfoType* versionInfo);
PduR_Init функция

Initializes the PDU Router

void PduR_Init (const PduR_PBConfigType* ConfigPtr);

Identification of the post-build configuration currently used for routing I-PDUs. An ECU may contain several configurations (post-build selectable), each have unique Id.

Data structure containing post-build-time configuration data of the PDU Router.

Identification of a Routing Table

States of the PDU Router

SomeIpXf

SomeIpXf_DeInit функция

This service deinitializes the transformer.

void SomeIpXf_DeInit(void);

Function to extract the relevant SOME/IP protocol header fields of the message and the type of the message result. - At the time being, this is limited to the types used for C/S communication (i.e., REQUEST and RESPONSE and OK and ERROR).

Std_ReturnType SomeIpXf_ExtractProtocolHeaderFields(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

This service returns the version information of the called transformer module.

void SomeIpXf_GetVersionInfo(Std_VersionInfoType* VersionInfo);
SomeIpXf_Init функция

This service initializes the transformer for the further processing.

void SomeIpXf_Init(const SomeIpXf_ConfigType* config);

This function deserializes a Sender/Receiver communication using the deserialization of SOME/IP. It takes the uint8 array containing the serialized data as input and outputs the original data element which will be passed to the RTE.

uint8 SomeIpXf_Inv_<transformerId>(const uint8* buffer, uint32 bufferLength, <type>* dataElement);

This function deserializes a Client/Server communication using the deserialization of SOME/IP. It takes the uint8 array containing the serialized data as input and outputs the return value of the server runnable and the operation arguments which have to be passed from the server to the client.

uint8 SomeIpXf_Inv_<transformerId>(Rte_Cs_TransactionHandleType* TransactionHandle, const uint8* buffer, uint32 bufferLength, [ Std_ReturnType* returnValue ], [ <paramtype> data ]);

This function deserializes an external trigger event using the deserialization of SOME/IP.

uint8 SomeIpXf_Inv_<transformerId>(const uint8* buffer, uint32 bufferLength);
SomeIpXf_transformerId функция

This function transforms a Sender/Receiver communication using the serialization of SOME/IP. It takes the data element as input and outputs a uint8 array containing the serialized data. The length of the serialized data shall be calculated by the transformer during runtime and returned in the OUT-parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation.

uint8 SomeIpXf_<transformerId>(uint8* buffer, uint32* bufferLength, <paramtype> dataElement);

This function transforms a Client/Server communication using the serialization of SOME/IP. It takes the operation arguments and optionally the return value as input and outputs a uint8 array containing the serialized data. The length of the serialized data shall be calculated by the transformer during runtime and returned in the OUT-parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation.

uint8 SomeIpXf_<transformerId>(const Rte_Cs_TransactionHandleType* TransactionHandle, uint8* buffer, uint32* bufferLength, [ Std_ReturnType returnValue ], <paramtype> data_1, ... <paramtype> data_n);

This function transforms an external trigger event using the serialization of SOME/IP. It takes trigger as input and outputs a uint8 array. The length of the transformed data shall be calculated by the transformer during runtime and returned in the OUT parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation.

uint8 SomeIpXf_<transformerId>(uint8* buffer, uint32* bufferLength);

This is the type of the data structure containing the initialization data for the transformer.

Xcp

Xcp_GetVersionInfo функция

Returns the version information of this module.

void Xcp_GetVersionInfo(Std_VersionInfoType* versioninfo);
Xcp_Init функция

This service initializes interfaces and variables of the AUTOSAR XCP layer.

void Xcp_Init(const Xcp_ConfigType* Xcp_ConfigPtr);
Xcp_LoRxIndication функция

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

void Xcp_<Lo>RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr); ⚠️
Xcp_LoTriggerTransmit функция

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 Xcp_<Lo>TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr); ⚠️
Xcp_LoTxConfirmation функция

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

void Xcp_< Lo>TxConfirmation(PduIdType TxPduId, Std_ReturnType result); ⚠️
Xcp_MainFunction функция

Scheduled function of the XCP module

void Xcp_MainFunction(void);

This API is used to turn on and off of the TX capabilities of used communication bus channel in XCP module.

void Xcp_SetTransmissionMode(NetworkHandleType Channel, Xcp_TransmissionModeType Mode);

This is the type of the data structure containing the initialization data for XCP.

Handles the enabling and disabling of the transmission mode

Xfrm

Mip_DeInit функция

This service deinitializes the transformer.

void <Mip>_DeInit(void);

Function to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/S communication (i.e., REQUEST and RESPONSE and OK and ERROR).

Std_ReturnType <Mip>_ExtractProtocolHeaderFields(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);
Mip_GetVersionInfo функция

This service returns the version information of the called transformer module.

void <Mip>_GetVersionInfo(Std_VersionInfoType* VersionInfo);
Mip_Init функция

This service initializes the transformer for the further processing.

void <Mip>_Init(const {Mip}_ConfigType* config);
Mip_Inv_transformerId функция

This function is the interface of a first transformer in a transformer chain of Sender/Receiver communication (this is the last executed transformer on the receiving side!).

uint8 <Mip>_Inv_<transformerId>(const uint8* buffer, uint32 bufferLength, <type>* dataElement);

This function is the interface of the first transformer in a transformer chain of Client/Server communication (this is the last executed transformer on the receiving side!). It takes the constant buffer (IN parameter buffer) of length (IN parameter bufferLength which may be smaller than the maximum buffer size used by the RTE for buffer allocation) as input and outputs the operation arguments and optionally the return value (OUT parameters data_1, ..., data_n, and returnValue).

uint8 <Mip>_Inv_<transformerId>([ <datatype>* csTransactionHandle ], Rte_Cs_TransactionHandleType* TransactionHandle, const uint8* buffer, uint32 bufferLength, [ Std_ReturnType* returnValue ], [ <paramtype> data ]);

This function is the interface of a transformer which is not the first transformer in a transformer chain. It takes the output of an earlier transformer in the chain and transforms the data. The length of the transformed data shall be calculated by the transformer during runtime and returned in the OUT parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation.

uint8 <Mip>_Inv_<transformerId>([ Std_ExtractProtocolHeaderFieldsType extractProtocolHeaderFields ], [ <datatype>* csTransactionHandle ], uint8* buffer, uint32* bufferLength, [ const uint8* inputBuffer ], uint32 inputBufferLength);

This function is the interface of a first transformer in a transformer chain of external trigger event communication (this is the last executed transformer on the trigger sink side!).

uint8 <Mip>_Inv_<transformerId>(const uint8* buffer, uint32 bufferLength);
Mip_transformerId функция

This function is the interface of the first transformer in a transformer chain of Sender/Receiver communication. The length of the transformed data shall be calculated by the transformer during runtime and returned in the OUT parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation.

uint8 <Mip>_<transformerId>(uint8* buffer, uint32* bufferLength, <paramtype> dataElement);
Mip_transformerId#2 функция

This function is the interface of the first transformer in a transformer chain of Client/Server communication. It takes the operation arguments and optionally the return value as input and outputs a uint8 array containing the transformed data. The length of the transformed data shall be calculated by the transformer during runtime and returned in the OUT parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation.

uint8 <Mip>_<transformerId>([ const <datatype>* csTransactionHandle ], const Rte_Cs_TransactionHandleType* TransactionHandle, uint8* buffer, uint32* bufferLength, [ Std_ReturnType returnValue ], [ <paramtype> data_1, ... <paramtype> data_n ]);
Mip_transformerId#3 функция

This function is the interface of the first transformer in a transformer chain of Sender/Receiver communication. The length of the transformed data shall be calculated by the transformer during runtime and returned in the OUT parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation. 5 General 4

uint8 <Mip>_<transformerId>([ Std_ExtractProtocolHeaderFieldsType extractProtocolHeaderFields ], [ const <datatype>* csTransactionHandle ], uint8* buffer, uint32* bufferLength, [ const uint8* inputBuffer ], uint32 inputBufferLength, [ <paramtype> originalData ]);
Mip_transformerId#4 функция

This function is the interface of the first transformer in a transformer chain of external trigger events. The length of the transformed data shall be calculated by the transformer during runtime and returned in the OUT parameter bufferLength. It may be smaller than the maximum buffer size used by the RTE for buffer allocation.

uint8 <Mip>_<transformerId>(uint8* buffer, uint32* bufferLength);

This is the type of the data structure containing the initialization data for the transformer.

Руководство по кластеруСОЗДАНО ИИ

Координирует коммутацию PDU, обработку сигналов и управление сетевыми режимами коммуникационного стека.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f46cee27ce69 Происхождение
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Координирует коммутацию PDU, обработку сигналов и управление сетевыми режимами коммуникационного стека.

Модульный кластер «Communication Services» объединяет с помощью com, comm и pdur централизованную обработку сигналов, коммутацию PDU и управление сетевыми режимами AUTOSAR Classic Platform SWS_PDURouter с. 24. Он обеспечивает согласованную упаковку сигналов из приложения, независимую от протоколов маршрутизацию I-PDU через статические таблицы маршрутизации в коммуникационные интерфейсы и активацию ресурсов шины по мере необходимости [SWS_Com_00197], [SWS_PduR_00160]. Кроме того, через стандартизированные интерфейсы координируются селективная маршрутизация в частичных сетях, контроль дедлайнов и механизмы деградации для энергосберегающего режима работы блока управления [SWS_ComM_00110].

Модульный кластер «Communication Services» образует основу обработки сообщений и сигналов в AUTOSAR Classic Platform. Он интегрирует три модуля базового программного обеспечения com, comm и pdur на уровне Services Layer: в то время как модуль com сериализует сигналы и группы сигналов RTE в I-PDU, фильтрует и контролирует их [SWS_Com_00197], pdur выступает в качестве независимой от протокола инстанции коммутации и берет на себя маршрутизацию I-PDU 1:1 и 1:n между верхними пользователями и интерфейсами шин без модификации полезных данных [SWS_PduR_00160]. Модуль comm координирует статус коммуникации, оценивая запросы от SW-C или диагностических каналов и активируя каналы по мере необходимости через Bus State Manager [SWS_ComM_00110], [SWS_ComM_00873].

ComClusterArch RTE RTE / SW-Cs Com Com RTE->Com Com_SendSignal Com_ReceiveSignal ComM ComM RTE->ComM ComM_RequestComMode Dcm DCM Dcm->ComM ComM_DCM_ActiveDiagnostic PduR PduR Dcm->PduR PduR_<User:Up>Transmit Com->PduR PduR_ComTransmit Com_RxIndication BusSM Bus State Manager (CanSM, FrSM, LinSM) ComM->BusSM <Bus>SM_RequestComMode LowerIf Communication Interfaces (CanIf, FrIf, LinIf) PduR->LowerIf <Lo>_Transmit PduR_<User:Lo>RxIndication LowerTp Transport Protocols (CanTp, FrTp, LinTp) PduR->LowerTp <LoTp>_Transmit PduR_<User:LoTp>CopyRxData

Архитектурная диаграмма: взаимосвязи модулей и встраивание кластера Communication Services в базовое программное обеспечение. Источники: SWS_PDURouter с. 24, SWS_COMManager с. 30

В процессе отправки и приема модули тесно взаимодействуют друг с другом. При запросах на отправку com перенаправляет I-PDU через PduR_ComTransmit в pdur, который транслирует идентификаторы I-PDU и управляет целевыми драйверами [SWS_PduR_00406], [SWS_PduR_00766]. В случае тактируемых интерфейсов (например, LIN) нижний драйвер запрашивает данные по мере необходимости через TriggerTransmit, что PDU Router передает без буферизации вплоть до com [SWS_Com_00001], [SWS_PduR_00430]. Поступающие I-PDU модуль pdur передает с помощью RxIndication в com для распаковки сигналов и одновременно может реплицировать их по шлюзовым маршрутам на другие шины [SWS_Com_00123], [SWS_PduR_00362].

Жизненный цикл в значительной степени определяется состояниями comm и pdur. После запуска системы PduR_Init переключает маршрутизатор с PDUR_UNINIT на PDUR_ONLINE [SWS_PduR_00308], [SWS_PduR_00326]. Модуль Communication Manager управляет каналами через основные состояния COMM_NO_COMMUNICATION, COMM_FULL_COMMUNICATION и COMM_SILENT_COMMUNICATION [SWS_ComM_00871]. Посредством таких механизмов, как Communication Inhibition (например, ComM_LimitChannelToNoComMode) и динамические группы путей маршрутизации (PduR_EnableRouting / PduR_DisableRouting), кластер поддерживает селективную деградацию и энергосберегающие состояния [SWS_ComM_00163], [SWS_PduR_00615].

Системная архитектура & роль кластера модулей

Модульный кластер «Communication Services» образует функциональный центр коммуникационного стека AUTOSAR Classic Platform (выпуск R20-11) в пределах Services Layer. Он состоит из трех тесно взаимосвязанных модулей базового программного обеспечения: com (AUTOSAR COM), comm (Communication Manager) и pdur (PDU Router). Совместно эти модули инкапсулируют независимое от шины управление, коммутацию и абстракцию сигналов сети блока управления по отношению к среде выполнения (RTE) и программным компонентам приложения (SW-C) в соответствии с многоуровневой архитектурой AUTOSAR SWS_PDURouter с. 24. Вниз по стеку кластер напрямую взаимодействует с интерфейсами уровня абстракции аппаратного обеспечения коммуникации (CanIf, LinIf, FrIf, EthIf), а также с транспортными протоколами (CanTp, FrTp, LinTp) согласно таким стандартам, как ISO 11898 (CAN), ISO 17987 (LIN), ISO 10681 (FlexRay) и ISO 15765-2 (Transport Layer) AUTOSAR_CP_SWS_PDURouter с. 110.

Модуль com реализует сигнально-ориентированную обработку данных: он преобразует сигналы и группы сигналов RTE в блоки взаимодействия (I-PDU), выполняет упаковку и распаковку (Signal Packing), преобразование порядка байтов (endianness) и знака, а также фильтрацию и контроль дедлайнов отправки (Deadline Monitoring) [SWS_Com_00197], [SWS_Com_00784]. Модуль pdur служит независимой от протоколов инстанцией коммутации, которая перенаправляет I-PDU без изменения содержимого между верхними сервисными модулями (Com, DCM) и нижними коммуникационными интерфейсами или транспортными протоколами, обслуживает локальные пути многоадресной рассылки 1:n и реализует прямые шлюзы [SWS_PduR_00160], [SWS_PduR_00406]. Модуль comm берет на себя ресурсное и ориентированное на состояния управление: он агрегирует коммуникационные запросы от программных компонентов, менеджера режимов BSW (BswM) и диагностических сервисов (DCM по ISO 14229 / UDS) и координирует режимы работы физических каналов и частичных сетей (Partial Network Clusters, PNC) [SWS_ComM_00110], [SWS_ComM_00873].

ComClusterArch RTE RTE / SW-Cs Com Com RTE->Com Com_SendSignal Com_ReceiveSignal ComM ComM RTE->ComM ComM_RequestComMode Dcm DCM Dcm->ComM ComM_DCM_ActiveDiagnostic PduR PduR Dcm->PduR PduR_<User:Up>Transmit Com->PduR PduR_ComTransmit Com_RxIndication BusSM Bus State Manager (CanSM, FrSM, LinSM) ComM->BusSM <Bus>SM_RequestComMode LowerIf Communication Interfaces (CanIf, FrIf, LinIf) PduR->LowerIf <Lo>_Transmit PduR_<User:Lo>RxIndication LowerTp Transport Protocols (CanTp, FrTp, LinTp) PduR->LowerTp <LoTp>_Transmit PduR_<User:LoTp>CopyRxData

Архитектурная диаграмма: взаимосвязи модулей и встраивание кластера Communication Services в базовое программное обеспечение. Источники: SWS_PDURouter с. 24, SWS_COMManager с. 30, SWS_RTE с. 329

Взаимодействие и пути взаимодействия между модулями

Взаимодействие внутри кластера осуществляется через четко определенные цепочки вызовов для трактов отправки, приема и подтверждения. При отправке RTE вызывает модулеспецифичные API отправки модуля com, например Com_SendSignal или Com_SendSignalGroup, для атомарного предоставления данных [SWS_Com_00197], [SWS_Com_00200]. Модуль com упаковывает сигналы в соответствующий I-PDU и синхронно передает его в PDU Router с помощью PduR_ComTransmit [SWS_PduR_00406]. Модуль PDU Router находит целевой I-PDU в своих статических таблицах маршрутизации, преобразует идентификатор I-PDU и передает запрос на отправку без изменений соответствующему нижнему уровню, например через CanIf_Transmit [SWS_PduR_00161], [SWS_PduR_00766]. После успешной отправки по шине интерфейс подтверждает передачу в pdur через PduR_<User:Lo>TxConfirmation [SWS_PduR_00365], который перенаправляет вызов в Com_TxConfirmation [SWS_Com_00124].

Для шинных систем с синхронизацией по времени или на основе опроса, таких как LIN или FlexRay, стек развязывает запрос на отправку с помощью процедуры TriggerTransmit: модуль com инициирует готовность к отправке, но сохраняет полезные данные внутри себя AUTOSAR_CP_SWS_PDURouter с. 101. Как только планировщик шины (например, в LinIf или FrIf) достигает момента отправки, нижний уровень вызывает PduR_<User:Lo>TriggerTransmit [SWS_PduR_00430]. Модуль PDU Router немедленно и без буферизации делегирует этот вызов дальше в Com_TriggerTransmit [SWS_Com_00001], после чего com копирует актуальные данные непосредственно в буфер драйвера SWS_PDURouter с. 107.

В тракте приема нижний коммуникационный интерфейс сигнализирует о поступлении I-PDU через PduR_<User:Lo>RxIndication [SWS_PduR_00362]. Модуль PDU Router синхронно перенаправляет PDU через Com_RxIndication в com [SWS_Com_00123], где сигналы распаковываются, фильтруются и предоставляются для RTE AUTOSAR_CP_SWS_PDURouter с. 97. Одновременно pdur поддерживает шлюзование: принятый I-PDU может одновременно доставляться локально в com и параллельно перенаправляться в исходящий сетевой интерфейс [SWS_PduR_00621], SWS_PDURouter с. 114. В случае PDU транспортного протокола (например, CanTp или DCM) pdur организует сегментированную передачу через StartOfReception, CopyRxData и TpRxIndication [SWS_PduR_00507], [SWS_Com_00691], [SWS_Com_00692].

Процесс отправки I-PDU с TriggerTransmit от Com через PduR в LinIfComPduRLinIfUse Case: Sendeanforderung (Request Phase)PduR_ComTransmit(TxPduId, PduInfoPtr)LinIf_Transmit(PduId, PduInfoPtr)Установить флаг спорадического фреймаE_OKE_OKUse Case: Bedarfsgesteuerter Datenabruf (TriggerTransmit Phase)PduR_LinIfTriggerTransmit(PduId, PduInfoPtr)Com_TriggerTransmit(PduId, PduInfoPtr)Nutzdaten in Puffer kopierenE_OKE_OKUse Case: Подтверждение передачи (Confirmation Phase)PduR_LinIfTxConfirmation(PduId, E_OK)Com_TxConfirmation(PduId, E_OK)

Диаграмма последовательности: управляемый тракт отправки I-PDU и процедура TriggerTransmit через PduR. Источники: SWS_PDURouter с. 107, AUTOSAR_SWS_COM с. 114

Синхронизация, реентерабельность и контексты задач

Модули кластера работают в гибридном контексте выполнения, состоящем из синхронных вызовов функций и периодической обработки задач. Обратные вызовы приема (RxIndication) и подтверждения передачи при отправке (TxConfirmation) часто инициируются в контексте прерываний базовых драйверов или в контексте задач коммуникационных интерфейсов. Поэтому функции коммутации модуля PDU Router спроектированы строго реентерабельными SWS_PDURouter с. 88. Отмена текущих передач через PduR_<User:Up>CancelTransmit специфицирована как реентерабельная для различных идентификаторов PDU, однако для идентичных идентификаторов PDU она нереентерабельна [SWS_PduR_00769].

В модуле comm основной пользовательский интерфейс ComM_RequestComMode явно рассчитан на параллельные вызовы из нескольких исполняемых сущностей (runnables) (canbeInvokedConcurrently = TRUE) и реализован как реентерабельный [SWS_ComM_00110], SWS_COMManager с. 107. Запросы статуса, такие как ComM_GetRequestedComMode [SWS_ComM_00079] и ComM_GetMaxComMode [SWS_ComM_00085], также доступны в реентерабельном виде. Административные функции, такие как ComM_SetECUGroupClassification [SWS_ComM_00552], ComM_GetInhibitionStatus [SWS_ComM_00619], а также API динамического сопоставления (например, ComM_UpdatePncToChannelMapping [SWS_ComM_01037]), напротив, определены как нереентерабельные и требуют вызова с защищенных уровней задач.

Чтобы предотвратить несогласованность данных при многократном доступе к сигналам, AUTOSAR предписывает для составных типов данных атомарную обработку сигналов через группы сигналов [SWS_Com_00197], [SWS_Com_00200]. RTE разделяет сигналы и согласованно сериализует их в локальные теневые буферы, прежде чем Com_SendSignalGroup разблокирует I-PDU SWS_RTE с. 329. Циклическая активность отправки и контроль дедлайнов осуществляются через периодические MainFunctions модулей, при этом группы I-PDU по мере необходимости активируются или останавливаются модулем BswM через Com_IpduGroupStart и Com_IpduGroupStop [SWS_Com_00784], SWS_BSWModeManager с. 93.

Типичные жизненные циклы и режимы работы

Жизненный цикл модульного кластера следует строгой последовательности инициализации и работы. При запуске PDU Router сначала находится в состоянии PDUR_UNINIT, в котором любая маршрутизация запрещена [SWS_PduR_00325], [SWS_PduR_00330]. Вызовом PduR_Init выделяются и инициализируются все внутренние буферы, и модуль переходит в состояние PDUR_ONLINE [SWS_PduR_00308], [SWS_PduR_00742]. Модуль comm аналогично запускается в состоянии COMM_UNINIT [SWS_ComM_00668]. Через ComM_Init считываются энергонезависимые параметры (например, счетчики блокировки и сопоставления PNC) из NVRAM, а конечные автоматы каналов переводятся в стандартное состояние COMM_NO_COM_NO_PENDING_REQUEST [SWS_ComM_00146], [SWS_ComM_00674].

Конечный автомат каналов в comm управляет тремя вышестоящими режимами коммуникации: COMM_NO_COMMUNICATION, COMM_SILENT_COMMUNICATION и COMM_FULL_COMMUNICATION [SWS_ComM_00871]. Пользователи могут запрашивать исключительно полную коммуникацию или отсутствие коммуникации [SWS_ComM_00110]. Если в COMM_NO_COM_NO_PENDING_REQUEST поступает запрос от пользователей или DCM (ComM_DCM_ActiveDiagnostic), конечный автомат переходит в COMM_NO_COM_REQUEST_PENDING [SWS_ComM_00873]. Как только получено разрешение на коммуникацию, выполняется переход в COMM_FULL_COM_NETWORK_REQUESTED, после чего comm запрашивает готовность к передаче и приему через соответствующий Bus State Manager [SWS_ComM_01018], SWS_COMManager с. 64.

Если полная коммуникация освобождается всеми пользователями, канал переключается в COMM_FULL_COM_READY_SLEEP и при наличии полного управления сетью запрашивает Nm_NetworkRelease SWS_COMManager с. 78. Для подготовки к переходу шины в спящий режим конечный автомат переходит в COMM_SILENT_COM, где передача блокируется, однако прием остается активным для синхронизации [SWS_ComM_00391], [SWS_ComM_00829]. При поступлении сообщения от ComM_<Bus>SM_BusSleepMode снова достигается COMM_NO_COM_NO_PENDING_REQUEST [SWS_ComM_91000]. Пробуждение через EcuM обрабатывается через ComM_EcuM_WakeUpIndication или ComM_EcuM_PNCWakeUpIndication [SWS_ComM_91001]. Отключение блока управления через ComM_DeInit допустимо только тогда, когда все каналы полностью деинициализированы в COMM_NO_COMMUNICATION [SWS_ComM_00147].

ComMChannelStates COMM_NO_COM_NO_PENDING_REQUEST COMM_NO_COM_NO_PENDING_REQUEST COMM_NO_COM_REQUEST_PENDING COMM_NO_COM_REQUEST_PENDING COMM_NO_COM_NO_PENDING_REQUEST->COMM_NO_COM_REQUEST_PENDING ComM_RequestComMode или ActiveDiagnostic COMM_NO_COM_REQUEST_PENDING->COMM_NO_COM_NO_PENDING_REQUEST Anforderung storniert COMM_FULL_COM_NETWORK_REQUESTED COMM_FULL_COM_NETWORK_REQUESTED COMM_NO_COM_REQUEST_PENDING->COMM_FULL_COM_NETWORK_REQUESTED CommunicationAllowed == TRUE COMM_FULL_COM_READY_SLEEP COMM_FULL_COM_READY_SLEEP COMM_FULL_COM_NETWORK_REQUESTED->COMM_FULL_COM_READY_SLEEP Nutzer-Release COMM_SILENT_COM COMM_SILENT_COM COMM_FULL_COM_READY_SLEEP->COMM_SILENT_COM Nm_PrepareBusSleep или LightTimeout COMM_SILENT_COM->COMM_NO_COM_NO_PENDING_REQUEST BusSleepMode COMM_SILENT_COM->COMM_FULL_COM_NETWORK_REQUESTED Neue Nutzeranforderung

Диаграмма состояний: модель состояний и смена режимов работы коммуникационного канала ComM. Источники: SWS_COMManager с. 112, SWS_COMManager с. 63, SWS_COMManager с. 71

Обработка ошибок, трассировка DET и деградация

Управление ошибками и деградацией кластера опирается на стандартизированные сообщения в Development Error Tracer (DET), а также конфигурируемые механизмы ограничения (Communication Inhibition). Если обнаружение ошибок разработки активировано, pdur сообщает о неинициализированных вызовах с кодом ошибки PDUR_E_UNINIT [SWS_PduR_00100], [SWS_PduR_00119]. Некорректные идентификаторы таблиц маршрутизации при управляющих вызовах наказываются кодом PDUR_E_ROUTING_PATH_GROUP_ID_INVALID [SWS_PduR_00648], тогда как недействительные параметры-указатели регистрируются как PDUR_E_PARAM_POINTER SWS_PDURouter с. 72. В модуле comm вызов API контроля до завершения инициализации приводит к возврату статуса COMM_UNINIT [SWS_ComM_00242], [SWS_ComM_00668].

Для контролируемой деградации и снижения энергопотребления comm предоставляет интерфейсы для ограничения коммуникации: с помощью ComM_LimitChannelToNoComMode или ComM_LimitECUToNoComMode переход в режим полной коммуникации может быть заблокирован для отдельных каналов или всего блока управления [SWS_ComM_00124], [SWS_ComM_00163]. Кроме того, ComM_PreventWakeUp подавляет пробуждение блока управления по сети [SWS_ComM_00156]. Санкционирование этих блокировок управляется с помощью битов маскирования (ComM_SetECUGroupClassification [SWS_ComM_00552]). Отклоненные запросы полной коммуникации протоколируются в счетчике энергонезависимой памяти ошибок, который можно диагностировать через ComM_ReadInhibitCounter и ComM_ResetInhibitCounter [SWS_ComM_00108], [SWS_ComM_00224]. Диагностические запросы DCM временно обходят активные ограничения коммуникации, чтобы блок управления всегда оставался доступным [SWS_ComM_00873], SWS_COMManager с. 69.

В процессе работы коммуникационные пути в PDU Router могут динамически деградировать или активироваться: посредством PduR_EnableRouting и PduR_DisableRouting BswM немедленно переключает сконфигурированные группы путей маршрутизации [SWS_PduR_00615], [SWS_PduR_00617], [SWS_PduR_00715]. Если путь маршрутизации деактивирован, вызовы отправки и приема затронутых I-PDU немедленно отклоняют передачу данных с E_NOT_OK или BUFREQ_E_NOT_OK SWS_PDURouter с. 69. В конфигурациях Post-Build pdur контролирует целостность конфигурации через PduR_GetConfigurationId, чтобы исключить ошибочное выделение ресурсов при измененных границах таблиц и буферов в RAM и NVRAM [SWS_PduR_00341], [SWS_PduR_00771], SWS_PDURouter с. 160.

Это руководство по кластеру было сформировано автоматически на основе спецификаций AUTOSAR Classic Platform (выпуск R20-11) для модулей com, comm и pdur.

Module im Cluster

AUTOSAR COM

The AUTOSAR COM module provides signal-based communication services for inter-ECU exchange across diverse bus systems.

BSW ID 50 55 APIs (50 Funktionen, 5 Typen) #include "Com.h"

Communication Manager (ComM)

Manages communication states and channel modes across multiple network interfaces.

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

COM Based Transformer (ComXf)

AUTOSAR Classic Communication Services-Modul COM Based Transformer (ComXf, Spezifikation: AUTOSAR_CP_SWS_COMBasedTransformer.pdf, AUTOSAR_SWS_COMBasedTransformer.pdf).

BSW ID 175 6 APIs (5 Funktionen, 1 Typen) #include "ComXf.h"

Data Distribution Service (Dds)

AUTOSAR Classic Communication Services-Modul Data Distribution Service (Dds, Spezifikation: AUTOSAR_CP_SWS_DataDistributionService.pdf, AUTOSAR_SWS_ClassicPlatformDataDistributionService.pdf).

BSW ID 47 Keine C-API · 0 Records #include "Dds.h"

Data Distribution Service Transformer (DdsXf)

AUTOSAR Classic Communication Services-Modul Data Distribution Service Transformer (DdsXf, Spezifikation: AUTOSAR_CP_SWS_DataDistributionServiceTransformer.pdf).

Keine C-API · 0 Records #include "DdsXf.h"

E2E Transformer (E2EXf)

AUTOSAR Classic Communication Services-Modul E2E Transformer (E2EXf, Spezifikation: AUTOSAR_CP_SWS_E2ETransformer.pdf, AUTOSAR_SWS_E2ETransformer.pdf).

BSW ID 176 7 APIs (5 Funktionen, 2 Typen) #include "E2EXf.h"

IPDU Multiplexer (IpduM)

AUTOSAR Classic Communication Services-Modul IPDU Multiplexer (IpduM, Spezifikation: AUTOSAR_CP_SWS_IPDUMultiplexer.pdf, AUTOSAR_SWS_IPDUM.pdf, AUTOSAR_SWS_IPDUMultiplexer.pdf).

BSW ID 52 9 APIs (8 Funktionen, 1 Typen) #include "IpduM.h"

Large Data COM (LdCom)

AUTOSAR Classic Communication Services-Modul Large Data COM (LdCom, Spezifikation: AUTOSAR_CP_SWS_LargeDataCOM.pdf, AUTOSAR_SWS_LargeDataCOM.pdf).

BSW ID 49 29 APIs (28 Funktionen, 1 Typen) #include "LdCom.h"

LSDU Router (LSduR)

AUTOSAR Classic Communication HW Abstraction-Modul LSDU Router (LSduR, Spezifikation: AUTOSAR_CP_SWS_LSduRouter.pdf).

BSW ID 132 Keine C-API · 0 Records #include "LSduR.h"

Bus Mirroring (Mirror)

AUTOSAR Classic Communication Services-Modul Bus Mirroring (Mirror, Spezifikation: AUTOSAR_CP_SWS_BusMirroring.pdf, AUTOSAR_SWS_BusMirroring.pdf).

BSW ID 48 32 APIs (28 Funktionen, 4 Typen) #include "Mirror.h"

Network Management Interface (Nm)

AUTOSAR Classic Communication Services-Modul Network Management Interface (Nm, Spezifikation: AUTOSAR_CP_SWS_NetworkManagementInterface.pdf, AUTOSAR_SWS_NMInterface.pdf, AUTOSAR_SWS_NetworkManagementInterface.pdf).

BSW ID 29 44 APIs (40 Funktionen, 4 Typen) #include "Nm.h"

PDU Router (PduR)

The PDU Router routes I-PDUs between communication interfaces, transport protocols, and upper layers without payload inspection.

BSW ID 51 9 APIs (5 Funktionen, 4 Typen) #include "PduR.h"

SOME/IP Transformer (SomeIpXf)

AUTOSAR Classic Communication Services-Modul SOME/IP Transformer (SomeIpXf, Spezifikation: AUTOSAR_CP_SWS_SOMEIPTransformer.pdf, AUTOSAR_SWS_SOMEIPTransformer.pdf).

BSW ID 174 11 APIs (10 Funktionen, 1 Typen) #include "SomeIpXf.h"

AUTOSAR Xcp

AUTOSAR Classic Communication Services-Modul XCP (Xcp, Spezifikation: AUTOSAR_CP_SWS_XCP.pdf, AUTOSAR_SWS_XCP.pdf).

BSW ID 212 7 APIs (7 Funktionen, 0 Typen) #include "Xcp.h"

General Transformer Specification (Xfrm)

AUTOSAR Classic Communication Services-Modul General Transformer Specification (Xfrm, Spezifikation: AUTOSAR_ASWS_TransformerGeneral.pdf, AUTOSAR_CP_ASWS_TransformerGeneral.pdf).

12 APIs (12 Funktionen, 0 Typen) #include "Xfrm.h"