mapp_can.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. //==================================================================
  2. //
  3. // Filename: mapp_can.h
  4. // Description:
  5. //
  6. //------------------------------------------------------------------
  7. //
  8. // version:
  9. // date: 00:08am, 09.Apr.2012, by Sirius
  10. // Description:
  11. //
  12. //------------------------------------------------------------------
  13. //==================================================================
  14. #ifndef _MAPP_CAN_H_
  15. #define _MAPP_CAN_H_
  16. /*------------------------------------------------------------------------------
  17. * I N C L U D E
  18. *------------------------------------------------------------------------------*/
  19. #include "stm32f0xx.h"
  20. #include "general.h"
  21. /*------------------------------------------------------------------------------
  22. * D E F I N E
  23. *------------------------------------------------------------------------------*/
  24. /*------------------------------------------------------------------------------
  25. * S T R U C T
  26. *------------------------------------------------------------------------------*/
  27. //------------------------------------------------------------------
  28. // different CAN ID for car:
  29. // modified by USER, eg.FORD below.
  30. //------------------------------------------------------------------
  31. typedef struct {
  32. const U32 frmid; /* frame ID */
  33. void (*frmfunc)(void); /* frame function */
  34. } T_CAN_CFG;
  35. //------------------------------------------------------------------
  36. // CAN receive data structure
  37. // enque when FIRO interrupt,deque when processed.
  38. //------------------------------------------------------------------
  39. #define CAN_RX_MSG_CNT 40
  40. typedef struct {
  41. CanRxMsg msgQ[CAN_RX_MSG_CNT]; /* message queue buffer */
  42. U08 enque; /* enque pointer */
  43. U08 deque; /* deque pointer */
  44. } T_CAN_RXQ;
  45. //------------------------------------------------------------------
  46. // CAN task state.
  47. //------------------------------------------------------------------
  48. typedef enum {
  49. CAN_POWER_START, /* first time power-up */
  50. CAN_TRCVR_INIT, /* can transceiver init */
  51. CAN_LAYER_INIT, /* can controller init */
  52. CAN_WAKE_UP, /* can wake up */
  53. CAN_STATE_RUN, /* normally working */
  54. CAN_STATE_SLEEP, /* can into sleep state */
  55. NumOfCanState
  56. } T_CAN_STATE;
  57. //------------------------------------------------------------------
  58. // iCAN_Network_DLL_Transceiver_Control
  59. //------------------------------------------------------------------
  60. typedef enum {
  61. TRCVR_INIT,
  62. TRCVR_ON,
  63. TRCVR_OFF,
  64. TRCVR_WATOFF,
  65. NumOfTrcvrState
  66. } T_TRCVR_STATE;
  67. enum {
  68. CARTYPE_NULL,
  69. CARTYPE_AUDI,
  70. CARTYPE_HONDA,
  71. CARTYPE_FOD,
  72. CARTYPE_BUICK,
  73. CARTYPE_TRUMPCHI,
  74. CARTYPE_MAX
  75. };
  76. /*------------------------------------------------------------------------------
  77. * E X T E R N
  78. *------------------------------------------------------------------------------*/
  79. extern T_CAN_RXQ gtCanRxBuf;
  80. extern VU16 s_vu16CanLostTmr;
  81. extern T_CAN_STATE s_tCanState;
  82. extern U08 MidFuction;
  83. /*------------------------------------------------------------------------------
  84. * P R O T O T Y P E
  85. *------------------------------------------------------------------------------*/
  86. void CanCfgInit(void);
  87. void CanTask(void);
  88. void CanTaskTmr(void);
  89. T_CAN_STATE CanTaskState(void);
  90. void CanBusSleep(void);
  91. void CanBusWakeup(void);
  92. BOOL CanBusActive(void);
  93. void CanMsgAnalyseTask(void);
  94. void CanVariablesInit(void);
  95. U08 CanBusRunState(void);
  96. #endif /* _MAPP_CAN_H_ */
  97. /*------------------------------- E O F ----------------------------------------*/