DEENESPTFRRUARHIKOZHNL

CAN State Manager (CanSM)

ModulCanSM (CAN State Manager)
BSW-Modul-ID140
Standard-Header#include "CanSM.h"
SWS-SpezifikationAUTOSAR_CP_SWS_CANStateManager.pdf, AUTOSAR_SWS_CANStateManager.pdf, AUTOSAR_SWS_CAN_StateManager.pdf
Umfang161 Records · 79 Snippets
ClusterCAN-Stack

CAN State Manager (CanSM)

AUTOSAR Classic Communication Services-Modul CAN State Manager (CanSM, Spezifikation: AUTOSAR_CP_SWS_CANStateManager.pdf, AUTOSAR_SWS_CANStateManager.pdf, AUTOSAR_SWS_CAN_StateManager.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

함수 CanSM_Init [SWS_CanSM_00023] 📄 PDF

void CanSM_Init(const CanSM_ConfigType* ConfigPtr);

This service initializes the Can SM module

함수 CanSM_GetVersionInfo [SWS_CanSM_00024] 📄 PDF

void CanSM_GetVersionInfo(Std_VersionInfoType* VersionInfo);

This service puts out the version information of this module (module ID, vendor ID, vendor specific version numbers related to BSW00407)

함수 CanSM_RequestComMode [SWS_CanSM_00062] 📄 PDF

Std_ReturnType CanSM_RequestComMode(NetworkHandleType network, ComM_ModeType ComM_Mode);

This service shall change the communication mode of a CAN network to the requested one.

함수 CanSM_GetCurrentComMode [SWS_CanSM_00063] 📄 PDF

Std_ReturnType CanSM_GetCurrentComMode(NetworkHandleType network, ComM_ModeType* ComM_ModePtr);

This service shall put out the current communication mode of a CAN network.

함수 CanSM_ControllerBusOff [SWS_CanSM_00064] 📄 PDF

void CanSM_ControllerBusOff(uint8 ControllerId);

This callback function notifies the Can SM about a bus - off event on a certain CAN controller, which needs to be considered with the specified bus - off recovery handling for th e impacted CAN network.

함수 CanSM_TransceiverModeIndication [SWS_CanSM_00399] 📄 PDF

void CanSM_TransceiverModeIndication(uint8 TransceiverId, CanTrcv_TrcvModeType TransceiverMode);

This callback shall notify the Can SM module about a CAN transceiver mode change.

함수 CanSM_TxTimeoutException [SWS_CanSM_00410] 📄 PDF

void CanSM_TxTimeoutException(NetworkHandleType Channel);

This function shall notify the Can SM module, that the Can Nm has detected for the affected partial CAN network a tx timeout exception, which shall be recovered within the respective network state machine of the Can SM module.

함수 CanSM_ClearTrcvWufFlagIndication [SWS_CanSM_00413] 📄 PDF

void CanSM_ClearTrcvWufFlagIndication(uint8 Transceiver);

This callback function shall indicate the Can If_ Clear Trcv Wuf Flag API process end for the notified CAN Transceiver.

함수 CanSM_CheckTransceiverWakeFlagIndication [SWS_CanSM_00416] 📄 PDF

void CanSM_CheckTransceiverWakeFlagIndication(uint8 Transceiver);

This callback function indicates the Can If_ Check Trcv Wake Flag API process end for the notified CAN Transceiver.

함수 CanSM_ConfirmPnAvailability [SWS_CanSM_00419] 📄 PDF

void CanSM_ConfirmPnAvailability(uint8 TransceiverId);

This callback function indicates that the transceiver is running in PN communication mode.

함수 CanSM_SetBaudrate [SWS_CanSM_00561] 📄 PDF

Std_ReturnType CanSM_SetBaudrate(NetworkHandleType Network, uint16 BaudRateConfig ID); ⚠️

This service shall start an asynchronous process to change the baud rate for the configured CAN controllers of a certain CAN network. Depending on necessary baud rate modifications the controllers might have to reset.

함수 CanSM_SetIcomConfiguration [SWS_CanSM_00586] 📄 PDF

Std_ReturnType CanSM_SetIcomConfiguration(NetworkHandleType Network, IcomConfigIdType ConfigurationId);

This service shall change the Icom Configuration of a CAN network to the requested one.

함수 CanSM_CurrentIcomConfiguration [SWS_CanSM_00587] 📄 PDF

void CanSM_CurrentIcomConfiguration(uint8 ControllerId, IcomConfigIdType ConfigurationId, IcomSwitch_ErrorType Error);

This service shall inform about the change of the Icom Configuration of a CAN network.

함수 CanSM_StartWakeupSource [SWS_CanSM_00609] 📄 PDF

Std_ReturnType CanSM_StartWakeupSource(NetworkHandleType network);

This function shall be called by Ecu M when a wakeup source shall be started.

함수 CanSM_StopWakeupSource [SWS_CanSM_00610] 📄 PDF

Std_ReturnType CanSM_StopWakeupSource(NetworkHandleType network);

This function shall be called by Ecu M when a wakeup source shall be stopped.

함수 <User_Get Bus Off Delay> [SWS_CanSM_00637] 📄 PDF

void <User_Get Bus Off Delay>(NetworkHandleType network, uint8* delayCyclesPtr);

This callout function returns the number of Can SM base cycles to wait additionally to L1/ L2 after a Bus Off occurred.

함수 CanSM_SetEcuPassive [SWS_CanSM_00644] 📄 PDF

Std_ReturnType CanSM_SetEcuPassive(boolean CanSM_Passive);

Service Name Can SM_ Set Ecu Passive Syntax Std_ Return Type Can SM_ Set Ecu Passive ( boolean Can SM_ Passive ) Service ID [hex] 0x13 Sync/ Async Synchronous Reentrancy Non Reentrant Parameters (in) Can SM_ Passive TRUE: set all Can SM channels to passive, i.e. receive only FALSE: set all Can SM channels back to non - passive Parameters (inout) None Parameters (out) None Return value Std _ Return - E_ OK: Request accepted Type E_ NOT_ OK: Request not accepted Descr iption This function can be used to set all Can SM channels of the ECU to a receive only mode. Available via Can SM.h

함수 CanSM_ConfirmCtrlPnAvailability [SWS_CanSM_91004] 📄 PDF

void CanSM_ConfirmCtrlPnAvailability(uint8 ControllerId);

This callback function indicates that the controller is running in PN communication mode. Tags: atp.Status=draft

타입 CanSM_ConfigType [SWS_CanSM_00597] 📄 PDF

This type defines a data structure for the post build parameters of the Can SM. At initialization the Can SM gets a pointer to a structure of this type to get access to its configuration data, which is neces sary for initialization. Available Can SM.h via

타입 CanSM_BswMCurrentStateType [SWS_CanSM_00598] 📄 PDF

Can specific communication modes / states notified to the Bsw M module

requirement SWS_CanSM_00167 [SWS_CanSM_00167] 📄 PDF

[SWS_CanSM_00167] ⌈The main function of the CanSM module shall operate the effects of the CanSM state machine, which the CanSM module shall implement for each configured CAN Network.⌋(SRS_BSW_00424, SRS_BSW_00425, SRS_Can_- 01145, SRS_Can_01142)

requirement SWS_CanSM_00182 [SWS_CanSM_00182] 📄 PDF

[SWS_CanSM_00182] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If the function CanSM_RequestComMode accepts the request, the request shall be considered by the CanSM state machine (ref. to [SWS_CanSM_00635]).⌋

requirement SWS_CanSM_00183 [SWS_CanSM_00183] 📄 PDF

[SWS_CanSM_00183] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_NET- WORK_HANDLE, if it does not accept the network handle of the request.⌋

requirement SWS_CanSM_00184 [SWS_CanSM_00184] 📄 PDF

[SWS_CanSM_00184] Upstream requirements: SRS_BSW_00406 ⌈If the CanSM module is not initialized, when the function CanSM_RequestCom- Mode is called, then this function shall call the function Det_ReportError (ref. to

requirement SWS_CanSM_00186 [SWS_CanSM_00186] 📄 PDF

[SWS_CanSM_00186] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall put out the current communication mode for the network (ref. to [SWS_CanSM_00266]) to the designated pointer of type mode, if it accepts the request.⌋

requirement SWS_CanSM_00187 [SWS_CanSM_00187] 📄 PDF

[SWS_CanSM_00187] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if it does not accept the network of the request.⌋

requirement SWS_CanSM_00188 [SWS_CanSM_00188] 📄 PDF

[SWS_CanSM_00188] Upstream requirements: SRS_Can_01142 ⌈If the CanSM module is not initialized (ref. to [SWS_CanSM_00282]), when the function CanSM_GetCurrentComMode is called, then this function shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00189 [SWS_CanSM_00189] 📄 PDF

[SWS_CanSM_00189] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the function CanSM_ControllerBusOff gets a Controller, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

requirement SWS_CanSM_00190 [SWS_CanSM_00190] 📄 PDF

[SWS_CanSM_00190] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerBu- sOff is called, then the function CanSM_ControllerBusOff shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00235 [SWS_CanSM_00235] 📄 PDF

[SWS_CanSM_00235] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is initialized and the input parameter Controller is one of the CAN controllers configured with the parameter CanSMControllerId, this bus-off event shall be considered by the CAN Network state machine (ref. to

requirement SWS_CanSM_00243 [SWS_CanSM_00243] 📄 PDF

Module Header File Imported Type Can Can_ General Types.h Can _ Controller State Type Can If Can If.h Can If _ Notif Status Type Can If.h Can If _ Pdu Mode Type Can Trcv Can_ General Types.h Can Trcv _ Trcv Mode Type Com M Rte_ Com M_ Type.h Com M _ Mode Type Com Stack_ Types Com Stack_ Types.h Network Handle Type Dem Rte_ Dem_ Type.h Dem _ Event Id Type Rte_ Dem_ Type.h Dem _ Event Status Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

requirement SWS_CanSM_00266 [SWS_CanSM_00266] 📄 PDF

[SWS_CanSM_00266] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall store the current network mode for each configured CAN network internally (ref. to [ECUC_CanSM_00126]).⌋

requirement SWS_CanSM_00278 [SWS_CanSM_00278] 📄 PDF

[SWS_CanSM_00278] Upstream requirements: SRS_Can_01142 ⌈If the CanSM state machine CANSM_BSM is in the state CANSM_BSM_S_NOT_INITIALIZED, it shall deny network mode requests from the ComM module (ref. to [SWS_CanSM_00062]).⌋

requirement SWS_CanSM_00282 [SWS_CanSM_00282] 📄 PDF

[SWS_CanSM_00282] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall return E_NOT_OK for the API request CanSM_- GetCurrentComMode until the call of the provided API CanSM_Init (ref. to

requirement SWS_CanSM_00284 [SWS_CanSM_00284] 📄 PDF

[SWS_CanSM_00284] Upstream requirements: SRS_Can_01142 ⌈The internally stored network modes of the CanSM module can have the values COMM_NO_COMMUNICATION, COMM_SILENT_COMMUNICATION, COMM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00360 [SWS_CanSM_00360] 📄 PDF

[SWS_CanSM_00360] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL- pointer as mode.⌋

requirement SWS_CanSM_00369 [SWS_CanSM_00369] 📄 PDF

[SWS_CanSM_00369] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall accept its request, if the NetworkHan- dle parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00370 [SWS_CanSM_00370] 📄 PDF

[SWS_CanSM_00370] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall deny its request, if the NetworkHandle parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00371 [SWS_CanSM_00371] 📄 PDF

[SWS_CanSM_00371] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall accept its request, if the network parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00372 [SWS_CanSM_00372] 📄 PDF

[SWS_CanSM_00372] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall deny its request, if the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00374 [SWS_CanSM_00374] 📄 PDF

The function CanSM_GetVersionInfo shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL - pointer as VersionInfo .

requirement SWS_CanSM_00385 [SWS_CanSM_00385] 📄 PDF

[SWS_CanSM_00385] Upstream requirements: SRS_Can_01142 ⌈If CanSM has repeated one of the CanIf API calls CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]), CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]), CanIf_ClearTrcvWufFlag (ref.

requirement SWS_CanSM_00397 [SWS_CanSM_00397] 📄 PDF

[SWS_CanSM_00397] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ControllerModeIndication gets a ControllerId, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_PARAM_CONTROLLER.⌋

requirement SWS_CanSM_00398 [SWS_CanSM_00398] 📄 PDF

[SWS_CanSM_00398] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerMod- eIndication is called, then the function CanSM_ControllerModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00400 [SWS_CanSM_00400] 📄 PDF

[SWS_CanSM_00400] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TransceiverModeIndication gets a TransceiverId, which is not configured as CanSMTransceiverId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

requirement SWS_CanSM_00401 [SWS_CanSM_00401] 📄 PDF

[SWS_CanSM_00401] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_TransceiverMod- eIndication is called, then the function CanSM_TransceiverModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

requirement SWS_CanSM_00411 [SWS_CanSM_00411] 📄 PDF

[SWS_CanSM_00411] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_TxTimeoutException shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00412 [SWS_CanSM_00412] 📄 PDF

[SWS_CanSM_00412] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TxTimeoutException is referenced with a Channel, which is not configured as CanSMNetworkHandle in the CanSM configuration, it shall report CANSM_E_INVALID_NETWORK_HANDLE to the DET.⌋ Remarks: Reentrancy is necessary for different Channels.

requirement SWS_CanSM_00414 [SWS_CanSM_00414] 📄 PDF

[SWS_CanSM_00414] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ClearTrcvWufFlagIndication shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00415 [SWS_CanSM_00415] 📄 PDF

[SWS_CanSM_00415] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ClearTrcvWufFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to

requirement SWS_CanSM_00417 [SWS_CanSM_00417] 📄 PDF

[SWS_CanSM_00417] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_CheckTransceiverWakeFlagIndication shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00418 [SWS_CanSM_00418] 📄 PDF

[SWS_CanSM_00418] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_CheckTransceiverWakeFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the con- figuration of the CanSM module, it shall call the function Det_ReportError (ref. to

requirement SWS_CanSM_00420 [SWS_CanSM_00420] 📄 PDF

[SWS_CanSM_00420] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00421 [SWS_CanSM_00421] 📄 PDF

[SWS_CanSM_00421] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmPnAvailability gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

requirement SWS_CanSM_00422 [SWS_CanSM_00422] 📄 PDF

[SWS_CanSM_00422] Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Transceiver to the CanSM module with the callback function CanSM_ConfirmPnAvailability (ref. to [SWS_CanSM_00419]), then the CanSM module shall call the API CanNm_Con- firmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN network as channel to confirm the PN availability to the CanNm module.⌋

requirement SWS_CanSM_00428 [SWS_CanSM_00428] 📄 PDF

[SWS_CanSM_00428] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈All effects of the CanSM state machine CANSM_BSM shall be operated in the context of the CanSM main function (ref. to [SWS_CanSM_00065]).⌋

requirement SWS_CanSM_00429 [SWS_CanSM_00429] 📄 PDF

[SWS_CanSM_00429] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The guarding condition G_SILENT_COM_MODE_REQUESTED of the CanSM_BSM state machine shall evaluate, if the latest accepted communication mode request with CanSM_RequestComMode (ref. to [SWS_CanSM_00635]) for the respective net- work handle of the state machine has been with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION.⌋

requirement SWS_CanSM_00430 [SWS_CanSM_00430] 📄 PDF

[SWS_CanSM_00430] ⌈The effect E_NOCOM of the CanSM_BSM state machine shall change the internally stored network mode (ref. to [SWS_CanSM_00266]) of the addressed CAN network to COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_- Can_01145)

requirement SWS_CanSM_00431 [SWS_CanSM_00431] 📄 PDF

[SWS_CanSM_00431] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_PRE_NOCOM of the CanSM_BSM state machine shall call for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to

requirement SWS_CanSM_00434 [SWS_CanSM_00434] 📄 PDF

[SWS_CanSM_00434] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 1st place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_SILENT_COMMUNICATION.⌋

requirement SWS_CanSM_00435 [SWS_CanSM_00435] 📄 PDF

[SWS_CanSM_00435] Upstream requirements: SRS_Can_01158 ⌈After considering [SWS_CanSM_00539] and [SWS_CanSM_00647] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00438 [SWS_CanSM_00438] 📄 PDF

[SWS_CanSM_00438] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_PN_CLEAR_WUF, the CanSM module operate the do action DO_CLEAR_TRCV_WUF and therefore repeat the API request CanIf_ClearTrcvWufFlag and use the con- figured Transceiver (ref. to [ECUC_CanSM_00137]) as API function parameter.⌋

requirement SWS_CanSM_00444 [SWS_CanSM_00444] 📄 PDF

[SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00445 [SWS_CanSM_00445] 📄 PDF

[SWS_CanSM_00445] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00446 [SWS_CanSM_00446] 📄 PDF

[SWS_CanSM_00446] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_TRCV_NORMAL, the CanSM module shall operate the do ac- tion DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

requirement SWS_CanSM_00448 [SWS_CanSM_00448] 📄 PDF

[SWS_CanSM_00448] ⌈If CanSM module has got the CANTRCV_TRCVMODE_NORMAL mode indication (ref. to

requirement SWS_CanSM_00452 [SWS_CanSM_00452] 📄 PDF

[SWS_CanSM_00452]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_TRCV_STANDBY_TIMEOUT.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00454 [SWS_CanSM_00454] 📄 PDF

[SWS_CanSM_00454] ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for the supposed transceiver standby indication (ref. to

requirement SWS_CanSM_00458 [SWS_CanSM_00458] 📄 PDF

[SWS_CanSM_00458] ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_CHECK_WFLAG_IN_CC_SLEEP, the CanSM module operate the do action DO_CHECK_WFLAG and therefore repeat the API request CanIf_CheckTrcvWakeFlag (ref. [SWS_CanSM_91002]) and use the configured CAN Transceiver of the related Network (ref. to [ECUC_CanSM_00137]) as Transceiver parameter.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00464 [SWS_CanSM_00464] 📄 PDF

[SWS_CanSM_00464] ⌈As long the sub state machine CANSM_BSM_DeinitPnNotSupported is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STOPPED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00484 [SWS_CanSM_00484] 📄 PDF

[SWS_CanSM_00484] ⌈The guarding condition G_TRCV_NORMAL_E_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if the API call of

requirement SWS_CanSM_00487 [SWS_CanSM_00487] 📄 PDF

[SWS_CanSM_00487] have returned E_OK.⌋(SRS_Can_01145, SRS_Can_01142)

requirement SWS_CanSM_00488 [SWS_CanSM_00488] 📄 PDF

[SWS_CanSM_00488] ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if all API calls of

requirement SWS_CanSM_00498 [SWS_CanSM_00498] 📄 PDF

[SWS_CanSM_00498] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF_PASSIVE of the sub state machine CANSM_BSM_S_FULLCOM shall invocate Dem_SetEventStatus (ref. to [SWS_CanSM_91002]) with the pa- rameters EventId := CANSM_E_BUS_OFF (ref. to [ECUC_CanSM_00070]) and EventStatus := DEM_EVENT_STATUS_PASSED.⌋

requirement SWS_CanSM_00499 [SWS_CanSM_00499] 📄 PDF

The API request CanSM_RequestComMode (ref. to SWS_CanSM_00635 ) with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION shall trigger the sub state machine CANSM_BSM_S_FULLCO M (ref. to Figure 7 - 1 ) with T_SILENT_COM_MODE_REQUEST , which corresponds to the function parameter network and the configuration parameter CANSM_NETWORK_HANDLE (ref. to ECUC_CanSM_00161 ).

requirement SWS_CanSM_00500 [SWS_CanSM_00500] 📄 PDF

[SWS_CanSM_00500] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_ControllerBusOff (ref. to [SWS_CanSM_00064]) shall trigger the sub state machine CANSM_BSM_S_FULLCOM for the CAN network with T_BUS_OFF, if one of its configured CAN controllers matches to the function parameter ControllerId of the callback function CanSM_ControllerBusOff.⌋

requirement SWS_CanSM_00502 [SWS_CanSM_00502] 📄 PDF

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the NetworkHandle parameter does not match to the configured Network handles of the CanSM module (ref. to E CUC_CanSM_00161 ) .

requirement SWS_CanSM_00503 [SWS_CanSM_00503] 📄 PDF

I If no condition is present to deny the CanSM_SetBaudrate request according to SWS_CANSM_00502 and SWS_CANSM_00505 , SWS_CANSM_00530 , then the CanSM module shall return E_OK and operate the process for the requested baud rate change as specified with SWS_CANSM_00507 .

requirement SWS_CanSM_00504 [SWS_CanSM_00504] 📄 PDF

The function CanSM_ Set Baudrate shall call the function Det_ReportError with ErrorId parameter CANSM_E_INVALID_NETWORK_HANDLE (ref. to chapter 7.3 ), if it does not accept t he network handle of the request.

requirement SWS_CanSM_00505 [SWS_CanSM_00505] 📄 PDF

The function CanSM_ Set Baudrate shall deny its request, if the requested CAN network is not in the communication mode COMM_FULL_COMMUNICATION .

requirement SWS_CanSM_00506 [SWS_CanSM_00506] 📄 PDF

If the function CanSM_ Set Baudrate is called and the CanSM module is not initialized, then this function shall call the function Det_ReportError w ith ErrorId parameter CANSM_E_UNINIT (ref. to chapter 7.3 ).

requirement SWS_CanSM_00508 [SWS_CanSM_00508] 📄 PDF

[SWS_CanSM_00508] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the corresponding CAN net- work the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_BUS_OFF.⌋(SRS_Can_01145, SRS_Can_01142)

requirement SWS_CanSM_00509 [SWS_CanSM_00509] 📄 PDF

[SWS_CanSM_00509] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_FULLCOM is in the state S_RESTART_CC, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

requirement SWS_CanSM_00516 [SWS_CanSM_00516] 📄 PDF

[SWS_CanSM_00516] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is FALSE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

requirement SWS_CanSM_00517 [SWS_CanSM_00517] 📄 PDF

[SWS_CanSM_00517] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00518 [SWS_CanSM_00518] 📄 PDF

[SWS_CanSM_00518] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 3rd place the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00521 [SWS_CanSM_00521] 📄 PDF

[SWS_CanSM_00521] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the param- eters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋(SRS_Can_01145, SRS_Can_- 01142)

requirement SWS_CanSM_00522 [SWS_CanSM_00522] 📄 PDF

[SWS_CanSM_00522]). The DEM event for this error is configured per CAN network in the CANSM_E_BUS_OFF (see [ECUC_CanSM_00070]). • CANSM informs the Communication Manager about the communication status (COMM_SILENT_COMMUNICATION) notified with ComM_BusSM_ModeIndication (see

requirement SWS_CanSM_00524 [SWS_CanSM_00524] 📄 PDF

[SWS_CanSM_00524]), this shall trigger the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE of the CAN network with T_CC_STOPPED_INDICATED.⌋

requirement SWS_CanSM_00525 [SWS_CanSM_00525] 📄 PDF

[SWS_CanSM_00525] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE shall be passed, if all API calls of

requirement SWS_CanSM_00526 [SWS_CanSM_00526] 📄 PDF

[SWS_CanSM_00526] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If CanSM module has got all mode indications (ref. to [SWS_CanSM_00396]) for the configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) after the respective requests to stop the CAN controllers of the CAN net- work (ref. to

requirement SWS_CanSM_00530 [SWS_CanSM_00530] 📄 PDF

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the CanSM module is not initialized.

requirement SWS_CanSM_00532 [SWS_CanSM_00532] 📄 PDF

[SWS_CanSM_00532] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE is in the state S_CC_STARTED, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

requirement SWS_CanSM_00538 [SWS_CanSM_00538] 📄 PDF

[SWS_CanSM_00538] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 3th place for the corresponding CAN network the API ComM_BusSM_Mod- eIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋

requirement SWS_CanSM_00539 [SWS_CanSM_00539] 📄 PDF

If ECU passive is FALSE (ref. to SWS_CanSM_00646 ) , then the effect E_FULL_COM of the CanSM_BSM state machine (ref. to Figure 7 - 1 ) shall call at 1 st place for each configured CAN controller of the CAN network the API CanIf_SetPduMode with the parameters ControllerId := CanSMControllerId (ref. to ECUC_CanSM_00141 ) and PduModeRequest := CANIF_ ONLINE .

requirement SWS_CanSM_00540 [SWS_CanSM_00540] 📄 PDF

[SWS_CanSM_00540] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After considering [SWS_CanSM_00435] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API BswM_CanSM_Cur- rentState (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

requirement SWS_CanSM_00541 [SWS_CanSM_00541] 📄 PDF

[SWS_CanSM_00541] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 2nd place for each configured CAN controller of the CAN network the API CanIf_- SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE.⌋

requirement SWS_CanSM_00546 [SWS_CanSM_00546] 📄 PDF

[SWS_CanSM_00546] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall notify the Can_Nm module (ref. to [SWS_CanSM_00422]), if it is called with a configured Transceiver as input parameter (ref. to [ECUC_CanSM_00137]).⌋

requirement SWS_CanSM_00555 [SWS_CanSM_00555] 📄 PDF

[SWS_CanSM_00555] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The CanSM module shall deny the API requestCanSM_RequestComMode, if the ini- tial transition for the requested CAN network is not finished yet after the CanSM_Init request (ref. to [SWS_CanSM_00423], [SWS_CanSM_00430]).⌋

requirement SWS_CanSM_00560 [SWS_CanSM_00560] 📄 PDF

[SWS_CanSM_00560] Upstream requirements: SRS_Can_01145 ⌈If no CanSMTransceiverId (ref. to [ECUC_CanSM_00137]) is configured for a CAN Network, then the CanSM module shall bypass all specified CanIf_SetTrcv- Mode (ref. to [SWS_CanSM_91002]) (e.g. [SWS_CanSM_00446]) calls for the CAN Network and proceed in the different state transitions as if it has got the supposed CanSM_TransceiverModeIndication already (e.g. [SWS_CanSM_00448]).⌋

requirement SWS_CanSM_00569 [SWS_CanSM_00569] 📄 PDF

The CanSM module shall provide the API function CanSM_ Set Baudrate , if the CANSM_SET_BAUDRATE_API parameter (ref. to ECUC_CanSM_00343 ) is configured with the value TRUE .

requirement SWS_CanSM_00570 [SWS_CanSM_00570] 📄 PDF

[SWS_CanSM_00570] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall not provide the API function CanSM_SetBaudrate, if the CanSMSetBaudrateApi is configured with the value FALSE.⌋

requirement SWS_CanSM_00578 [SWS_CanSM_00578] 📄 PDF

[SWS_CanSM_00578] ⌈As long the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to

requirement SWS_CanSM_00581 [SWS_CanSM_00581] 📄 PDF

[SWS_CanSM_00581] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STARTED_E_OK of the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION shall be passed, if all API calls of

requirement SWS_CanSM_00584 [SWS_CanSM_00584] 📄 PDF

[SWS_CanSM_00584] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_TxTimeoutException (ref. to

requirement SWS_CanSM_00605 [SWS_CanSM_00605] 📄 PDF

[SWS_CanSM_00605] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM CANSM_BSM_S_SILENTCOM_BOR shall invocate Dem_SetEventStatus (ref. to

requirement SWS_CanSM_00606 [SWS_CanSM_00606] 📄 PDF

[SWS_CanSM_00606] ⌈The callback function CanSM_ControllerBusOff (ref. to

requirement SWS_CanSM_00607 [SWS_CanSM_00607] 📄 PDF

[SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

requirement SWS_CanSM_00608 [SWS_CanSM_00608] 📄 PDF

[SWS_CanSM_00608]) for the state ma- chine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

requirement SWS_CanSM_00611 [SWS_CanSM_00611] 📄 PDF

[SWS_CanSM_00611] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to

requirement SWS_CanSM_00612 [SWS_CanSM_00612] 📄 PDF

[SWS_CanSM_00612] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00613 [SWS_CanSM_00613] 📄 PDF

[SWS_CanSM_00613] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_- NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00616 [SWS_CanSM_00616] 📄 PDF

[SWS_CanSM_00616] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_OK and it shall be con- sidered as trigger (ref. to [SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00617 [SWS_CanSM_00617] 📄 PDF

[SWS_CanSM_00617] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_Re- portError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_- UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to

requirement SWS_CanSM_00618 [SWS_CanSM_00618] 📄 PDF

[SWS_CanSM_00618] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋

requirement SWS_CanSM_00619 [SWS_CanSM_00619] 📄 PDF

[SWS_CanSM_00619] ⌈The function CanSM_StopWakeupSource shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋(SRS_Can_01145)

requirement SWS_CanSM_00620 [SWS_CanSM_00620] 📄 PDF

[SWS_CanSM_00620] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle con- tained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00621 [SWS_CanSM_00621] 📄 PDF

[SWS_CanSM_00621] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00622 [SWS_CanSM_00622] 📄 PDF

[SWS_CanSM_00622] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_OK and it shall be consid- ered as trigger (ref. to [SWS_CanSM_00608]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

requirement SWS_CanSM_00623 [SWS_CanSM_00623] 📄 PDF

[SWS_CanSM_00623] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈If for the CAN network a CAN Transceiver is configured (ref. to [ECUC_CanSM_00137]), then as long the sub state machine CANSM_BSM_WUVALIDATION is in the state S_TRCV_NORMAL, the CanSM mod- ule shall operate the do action DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

requirement SWS_CanSM_00629 [SWS_CanSM_00629] 📄 PDF

[SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00630 [SWS_CanSM_00630] 📄 PDF

[SWS_CanSM_00630] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

requirement SWS_CanSM_00635 [SWS_CanSM_00635] 📄 PDF

[SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00638 [SWS_CanSM_00638] 📄 PDF

[SWS_CanSM_00638] Upstream requirements: SRS_Can_01145 ⌈The CanSM module shall store after every successful CAN controller mode change (ref. to [SWS_CanSM_00396]) or bus-off conditioned change to CAN_CS_STOPPED (ref. to [SWS_CanSM_00064]), the changed mode internally for each CAN controller.⌋

requirement SWS_CanSM_00639 [SWS_CanSM_00639] 📄 PDF

[SWS_CanSM_00639] ⌈The state operation DO_SET_BAUDRATE_DIRECT shall call the API request CanIf_SetBaudrate (ref. to [SWS_CanSM_91003])) for all con- figured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141] with the respective ControllerId parameter. It shall use as BaudRateConfigID parame- ter the respective function parameter BaudRateConfigID from the call CanSM_Set- Baudrate.⌋(SRS_Can_01145, SRS_Can_01142)

requirement SWS_CanSM_00641 [SWS_CanSM_00641] 📄 PDF

[SWS_CanSM_00641] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If all CanIf_SetBaudrate (ref. to

requirement SWS_CanSM_00645 [SWS_CanSM_00645] 📄 PDF

[SWS_CanSM_00645] Upstream requirements: SRS_Can_01158 ⌈The CanSM module shall provide the API function CanSM_SetEcuPassive, if the CanSMTxOfflineActiveSupport parameter is configured with the value TRUE.⌋

requirement SWS_CanSM_00646 [SWS_CanSM_00646] 📄 PDF

[SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

requirement SWS_CanSM_00647 [SWS_CanSM_00647] 📄 PDF

[SWS_CanSM_00647] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_FULL_COM of the CanSM_BSM state machine shall call at 1st place for each configured CAN controller of the CAN network the API CanIf_SetPdu- Mode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

requirement SWS_CanSM_00648 [SWS_CanSM_00648] 📄 PDF

[SWS_CanSM_00648] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

requirement SWS_CanSM_00649 [SWS_CanSM_00649] 📄 PDF

[SWS_CanSM_00649] Upstream requirements: SRS_Can_01158 ⌈When CanSM_SetEcuPassive is called with CanSM_Passive=true; (ref. to

requirement SWS_CanSM_00650 [SWS_CanSM_00650] 📄 PDF

[SWS_CanSM_00650] Upstream requirements: SRS_Can_01158 ⌈If CanSM_SetEcuPassive called with CanSM_Passive=false; (ref. to

requirement SWS_CanSM_00651 [SWS_CanSM_00651] 📄 PDF

[SWS_CanSM_00651] ⌈If a communication mode request for the network is present already (ref. to [SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_00652 [SWS_CanSM_00652] 📄 PDF

[SWS_CanSM_00652] [SRS_ModeMgm_- 09221] The Watchdog Manager shall check the correct sequence of code execution in supervised entities

requirement SWS_CanSM_00653 [SWS_CanSM_00653] 📄 PDF

[SWS_CanSM_00653] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If more than one CAN controller belongs to one CAN network and for one of its con- trollers a bus-off is indicated with CanSM_ControllerBusOff, then the CanSM shall stop in context of the effect E_BUS_OFF the other CAN contoller(s) of the CAN network, too.⌋

requirement SWS_CanSM_00654 [SWS_CanSM_00654] 📄 PDF

Type of error Related error code Error value API service used without module initialization CANSM_ E_ UNINIT 0x01 API service called with wrong pointer CANSM_ E_ PARAM_ POINTER 0x02 API service called with wrong parameter CANSM_ E_ INVALID_ NETWORK_ HANDLE 0x03 API service called with wrong parameter CANSM_ E_ PARAM_ CONTROLLER 0x04 API service called with wrong parameter CANSM_ E_ PARAM_ TRANSCEIVER 0x05 De Init API service called when not all CAN networks are in state CANSM_ NO_ COMMUNICATION CANSM_ E_ NOT_ IN_ NO_ COM 0x0B

requirement SWS_CanSM_00655 [SWS_CanSM_00655] 📄 PDF

If the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION (ref. to Figure 7 - 9) is triggered with T_CC_STARTED_INDICATED, the API CanIf_SetPduMode() shall be called with CANI F_ONLINE

requirement SWS_CanSM_00656 [SWS_CanSM_00656] 📄 PDF

If the CanSM needs informations about the actual PduMode, the CanSM shall call the API CanIf_GetPduMode to get the current Pdu Mode of the CanIf.

requirement SWS_CanSM_00658 [SWS_CanSM_00658] 📄 PDF

If the CanSM module is reque sted with the function CanSM_DeInit, this shall trigger the CanSM state machines (ref. to Figure 7 - 1) for all configured CAN Networks (ref. to ECUC_CanSM_00126) with the trig ger CanSM_DeInit.

requirement SWS_CanSM_00660 [SWS_CanSM_00660] 📄 PDF

If development error detection for the CanSM module is enabled: The function CanSM_DeInit shall raise the error CANSM_E_NOT_IN_NO_COM if not all CAN networks are in state CANSM_NO_COMMUNICATION .

requirement SWS_CanSM_00664 [SWS_CanSM_00664] 📄 PDF

Type of error Related error code Error value Mode request for a network failed more often than allowed by configuration CANSM_ E_ MODE_ REQUEST_ TIMEOUT 0x0A

requirement SWS_CanSM_00666 [SWS_CanSM_00666] 📄 PDF

: Bus - off detection Long Description: The bus - off recovery st ate machine of a CAN network has detected a certain amount of sequential bus - offs without successful recovery Recommended DTC: Assigned by DEM Detection Criteria: Fail PRE_FAILED when CanSM_ControllerBusOff is called (T_BUS_OFF/E_BUS_OFF), debouncing to be defined by OEM in DEM Pass A fter successful transmission of a CAN frame (G_BUS_OFF_PASSIVE/E_BUS_OFF_PASSIVE) Secondary Parameters: None Time Required : PRE_FAILED immediately (in error interrupt context), FAILED depending on debounce config uration of DEM Monitor Frequency Continuous MIL illumniation : Assigned by DEM

requirement SWS_CanSM_00667 [SWS_CanSM_00667] 📄 PDF

[SWS_CanSM_00667] Status: DRAFT Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Controller to the CanSM module with the callback function CanSM_ConfirmCtrlPnAvailability (ref. to [SWS_CanSM_91004]), then the CanSM module shall call the API CanNm_ ConfirmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN net- work as channel to confirm the PN availability to the CanNm module.⌋

requirement SWS_CanSM_00668 [SWS_CanSM_00668] 📄 PDF

[SWS_CanSM_00668] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall notify the CanNm mod- ule (ref. to [SWS_CanSM_00667]), if it is called with a configured Controller as input parameter (ref. to [ECUC_CanSM_00141]).⌋

requirement SWS_CanSM_00669 [SWS_CanSM_00669] 📄 PDF

[SWS_CanSM_00669] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

requirement SWS_CanSM_00670 [SWS_CanSM_00670] 📄 PDF

[SWS_CanSM_00670] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmCtrlPnAvailability gets a ControllerId, which is not configured (ref. to [ECUC_CanSM_00141]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

requirement SWS_CanSM_91002 [SWS_CanSM_91002] 📄 PDF

[SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

requirement SWS_CanSM_91003 [SWS_CanSM_91003] 📄 PDF

CanIf_SetBaudrate CanIf.h This service shall set the baud rate configuration of the CAN controller. Depending on necessary baud rate modifications the controller might have to reset. Det_ReportError Det.h Service to report development errors. ⌋

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_CanSM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_CanSM@rel:R20-11#8fce70be
Content hash
8fce70be
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANStateManager.pdf#nameddest=SWS_CanSM_00023

주제 맵

콜아웃 및 예상 인터페이스

1

요구사항

137
SWS_CanSM_00167SWS_CanSM_00182SWS_CanSM_00183SWS_CanSM_00184SWS_CanSM_00186SWS_CanSM_00187SWS_CanSM_00188SWS_CanSM_00189SWS_CanSM_00190SWS_CanSM_00235SWS_CanSM_00243SWS_CanSM_00266SWS_CanSM_00278SWS_CanSM_00282SWS_CanSM_00284SWS_CanSM_00360SWS_CanSM_00369SWS_CanSM_00370SWS_CanSM_00371SWS_CanSM_00372SWS_CanSM_00374SWS_CanSM_00385SWS_CanSM_00397SWS_CanSM_00398SWS_CanSM_00400SWS_CanSM_00401SWS_CanSM_00411SWS_CanSM_00412SWS_CanSM_00414SWS_CanSM_00415SWS_CanSM_00417SWS_CanSM_00418SWS_CanSM_00420SWS_CanSM_00421SWS_CanSM_00422SWS_CanSM_00423SWS_CanSM_00425SWS_CanSM_00426SWS_CanSM_00427SWS_CanSM_00428SWS_CanSM_00429SWS_CanSM_00430SWS_CanSM_00431SWS_CanSM_00434SWS_CanSM_00435SWS_CanSM_00438SWS_CanSM_00444SWS_CanSM_00445SWS_CanSM_00446SWS_CanSM_00448SWS_CanSM_00452SWS_CanSM_00454SWS_CanSM_00458SWS_CanSM_00464SWS_CanSM_00483SWS_CanSM_00484SWS_CanSM_00487SWS_CanSM_00488SWS_CanSM_00498SWS_CanSM_00499SWS_CanSM_00500SWS_CanSM_00502SWS_CanSM_00503SWS_CanSM_00504SWS_CanSM_00505SWS_CanSM_00506SWS_CanSM_00507SWS_CanSM_00508SWS_CanSM_00509SWS_CanSM_00516SWS_CanSM_00517SWS_CanSM_00518SWS_CanSM_00521SWS_CanSM_00522SWS_CanSM_00524SWS_CanSM_00525SWS_CanSM_00526SWS_CanSM_00530SWS_CanSM_00532SWS_CanSM_00538SWS_CanSM_00539SWS_CanSM_00540SWS_CanSM_00541SWS_CanSM_00542SWS_CanSM_00543SWS_CanSM_00546SWS_CanSM_00555SWS_CanSM_00560SWS_CanSM_00569SWS_CanSM_00570SWS_CanSM_00578SWS_CanSM_00581SWS_CanSM_00582SWS_CanSM_00584SWS_CanSM_00605SWS_CanSM_00606SWS_CanSM_00607SWS_CanSM_00608SWS_CanSM_00611SWS_CanSM_00612SWS_CanSM_00613SWS_CanSM_00616SWS_CanSM_00617SWS_CanSM_00618SWS_CanSM_00619SWS_CanSM_00620SWS_CanSM_00621SWS_CanSM_00622SWS_CanSM_00623SWS_CanSM_00629SWS_CanSM_00630SWS_CanSM_00635SWS_CanSM_00638SWS_CanSM_00639SWS_CanSM_00641SWS_CanSM_00645SWS_CanSM_00646SWS_CanSM_00647SWS_CanSM_00648SWS_CanSM_00649SWS_CanSM_00650SWS_CanSM_00651SWS_CanSM_00652SWS_CanSM_00653SWS_CanSM_00654SWS_CanSM_00655SWS_CanSM_00656SWS_CanSM_00658SWS_CanSM_00660SWS_CanSM_00664SWS_CanSM_00666SWS_CanSM_00667SWS_CanSM_00668SWS_CanSM_00669SWS_CanSM_00670SWS_CanSM_91002SWS_CanSM_91003

상세 보기

개요에서 항목을 선택하세요.

초기화 및 상태

This service de - initializes the Can SM module.

void CanSM_DeInit(void);

This service puts out the version information of this module (module ID, vendor ID, vendor specific version numbers related to BSW00407)

void CanSM_GetVersionInfo(Std_VersionInfoType* VersionInfo);
CanSM_Init 함수

This service initializes the Can SM module

void CanSM_Init(const CanSM_ConfigType* ConfigPtr);

서비스

This callback function indicates the Can If_ Check Trcv Wake Flag API process end for the notified CAN Transceiver.

void CanSM_CheckTransceiverWakeFlagIndication(uint8 Transceiver);

This callback function shall indicate the Can If_ Clear Trcv Wuf Flag API process end for the notified CAN Transceiver.

void CanSM_ClearTrcvWufFlagIndication(uint8 Transceiver);

This callback function indicates that the controller is running in PN communication mode. Tags: atp.Status=draft

void CanSM_ConfirmCtrlPnAvailability(uint8 ControllerId);

This callback function indicates that the transceiver is running in PN communication mode.

void CanSM_ConfirmPnAvailability(uint8 TransceiverId);

This callback function notifies the Can SM about a bus - off event on a certain CAN controller, which needs to be considered with the specified bus - off recovery handling for th e impacted CAN network.

void CanSM_ControllerBusOff(uint8 ControllerId);

This callback shall notify the Can SM module about a CAN controller mode change.

void CanSM_ControllerModeIndication(uint8 ControllerId, Can_ControllerStateType ControllerMode);

This service shall inform about the change of the Icom Configuration of a CAN network.

void CanSM_CurrentIcomConfiguration(uint8 ControllerId, IcomConfigIdType ConfigurationId, IcomSwitch_ErrorType Error);

This service shall put out the current communication mode of a CAN network.

Std_ReturnType CanSM_GetCurrentComMode(NetworkHandleType network, ComM_ModeType* ComM_ModePtr);

This service shall change the communication mode of a CAN network to the requested one.

Std_ReturnType CanSM_RequestComMode(NetworkHandleType network, ComM_ModeType ComM_Mode);

This service shall start an asynchronous process to change the baud rate for the configured CAN controllers of a certain CAN network. Depending on necessary baud rate modifications the controllers might have to reset.

Std_ReturnType CanSM_SetBaudrate(NetworkHandleType Network, uint16 BaudRateConfig ID); ⚠️

Service Name Can SM_ Set Ecu Passive Syntax Std_ Return Type Can SM_ Set Ecu Passive ( boolean Can SM_ Passive ) Service ID [hex] 0x13 Sync/ Async Synchronous Reentrancy Non Reentrant Parameters (in) Can SM_ Passive TRUE: set all Can SM channels to passive, i.e. receive only FALSE: set all Can SM channels back to non - passive Parameters (inout) None Parameters (out) None Return value Std _ Return - E_ OK: Request accepted Type E_ NOT_ OK: Request not accepted Descr iption This function can be used to set all Can SM channels of the ECU to a receive only mode. Available via Can SM.h

Std_ReturnType CanSM_SetEcuPassive(boolean CanSM_Passive);

This service shall change the Icom Configuration of a CAN network to the requested one.

Std_ReturnType CanSM_SetIcomConfiguration(NetworkHandleType Network, IcomConfigIdType ConfigurationId);

This function shall be called by Ecu M when a wakeup source shall be started.

Std_ReturnType CanSM_StartWakeupSource(NetworkHandleType network);

This function shall be called by Ecu M when a wakeup source shall be stopped.

Std_ReturnType CanSM_StopWakeupSource(NetworkHandleType network);

This callback shall notify the Can SM module about a CAN transceiver mode change.

void CanSM_TransceiverModeIndication(uint8 TransceiverId, CanTrcv_TrcvModeType TransceiverMode);

This function shall notify the Can SM module, that the Can Nm has detected for the affected partial CAN network a tx timeout exception, which shall be recovered within the respective network state machine of the Can SM module.

void CanSM_TxTimeoutException(NetworkHandleType Channel);

콜아웃 및 예상 인터페이스

This callout function returns the number of Can SM base cycles to wait additionally to L1/ L2 after a Bus Off occurred.

void <User_Get Bus Off Delay>(NetworkHandleType network, uint8* delayCyclesPtr);

주기적

Scheduled function of the Can SM

void CanSM_MainFunction(void);

타입

Can specific communication modes / states notified to the Bsw M module

This type defines a data structure for the post build parameters of the Can SM. At initialization the Can SM gets a pointer to a structure of this type to get access to its configuration data, which is neces sary for initialization. Available Can SM.h via

Defines the values of the internal states of the Can SM module

요구사항

SWS_CanSM_00167 requirement

[SWS_CanSM_00167] ⌈The main function of the CanSM module shall operate the effects of the CanSM state machine, which the CanSM module shall implement for each configured CAN Network.⌋(SRS_BSW_00424, SRS_BSW_00425, SRS_Can_- 01145, SRS_Can_01142)

SWS_CanSM_00182 requirement

[SWS_CanSM_00182] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If the function CanSM_RequestComMode accepts the request, the request shall be considered by the CanSM state machine (ref. to [SWS_CanSM_00635]).⌋

SWS_CanSM_00183 requirement

[SWS_CanSM_00183] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_NET- WORK_HANDLE, if it does not accept the network handle of the request.⌋

SWS_CanSM_00184 requirement

[SWS_CanSM_00184] Upstream requirements: SRS_BSW_00406 ⌈If the CanSM module is not initialized, when the function CanSM_RequestCom- Mode is called, then this function shall call the function Det_ReportError (ref. to

SWS_CanSM_00186 requirement

[SWS_CanSM_00186] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall put out the current communication mode for the network (ref. to [SWS_CanSM_00266]) to the designated pointer of type mode, if it accepts the request.⌋

SWS_CanSM_00187 requirement

[SWS_CanSM_00187] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if it does not accept the network of the request.⌋

SWS_CanSM_00188 requirement

[SWS_CanSM_00188] Upstream requirements: SRS_Can_01142 ⌈If the CanSM module is not initialized (ref. to [SWS_CanSM_00282]), when the function CanSM_GetCurrentComMode is called, then this function shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00189 requirement

[SWS_CanSM_00189] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the function CanSM_ControllerBusOff gets a Controller, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

SWS_CanSM_00190 requirement

[SWS_CanSM_00190] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerBu- sOff is called, then the function CanSM_ControllerBusOff shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00235 requirement

[SWS_CanSM_00235] Upstream requirements: SRS_BSW_00359, SRS_BSW_00333 ⌈If the CanSM module is initialized and the input parameter Controller is one of the CAN controllers configured with the parameter CanSMControllerId, this bus-off event shall be considered by the CAN Network state machine (ref. to

SWS_CanSM_00243 requirement

Module Header File Imported Type Can Can_ General Types.h Can _ Controller State Type Can If Can If.h Can If _ Notif Status Type Can If.h Can If _ Pdu Mode Type Can Trcv Can_ General Types.h Can Trcv _ Trcv Mode Type Com M Rte_ Com M_ Type.h Com M _ Mode Type Com Stack_ Types Com Stack_ Types.h Network Handle Type Dem Rte_ Dem_ Type.h Dem _ Event Id Type Rte_ Dem_ Type.h Dem _ Event Status Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

SWS_CanSM_00266 requirement

[SWS_CanSM_00266] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall store the current network mode for each configured CAN network internally (ref. to [ECUC_CanSM_00126]).⌋

SWS_CanSM_00278 requirement

[SWS_CanSM_00278] Upstream requirements: SRS_Can_01142 ⌈If the CanSM state machine CANSM_BSM is in the state CANSM_BSM_S_NOT_INITIALIZED, it shall deny network mode requests from the ComM module (ref. to [SWS_CanSM_00062]).⌋

SWS_CanSM_00282 requirement

[SWS_CanSM_00282] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall return E_NOT_OK for the API request CanSM_- GetCurrentComMode until the call of the provided API CanSM_Init (ref. to

SWS_CanSM_00284 requirement

[SWS_CanSM_00284] Upstream requirements: SRS_Can_01142 ⌈The internally stored network modes of the CanSM module can have the values COMM_NO_COMMUNICATION, COMM_SILENT_COMMUNICATION, COMM_FULL_COMMUNICATION.⌋

SWS_CanSM_00360 requirement

[SWS_CanSM_00360] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL- pointer as mode.⌋

SWS_CanSM_00369 requirement

[SWS_CanSM_00369] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall accept its request, if the NetworkHan- dle parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00370 requirement

[SWS_CanSM_00370] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The function CanSM_RequestComMode shall deny its request, if the NetworkHandle parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00371 requirement

[SWS_CanSM_00371] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall accept its request, if the network parameter of the request is a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00372 requirement

[SWS_CanSM_00372] Upstream requirements: SRS_Can_01142 ⌈The function CanSM_GetCurrentComMode shall deny its request, if the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00374 requirement

The function CanSM_GetVersionInfo shall report the development error CANSM_E_PARAM_POINTER to the DET, if the user of this function hands over a NULL - pointer as VersionInfo .

SWS_CanSM_00385 requirement

[SWS_CanSM_00385] Upstream requirements: SRS_Can_01142 ⌈If CanSM has repeated one of the CanIf API calls CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]), CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]), CanIf_ClearTrcvWufFlag (ref.

SWS_CanSM_00397 requirement

[SWS_CanSM_00397] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ControllerModeIndication gets a ControllerId, which is not configured as CanSMControllerId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_PARAM_CONTROLLER.⌋

SWS_CanSM_00398 requirement

[SWS_CanSM_00398] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_ControllerMod- eIndication is called, then the function CanSM_ControllerModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00400 requirement

[SWS_CanSM_00400] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TransceiverModeIndication gets a TransceiverId, which is not configured as CanSMTransceiverId in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

SWS_CanSM_00401 requirement

[SWS_CanSM_00401] Upstream requirements: SRS_Can_01145 ⌈If the CanSM module is not initialized, when the function CanSM_TransceiverMod- eIndication is called, then the function CanSM_TransceiverModeIndication shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with Er- rorId parameter CANSM_E_UNINIT.⌋

SWS_CanSM_00411 requirement

[SWS_CanSM_00411] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_TxTimeoutException shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00412 requirement

[SWS_CanSM_00412] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_TxTimeoutException is referenced with a Channel, which is not configured as CanSMNetworkHandle in the CanSM configuration, it shall report CANSM_E_INVALID_NETWORK_HANDLE to the DET.⌋ Remarks: Reentrancy is necessary for different Channels.

SWS_CanSM_00414 requirement

[SWS_CanSM_00414] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ClearTrcvWufFlagIndication shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00415 requirement

[SWS_CanSM_00415] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ClearTrcvWufFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to

SWS_CanSM_00417 requirement

[SWS_CanSM_00417] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_CheckTransceiverWakeFlagIndication shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00418 requirement

[SWS_CanSM_00418] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_CheckTransceiverWakeFlagIndication gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the con- figuration of the CanSM module, it shall call the function Det_ReportError (ref. to

SWS_CanSM_00420 requirement

[SWS_CanSM_00420] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall report CANSM_E_UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00421 requirement

[SWS_CanSM_00421] Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmPnAvailability gets a TransceiverId, which is not configured (ref. to [ECUC_CanSM_00137]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_TRANSCEIVER.⌋

SWS_CanSM_00422 requirement

[SWS_CanSM_00422] Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Transceiver to the CanSM module with the callback function CanSM_ConfirmPnAvailability (ref. to [SWS_CanSM_00419]), then the CanSM module shall call the API CanNm_Con- firmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN network as channel to confirm the PN availability to the CanNm module.⌋

SWS_CanSM_00423 requirement

[SWS_CanSM_00423], [SWS_CanSM_00430]).⌋

SWS_CanSM_00425 requirement

[SWS_CanSM_00425], [SWS_CanSM_00426]).⌋

SWS_CanSM_00426 requirement

[SWS_CanSM_00426]).⌋

SWS_CanSM_00427 requirement

[SWS_CanSM_00427], [SWS_CanSM_00429],

SWS_CanSM_00428 requirement

[SWS_CanSM_00428] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈All effects of the CanSM state machine CANSM_BSM shall be operated in the context of the CanSM main function (ref. to [SWS_CanSM_00065]).⌋

SWS_CanSM_00429 requirement

[SWS_CanSM_00429] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The guarding condition G_SILENT_COM_MODE_REQUESTED of the CanSM_BSM state machine shall evaluate, if the latest accepted communication mode request with CanSM_RequestComMode (ref. to [SWS_CanSM_00635]) for the respective net- work handle of the state machine has been with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION.⌋

SWS_CanSM_00430 requirement

[SWS_CanSM_00430] ⌈The effect E_NOCOM of the CanSM_BSM state machine shall change the internally stored network mode (ref. to [SWS_CanSM_00266]) of the addressed CAN network to COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_- Can_01145)

SWS_CanSM_00431 requirement

[SWS_CanSM_00431] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_PRE_NOCOM of the CanSM_BSM state machine shall call for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to

SWS_CanSM_00434 requirement

[SWS_CanSM_00434] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 1st place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_SILENT_COMMUNICATION.⌋

SWS_CanSM_00435 requirement

[SWS_CanSM_00435] Upstream requirements: SRS_Can_01158 ⌈After considering [SWS_CanSM_00539] and [SWS_CanSM_00647] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

SWS_CanSM_00438 requirement

[SWS_CanSM_00438] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_PN_CLEAR_WUF, the CanSM module operate the do action DO_CLEAR_TRCV_WUF and therefore repeat the API request CanIf_ClearTrcvWufFlag and use the con- figured Transceiver (ref. to [ECUC_CanSM_00137]) as API function parameter.⌋

SWS_CanSM_00444 requirement

[SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00445 requirement

[SWS_CanSM_00445] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00444]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00446 requirement

[SWS_CanSM_00446] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_TRCV_NORMAL, the CanSM module shall operate the do ac- tion DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

SWS_CanSM_00448 requirement

[SWS_CanSM_00448] ⌈If CanSM module has got the CANTRCV_TRCVMODE_NORMAL mode indication (ref. to

SWS_CanSM_00452 requirement

[SWS_CanSM_00452]), this condition shall trigger the sub state machine CANSM_BSM_DeinitPnSupported of the respective network with T_TRCV_STANDBY_TIMEOUT.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00454 requirement

[SWS_CanSM_00454] ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for the supposed transceiver standby indication (ref. to

SWS_CanSM_00458 requirement

[SWS_CanSM_00458] ⌈As long the sub state machine CANSM_BSM_DeinitPnSupported is in the state S_CHECK_WFLAG_IN_CC_SLEEP, the CanSM module operate the do action DO_CHECK_WFLAG and therefore repeat the API request CanIf_CheckTrcvWakeFlag (ref. [SWS_CanSM_91002]) and use the configured CAN Transceiver of the related Network (ref. to [ECUC_CanSM_00137]) as Transceiver parameter.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00464 requirement

[SWS_CanSM_00464] ⌈As long the sub state machine CANSM_BSM_DeinitPnNotSupported is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STOPPED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00483 requirement

[SWS_CanSM_00483] has returned E_OK.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00484 requirement

[SWS_CanSM_00484] ⌈The guarding condition G_TRCV_NORMAL_E_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if the API call of

SWS_CanSM_00487 requirement

[SWS_CanSM_00487] have returned E_OK.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00488 requirement

[SWS_CanSM_00488] ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_PRE_FULLCOM shall be passed, if all API calls of

SWS_CanSM_00498 requirement

[SWS_CanSM_00498] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF_PASSIVE of the sub state machine CANSM_BSM_S_FULLCOM shall invocate Dem_SetEventStatus (ref. to [SWS_CanSM_91002]) with the pa- rameters EventId := CANSM_E_BUS_OFF (ref. to [ECUC_CanSM_00070]) and EventStatus := DEM_EVENT_STATUS_PASSED.⌋

SWS_CanSM_00499 requirement

The API request CanSM_RequestComMode (ref. to SWS_CanSM_00635 ) with the parameter ComM_Mode equal to COMM_SILENT_COMMUNICATION shall trigger the sub state machine CANSM_BSM_S_FULLCO M (ref. to Figure 7 - 1 ) with T_SILENT_COM_MODE_REQUEST , which corresponds to the function parameter network and the configuration parameter CANSM_NETWORK_HANDLE (ref. to ECUC_CanSM_00161 ).

SWS_CanSM_00500 requirement

[SWS_CanSM_00500] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_ControllerBusOff (ref. to [SWS_CanSM_00064]) shall trigger the sub state machine CANSM_BSM_S_FULLCOM for the CAN network with T_BUS_OFF, if one of its configured CAN controllers matches to the function parameter ControllerId of the callback function CanSM_ControllerBusOff.⌋

SWS_CanSM_00502 requirement

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the NetworkHandle parameter does not match to the configured Network handles of the CanSM module (ref. to E CUC_CanSM_00161 ) .

SWS_CanSM_00503 requirement

I If no condition is present to deny the CanSM_SetBaudrate request according to SWS_CANSM_00502 and SWS_CANSM_00505 , SWS_CANSM_00530 , then the CanSM module shall return E_OK and operate the process for the requested baud rate change as specified with SWS_CANSM_00507 .

SWS_CanSM_00504 requirement

The function CanSM_ Set Baudrate shall call the function Det_ReportError with ErrorId parameter CANSM_E_INVALID_NETWORK_HANDLE (ref. to chapter 7.3 ), if it does not accept t he network handle of the request.

SWS_CanSM_00505 requirement

The function CanSM_ Set Baudrate shall deny its request, if the requested CAN network is not in the communication mode COMM_FULL_COMMUNICATION .

SWS_CanSM_00506 requirement

If the function CanSM_ Set Baudrate is called and the CanSM module is not initialized, then this function shall call the function Det_ReportError w ith ErrorId parameter CANSM_E_UNINIT (ref. to chapter 7.3 ).

SWS_CanSM_00507 requirement

[SWS_CanSM_00507].⌋

SWS_CanSM_00508 requirement

[SWS_CanSM_00508] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the corresponding CAN net- work the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_BUS_OFF.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00509 requirement

[SWS_CanSM_00509] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_FULLCOM is in the state S_RESTART_CC, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

SWS_CanSM_00516 requirement

[SWS_CanSM_00516] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is FALSE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

SWS_CanSM_00517 requirement

[SWS_CanSM_00517] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API BswM_CanSM_CurrentState (ref. to [SWS_CanSM_91002]) with the parameters Network := CanSMComMNet- workHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

SWS_CanSM_00518 requirement

[SWS_CanSM_00518] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 3rd place the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_FULL_COMMUNICATION.⌋

SWS_CanSM_00521 requirement

[SWS_CanSM_00521] ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM shall call at 2nd place for the corresponding CAN network the API ComM_BusSM_ModeIndication (ref. to [SWS_CanSM_91002]) with the param- eters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋(SRS_Can_01145, SRS_Can_- 01142)

SWS_CanSM_00522 requirement

[SWS_CanSM_00522]). The DEM event for this error is configured per CAN network in the CANSM_E_BUS_OFF (see [ECUC_CanSM_00070]). • CANSM informs the Communication Manager about the communication status (COMM_SILENT_COMMUNICATION) notified with ComM_BusSM_ModeIndication (see

SWS_CanSM_00524 requirement

[SWS_CanSM_00524]), this shall trigger the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE of the CAN network with T_CC_STOPPED_INDICATED.⌋

SWS_CanSM_00525 requirement

[SWS_CanSM_00525] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STOPPED_OK of the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE shall be passed, if all API calls of

SWS_CanSM_00526 requirement

[SWS_CanSM_00526] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If CanSM module has got all mode indications (ref. to [SWS_CanSM_00396]) for the configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) after the respective requests to stop the CAN controllers of the CAN net- work (ref. to

SWS_CanSM_00530 requirement

The CanSM module shall deny the CanSM_ Set Baudrate API request, if the CanSM module is not initialized.

SWS_CanSM_00532 requirement

[SWS_CanSM_00532] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈As long the sub state machine CANSM_BSM_S_CHANGE_BAUDRATE is in the state S_CC_STARTED, the CanSM module shall operate the do action DO_SET_CC_MODE_STARTED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_Set- ControllerMode (ref. to [SWS_CanSM_91002]) with ControllerMode equal to CAN_CS_STARTED, if the current CAN controller mode (ref. to [SWS_CanSM_00638]) is different.⌋

SWS_CanSM_00538 requirement

[SWS_CanSM_00538] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 3th place for the corresponding CAN network the API ComM_BusSM_Mod- eIndication (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSMComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_SILENT_COMMUNICATION.⌋

SWS_CanSM_00539 requirement

If ECU passive is FALSE (ref. to SWS_CanSM_00646 ) , then the effect E_FULL_COM of the CanSM_BSM state machine (ref. to Figure 7 - 1 ) shall call at 1 st place for each configured CAN controller of the CAN network the API CanIf_SetPduMode with the parameters ControllerId := CanSMControllerId (ref. to ECUC_CanSM_00141 ) and PduModeRequest := CANIF_ ONLINE .

SWS_CanSM_00540 requirement

[SWS_CanSM_00540] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After considering [SWS_CanSM_00435] in context of the effect E_FULL_COM of the CanSM_BSM state machine, the CanSM module shall call the API BswM_CanSM_Cur- rentState (ref. to [SWS_CanSM_91002]) for the corresponding CAN network with the parameters Network := CanSMComMNetworkHandleRef and CurrentState := CANSM_BSWM_FULL_COMMUNICATION.⌋

SWS_CanSM_00541 requirement

[SWS_CanSM_00541] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈The effect E_FULL_TO_SILENT_COM of the CanSM_BSM state machine shall call at 2nd place for each configured CAN controller of the CAN network the API CanIf_- SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE.⌋

SWS_CanSM_00542 requirement

[SWS_CanSM_00542],

SWS_CanSM_00543 requirement

[SWS_CanSM_00543],

SWS_CanSM_00546 requirement

[SWS_CanSM_00546] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmPnAvailability shall notify the Can_Nm module (ref. to [SWS_CanSM_00422]), if it is called with a configured Transceiver as input parameter (ref. to [ECUC_CanSM_00137]).⌋

SWS_CanSM_00555 requirement

[SWS_CanSM_00555] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The CanSM module shall deny the API requestCanSM_RequestComMode, if the ini- tial transition for the requested CAN network is not finished yet after the CanSM_Init request (ref. to [SWS_CanSM_00423], [SWS_CanSM_00430]).⌋

SWS_CanSM_00560 requirement

[SWS_CanSM_00560] Upstream requirements: SRS_Can_01145 ⌈If no CanSMTransceiverId (ref. to [ECUC_CanSM_00137]) is configured for a CAN Network, then the CanSM module shall bypass all specified CanIf_SetTrcv- Mode (ref. to [SWS_CanSM_91002]) (e.g. [SWS_CanSM_00446]) calls for the CAN Network and proceed in the different state transitions as if it has got the supposed CanSM_TransceiverModeIndication already (e.g. [SWS_CanSM_00448]).⌋

SWS_CanSM_00569 requirement

The CanSM module shall provide the API function CanSM_ Set Baudrate , if the CANSM_SET_BAUDRATE_API parameter (ref. to ECUC_CanSM_00343 ) is configured with the value TRUE .

SWS_CanSM_00570 requirement

[SWS_CanSM_00570] Upstream requirements: SRS_Can_01142 ⌈The CanSM module shall not provide the API function CanSM_SetBaudrate, if the CanSMSetBaudrateApi is configured with the value FALSE.⌋

SWS_CanSM_00578 requirement

[SWS_CanSM_00578] ⌈As long the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION is in the state S_CC_STOPPED, the CanSM module shall operate the do action DO_SET_CC_MODE_STOPPED and therefore repeat for all configured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API request CanIf_SetControllerMode (ref. to

SWS_CanSM_00581 requirement

[SWS_CanSM_00581] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The guarding condition G_CC_STARTED_E_OK of the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION shall be passed, if all API calls of

SWS_CanSM_00582 requirement

[SWS_CanSM_00582] have returned E_OK.⌋

SWS_CanSM_00584 requirement

[SWS_CanSM_00584] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈The callback function CanSM_TxTimeoutException (ref. to

SWS_CanSM_00605 requirement

[SWS_CanSM_00605] Upstream requirements: SRS_BSW_00422 ⌈The effect E_BUS_OFF of the sub state machine CANSM_BSM_S_FULLCOM CANSM_BSM_S_SILENTCOM_BOR shall invocate Dem_SetEventStatus (ref. to

SWS_CanSM_00606 requirement

[SWS_CanSM_00606] ⌈The callback function CanSM_ControllerBusOff (ref. to

SWS_CanSM_00607 requirement

[SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

SWS_CanSM_00608 requirement

[SWS_CanSM_00608]) for the state ma- chine of the related network, if the CanSM module is initialized and the requested handle is valid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋ (SRS_Can_01145)

SWS_CanSM_00611 requirement

[SWS_CanSM_00611] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to

SWS_CanSM_00612 requirement

[SWS_CanSM_00612] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle contained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00613 requirement

[SWS_CanSM_00613] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_- NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00616 requirement

[SWS_CanSM_00616] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall return E_OK and it shall be con- sidered as trigger (ref. to [SWS_CanSM_00607]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00617 requirement

[SWS_CanSM_00617] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StartWakeupSource shall call the function Det_Re- portError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_- UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to

SWS_CanSM_00618 requirement

[SWS_CanSM_00618] Upstream requirements: SRS_Can_01145 ⌈The API function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋

SWS_CanSM_00619 requirement

[SWS_CanSM_00619] ⌈The function CanSM_StopWakeupSource shall call the func- tion Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_UNINIT, if the CanSM module is not initialized yet with CanSM_Init (ref. to [SWS_CanSM_00023]).⌋(SRS_Can_01145)

SWS_CanSM_00620 requirement

[SWS_CanSM_00620] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_NOT_OK, if the CanSM module is initialized and the network parameter of the request is not a handle con- tained in the configuration of the CanSM module (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00621 requirement

[SWS_CanSM_00621] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall call the function Det_ReportEr- ror (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_INVALID_ NETWORK_HANDLE, if the CanSM module is initialized and the requested handle is invalid concerning the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00622 requirement

[SWS_CanSM_00622] Upstream requirements: SRS_Can_01145 ⌈The function CanSM_StopWakeupSource shall return E_OK and it shall be consid- ered as trigger (ref. to [SWS_CanSM_00608]) for the state machine of the related network, if the CanSM module is initialized and the requested handle is valid concern- ing the CanSM configuration (ref. to [ECUC_CanSM_00161]).⌋

SWS_CanSM_00623 requirement

[SWS_CanSM_00623] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈If for the CAN network a CAN Transceiver is configured (ref. to [ECUC_CanSM_00137]), then as long the sub state machine CANSM_BSM_WUVALIDATION is in the state S_TRCV_NORMAL, the CanSM mod- ule shall operate the do action DO_SET_TRCV_MODE_NORMAL and therefore repeat for the configured CAN Transceiver of the CAN network (ref. to [ECUC_CanSM_00137]) the API request CanIf_SetTrcvMode (ref. to [SWS_CanSM_91002]) with TransceiverMode equal to CANTRCV_TRCVMODE_NORMAL.⌋

SWS_CanSM_00629 requirement

[SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00630 requirement

[SWS_CanSM_00630] Upstream requirements: SRS_Can_01142, SRS_Can_01145 ⌈After a timeout of CANSM_MODEREQ_REPEAT_TIME (ref. to [ECUC_CanSM_00336]) for all supposed controller stopped mode indications (ref. to [SWS_CanSM_00629]), this condition shall trigger the sub state machine CANSM_BSM_WUVALIDATION of the respective network with T_CC_STOPPED_TIMEOUT.⌋

SWS_CanSM_00635 requirement

[SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00638 requirement

[SWS_CanSM_00638] Upstream requirements: SRS_Can_01145 ⌈The CanSM module shall store after every successful CAN controller mode change (ref. to [SWS_CanSM_00396]) or bus-off conditioned change to CAN_CS_STOPPED (ref. to [SWS_CanSM_00064]), the changed mode internally for each CAN controller.⌋

SWS_CanSM_00639 requirement

[SWS_CanSM_00639] ⌈The state operation DO_SET_BAUDRATE_DIRECT shall call the API request CanIf_SetBaudrate (ref. to [SWS_CanSM_91003])) for all con- figured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141] with the respective ControllerId parameter. It shall use as BaudRateConfigID parame- ter the respective function parameter BaudRateConfigID from the call CanSM_Set- Baudrate.⌋(SRS_Can_01145, SRS_Can_01142)

SWS_CanSM_00641 requirement

[SWS_CanSM_00641] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If all CanIf_SetBaudrate (ref. to

SWS_CanSM_00645 requirement

[SWS_CanSM_00645] Upstream requirements: SRS_Can_01158 ⌈The CanSM module shall provide the API function CanSM_SetEcuPassive, if the CanSMTxOfflineActiveSupport parameter is configured with the value TRUE.⌋

SWS_CanSM_00646 requirement

[SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_ONLINE.⌋

SWS_CanSM_00647 requirement

[SWS_CanSM_00647] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_FULL_COM of the CanSM_BSM state machine shall call at 1st place for each configured CAN controller of the CAN network the API CanIf_SetPdu- Mode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and PduModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

SWS_CanSM_00648 requirement

[SWS_CanSM_00648] Upstream requirements: SRS_Can_01158 ⌈If ECU passive is TRUE (ref. to [SWS_CanSM_00646]), then the effect E_TX_ON of the sub state machine CANSM_BSM_S_FULLCOM shall call at 1st place for the config- ured CAN controllers of the CAN network (ref. to [ECUC_CanSM_00141]) the API function CanIf_SetPduMode (ref. to [SWS_CanSM_91002]) with the parameters ControllerId := CanSMControllerId (ref. to [ECUC_CanSM_00141]) and Pdu- ModeRequest := CANIF_TX_OFFLINE_ACTIVE.⌋

SWS_CanSM_00649 requirement

[SWS_CanSM_00649] Upstream requirements: SRS_Can_01158 ⌈When CanSM_SetEcuPassive is called with CanSM_Passive=true; (ref. to

SWS_CanSM_00650 requirement

[SWS_CanSM_00650] Upstream requirements: SRS_Can_01158 ⌈If CanSM_SetEcuPassive called with CanSM_Passive=false; (ref. to

SWS_CanSM_00651 requirement

[SWS_CanSM_00651] ⌈If a communication mode request for the network is present already (ref. to [SWS_CanSM_00635]) and the stored communica- tion mode request is COMM_NO_COMMUNICATION, then the effect E_NOCOM of the CanSM_BSM state machine shall call the API ComM_BusSM_ModeIndica- tion (ref. to [SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_00652 requirement

[SWS_CanSM_00652] [SRS_ModeMgm_- 09221] The Watchdog Manager shall check the correct sequence of code execution in supervised entities

SWS_CanSM_00653 requirement

[SWS_CanSM_00653] Upstream requirements: SRS_Can_01145, SRS_Can_01142 ⌈If more than one CAN controller belongs to one CAN network and for one of its con- trollers a bus-off is indicated with CanSM_ControllerBusOff, then the CanSM shall stop in context of the effect E_BUS_OFF the other CAN contoller(s) of the CAN network, too.⌋

SWS_CanSM_00654 requirement

Type of error Related error code Error value API service used without module initialization CANSM_ E_ UNINIT 0x01 API service called with wrong pointer CANSM_ E_ PARAM_ POINTER 0x02 API service called with wrong parameter CANSM_ E_ INVALID_ NETWORK_ HANDLE 0x03 API service called with wrong parameter CANSM_ E_ PARAM_ CONTROLLER 0x04 API service called with wrong parameter CANSM_ E_ PARAM_ TRANSCEIVER 0x05 De Init API service called when not all CAN networks are in state CANSM_ NO_ COMMUNICATION CANSM_ E_ NOT_ IN_ NO_ COM 0x0B

SWS_CanSM_00655 requirement

If the sub state machine CANSM_BSM_S_TX_TIMEOUT_EXCEPTION (ref. to Figure 7 - 9) is triggered with T_CC_STARTED_INDICATED, the API CanIf_SetPduMode() shall be called with CANI F_ONLINE

SWS_CanSM_00656 requirement

If the CanSM needs informations about the actual PduMode, the CanSM shall call the API CanIf_GetPduMode to get the current Pdu Mode of the CanIf.

SWS_CanSM_00658 requirement

If the CanSM module is reque sted with the function CanSM_DeInit, this shall trigger the CanSM state machines (ref. to Figure 7 - 1) for all configured CAN Networks (ref. to ECUC_CanSM_00126) with the trig ger CanSM_DeInit.

SWS_CanSM_00660 requirement

If development error detection for the CanSM module is enabled: The function CanSM_DeInit shall raise the error CANSM_E_NOT_IN_NO_COM if not all CAN networks are in state CANSM_NO_COMMUNICATION .

SWS_CanSM_00664 requirement

Type of error Related error code Error value Mode request for a network failed more often than allowed by configuration CANSM_ E_ MODE_ REQUEST_ TIMEOUT 0x0A

SWS_CanSM_00666 requirement

: Bus - off detection Long Description: The bus - off recovery st ate machine of a CAN network has detected a certain amount of sequential bus - offs without successful recovery Recommended DTC: Assigned by DEM Detection Criteria: Fail PRE_FAILED when CanSM_ControllerBusOff is called (T_BUS_OFF/E_BUS_OFF), debouncing to be defined by OEM in DEM Pass A fter successful transmission of a CAN frame (G_BUS_OFF_PASSIVE/E_BUS_OFF_PASSIVE) Secondary Parameters: None Time Required : PRE_FAILED immediately (in error interrupt context), FAILED depending on debounce config uration of DEM Monitor Frequency Continuous MIL illumniation : Assigned by DEM

SWS_CanSM_00667 requirement

[SWS_CanSM_00667] Status: DRAFT Upstream requirements: SRS_Can_01142 ⌈If the CanIf module notifies PN availability for a configured CAN Controller to the CanSM module with the callback function CanSM_ConfirmCtrlPnAvailability (ref. to [SWS_CanSM_91004]), then the CanSM module shall call the API CanNm_ ConfirmPnAvailability (ref. to [SWS_CanSM_91002]) with the related CAN net- work as channel to confirm the PN availability to the CanNm module.⌋

SWS_CanSM_00668 requirement

[SWS_CanSM_00668] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall notify the CanNm mod- ule (ref. to [SWS_CanSM_00667]), if it is called with a configured Controller as input parameter (ref. to [ECUC_CanSM_00141]).⌋

SWS_CanSM_00669 requirement

[SWS_CanSM_00669] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈The function CanSM_ConfirmCtrlPnAvailability shall report CANSM_E_- UNINIT to the DET, if the CanSM module is not initialized yet.⌋

SWS_CanSM_00670 requirement

[SWS_CanSM_00670] Status: DRAFT Upstream requirements: SRS_Can_01145 ⌈If the function CanSM_ConfirmCtrlPnAvailability gets a ControllerId, which is not configured (ref. to [ECUC_CanSM_00141]) in the configuration of the CanSM module, it shall call the function Det_ReportError (ref. to [SWS_CanSM_91003]) with ErrorId parameter CANSM_E_PARAM_CONTROLLER.⌋

SWS_CanSM_91002 requirement

[SWS_CanSM_91002]) with the parameters Channel := CanSM- ComMNetworkHandleRef (ref. to [ECUC_CanSM_00161]) and ComMode := COMM_NO_COMMUNICATION.⌋(SRS_Can_01142, SRS_Can_01145)

SWS_CanSM_91003 requirement

CanIf_SetBaudrate CanIf.h This service shall set the baud rate configuration of the CAN controller. Depending on necessary baud rate modifications the controller might have to reset. Det_ReportError Det.h Service to report development errors. ⌋