CLASSIC
Modul: canif
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_CANIF_SECTION_8_6_3_Configurable_interfaces
Wortlaut
8.6.3 Configurable interfaces
In this section all interfaces are listed, where the target function of any upper layer
to be called has to be set up by configuration. These callback services are specified
and implemented in the upper communication modules, which use CanIf according to
the AUTOSAR BSW architecture. The specific callback notification is specified in the
corresponding SWS document (see Chapter 3 “Related documentation”).
As far the interface name is not specified to be mandatory, no callback is performed,
if no API name is configured. This section describes only the content of notification of
the callback, the call context inside CanIf and exact time by the call event.
<User_NotificationName> - This condition is applied for such interface services
which will be implemented in the upper layer and called by CanIf. This condition
displays the symbolic name of the functional group in a callback service in the corresponding upper layer module. Each upper layer module can define no, one or several
callback services for the same functionality (i.e. transmit confirmation). The dispatch
is ensured by the L-SDU ID.
The upper layer module provides the Service ID of the following functions.
8.6.3.1
<User_ValidateWakeupEvent>
[SWS_CANIF_00532] Definition of configurable interface <User_ValidateWakeup
Event> ⌈
Service Name
<User_ValidateWakeupEvent>
Syntax
void <User_ValidateWakeupEvent> (
EcuM_WakeupSourceType sources
)
Sync/Async
Synchronous
Reentrancy
Non Reentrant (defined within providing upper layer module)
Parameters (in)
sources
Validated CAN wakeup events. Every CAN controller or CAN
transceiver can be a separate wakeup source.
Parameters (inout)
None
Parameters (out)
None
Return value
None
Description
This service indicates if a wake up event initiated from the wake up source (CAN controller or
transceiver) after a former request to the CAN Driver or CAN Transceiver Driver module is valid.
Available via
Configuration parameter CanIfPublicCddHeaderFile
⌋
Note: This callback service is mainly implemented in and used by the ECU State Manager module (see [13, Specification of ECU State Manager]).
Note: The CanIf calls this callback service. It is implemented by the configured upper layer module. It is called only during the call of CanIf_CheckValidation() if
a first CAN L-PDU reception event after a wake up event has been occurred at the
corresponding CAN Controller.
Note: The call context of <User_ValidateWakeupEvent>() is either on interrupt
level (interrupt mode) or on task level (polling mode).
Note: The callback service <User_ValidateWakeupEvent>() is in general re-entrant for multiple CAN Controller usage, but not for the same CAN Controller
[SWS_CANIF_00659] ⌈Configuration of <User_ValidateWakeupEvent>(): If no
validation is needed, this API can be omitted by disabling CanIfPublicWakeupCheckValidSupport.⌋
[SWS_CANIF_00456] ⌈Configuration of <User_ValidateWakeupEvent>(): The
upper layer module which provides this callback service has to be configured by CanIfDispatchUserValidateWakeupEventUL, but:
• If no upper layer modules are configured for wake up notification using <User_ValidateWakeupEvent>(), no wake up notification needs to be configured.
CanIfDispatchUserValidateWakeupEventUL needs not to be configured.
• If wake up is not supported (CanIfCtrlWakeupSupport and CanIfTrcvWakeupSupport equal FALSE, CanIfDispatchUserValidateWakeupEventUL is not configurable.
⌋
[SWS_CANIF_00563] ⌈Configuration of <User_ValidateWakeupEvent>():
If
CanIfDispatchUserValidateWakeupEventUL
is
set
to
ECUM,
CanIfDispatchUserValidateWakeupEventName
must
be
EcuM_ValidateWakeupEvent.⌋
[SWS_CANIF_00564] ⌈Configuration of <User_ValidateWakeupEvent>():
If
CanIfDispatchUserValidateWakeupEventUL is set to CDD the name of the API
has to be configured via parameter CanIfDispatchUserValidateWakeupEventName.⌋
8.6.3.2
<User_ControllerBusOff>
[SWS_CANIF_00014] Definition of configurable interface <User_ControllerBus
Off>
Upstream requirements: SRS_Can_01029
⌈
Service Name
<User_ControllerBusOff>
Syntax
void <User_ControllerBusOff> (
uint8 ControllerId
)
Sync/Async
Synchronous
Reentrancy
Non Reentrant (defined within providing upper layer module)
Parameters (in)
ControllerId
Abstracted CanIf ControllerId which is assigned to a CAN
controller, at which a BusOff occurred.
Parameters (inout)
None
Parameters (out)
None
Return value
None
Description
This service indicates a bus-off event to the corresponding upper layer module (mainly the CAN
State Manager module).
Available via
Configuration parameter CanIfPublicCddHeaderFile
⌋
Note: This callback service is mainly implemented in and used by CanSm (see [3,
Note: This callback service is called by CanIf and implemented by the configured upper layer module. It is called in case of a BusOff notification via CanIf_ControllerBusOff() of the CanDrv. The delivered parameter ControllerId of the service
CanIf_ControllerBusOff() is passed to the upper layer module.
Note: The call context of <User_ControllerBusOff>() is either on interrupt level
(interrupt mode) or on task level (polling mode).
Note: The callback service <User_ControllerBusOff>() is in general re-entrant
for multiple CAN Controller usage, but not for the same CAN Controller.
Note: Before re-initialization/restart during BusOff recovery is executed <User_ControllerBusOff>() is performed only once in case of multiple BusOff events at CAN
Controller.
Configuration of <User_ControllerBusOff>()
[SWS_CANIF_00450] ⌈Configuration of <User_ControllerBusOff>(): The upper
layer module which provides this callback service has to be configured by CanIfDispatchUserCtrlBusOffUL.⌋
[SWS_CANIF_00558] ⌈Configuration of <User_ControllerBusOff>(): The name
of the API <User_ControllerBusOff>() which will be called by CanIf shall be
configured for CanIf by parameter CanIfDispatchUserCtrlBusOffName.⌋
[SWS_CANIF_00524] ⌈Configuration of <User_ControllerBusOff>(): At least
one upper layer module and hence an API of <User_ControllerBusOff>() has
mandatorily to be configured, which CanIf can call in case of an occurred call of
CanIf_ControllerBusOff().⌋
[SWS_CANIF_00559] ⌈Configuration of <User_ControllerBusOff>(): If CanIfDispatchUserCtrlBusOffUL is set to CAN_SM, CanIfDispatchUserCtrlBusOffName must be CanSM_ControllerBusOff.⌋
[SWS_CANIF_00560] ⌈Configuration of <User_ControllerBusOff>(): If CanIfDispatchUserCtrlBusOffUL is set to CDD the name of the API has to be configured via parameter CanIfDispatchUserCtrlBusOffName.⌋
8.6.3.3
<User_ConfirmPnAvailability>
[SWS_CANIF_00821] Definition of configurable interface <User_ConfirmPnAvailability> ⌈
Service Name
<User_ConfirmPnAvailability>
Syntax
void <User_ConfirmPnAvailability> (
uint8 TransceiverId
)
Sync/Async
Synchronous
Reentrancy
Non Reentrant (defined within providing upper layer module)
Parameters (in)
TransceiverId
Abstract CanIf TransceiverId, which is assigned to a CAN
transceiver, which was checked for PN availability.
Parameters (inout)
None
Parameters (out)
None
Return value
None
Description
This service indicates that the CAN transceiver is running in PN communication mode.
▽
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_CANInterface.pdf |
|---|---|
| Dokumentseite | Seite 133 |
| Ziel-Modul | canif (classic) |
| Ziel-Anforderung | SWS_EcuM_04040 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |