CLASSIC
Modul: canif
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_CANIF_SECTION_7_14_Receive_indication
Wortlaut
7.14 Receive indication
A call of CanIf_RxIndication() references in its parameters a newly received CAN L-PDU. If the function CanIf_RxIndication() is called, the CanIf evaluates the CAN L-PDU for acceptance and prepares the L-SDU for later access by the upper communication layers. The CanIf notifies upper layer modules about this asynchronous event using LSduR_CanIfRxIndication(), if configured and if this CAN L-PDU is successfully detected and accepted for further processing. The detailed requirements for this behavior follow here.
[SWS_CANIF_00906] Upstream requirements: SRS_Can_01172
⌈If Bus Mirroring is enabled globally (see CanIfBusMirroringSupport) and has been activated with a call to CanIf_EnableBusMirroring() for a CAN Controller, the CanIf shall call Mirror_ReportCanFrame() for each frame reception on that controller that is indicated with CanIf_RxIndication().⌋
[SWS_CANIF_00389] ⌈If the function CanIf_RxIndication() is called, the CanIf shall process the Software Filtering on the received L-PDU, if configured (see multiplicity of CanIfHrhRangeCfg equals 0..∗). If Software Filtering rejects the received L-PDU, the CanIf shall end the receive indication for that call of CanIf_RxIndication().⌋ Note for [SWS_CANIF_00389]: See 7.20.
[SWS_CANIF_00390] ⌈If CanIf accepts an L-PDU received via CanIf_RxIndication() during Software Filtering (see [SWS_CANIF_00389]), CanIf shall process the Data Length check afterwards, if configured (see CanIfPrivateDataLengthCheck and CanIfRxPduDataLengthCheck).⌋ For further details, please refer to Chapter 7.21 “Data Length Check”.
[SWS_CANIF_00297] ⌈If CanIf has accepted a L-PDU received via CanIf_RxIndication() during Data Length Check (see [SWS_CANIF_00390]), CanIf shall copy the number of bytes according to the configured Data Length (see ECUC_CanIf_00599) to the static receive buffer, if configured for that L-PDU (see [SWS_CANIF_00198], ECUC_CanIf_00600).⌋
[SWS_CANIF_00851] ⌈If MetaData item CAN_ID_32 is configured for a received L-SDU, CanIf shall copy the PDU payload to the static receive buffer and the CAN ID to the MetaDataItem of type CAN_ID_32.⌋
[SWS_CANIF_00967] Support of meta data type TIMETUPLE_TYPE_PTR at reception indication Status: DRAFT Upstream requirements: SRS_Can_02004
⌈If MetaData item TIMETUPLE_TYPE_PTR is configured for a received L-SDU, CanIf shall transfer the ingress time stamp of the received L-SDU to the MetaDataItem of type TIMETUPLE_TYPE_PTR.⌋
[SWS_CANIF_00056] Upstream requirements: SRS_Can_02004, SRS_Can_02005
⌈If CanIf accepts a L-PDU received via CanIf_RxIndication() during Data Length Check (see [SWS_CANIF_00390], [SWS_CANIF_00026]), CanIf shall call the target upper layer module was configured via LSduR_CanIfRxIndication() based on the parameters of CanIf_RxIndication().⌋ Overview: CanIf performs the following steps at a call of CanIf_RxIndication():
• Software Filtering (only BasicCAN), if configured
• Data Length Check, if configured
• buffer received L-SDU if configured
• call upper layer receive indication callback service, if configured.
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 50 |
| Ziel-Modul | canif (classic) |
| Ziel-Anforderung | SWS_CANIF_91005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |