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_DeInitCom_GetStatusCom_GetVersionInfoCom_InitComM_DeInitComM_GetStatusComM_GetVersionInfoComM_InitComXf_DeInitComXf_GetVersionInfoComXf_InitE2EXf_DeInitE2EXf_GetVersionInfoE2EXf_InitIpduM_GetVersionInfoIpduM_InitLdCom_DeInitLdCom_GetVersionInfoLdCom_InitMip_DeInitMip_GetVersionInfoMip_InitMirror_DeInitMirror_GetVersionInfoMirror_InitNm_GetVersionInfoNm_InitPduR_GetVersionInfoPduR_InitSomeIpXf_DeInitSomeIpXf_GetVersionInfoSomeIpXf_InitXcp_GetVersionInfoXcp_Init服务 · Get…
服务 · Inv…
服务 · transformer…
服务 · Nm…
服务 · Receive…
服务 · Send…
服务 · Add…
服务 · Ld…
服务 · Network…
服务 · Report…
服务 · Set…
服务 · Bus…
服务 · Disable…
服务 · Enable…
服务 · Return…
服务 · Update…
服务 · 其他
Com_InvalidateSignalCom_InvalidateSignalGroupCom_IpduGroupStartCom_IpduGroupStopCom_SwitchIpduTxModeCom_TriggerIPDUSendCom_TriggerIPDUSendWithMetaDataComM_CommunicationAllowedComM_DCM_ActiveDiagnosticComM_DCM_InactiveDiagnosticComM_EcuM_PNCWakeUpIndicationComM_EcuM_WakeUpIndicationComM_LimitChannelToNoComModeComM_LimitECUToNoComModeComM_PnLearningRequestComM_PreventWakeUpComM_ReadInhibitCounterComM_RequestComModeComM_ResetInhibitCounterComM_ResetPncToChannelMappingIpduM_TransmitLdCom_TransmitMip_ExtractProtocolHeaderFieldsMirror_IsMirrorActiveMirror_IsSourceNetworkStartedMirror_OfflineMirror_RemoveFilterMirror_StartSourceNetworkMirror_StopSourceNetworkMirror_SwitchDestNetworkNm_CarWakeUpIndicationNm_CheckRemoteSleepIndicationNm_CoordReadyToSleepCancellationNm_CoordReadyToSleepIndicationNm_ForwardSynchronizedPncShutdownNm_ForwardSynchronizedPncShutdown#2Nm_PassiveStartUpNm_PncBitVectorTxIndicationNm_PnLearningRequestNm_PrepareBusSleepModeNm_RemoteSleepCancellationNm_RemoteSleepIndicationNm_RepeatMessageIndicationNm_RepeatMessageRequestNm_RequestSynchronizedPncShutdownNm_StateChangeNotificationNm_SynchronizationPointNm_SynchronizeModeNm_TxTimeoutExceptionSomeIpXf_ExtractProtocolHeaderFieldsXcp_LoTriggerTransmit回调
Com_CbkCounterErrCom_CbkInvCom_CbkRxAckCom_CbkRxTOutCom_CbkTxAckCom_CbkTxErrCom_CbkTxPrepCom_CbkTxTOutCom_CopyRxDataCom_CopyTxDataCom_RxIndicationCom_StartOfReceptionCom_TpRxIndicationCom_TpTxConfirmationCom_TriggerTransmitCom_TxConfirmationIpduM_RxIndicationIpduM_TriggerTransmitIpduM_TxConfirmationLdCom_CopyRxDataLdCom_CopyTxDataLdCom_RxIndicationLdCom_StartOfReceptionLdCom_TpRxIndicationLdCom_TpTxConfirmationLdCom_TriggerTransmitLdCom_TxConfirmationMirror_TriggerTransmitMirror_TxConfirmationNm_PduRxIndicationNm_PncBitVectorRxIndicationNm_PncBitVectorTxConfirmationXcp_LoRxIndicationXcp_LoTxConfirmationCallout 与预期接口
<LdComUser_LdComCbkCopyRxData><LdComUser_LdComCbkCopyTxData><LdComUser_LdComCbkRxIndication><LdComUser_LdComCbkStartOfReception><LdComUser_LdComCbkTpRxIndication><LdComUser_LdComCbkTpTxConfirmation><LdComUser_LdComCbkTriggerTransmit><LdComUser_LdComCbkTxConfirmation><NmCarWakeUpCallout>Com_RxIpduCalloutCom_TxIpduCallout周期性
Com_MainFunctionRouteSignalsCom_MainFunctionRxCom_MainFunctionTxIpduM_MainFunctionRxIpduM_MainFunctionTxMirror_MainFunctionNm_MainFunctionXcp_MainFunction类型
Com_ConfigTypeCom_IpduGroupIdTypeCom_SignalGroupIdTypeCom_SignalIdTypeCom_StatusTypeComM_ConfigTypeComM_InitStatusTypeComM_ModeTypeComM_PncMembershipTypeComM_PncModeTypeComM_StateTypeComM_UserHandleArrayTypeComM_UserHandleSubArrayTypeComM_UserHandleTypeComMModeComXf_ConfigTypeE2EXf_ConfigTypeE2EXf_CSTransactionHandleTypeIpduM_ConfigTypeLdCom_ConfigTypeMirror_CanIdTypeMirror_ConfigTypeMirror_FlexRayChannelTypeMirror_NetworkTypemodeLimitationNm_BusNmTypeNm_ConfigTypeNm_ModeTypeNm_StateTypePduR_PBConfigIdTypePduR_PBConfigTypePduR_RoutingPathGroupIdTypePduR_StateTypeSomeIpXf_ConfigTypeXcp_ConfigTypeXcp_TransmissionModeType{Mip}_ConfigType函数
<LdComUser_LdComCbkCopyRxData><LdComUser_LdComCbkCopyTxData><LdComUser_LdComCbkRxIndication><LdComUser_LdComCbkStartOfReception><LdComUser_LdComCbkTpRxIndication><LdComUser_LdComCbkTpTxConfirmation><LdComUser_LdComCbkTriggerTransmit><LdComUser_LdComCbkTxConfirmation><NmCarWakeUpCallout>Com_CbkCounterErrCom_CbkInvCom_CbkRxAckCom_CbkRxTOutCom_CbkTxAckCom_CbkTxErrCom_CbkTxPrepCom_CbkTxTOutCom_CopyRxDataCom_CopyTxDataCom_DeInitCom_DisableReceptionDMCom_EnableReceptionDMCom_GetStatusCom_GetVersionInfoCom_InitCom_InvalidateSignalCom_InvalidateSignalGroupCom_IpduGroupStartCom_IpduGroupStopCom_MainFunctionRouteSignalsCom_MainFunctionRxCom_MainFunctionTxCom_ReceiveDynSignalCom_ReceiveDynSignalWithMetaDataCom_ReceiveSignalCom_ReceiveSignalGroupCom_ReceiveSignalGroupArrayCom_ReceiveSignalGroupArrayWithMetaDataCom_ReceiveSignalGroupWithMetaDataCom_ReceiveSignalWithMetaDataCom_RxIndicationCom_RxIpduCalloutCom_SendDynSignalCom_SendDynSignalWithMetaDataCom_SendSignalCom_SendSignalGroupCom_SendSignalGroupArrayCom_SendSignalGroupArrayWithMetaDataCom_SendSignalGroupWithMetaDataCom_SendSignalWithMetaDataCom_StartOfReceptionCom_SwitchIpduTxModeCom_TpRxIndicationCom_TpTxConfirmationCom_TriggerIPDUSendCom_TriggerIPDUSendWithMetaDataCom_TriggerTransmitCom_TxConfirmationCom_TxIpduCalloutComM_BusSM_BusSleepModeComM_BusSM_ModeIndicationComM_CommunicationAllowedComM_DCM_ActiveDiagnosticComM_DCM_InactiveDiagnosticComM_DeInitComM_EcuM_PNCWakeUpIndicationComM_EcuM_WakeUpIndicationComM_GetCurrentComModeComM_GetCurrentPNCComModeComM_GetInhibitionStatusComM_GetMaxComModeComM_GetPncToChannelMappingComM_GetRequestedComModeComM_GetStatusComM_GetVersionInfoComM_InitComM_LimitChannelToNoComModeComM_LimitECUToNoComModeComM_Nm_BusSleepModeComM_Nm_ForwardSynchronizedPncShutdownComM_Nm_NetworkModeComM_Nm_NetworkStartIndicationComM_Nm_PncLearningBitIndicationComM_Nm_PrepareBusSleepModeComM_Nm_RepeatMessageLeftIndicationComM_Nm_RestartIndicationComM_PnLearningRequestComM_PreventWakeUpComM_ReadInhibitCounterComM_RequestComModeComM_ResetInhibitCounterComM_ResetPncToChannelMappingComM_SetECUGroupClassificationComM_UpdatePncMembershipComM_UpdatePncToChannelMappingComXf_DeInitComXf_GetVersionInfoComXf_InitComXf_Inv_transformerIdComXf_transformerIdE2EXf_DeInitE2EXf_GetVersionInfoE2EXf_InitE2EXf_Inv_transformerIdE2EXf_transformerIdIpduM_GetVersionInfoIpduM_InitIpduM_MainFunctionRxIpduM_MainFunctionTxIpduM_RxIndicationIpduM_TransmitIpduM_TriggerTransmitIpduM_TxConfirmationLdCom_CopyRxDataLdCom_CopyTxDataLdCom_DeInitLdCom_GetVersionInfoLdCom_InitLdCom_RxIndicationLdCom_StartOfReceptionLdCom_TpRxIndicationLdCom_TpTxConfirmationLdCom_TransmitLdCom_TriggerTransmitLdCom_TxConfirmationMip_DeInitMip_ExtractProtocolHeaderFieldsMip_GetVersionInfoMip_InitMip_Inv_transformerIdMip_Inv_transformerId#2Mip_Inv_transformerId#3Mip_Inv_transformerId#4Mip_transformerIdMip_transformerId#2Mip_transformerId#3Mip_transformerId#4Mirror_AddCanMaskFilterMirror_AddCanRangeFilterMirror_AddFlexRayFilterMirror_AddLinMaskFilterMirror_AddLinRangeFilterMirror_DeInitMirror_GetDestNetworkMirror_GetNetworkHandleMirror_GetNetworkIdMirror_GetNetworkTypeMirror_GetStaticFilterStateMirror_GetVersionInfoMirror_InitMirror_IsMirrorActiveMirror_IsSourceNetworkStartedMirror_MainFunctionMirror_OfflineMirror_RemoveFilterMirror_ReportCanFrameMirror_ReportFlexRayChannelStatusMirror_ReportFlexRayFrameMirror_ReportLinFrameMirror_SetStaticFilterStateMirror_StartSourceNetworkMirror_StopSourceNetworkMirror_SwitchDestNetworkMirror_TriggerTransmitMirror_TxConfirmationNm_BusSleepModeNm_CarWakeUpIndicationNm_CheckRemoteSleepIndicationNm_CoordReadyToSleepCancellationNm_CoordReadyToSleepIndicationNm_DisableCommunicationNm_EnableCommunicationNm_ForwardSynchronizedPncShutdownNm_ForwardSynchronizedPncShutdown#2Nm_GetLocalNodeIdentifierNm_GetNodeIdentifierNm_GetPduDataNm_GetStateNm_GetUserDataNm_GetVersionInfoNm_InitNm_MainFunctionNm_NetworkModeNm_NetworkReleaseNm_NetworkRequestNm_NetworkStartIndicationNm_PassiveStartUpNm_PduRxIndicationNm_PncBitVectorRxIndicationNm_PncBitVectorTxConfirmationNm_PncBitVectorTxIndicationNm_PnLearningRequestNm_PrepareBusSleepModeNm_RemoteSleepCancellationNm_RemoteSleepIndicationNm_RepeatMessageIndicationNm_RepeatMessageRequestNm_RequestSynchronizedPncShutdownNm_SetUserDataNm_StateChangeNotificationNm_SynchronizationPointNm_SynchronizeModeNm_TxTimeoutExceptionNm_UpdateIRAPduR_DisableRoutingPduR_EnableRoutingPduR_GetConfigurationIdPduR_GetVersionInfoPduR_InitReq_ReturnTypeRte_LdComCbkCopyRxData_snReq_ReturnTypeRte_LdComCbkCopyTxData_snReq_ReturnTypeRte_LdComCbkStartOfReception_snRte_LdComCbkRxIndication_snRte_LdComCbkTpRxIndication_snRte_LdComCbkTpTxConfirmation_snRte_LdComCbkTriggerTransmit_snRte_LdComCbkTxConfirmation_snSomeIpXf_DeInitSomeIpXf_ExtractProtocolHeaderFieldsSomeIpXf_GetVersionInfoSomeIpXf_InitSomeIpXf_Inv_transformerIdSomeIpXf_Inv_transformerId#2SomeIpXf_Inv_transformerId#3SomeIpXf_transformerIdSomeIpXf_transformerId#2SomeIpXf_transformerId#3Xcp_GetVersionInfoXcp_InitXcp_LoRxIndicationXcp_LoTriggerTransmitXcp_LoTxConfirmationXcp_MainFunctionXcp_SetTransmissionMode类型
Com_ConfigTypeCom_IpduGroupIdTypeCom_SignalGroupIdTypeCom_SignalIdTypeCom_StatusTypeComM_ConfigTypeComM_InitStatusTypeComM_ModeTypeComM_PncMembershipTypeComM_PncModeTypeComM_StateTypeComM_UserHandleArrayTypeComM_UserHandleSubArrayTypeComM_UserHandleTypeComMModeComXf_ConfigTypeE2EXf_ConfigTypeE2EXf_CSTransactionHandleTypeIpduM_ConfigTypeLdCom_ConfigTypeMirror_CanIdTypeMirror_ConfigTypeMirror_FlexRayChannelTypeMirror_NetworkTypemodeLimitationNm_BusNmTypeNm_ConfigTypeNm_ModeTypeNm_StateTypePduR_PBConfigIdTypePduR_PBConfigTypePduR_RoutingPathGroupIdTypePduR_StateTypeSomeIpXf_ConfigTypeXcp_ConfigTypeXcp_TransmissionModeType{Mip}_ConfigType主题图
Com
55ComM
47LdCom
29Mirror
32Nm
44PduR
9SomeIpXf
11Xcp
9此版本没有元素数据
Com
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);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);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);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);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);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);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);Service Com_CopyRxData.
BufReq_ReturnType Com_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);Service Com_CopyTxData.
BufReq_ReturnType Com_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);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);Disables the reception deadline monitoring for the I - PDUs within the given I - PDU group.
void Com_DisableReceptionDM (Com_IpduGroupIdType IpduGroupId);Enables the reception deadline monitoring for the I - PDUs within the given I - PDU group.
void Com_EnableReceptionDM (Com_IpduGroupIdType IpduGroupId);Returns the status of the AUTOSAR COM module. Availab le via Com.h
Com_StatusType Com_GetStatus (void);Returns the version information of this module.
void Com_GetVersionInfo (Std_VersionInfoType* versioninfo);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);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);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);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);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);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_ 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_ 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);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.
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.
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.
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);Indication of a received PDU from a lower layer communication interface module.
void Com_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);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);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);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);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.
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.
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);Service Com_StartReception.
BufReq_ReturnType Com_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);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); ⚠️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);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);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);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);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);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);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);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);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);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);This function returns the published information (for details refer to table 10.3)
void ComM_GetVersionInfo (Std_VersionInfoType* Versioninfo);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);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);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);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);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);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.
-
-
ComXf
This service deinitializes the transformer.
void ComXf_DeInit(void);This service returns the version information of the called transformer module.
void ComXf_GetVersionInfo(Std_VersionInfoType* VersionInfo);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.
This is the type of the data structure containing the initialization data for the transformer.
E2EXf
Deinitializes the E2E transformer.
void E2EXf_DeInit(void);Returns the version information of this module.
void E2EXf_GetVersionInfo(Std_VersionInfoType* versioninfo);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.
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
Service returns the version information of this module.
void IpduM_GetVersionInfo(Std_VersionInfoType* versioninfo);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);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);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);Indication of a received PDU from a lower layer communication interface module.
void IpduM_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr);Requests transmission of a PDU.
Std_ReturnType IpduM_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 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);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);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);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);With a call to LdCom_DeInit the AUTOSAR LdCom module is put into an not initialized state.
void LdCom_DeInit(void);Returns the version information of this module.
void LdCom_GetVersionInfo(Std_VersionInfoType* versioninfo);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);Indication of a received PDU from a lower layer communication interface module.
void LdCom_RxIndication(PduIdType RxPduId, 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.
BufReq_ReturnType LdCom_StartOfReception(PduIdType id, 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.
void LdCom_TpRxIndication(PduIdType id, Std_ReturnType result);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);Requests transmission of a signal.
Std_ReturnType LdCom_Transmit(PduIdTypeId, const PduInfoType* InfoPtr);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);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);This function resets the Bus Mirroring module to the uninitialized state.
void Mirror_DeInit(void);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);Returns the network ID of the given network.
uint8 Mirror_GetNetworkId(NetworkHandleType network);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);Returns the version information of this module.
void Mirror_GetVersionInfo(Std_VersionInfoType* versionInfo);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);Returns the global mirroring state.
boolean Mirror_IsMirrorActive(void);Returns the state of a source bus.
boolean Mirror_IsSourceNetworkStarted(NetworkHandleType network);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);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);Removes a CAN, LIN, or FlexRay filter that was added at runtime.
Std_ReturnType Mirror_RemoveFilter(NetworkHandleType network, uint8 filterId);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 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);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);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);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
Callout function to be called by Nm_CarWakeUpIndication()
void <NmCarWakeUpCallout>(NetworkHandleType nmNetworkHandle);Notification that the network management has entered Bus-Sleep Mode.
void Nm_BusSleepMode(NetworkHandleType nmNetworkHandle);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);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);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);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);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);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);This service returns the version information of this module.
void Nm_GetVersionInfo(Std_VersionInfoType* nmVerInfoPtr);Initializes the NM Interface.
void Nm_Init(const Nm_ConfigType* ConfigPtr);This function implements the processes of the NM Interface, which need a fix cyclic scheduling.
void Nm_MainFunction(void);Notification that the network management has entered Network Mode.
void Nm_NetworkMode(NetworkHandleType nmNetworkHandle);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);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);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);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);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);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);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);Notification that the network management has entered Synchronize Mode.
void Nm_SynchronizeMode(NetworkHandleType nmNetworkHandle);Service to indicate that an attempt to send an NM message failed.
void Nm_TxTimeoutException(NetworkHandleType nmNetworkHandle);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
Disables a routing path group.
void PduR_DisableRouting (PduR_RoutingPathGroupIdType id, boolean initialize);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);Returns the version information of this module.
void PduR_GetVersionInfo (Std_VersionInfoType* versionInfo);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
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);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.
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 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.
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.
This is the type of the data structure containing the initialization data for the transformer.
Xcp
Returns the version information of this module.
void Xcp_GetVersionInfo(Std_VersionInfoType* versioninfo);This service initializes interfaces and variables of the AUTOSAR XCP layer.
void Xcp_Init(const Xcp_ConfigType* Xcp_ConfigPtr);Indication of a received PDU from a lower layer communication interface module.
void Xcp_<Lo>RxIndication(PduIdType RxPduId, 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 Xcp_<Lo>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 Xcp_< Lo>TxConfirmation(PduIdType TxPduId, Std_ReturnType result); ⚠️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
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);This service returns the version information of the called transformer module.
void <Mip>_GetVersionInfo(Std_VersionInfoType* VersionInfo);This service initializes the transformer for the further processing.
void <Mip>_Init(const {Mip}_ConfigType* config);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.
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.
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 ]);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
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.
This is the type of the data structure containing the initialization data for the transformer.
集群指南人工智能生成
协调通信栈的 PDU 交换、信号处理与网络模式管理。
协调通信栈的 PDU 交换、信号处理与网络模式管理。
“Communication Services”模块集群通过 com、comm 和 pdur 捆绑了 AUTOSAR Classic Platform 的核心信号处理、PDU 交换和网络模式管理 SWS_PDURouter 第24页。它确保来自应用程序的信号被一致打包,I-PDU 通过静态路由表以独立于协议的方式转发到通信接口,并根据需要激活总线资源 [SWS_Com_00197]、[SWS_PduR_00160]。此外,还通过标准化接口协调针对节能 ECU 运行的选择性局部网络路由、期限监控和降级机制 [SWS_ComM_00110]。
“Communication Services”模块集群构成了 AUTOSAR Classic Platform 的消息与信号处理骨干。它集成了服务层中的三个基础软件模块 com、comm 和 pdur:模块 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]。
架构图:模块关系以及 Communication Services 集群在基础软件中的嵌入情况。来源:SWS_PDURouter 第24页、SWS_COMManager 第30页
在发送和接收流程中,各模块紧密协作。在发送请求时,com 通过 PduR_ComTransmit 将 I-PDU 转发给 pdur,后者转换 I-PDU-ID 并控制目标驱动程序 [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)和动态 Routing-Path-Groups(PduR_EnableRouting / PduR_DisableRouting)等机制,该集群支持选择性降级和节能状态 [SWS_ComM_00163]、[SWS_PduR_00615]。
系统架构 & 模块集群的角色
“Communication Services”模块集群构成了服务层内 AUTOSAR Classic Platform(版本 R20-11)通信栈的功能中心。它由三个紧密协作的基础软件模块 com(AUTOSAR COM)、comm(Communication Manager)和 pdur(PDU Router)组成。根据 AUTOSAR 分层架构,这些模块共同向运行时环境(RTE)和应用软件组件(SW-C)封装了 ECU 网络的独立于总线的管理、交换和信号抽象 SWS_PDURouter 第24页。该集群向下直接与通信硬件抽象层接口(CanIf、LinIf、FrIf、EthIf)以及基于 ISO 11898(CAN)、ISO 17987(LIN)、ISO 10681(FlexRay)和 ISO 15765-2(传输层)等标准的传输协议(CanTp、FrTp、LinTp)进行交互 AUTOSAR_CP_SWS_PDURouter 第110页。
模块 com 实现面向信号的数据处理:它将 RTE 的信号和信号组转换为交互单元(I-PDU),负责打包和解包(Signal Packing)、字节序与符号的转换,以及过滤和发送期限监控(Deadline Monitoring)[SWS_Com_00197]、[SWS_Com_00784]。模块 pdur 充当独立于协议的交换实体,在不修改内容的情况下在上层服务模块(Com、DCM)与底层通信接口或传输协议之间转发 I-PDU,服务于本地 1:n 多播路径,并实现直接网关 [SWS_PduR_00160]、[SWS_PduR_00406]。comm 负责面向资源与状态的控制:它聚合来自软件组件、BSW 模式管理器(BswM)和诊断服务(符合 ISO 14229 / UDS 的 DCM)的通信请求,并协调物理通道和局部网络(Partial Network Clusters,PNC)的操作模式 [SWS_ComM_00110]、[SWS_ComM_00873]。
架构图:模块关系以及 Communication Services 集群在基础软件中的嵌入情况。来源:SWS_PDURouter 第24页、SWS_COMManager 第30页、SWS_RTE 第329页
各模块之间的交互配合与交互路径
集群内的交互通过用于发送、接收和确认路径的明确定义的调用链进行。在发送时,RTE 调用 com 的模块特定发送 API(例如 Com_SendSignal 或 Com_SendSignalGroup)以原子方式提供数据 [SWS_Com_00197]、[SWS_Com_00200]。模块 com 将信号打包到关联的 I-PDU 中,并通过 PduR_ComTransmit 同步传递给 PDU Router [SWS_PduR_00406]。PDU Router 在其静态路由表中查找目标 I-PDU,转换 I-PDU-ID,并将发送请求不作修改地传递至负责的下层,例如通过 CanIf_Transmit [SWS_PduR_00161]、[SWS_PduR_00766]。在总线上成功发送后,接口通过 PduR_<User:Lo>TxConfirmation 向 pdur 确认传输 [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页。
在接收路径中,底层通信接口通过 PduR_<User:Lo>RxIndication [SWS_PduR_00362] 指示 I-PDU 的到达。PDU Router 通过 Com_RxIndication 将 PDU 同步转发至 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]。
时序图:经由 PduR 的受控 I-PDU 发送路径和 TriggerTransmit 流程。来源:SWS_PDURouter 第107页, AUTOSAR_SWS_COM 第114页
同步、重入性与任务上下文
该集群的模块运行在由同步函数调用和周期性任务处理组成的混合执行上下文中。接收回调(RxIndication)和发送传输确认(TxConfirmation)通常在底层驱动程序的中断上下文或通信接口的任务上下文中触发。因此,PDU Router 的路由转发函数被严格设计为可重入的 SWS_PDURouter 第88页。通过 PduR_<User:Up>CancelTransmit 中止正在进行的传输对于不同的 PDU-ID 是可重入的,但对于相同的 PDU-ID 则被规范为不可重入 [SWS_PduR_00769]。
在模块 comm 中,主用户接口 ComM_RequestComMode 显式设计用于支持多个 Runnable 的并发调用(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 从 NVRAM 读取持久化参数(例如禁止计数器和 PNC 映射),并将通道状态机转换到默认状态 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页。为准备 Bus-Sleep,状态机切换到 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_NO_COMMUNICATION 中去初始化后,才允许通过 ComM_DeInit 进行 ECU 关机 [SWS_ComM_00147]。
状态图:ComM 通信通道的状态模型和运行模式切换。来源:SWS_COMManager 第112页, SWS_COMManager 第63页, SWS_COMManager 第71页
错误处理、DET 跟踪与降级
该集群的错误与降级管理依赖于向开发错误追踪器(DET)发送的标准化报告以及可配置的限制机制(Communication Inhibition)。如果启用了开发错误检测,pdur 将通过错误代码 PDUR_E_UNINIT 报告未初始化的调用 [SWS_PduR_00100], [SWS_PduR_00119]。控制调用中的错误路由表 ID 将被处以 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 可以禁止单个通道或整个 ECU 转换到完全通信 [SWS_ComM_00124], [SWS_ComM_00163]。此外,ComM_PreventWakeUp 会抑制基于网络的 ECU 唤醒 [SWS_ComM_00156]。这些禁止权限通过屏蔽位进行控制(ComM_SetECUGroupClassification [SWS_ComM_00552])。被拒绝的完全通信请求记录在非易失性错误存储器计数器中,该计数器可通过 ComM_ReadInhibitCounter 和 ComM_ResetInhibitCounter 进行诊断 [SWS_ComM_00108], [SWS_ComM_00224]。DCM 的诊断请求会临时覆写激活的通信限制,以确保 ECU 始终可达 [SWS_ComM_00873], SWS_COMManager 第69页。
在运行期间,PDU Router 中的通信路径可以动态降级或激活:BswM 通过 PduR_EnableRouting 和 PduR_DisableRouting 立即切换已配置的路由路径组 [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页。
本集群指南基于针对模块 com、comm 和 pdur 的 AUTOSAR Classic Platform 规范(Release R20-11)自动生成。
提供统一的信号与数据包路由、通信网络状态管理及跨总线传输协调服务。
通信服务集群(Com、ComM、PduR)作为 AUTOSAR 服务层的通信核心,通过 ComM 集中仲裁网络模式并协调通信通道与部分网络 [SWS_ComM_00867]。Com 负责信号与 I-PDU 之间的解耦、格式转换及周期与事件驱动调度,PduR 则实现协议无关的 I-PDU 快速分发、多播与跨总线网关路由 [SWS_PduR_00160]。该集群在 PDUR_ONLINE 及完全通信模式下确保高实时性数据收发,并在总线休眠或故障时通过路由禁用与通信抑制机制执行确定性降级 [SWS_PduR_00328]、[SWS_PduR_00617]。
通信服务(Communication Services)集群由通信管理器(ComM)、通信模块(Com)和协议数据单元路由器(PduR)组成,是 AUTOSAR Classic Platform 服务层中承上启下的核心枢纽。ComM 集中管理车载通信网络状态与部分网络(PNC),向上为 SW-C、BswM 与 DCM 提供通信模式请求接口,向下协调 BusSM 和 Nm 模块 [SWS_ComM_00867]、[SWS_ComM_00110]。Com 负责信号与信号组的打包解包、大小端转换、发送截止期限监控与传输调度 [SWS_Com_00197]、[SWS_Com_00784]。PduR 作为协议不可知的中枢路由引擎,在无修改的前提下将 I-PDU 在上层模块与底层硬件接口或传输协议模块间分发分流 [SWS_PduR_00160]、[SWS_PduR_00161]。
架构图: Communication Services 集群内各模块及与上下层组件的分层拓扑与路由关系。Quellen: SWS_PDURouter 第24页, [SWS_PduR_00160], [SWS_ComM_00110]
在数据交互流程中,发送端通过 Com_SendSignal 写入信号,经 Com 组装为 I-PDU 后传递至 PduR [SWS_Com_00197]、AUTOSAR_SWS_COM 第114页。对于 CAN 等事件型总线,PduR 执行无缓冲直接下发;对于 LIN 或 FlexRay,则通过 TriggerTransmit 机制在总线调度时隙即时拉取数据缓冲 [SWS_PduR_00430]、[SWS_Com_00001]。推测:在启用零成本操作的场景下,PduR 的转发调用可能被宏替换直接内联以优化栈开销 SystemTemplate 第656页。在接收与网关端,PduR 同步分发数据至 Com 进行信号解析,并支持跨总线直接网关或 TP 层的分段中继 [SWS_Com_00123]、[SWS_PduR_00362]、[SWS_PduR_00507]。
在生命周期与模式管理方面,系统上电后 PduR 经由 PduR_Init 从 PDUR_UNINIT 迁移至 PDUR_ONLINE 方可启动路由 [SWS_PduR_00324]、[SWS_PduR_00328]。ComM 通道状态机依据用户与诊断请求,在无通信、完全通信与静默通信三类主模式及其子状态间动态切换 [SWS_ComM_00867]、[SWS_ComM_00875]。同时,通过 PduR_DisableRouting 与通信抑制接口(如 ComM_LimitECUToNoComMode),集群能够在欠压、故障或休眠准备时实施安全降级与确定性资源受限控制 [SWS_PduR_00617]、[SWS_ComM_00124]。
系统架构与模块集群定位
在 AUTOSAR Classic Platform 架构中,通信服务(Communication Services)集群占据服务层(Services Layer)的核心位置,由通信管理器(ComM)、通信模块(Com)和协议数据单元路由器(PduR)三大核心模块共同构成,向下对接通信硬件抽象层与传输协议,向上为运行时环境(RTE)、应用软件组件(SW-C)、诊断通信管理器(DCM)以及基础软件模式管理器(BswM)提供标准化、总线无关的通信服务接口 SWS_PDURouter 第24页。
ComM 作为总线管理协调者,负责简化通信资源管理并控制通信通道的可用性。它将用户(如 SW-C、BswM、DCM)的通信需求聚合后映射至物理通道或部分网络(PNC),并通过统一的接口调度总线状态管理器(BusSM)与网络管理(Nm)模块 [SWS_ComM_00867]、[SWS_ComM_00110]。Com 模块面向信号,负责信号与信号组(Signal Groups)在 I-PDU(交互层协议数据单元)中的打包、解包、大小端转换、符号扩展、滤波以及基于发送模式和周期因子的传输调度,并实现发送与接收截止期限监控(Deadline Monitoring) [SWS_Com_00197]、[SWS_Com_00784]。PduR 作为协议不可知的中枢路由引擎,在无修改的前提下将 I-PDU 在上层模块(如 Com、DCM)与底层接口(如 CanIf、LinIf、FrIf)或传输协议模块(如 CanTp)之间分发,同时支持多播分发(Fan-out)与网关(Gatewaying)互联 [SWS_PduR_00160]、[SWS_PduR_00161]。
架构图: Communication Services 集群内各模块及与上下层组件的分层拓扑与路由关系。Quellen: SWS_PDURouter 第24页, [SWS_PduR_00160], [SWS_ComM_00110]
模块协同与交互路径
集群内部的协同工作构成了 AUTOSAR 数据平面与控制平面的核心通路。控制平面上,当 SW-C 或 DCM 请求启动通信时,调用 [SWS_ComM_00110] 触发 ComM 进入完全通信状态,ComM 进而向相应总线的状态管理器请求完全通信模式 [SWS_ComM_00069];同时,BswM 或相关控制流通过启用或禁用 PduR 路由路径组(Routing Path Groups)与 Com I-PDU 组,实现对特定报文收发通路的精细化通断控制 [SWS_PduR_00615]、[SWS_Com_91001]。
在数据平面发送路径上,上层 RTE 通过 Com_SendSignal 或 Com_SendSignalGroup 写入信号数据并维护数据原子性 [SWS_Com_00197]、[SWS_Com_00200]。Com 模块组装完成 I-PDU 后,调用 PduR_ComTransmit 发起向下传输 AUTOSAR_SWS_COM 第114页。对于 CAN 等事件型驱动总线,PduR 执行无缓存转发,直传调用 CanIf_Transmit,并在底层发送完成后由 PduR_CanIfTxConfirmation 回调 Com_TxConfirmation 确认发送 [SWS_PduR_00365]、[SWS_Com_00124]。对于 LIN 或 FlexRay 等时间触发或轮询型总线,PduR 支持两阶段传输模式:Com 发起传输仅置位底层标志,随后调度表触发底层接口发起 PduR_TriggerTransmit,PduR 将请求回溯至 Com_TriggerTransmit 现场拉取最新数据缓冲 [SWS_PduR_00430]、[SWS_Com_00001]。推测:在启用零成本操作(Zero-Cost Operation)的预编译配置下,PduR 的转发开销可能通过预处理器宏直接内联消除,从而避免额外函数调用层级 SystemTemplate 第656页。
时序图: Com 经由 PduR 至底层接口的直接发送与触发发送(TriggerTransmit)交互时序。Quellen: AUTOSAR_SWS_COM 第114页, [SWS_PduR_00430], [SWS_Com_00001], [SWS_Com_00124]
在数据平面接收与网关路径上,底层接口通过 PduR_RxIndication 传入数据后,PduR 根据静态配置路由表将 I-PDU 映射并分发给 Com_RxIndication 供本地信号解包,若配置了网关路由,还可同步启动向目标总线接口的发送 [SWS_Com_00123]、[SWS_PduR_00362]。在诊断等大块多帧通信场景中,PduR 在传输协议层支持流式中继与上层分发,按顺序协同调用 StartOfReception、CopyRxData 和 TpRxIndication,并在需要时通过内部 FIFO 缓冲区进行流控与数据暂存 [SWS_PduR_00507]、[SWS_PduR_00789]。
同步、可重入性与任务上下文
通信服务集群跨越了硬实时中断上下文与任务级调度周期,具有严格的重入性与线程安全要求。ComM 模块的模式请求接口 ComM_RequestComMode 和查询接口设计为可重入,允许不同的应用可运行实体(Runnable Entities)在多任务甚至多核环境中并发调用 [SWS_ComM_00110]、SWS_COMManager 第107页。与之对应,ComM 的管理配置与抑制控制 API(如 ComM_LimitECUToNoComMode、ComM_PreventWakeUp)由于涉及全局状态更新,被定义为不可重入服务 [SWS_ComM_00124]、[SWS_ComM_00156]。
PduR 的大部分数据路径转发接口(如 PduR_EnableRouting、PduR_GetConfigurationId)均具备可重入特性,保证多通道并发收发时互不干扰 [SWS_PduR_00615]、[SWS_PduR_00341]。取消传输服务 PduR_<User:Up>CancelTransmit 针对不同 PDU ID 可重入,但针对同一 PDU ID 则属于不可重入调用 [SWS_PduR_00769]。对于接收指示和发送确认回调,它们通常直接运行在底层中断服务例程(ISR)或驱动的轮询任务上下文中;为防止并发访问引起 I-PDU 缓存竞争,Com 与 PduR 内部广泛使用独占区(Exclusive Areas)以及多缓冲机制保障数据读写的一致性 SWS_RTE 第329页。
典型生命周期与运行模式
通信集群各模块在系统启动与关闭过程中遵循严谨的生命周期约束。系统上电后,EcuM 引导基础软件初始化。ComM 在初始化 ComM_Init 时必须依赖 NvM 已就绪以读取非易失性抑制参数及 PNC 映射配置,并将通道状态机置入默认初始状态 [SWS_ComM_00146]、[SWS_ComM_00793]。PduR 初始处于 PDUR_UNINIT 状态,此时所有路由功能被完全禁止;在调用 PduR_Init 完成静态路由表加载并清空所有传输缓冲区后,状态机迁移至 PDUR_ONLINE,正式具备转发能力 [SWS_PduR_00324]、[SWS_PduR_00328]、[SWS_PduR_00645]。
在运行阶段,ComM 通道状态机管理三大基础模式:无通信(COMM_NO_COMMUNICATION)、静默通信(COMM_SILENT_COMMUNICATION)和完全通信(COMM_FULL_COMMUNICATION) [SWS_ComM_00867]。当处于无通信子状态 COMM_NO_COM_NO_PENDING_REQUEST 时,若收到用户通信请求或 DCM 激活诊断通知,状态机立即切换至 COMM_NO_COM_REQUEST_PENDING,并在底层允许通信标志置位后跳转至 COMM_FULL_COM_NETWORK_REQUESTED,开启通道收发能力并启动运行定时器 [SWS_ComM_00875]、[SWS_ComM_00895]、[SWS_ComM_00886]。在所有通信用户释放请求后,状态机转入 COMM_FULL_COM_READY_SLEEP,通知网络管理释放网络并等待静默与总线睡眠转换 [SWS_ComM_00133]、[SWS_ComM_00071]。系统休眠或关机前,只有在所有通道均处于 COMM_NO_COMMUNICATION 模式且无挂起请求时,才允许执行 ComM_DeInit 将运行时参数回写至 NVRAM [SWS_ComM_00147]、[SWS_ComM_00794]、[SWS_ComM_00865]。
状态图: ComM 通道状态机运行模式及其子状态的迁移模型。Quellen: [SWS_ComM_00674], [SWS_ComM_00867], [SWS_ComM_00875], [SWS_ComM_00895], [SWS_ComM_00133]
错误处理、DET追踪与降级策略
通信服务集群通过完善的错误检测机制保证在异常场景下的系统鲁棒性与确定性降级。当启用开发错误检测(DET)时,若模块未完成初始化即被调用,各模块统一上报未初始化错误(如 PduR 报告 PDUR_E_UNINIT、Com 报告 COM_E_UNINIT)并拒绝后续操作 [SWS_PduR_00100]、[SWS_PduR_00119]、SWS_SoftwareClusterConnection 第202页。若传递了非法配置指针、无效的 PDU 标识符或无效的路由路径组 ID,PduR 将分别触发 PDUR_E_INIT_FAILED、PDUR_E_PDU_ID_INVALID 或 PDUR_E_ROUTING_PATH_GROUP_ID_INVALID 错误 [SWS_PduR_00100]、[SWS_PduR_00648]。
在通信抑制与降级管理方面,ComM 提供了多级限制机制。通过 ComM_PreventWakeUp、ComM_LimitChannelToNoComMode 或 ComM_LimitECUToNoComMode,上层特权软件可在电量过低或总线异常时强制禁止通道唤醒或将节点限制在无通信模式,并记录被拒绝的完全通信请求计数 [SWS_ComM_00156]、[SWS_ComM_00163]、[SWS_ComM_00224]。当某条路由路径被 PduR_DisableRouting 禁用时,PduR 实施安全降级:随后的数据发送或接收请求直接返回 E_NOT_OK 或 BUFREQ_E_NOT_OK,并可根据配置将单缓冲区重置为预设默认值,从而防止陈旧数据外溢并确保受限模式下的内存确定性 [SWS_PduR_00617]、[SWS_PduR_00805]、SWS_PDURouter 第160页。
本集群指南由 AI 依据 AUTOSAR 规范与元模型定义综合编纂,内容已核验并完全绑定指定版本的需求规范与模型约束。
Module im Cluster
AUTOSAR COM
The AUTOSAR COM module provides signal-based communication services for inter-ECU exchange across diverse bus systems.
Communication Manager (ComM)
Manages communication states and channel modes across multiple network interfaces.
COM Based Transformer (ComXf)
AUTOSAR Classic Communication Services-Modul COM Based Transformer (ComXf, Spezifikation: AUTOSAR_CP_SWS_COMBasedTransformer.pdf, AUTOSAR_SWS_COMBasedTransformer.pdf).
Data Distribution Service (Dds)
AUTOSAR Classic Communication Services-Modul Data Distribution Service (Dds, Spezifikation: AUTOSAR_CP_SWS_DataDistributionService.pdf, AUTOSAR_SWS_ClassicPlatformDataDistributionService.pdf).
Data Distribution Service Transformer (DdsXf)
AUTOSAR Classic Communication Services-Modul Data Distribution Service Transformer (DdsXf, Spezifikation: AUTOSAR_CP_SWS_DataDistributionServiceTransformer.pdf).
E2E Transformer (E2EXf)
AUTOSAR Classic Communication Services-Modul E2E Transformer (E2EXf, Spezifikation: AUTOSAR_CP_SWS_E2ETransformer.pdf, AUTOSAR_SWS_E2ETransformer.pdf).
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).
Large Data COM (LdCom)
AUTOSAR Classic Communication Services-Modul Large Data COM (LdCom, Spezifikation: AUTOSAR_CP_SWS_LargeDataCOM.pdf, AUTOSAR_SWS_LargeDataCOM.pdf).
LSDU Router (LSduR)
AUTOSAR Classic Communication HW Abstraction-Modul LSDU Router (LSduR, Spezifikation: AUTOSAR_CP_SWS_LSduRouter.pdf).
Bus Mirroring (Mirror)
AUTOSAR Classic Communication Services-Modul Bus Mirroring (Mirror, Spezifikation: AUTOSAR_CP_SWS_BusMirroring.pdf, AUTOSAR_SWS_BusMirroring.pdf).
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).
PDU Router (PduR)
The PDU Router routes I-PDUs between communication interfaces, transport protocols, and upper layers without payload inspection.
SOME/IP Transformer (SomeIpXf)
AUTOSAR Classic Communication Services-Modul SOME/IP Transformer (SomeIpXf, Spezifikation: AUTOSAR_CP_SWS_SOMEIPTransformer.pdf, AUTOSAR_SWS_SOMEIPTransformer.pdf).
AUTOSAR Xcp
AUTOSAR Classic Communication Services-Modul XCP (Xcp, Spezifikation: AUTOSAR_CP_SWS_XCP.pdf, AUTOSAR_SWS_XCP.pdf).
General Transformer Specification (Xfrm)
AUTOSAR Classic Communication Services-Modul General Transformer Specification (Xfrm, Spezifikation: AUTOSAR_ASWS_TransformerGeneral.pdf, AUTOSAR_CP_ASWS_TransformerGeneral.pdf).
gemini-3.8-flash-low· 2026-10-13 · 德文原文