Download presentation
Presentation is loading. Please wait.
Published bypatrick wang Modified over 2 years ago
1
CAN STACK
2
OVERVIEW AUTOSAR CAN Stack Overview. Included modules. From COMM_NO_COMMUNICATION to COMM_FULL_COMMUNICATION. Transmission request. Receive indication.
3
AUTOSAR CAN STACK: OVERVIEW Autosar VFB The integration of functions from different suppliers is established through a virtual functional bus. Allow virtual integration between SW-c as long as communication mechanism is defined. Collection of all communication mechanism. Interfaces on an abstract level that allow s/w design regardless the target h/w. RTE Realization of VFB for a specific ECU. It mange the communication inter/intra ECU.
4
AUTOSAR CAN STACK: OVERVIEW Communication Stack for CAN COM: - Transfer signals from, and to RTE. - Pass signals to CANTP or PDUR depending on the used service. PDU-Router: - Route I-PDUs between the following modules: Communication interface (CANIF), Transport protocol (CANTP), Diagnostics (DCM)
5
AUTOSAR CAN STACK: OVERVIEW Communication Stack for CAN CANIF: - It abstracts the interface regardless Location of the driver (internal/external). CANTP: - Segment and reassemble data Longer than 8 bytes. CAN Driver: Abstraction for the CAN controller hardware.
6
AUTOSAR CAN STACK: OVERVIEW Communication Stack for CAN CANSM: Change communication mode as requested. CANTRCV: Control external CAN transceiver hardware, It observe the bus and provide physical network diagnostics.
7
AUTOSAR CAN STACK: OVERVIEW Included modules from service layer: ComM: Propagate requested communication mode to CanSM BSWM: Forward user requests to ComM and report communication state to the user. ECUM: Detect passive wake up and initialize related modules.
8
AUTOSAR CAN STACK: INCLUDED MODULES
9
Active VS Passive Wake-up Active wake-up: when the current ECU is the source of the wake-up signal (sensor). Passive wake-up: when another ECU is the source of the wake-up signal. In this case the ECU should receive NM frames to keep the ECU in the passive wake-up mode. AUTOSAR CAN STACK: FROM COMM_NO_COMMUNICATION TO COMM_FULL_COMMUNICATION
10
Modules interaction 1.For active wake-up User request communication mode. 2.ComM propagate requested mode to CANSM. 3.CANSM change the current mode to the requested mode by calling CANIF APIs. 4.CANIF contact the CAN driver which write values in the CAN controller register to go the requested communication mode. 5.The CAN controller send mode indication signal to upper modules till it is back to ComM. AUTOSAR CAN STACK: FROM COMM_NO_COMMUNICATION TO COMM_FULL_COMMUNICATION
11
6- ComM notifies the BSWM to manage what will happen next to start data transmitting. AUTOSAR CAN STACK: FROM COMM_NO_COMMUNICATION TO COMM_FULL_COMMUNICATION SWC1RTECOMMCANSM CANIF CAN Controller Red arrows indicate request direction Blue arrows indicate confirmation messages direction
12
AUTOSAR CAN STACK: FROM COMM_NO_COMMUNICATION TO COMM_FULL_COMMUNICATION APIs and State transitions: COMMCANSMCANIFCANHardware (controller) Start State COMM_NO_COMMUN ICATION S_RNOCO: S_CAN_TRCV_NORM AL CANIF_CS_INIT: CANIF_CS_STO PPED CAN_READYSTOP/SLEEP Called APIs CanSM_RequestCom Mode(NetworkHandle, ComM_Mode:=COMM _FULL_COMMUNICA TION) CanIf_SetControllerMo de(CanSMControllerId, CANIF_CS_STARTED ) AND CanIf_SetPduMode(Ca nSMControllerId, CANIF_SET_ONLINE) Can_SetController Mode (Controller, CAN_T_STARTE D). request CAN controller mode transition to START() Callback fn. Configurable confirmation to BswM. ComM_BusSM_ModeI ndication(Channel,Co mMode: =COMM_FULL_COM MUNICATION) CanSM_Controller ModeIndication(ui nt8, COMM_FULL_CO MMUNICATION) CanIf_ControllerMo deIndication End State COMM_FULL_COMM UNICATION S_FUCO: S_NO_BUS_OFF CANIF_CS_INIT: CANIF_CS_STAR TED CAN_READYSTART
13
AUTOSAR CAN STACK: FROM COMM_NO_COMMUNICATION TO COMM_FULL_COMMUNICATION Modules state machine: ComM CANSM CANIFCAN
14
Modules interaction 1.When BSWM receive confirmation signal that the channel is ready it notifies the COM to take the massage from the RTE. 2.COM propagate the IPDU to PDUR which in turn forward the message to the corresponding interface of TP modules (in our case if the message is loner than 8 bytes will be forwarded to CANTP else to CANIF). 3.CANIF sends data to the CAN driver which writes data in the CAN controller registers. 4.After successful transmission TxConfirmation signal is sent to upper layers. AUTOSAR CAN STACK: TRANSMISSION REQUEST
15
Modules interaction SWC1RTECOMPDUR CANIF CAN Controller Red arrows indicate request direction Blue arrows indicate confirmation messages direction AUTOSAR CAN STACK: TRANSMISSION REQUEST
16
COMPduRCANIFCANHardware (controller) Called APIs PduR_ComTrans mit CanIf_TransmitCan_writeCopy LPDU to harware Callback fn. Rte_COMCbkTAc k_signalX() Com_TxConfirmati on PduR_CanTxConfi rmation CanIf_CanTxCon firmation Tx interrupt APIs and State transitions:
17
Modules interaction To detect received data Interrupt or polling can be used Interrupt: The controller will notify CANIF when data is received Polling: CANIF will periodically check weather data is received or not. For both modes after the CANIF detects that there is received data it will notify upper modules to read data. After reaching the COM the received data will be available to be called by the RTE when required. AUTOSAR CAN STACK: RECEIVE INDICATION
18
COMPduRCANIFCANHardware (controller) Callback fn. Rte_COMCbk_sign alX() Com_RxIndicationPduR_ Rx Indication CanIf_RxIndicationReceive Interrupt() Called APIs CanIf_ReadRxNotif Status() CanIf_ReadRxPdu Data Read data from CANIF Rx buffer() APIs and State transitions:
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.