DEENESPTFRRUARHIKOZHNL
CLASSIC Modul: canif Rolle: heuristic Konfidenz: 80%

SNIP_CLASSIC_CANIF_SECTION_7_13_Receive_data_flow

Quelle: SWS_CANInterface.pdf (Seite 48) • Ziel-Anforderung: SWS_Can_00279

Wortlaut

7.13 Receive data flow According to the AUTOSAR Basic Software Architecture the received data will be evaluated and processed in the upper layer communication stacks (i.e. AUTOSAR COM, CanNm, CanTp, DCM). This means, upper layer modules may neither work with (i.e. change) buffers of CanDrv (Rx) nor do they have access to buffers of CanIf (Tx). CanIf provides internal buffering in the receive path only if CanIfPublicReadRxPduDataApi is set to TRUE (refer to Chapter 7.15). Tx buffering is addressed in Chapter 7.11 and dynamic L-PDUs are concerned in Chapter 7.4. In case of a new reception of an L-PDU CanDrv calls CanIf_RxIndication() (refer to [SWS_CANIF_00006]) of CanIf. The access to the L-PDU specific data is organized by these parameters: • Hardware Receive Handle (HRH) • Received CAN Identifier (CanId) • Received Data Length • Reference to Received L-PDU The Received L-PDU is hardware dependent (nibble and byte ordering, access type) and allocated to the lowest layer in the communication system - to CanDrv. HRH serves as a link between CanDrv and the upper layer module using the L-PDU. The HRH identifies one CAN hardware receive object, where a new CAN L-PDU was received. After the indication of a received L-PDU by CanDrv (CanIf_RxIndication() is called) the CanIf shall proceed as described in 7.14 Receive indication. CanIf is not able to recognize, whether CanDrv uses temporary buffering or a direct hardware access. It expects normalized L-PDU data in calls of the CanIf_RxIndication(). The CAN hardware receive object is locked until the end of the copy process to the temporary or upper layer module buffer. The hardware object will be immediately released after CanIf_RxIndication() of CanIf returns to avoid loss of data. CanDrv, CanIf and the upper layer module, which belongs to the received L-PDU, access the same temporary intermediate buffer, which can be located either in the CAN hardware receive object of the CAN Controller or as temporary buffer in CanDrv. Receive Interrupt Call CanIf_RxIndication() Data normalization necessary? «datastore» Temporary buffer in CAN Driver Rx L-PDU received in BasicCAN ? Software filtering Data Length Check enabled? Data Length Check failed ? Call Det_ReportRuntimeError() with error code CANIF_E_INVALID_DATA_LENGTH LSduR_CanIfRxIndication() returns CanIf_RxIndication() returns                      Call LSduR_CanIfRxIndication() «datastore» Copy data to L-PDU buffer         [L-PDU passed] [L-PDU not passed] [Yes] [No] [Yes] [Yes] [No] [No] [Yes] [No] Figure 7.6: Receive data flow

Versionen & Provenienz · Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Begründung & Zuweisungs-Evidenz

Driver calls CanIf_RxIndication with parameters.

Dokumenten-Herkunft & Rückverfolgbarkeit

Spezifikations-Dokument SWS_CANInterface.pdf
Dokumentseite Seite 48
Ziel-Modul canif (classic)
Ziel-Anforderung SWS_Can_00279
Semantische Rolle heuristic
Automatisierungs-Konfidenz 0.80