MCUSW
Can.h File Reference

Introduction

This file contains interface header for CAN MCAL driver.

Go to the source code of this file.

Data Structures

struct  Can_MaskType
 Structure defining the filter mask to be used. More...
 
struct  Can_HwFilterType
 Structure defining the HW filter to be used. More...
 
struct  Can_FdBaudConfigType
 Structure defining the CAN FD data phase baud rate configuration. More...
 
struct  Can_BaudConfigType
 Structure defining the CAN baud rate configuration. More...
 
struct  Can_ControllerType
 Can Controller Configuration definition. More...
 
struct  Can_ControllerType_PC
 Can Controller Pre Compile Configuration definition. More...
 
struct  Can_MailboxType
 Can mailox configuration definition. More...
 
struct  Can_MailboxType_PC
 Can mailox Pre compile configuration definition. More...
 
struct  Can_DmaPrms
 Dummy structure will be used if DMA support is required. More...
 
struct  Can_ConfigType
 Can MCAL root configuration structure. More...
 
struct  Can_RegisterReadbackType
 Register Readback Structure. More...
 

Macros

#define CAN_SW_PATCH_VERSION   (0U)
 Driver Implementation Patch Version. More...
 
#define CAN_AR_RELEASE_REVISION_VERSION   (1U)
 AUTOSAR Patch version specification implemented by CanDriver. More...
 
Can Driver Module SW Version Info

Defines for CAN Driver version used for compatibility checks

#define CAN_SW_MAJOR_VERSION   (9U)
 Driver Implementation Major Version.Used for version compatibiltiy check. More...
 
#define CAN_SW_MINOR_VERSION   (1U)
 Driver Implementation Minor Version.Used for version compatibiltiy check. More...
 
Can Driver Module AUTOSAR Version Info

Defines for CAN Driver AUTOSAR version used for compatibility checks

#define CAN_AR_RELEASE_MAJOR_VERSION   (4U)
 AUTOSAR Major version specification implemented by CanDriver. More...
 
#define CAN_AR_RELEASE_MINOR_VERSION   (3U)
 AUTOSAR Minor version specification implemented by CanDriver. More...
 
Can Driver ID Info
#define CAN_VENDOR_ID   (44U)
 Texas Instruments Vendor ID. More...
 
#define CAN_MODULE_ID   (80U)
 Can Driver Module ID. More...
 
#define CAN_INSTANCE_ID   (0U)
 CAN Driver Instance ID. More...
 
CAN Driver states.
#define CAN_UNINIT   ((uint8)0U)
 CAN Driver is NOT initialized. More...
 
#define CAN_READY   ((uint8)1U)
 CAN Driver is initialized. More...
 
Can Driver Service Id

The Service Id is one of the argument to Det_ReportError function and is used to identify the source of the error

#define CAN_INIT_ID   (0x00U)
 Can_Init() More...
 
#define CAN_MAINFCT_WRITE_ID   (0x01U)
 Can_MainFunction_Write() More...
 
#define CAN_SETCTR_ID   (0x03U)
 Can_SetControllerMode() More...
 
#define CAN_DIINT_ID   (0x04U)
 Can_DisableControllerInterrupts() More...
 
#define CAN_ENINT_ID   (0x05U)
 Can_EnableControllerInterrupts() More...
 
#define CAN_WRITE_ID   (0x06U)
 Can_Write() More...
 
#define CAN_VERSION_ID   (0x07U)
 Can_GetVersionInfo() More...
 
#define CAN_MAINFCT_READ_ID   (0x08U)
 Can_MainFunction_Read() More...
 
#define CAN_MAINFCT_BO_ID   (0x09U)
 Can_MainFunction_BusOff() More...
 
#define CAN_MAINFCT_WU_ID   (0x0AU)
 Can_MainFunction_Wakeup() More...
 
#define CAN_CKWAKEUP_ID   (0x0BU)
 Can_CheckWakeup() More...
 
#define CAN_MAINFCT_MODE_ID   (0x0CU)
 Can_MainFunction_Mode() More...
 
#define CAN_SETBAUDRATE_ID   (0x0FU)
 Can_SetBaudrate() More...
 
#define CAN_DEINIT_ID   (0x10U)
 Can_DeInit() More...
 
#define CAN_GETCTRERRST_ID   (0x11U)
 Can_GetControllerErrorState() More...
 
#define CAN_GETCTRMODE_ID   (0x12U)
 Can_GetControllerMode() More...
 
#define CAN_LOOPBACK_ID   (0x20U)
 Can_TestLoopBackModeEnable() More...
 
#define CAN_RXPROCESS_ID   (0x21U)
 Can_RxProcess() More...
 
Can Error Codes

Error codes returned by Can functions

#define CAN_E_PARAM_POINTER   (0x01U)
 
#define CAN_E_PARAM_HANDLE   (0x02U)
 ERROR:NULL_PTR passed as parameter. More...
 
#define CAN_E_PARAM_DLC   (0x03U)
 ERROR:Invalid Controller Handle. More...
 
#define CAN_E_PARAM_CONTROLLER   (0x04U)
 ERROR:Invalid length of msg. More...
 
#define CAN_E_UNINIT   (0x05U)
 ERROR:Invalid controller id. More...
 
#define CAN_E_TRANSITION   (0x06U)
 ERROR:Eror due to API invoked without performing Can_Init() More...
 
#define CAN_E_DATALOST   (0x07U)
 ERROR:Eror during Controller state transition. More...
 
#define CAN_E_PARAM_BAUDRATE   (0x08U)
 ERROR:Data lost/dropped. More...
 
#define CAN_E_ICOM_CONFIG_INVALID   (0x09U)
 ERROR:Timeout occured. More...
 
#define CAN_E_INIT_FAILED   (0x0AU)
 ERROR:Invalid Baudrate configuration. More...
 
CAN Config Ids

ERROR:Invalid configuration set selection

The Config Ids used for different CAN Configuration builds

#define CAN_CFG_ID_0   (0x01U)
 Config 0 (All configurations ON) More...
 
#define CAN_CFG_ID_1   (0x02U)
 Config 1 (All configurations OFF). CAN_CFG_ID_1 is used only for compile check. More...
 
#define CAN_CFG_ID_2   (0x04U)
 Config 2 (All configurations ON except DET OFF) More...
 
#define CAN_CFG_ID_3   (0x08U)
 Config 3 (Configurator auto generated file) More...
 
#define CAN_CFG_ID_4   (0x10U)
 Config 4 (Configurator auto generated file MCAN instead of DCAN2 with pre-compile variant ON) More...
 
#define CAN_CFG_ID_5   (0x20U)
 Config 5 (All configurations ON but used only for testing WakeUp by external HW event and Performance tests) More...
 
#define CAN_CFG_ID_6   (0x40U)
 Config 6 (Used for MCAN Testing) More...
 
CanIdType.
#define MIXED_MODE_MB_ID   (2U)
 Mixed Mode MB Id type. More...
 
Can Error Types

Error Types returned by Can functions

#define MCAN_ERR_TYPE_PEA_ERROR   (1U)
 ERROR:Protocol Error in Arbitration Phase. More...
 
#define MCAN_ERR_TYPE_TOO_ERROR   (2U)
 ERROR:Time out Error. More...
 
#define MCAN_LSB_BIT_SET   (1U)
 Check lsb bit Set or not. More...
 

Typedefs

typedef uint8 CanControllerState_Type
 Can Controller State enum type. More...
 
typedef uint32 Can_InterruptMask_Type
 Can Interrupt Mask type. More...
 

Enumerations

enum  Can_MailBoxDirectionType { CAN_MAILBOX_DIRECTION_RX = 0x0U, CAN_MAILBOX_DIRECTION_TX = 0x1U }
 Can Mailbox direction enum. More...
 
enum  Can_HandleType { CAN_FULL = 0x0U, CAN_BASIC = 0x1U }
 Can Handle Type enum. More...
 
enum  Can_TxRxProcessingType { CAN_TX_RX_PROCESSING_INTERRUPT = 0x0U, CAN_TX_RX_PROCESSING_MIXED = 0x1U, CAN_TX_RX_PROCESSING_POLLING = 0x2U }
 Can Tx/Rx processing enum. More...
 
enum  Can_IrqStatusType {
  CAN_IRQ_NO_INTR_EVENT = 0U, CAN_IRQ_INTR_STUFF_EVENT = 1U, CAN_IRQ_INTR_FORM_EVENT = 2U, CAN_IRQ_INTR_ACK_EVENT = 3U,
  CAN_IRQ_INTR_BIT1_EVENT = 4U, CAN_IRQ_INTR_BIT0_EVENT = 5U, CAN_IRQ_INTR_CRC_EVENT = 6U, CAN_IRQ_INTR_TOO_EVENT = 7U,
  CAN_IRQ_STATUS_READ_FAIL = 8U
}
 CAN IRQ status enum. More...
 

Functions

void Can_GetVersionInfo (Std_VersionInfoType *VersionInfo)
 Function returns the version information of this module. More...
 
void Can_Init (const Can_ConfigType *CfgPtr)
 This function initializes the module. More...
 
Std_ReturnType Can_SetControllerMode (uint8 Controller, Can_ControllerStateType Transition)
 This function performs software triggered state transitions of the CAN controller State machine. More...
 
Std_ReturnType Can_Write (Can_HwHandleType Hth, const Can_PduType *PduInfo)
 This function is called by CanIf to pass a CAN message to CanDrv for transmission. More...
 
void Can_DisableControllerInterrupts (uint8 Controller)
 This function disables all interrupts for this CAN controller. More...
 
void Can_EnableControllerInterrupts (uint8 Controller)
 This function enables all allowed interrupts. More...
 
void Can_MainFunction_Write (void)
 This function performs the polling of TX confirmation when CAN_TX_PROCESSING is set to POLLING. More...
 
void Can_MainFunction_BusOff (void)
 This function performs the polling of bus-off events that are configured statically as 'to be polled'. More...
 
void Can_MainFunction_Read (void)
 This function performs the polling of RX indications when CAN_RX_PROCESSING is set to POLLING. More...
 
void Can_MainFunction_Wakeup (void)
 This function performs the polling of wake-up events that are configured statically as 'to be polled'. More...
 
void Can_MainFunction_Mode (void)
 This function performs the polling of CAN controller mode transitions. More...
 
Std_ReturnType Can_SetBaudrate (uint8 Controller, uint16 BaudRateConfigID)
 This service shall set the baud rate configuration of the CAN controller. Depending on necessary baud rate modifications the controller might have to reset. More...
 
Std_ReturnType Can_TestLoopBackModeEnable (uint8 Controller, uint8 Mode)
 This service will enable CAN loopback mode. More...
 
Std_ReturnType Can_TestLoopBackModeDisable (uint8 Controller, uint8 Mode)
 This service will disable CAN loopback mode. More...
 
Std_ReturnType Can_RegisterReadback (VAR(uint8,) Controller, Can_RegisterReadbackType *RegRbPtr)
 This service will readback CAN registers. More...
 
Std_ReturnType Can_EnableIntr (VAR(uint8,) Controller, VAR(uint8,) CanErrVar)
 This service will Enable the interrupts. More...
 
Std_ReturnType Can_DisableIntr (VAR(uint8,) Controller, VAR(uint8,) CanErrVar)
 This service will Disable the Interrupts. More...
 
Can_IrqStatusType Can_GetIntrStatus (VAR(uint8,) Controller)
 This service will provide the status of the interrupt. More...
 
Std_ReturnType Can_ClearIntrStatus (VAR(uint8,) Controller)
 This service will clear the interrupt status. More...
 
void Can_IntISR_Fun (Can_ControllerInstance CanInstanceID)
 This function is the ISR for CAN controller 0/INT 0. More...
 
void Can_IntISR_Function (Can_ControllerInstance CanInstanceID, uint32 baseAddr)
 This function is the ISR for CAN controller 0/INT 0. More...
 
void Can_DeInit (void)
 This function de-initializes the module. More...
 
Std_ReturnType Can_GetControllerMode (uint8 Controller, Can_ControllerStateType *ControllerModePtr)
 This service reports about the current status of the requested CAN controller. More...
 
Std_ReturnType Can_GetControllerErrorState (uint8 ControllerId, Can_ErrorStateType *ErrorStatePtr)
 This service obtains the error state of the CAN controller. More...