//================================================================== // // Filename: mapp_can.h // Description: // //------------------------------------------------------------------ // // version: // date: 00:08am, 09.Apr.2012, by Sirius // Description: // //------------------------------------------------------------------ //================================================================== #ifndef _MAPP_CAN_H_ #define _MAPP_CAN_H_ /*------------------------------------------------------------------------------ * I N C L U D E *------------------------------------------------------------------------------*/ #include "stm32f0xx.h" #include "general.h" /*------------------------------------------------------------------------------ * D E F I N E *------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ * S T R U C T *------------------------------------------------------------------------------*/ //------------------------------------------------------------------ // different CAN ID for car: // modified by USER, eg.FORD below. //------------------------------------------------------------------ typedef struct { const U32 frmid; /* frame ID */ void (*frmfunc)(void); /* frame function */ } T_CAN_CFG; //------------------------------------------------------------------ // CAN receive data structure // enque when FIRO interrupt,deque when processed. //------------------------------------------------------------------ #define CAN_RX_MSG_CNT 40 typedef struct { CanRxMsg msgQ[CAN_RX_MSG_CNT]; /* message queue buffer */ U08 enque; /* enque pointer */ U08 deque; /* deque pointer */ } T_CAN_RXQ; //------------------------------------------------------------------ // CAN task state. //------------------------------------------------------------------ typedef enum { CAN_POWER_START, /* first time power-up */ CAN_TRCVR_INIT, /* can transceiver init */ CAN_LAYER_INIT, /* can controller init */ CAN_WAKE_UP, /* can wake up */ CAN_STATE_RUN, /* normally working */ CAN_STATE_SLEEP, /* can into sleep state */ NumOfCanState } T_CAN_STATE; //------------------------------------------------------------------ // iCAN_Network_DLL_Transceiver_Control //------------------------------------------------------------------ typedef enum { TRCVR_INIT, TRCVR_ON, TRCVR_OFF, TRCVR_WATOFF, NumOfTrcvrState } T_TRCVR_STATE; enum { CARTYPE_NULL, CARTYPE_AUDI, CARTYPE_HONDA, CARTYPE_FOD, CARTYPE_BUICK, CARTYPE_TRUMPCHI, CARTYPE_MAX }; /*------------------------------------------------------------------------------ * E X T E R N *------------------------------------------------------------------------------*/ extern T_CAN_RXQ gtCanRxBuf; extern VU16 s_vu16CanLostTmr; extern T_CAN_STATE s_tCanState; extern U08 MidFuction; /*------------------------------------------------------------------------------ * P R O T O T Y P E *------------------------------------------------------------------------------*/ void CanCfgInit(void); void CanTask(void); void CanTaskTmr(void); T_CAN_STATE CanTaskState(void); void CanBusSleep(void); void CanBusWakeup(void); BOOL CanBusActive(void); void CanMsgAnalyseTask(void); void CanVariablesInit(void); U08 CanBusRunState(void); #endif /* _MAPP_CAN_H_ */ /*------------------------------- E O F ----------------------------------------*/