can.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. /************************************************************************
  2. Project: Washing Machine Drive
  3. Filename: classB.h
  4. Partner Filename: N/A
  5. Description: Partner file of main.c
  6. Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems.
  7. CPU TYPE : ST32F0xx
  8. *************************************************************************
  9. Copyright (c) 2017 Welling Motor Technology(Shanghai) Co. Ltd.
  10. All rights reserved.
  11. *************************************************************************
  12. *************************************************************************
  13. Revising History (ECL of this file):
  14. WLBDM_M0_SR_20170814-new FSM1.1, by cyf, create this file;
  15. ************************************************************************/
  16. /************************************************************************
  17. Beginning of File, do not put anything above here except notes
  18. Compiler Directives:
  19. *************************************************************************/
  20. #ifndef CAN_H
  21. #define CAN_H
  22. /************************************************************************
  23. Compiler Directives (N/A)
  24. *************************************************************************/
  25. #ifdef _CAN_C_
  26. #define CAN_EXT
  27. #else
  28. #define CAN_EXT extern
  29. #endif
  30. #include "typedefine.h"
  31. #include "ti_msp_dl_config.h"
  32. /************************************************************************
  33. Definitions & Macros
  34. *************************************************************************/
  35. #define CAN_MC_ALARMCODE_DEFAULT \
  36. { \
  37. 0x00000000 \
  38. }
  39. // 天腾
  40. #define ID_MC_BC 0x710
  41. #define ID_MC_TO_BMS 0x712
  42. #define ID_MC_TO_PBU 0x713
  43. #define ID_MC_TO_HMI 0x714
  44. #define ID_MC_TO_CDL 0x715
  45. #define ID_BMS_BC 0x720
  46. #define ID_BMS_TO_MC 0x721
  47. #define ID_BMS_TO_PBU 0x723
  48. #define ID_BMS_TO_HMI 0x724
  49. #define ID_BMS_TO_CDL 0x725
  50. #define ID_PBU_BC 0x730
  51. #define ID_PBU_TO_MC 0x731
  52. #define ID_PBU_TO_BMS 0x732
  53. #define ID_PBU_TO_CDL 0x735
  54. #define ID_HMI_BC 0x740
  55. #define ID_HMI_TO_MC 0x741
  56. #define ID_HMI_TO_BMS 0x742
  57. #define ID_HMI_TO_PBU 0x743
  58. #define ID_HMI_TO_CDL 0x745
  59. #define ID_CDL_BC 0x750
  60. #define ID_CDL_TO_MC 0x751
  61. #define ID_CDL_TO_BMS 0x752
  62. #define ID_CDL_TO_PBU 0x753
  63. #define ID_CDL_TO_HMI 0x754
  64. #define ID_TO_MC_FILTER (UWORD)0x701
  65. #define ID_TO_MC_MASK (UWORD)0x70F
  66. #define ID_BC_FILTER (UWORD)0x700
  67. #define ID_BC_MASK (UWORD)0x70F
  68. #define FRAME_BEGIN1 0x55
  69. #define FRAME_BEGIN2 0xAA
  70. #define FRAME_END 0xF0
  71. #define MODE_READ 0x11
  72. #define MODE_WRITE 0x16
  73. #define MODE_REPORT 0x0C
  74. #define ID_MODE_STANDARD (0x0U)
  75. #define ID_MODE_EXTENDED (0x1U)
  76. /************************************************************************
  77. TypeDefs & Structure defines (N/A)
  78. *************************************************************************/
  79. // 天腾
  80. typedef struct
  81. {
  82. ULONG ulBufID; // ID
  83. UBYTE ucBufSize; //缓冲区数组:缓冲区大小
  84. UBYTE ucBufWrInde; //缓冲区数组:写索引
  85. UBYTE ucBufRdInde; //缓冲区数组:读索引
  86. UBYTE ucBufCnt; //缓冲区数组:数据计数
  87. UBYTE ucBufOvf; //缓冲区数组:溢出标志,注意清零
  88. UBYTE *pcBufAddr; //缓冲区数组:首地址指针变量
  89. ULONG DelayTimeCnt; //超时计时
  90. BOOL IsWaitRX_Flag; //超时等待数据标志
  91. } CAN_Buf_TypeDef;
  92. /************************************************************************
  93. Exported Variables
  94. *************************************************************************/
  95. #ifdef _CAN_C_
  96. CAN_EXT DL_MCAN_RxBufElement stRxMessage1;
  97. CAN_EXT DL_MCAN_RxBufElement *pRxMsg = &stRxMessage1;
  98. CAN_EXT DL_MCAN_TxBufElement stTxMessage1;
  99. CAN_EXT DL_MCAN_TxBufElement *pTxMsg = &stTxMessage1;
  100. CAN_EXT UBYTE can_ubMbox;
  101. CAN_EXT uint8_t CAN_RxBuf_PBU[255]; //用于接收PBU广播和发送给MC的数据
  102. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_PBU = {0, 255, 0, 0, 0, 0, CAN_RxBuf_PBU, 0, FALSE};
  103. CAN_EXT uint8_t CAN_RxBuf_BMS[255]; //用于接收BMS广播和发送给MC的数据
  104. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_BMS = {0, 255, 0, 0, 0, 0, CAN_RxBuf_BMS, 0, FALSE};
  105. CAN_EXT uint8_t CAN_RxBuf_HMI[255]; //用于接收HMI广播和发送给MC的数据
  106. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_HMI = {0, 255, 0, 0, 0, 0, CAN_RxBuf_HMI, 0, FALSE};
  107. CAN_EXT uint8_t CAN_RxBuf_CDL[255]; //用于接收CDL广播和发送给MC的数据
  108. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_CDL = {0, 255, 0, 0, 0, 0, CAN_RxBuf_CDL, 0, FALSE};
  109. #else
  110. CAN_EXT DL_MCAN_RxBufElement stRxMessage1;
  111. CAN_EXT DL_MCAN_RxBufElement *pRxMsg;
  112. CAN_EXT DL_MCAN_TxBufElement stTxMessage1;
  113. CAN_EXT DL_MCAN_TxBufElement *pTxMsg;
  114. CAN_EXT UBYTE can_ubMbox;
  115. CAN_EXT uint8_t CAN_RxBuf_PBU[255]; //用于接收PBU广播和发送给MC的数据
  116. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_PBU;
  117. CAN_EXT uint8_t CAN_RxBuf_BMS[255]; //用于接收BMS广播和发送给MC的数据
  118. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_BMS;
  119. CAN_EXT uint8_t CAN_RxBuf_HMI[255]; //用于接收HMI广播和发送给MC的数据
  120. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_HMI;
  121. CAN_EXT uint8_t CAN_RxBuf_CDL[255]; //用于接收CDL广播和发送给MC的数据
  122. CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_CDL;
  123. #endif
  124. /************************************************************************
  125. RAM ALLOCATION (N/A)
  126. *************************************************************************/
  127. /************************************************************************
  128. Exported Function Call Prototypes
  129. *************************************************************************/
  130. #ifdef _CAN_C_
  131. CAN_EXT void CAN_Rx_ISR(CAN_Buf_TypeDef *ptCANRx, uint8_t ucLength);
  132. CAN_EXT void CAN_SendData(uint32_t ID, uint32_t ID_mode, uint8_t *Data, uint16_t Length);
  133. CAN_EXT uint8_t CAN_ReadChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum);
  134. CAN_EXT void CAN_DelChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum);
  135. CAN_EXT void CAN_RxData_Process(CAN_Buf_TypeDef *ptCANRx, uint16_t TimeOutCnt);
  136. CAN_EXT void CanRx_Process(void);
  137. CAN_EXT uint32_t CRC32_Calculate(uint8_t *pData, uint16_t Length);
  138. #else
  139. CAN_EXT void CAN_Rx_ISR(CAN_Buf_TypeDef *ptCANRx, uint8_t ucLength);
  140. CAN_EXT void CAN_SendData(uint32_t ID, uint32_t ID_mode, uint8_t *Data, uint16_t Length);
  141. CAN_EXT uint8_t CAN_ReadChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum);
  142. CAN_EXT void CAN_DelChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum);
  143. CAN_EXT void CAN_RxData_Process(CAN_Buf_TypeDef *ptCANRx, uint16_t TimeOutCnt);
  144. CAN_EXT void CanRx_Process(void);
  145. CAN_EXT uint32_t CRC32_Calculate(uint8_t *pData, uint16_t Length);
  146. #endif
  147. void Can_voInitMC_Run();
  148. /************************************************************************
  149. Flag Define (N/A)
  150. *************************************************************************/
  151. #endif
  152. /************************************************************************
  153. Copyright (c) 2017 Welling Motor Technology(Shanghai) Co. Ltd.
  154. All rights reserved.
  155. *************************************************************************
  156. End of this File (EOF)!
  157. Do not put anything after this part!
  158. *************************************************************************/