var.c 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. #include "var.h"
  2. MC_RunInfo_Struct_t MC_RunInfo; //MC运行信息
  3. MC_ErrorCode_Struct_t MC_ErrorCode; //MC故障代码
  4. MC_VerInfo_Struct_t MC_VerInfo; //MC版本信息
  5. OnLine_Status_Struct_t DeviceOnLine_Status; //设备在线检测结果
  6. BMS_RunInfo_Struct_t BMS_RunInfo; //BMS运行信息
  7. Device_CheckInfo_Struct_t BMS_CheckInfo; //BMS授权校验
  8. BMS_DesignInfo_Struct_t BMS_DesignInfo; //BMS设计信息
  9. Device_CheckInfo_Struct_t PBU_CheckInfo; //PBU授权校验
  10. PBU_ConfigParam_Struct_t PBU_ConfigParam; //PBU配置参数
  11. Device_CheckInfo_Struct_t HMI_CheckInfo; //HMI授权校验
  12. MC_ConfigParam_Struct_t MC_ConfigParam; //MC配置参数
  13. MC_TorqueCorrectParam_Struct_t MC_TorqueCorrectParam; //力矩传感器校正信息
  14. MC_MotorParam_Struct_t MC_MotorParam; //马达参数
  15. MC_RunLog_Struct_t MC_RunLog; //MC历史信息
  16. uint8_t Secret_Key[8]; //授权验证密钥
  17. MC_MacInfo_Struct_t MC_MacInfo; //MC生产信息
  18. uint8_t UserString1[16]; //MC自定义字符串1
  19. uint8_t UserString2[16]; //MC自定义字符串2
  20. uint8_t UserString3[16]; //MC自定义字符串3
  21. Device_CheckInfo_Struct_t MC_CheckInfo; //MC授权信息
  22. MC_TE_SensorStatus_Struct_t MC_TE_SensorStatus; //TE传回传感器状态
  23. MC_TE_SensorData_Struct_t MC_TE_SensorData; //发给TE传感器结果
  24. MC_AssistParam_Struct_t MC_AssisParam; //助力输出计算参数
  25. uint8_t MC_WalkMode_Persent = 100; //推行模式最高转速百分比设置
  26. #if INSERT_FAULT_TEST_FLAG
  27. uint8_t InsertFault_Flag = INSERT_FAULT_NC;
  28. #endif
  29. //BMS默认设计信息
  30. const BMS_DesignInfo_Struct_t BMS_DesignInfo_Default =
  31. {
  32. (uint16_t)10000, //设计容量
  33. (uint8_t)36, //设计电压
  34. {0,0,0,0,0,0,0,0} //电芯型号
  35. };
  36. //PBU默认配置
  37. const PBU_ConfigParam_Struct_t PBU_ConfigParam_Default =
  38. {
  39. 4, //档位数量
  40. MC_SUPPORT_DISABLE, //是否支持无PBU操作
  41. };
  42. //MC默认配置参数,占用32bytes
  43. const MC_ConfigParam_Struct_t MC_ConfigParam_Default =
  44. {
  45. (uint8_t)0, //预留
  46. (MC_StarMode_Struct_t)MC_StarMode_NORM, //启动模式
  47. (uint16_t)100, //停机时间 ms
  48. (uint8_t)25, //限速 km/h
  49. (uint8_t)3, //下降速度
  50. (uint8_t)14, //前齿数 T
  51. (uint8_t)9, //后齿数 T
  52. (uint8_t)17, //限流 A
  53. (uint8_t)135, //高温预警值 +40℃
  54. (uint8_t)165, //高温保护值 +40℃
  55. (MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE, //0x55-不支持,0x-AA支持
  56. (uint8_t)219, //轮胎周长 cm
  57. (uint8_t)0, //系列号,
  58. {100,100}, //ECO
  59. {100,100}, //NORM
  60. {100,100}, //SPORT
  61. {100,100}, //TURBO
  62. {100,100} //SMART
  63. };
  64. const MC_TorqueCorrectParam_Struct_t MC_TorqueCorrectParam_Default =
  65. {
  66. (uint16_t)400,
  67. (uint8_t)100
  68. };
  69. //MC默认马达参数,占用16bytes
  70. const MC_MotorParam_Struct_t MC_MotorParam_Default =
  71. {
  72. (uint16_t)250, //W
  73. (uint16_t)1600, //rpm
  74. (uint16_t)200, //mohm
  75. (uint16_t)10, //mH
  76. (uint16_t)10, //mH
  77. (uint16_t)36000, //mV
  78. (uint8_t)36 //V
  79. };
  80. //MC默认历史信息,占用48bytes
  81. const MC_RunLog_Struct_t MC_RunLog_Default =
  82. {
  83. (uint32_t)1, //开机次数
  84. (uint32_t)0, //运行总时间 min
  85. (uint16_t)0, //过流保次数
  86. (uint16_t)0, //低压保护次数
  87. (uint16_t)0, //高压保护次数
  88. (uint16_t)0, //堵转保护次数
  89. (uint16_t)0, //温度保护次数
  90. (uint16_t)0, //速度传感器错误次数
  91. (uint16_t)0, //力矩传感器错误次数
  92. (uint16_t)0, //霍尔传感器错误次数
  93. (uint16_t)0, //马达相线错误次数
  94. (uint16_t)0, //NTC错误次数
  95. (uint16_t)0, //BMS校验错误次数
  96. (uint16_t)0, //HMI校验错误次数
  97. (uint16_t)0, //PBU校验错误次数
  98. (uint8_t)65, //PCB历史最高温
  99. (uint8_t)65, //PCB历史最低温
  100. (uint32_t)0, //运行总里程
  101. (uint8_t)65, //绕组历史最高温
  102. (uint8_t)65, //绕组历史最低温
  103. (uint8_t)65, //MCU历史最高温
  104. (uint8_t)65 //MCU历史最低温
  105. };
  106. //默认密钥,占用8bytes
  107. const uint8_t Secret_Key_Default[8] = "!@#$%^&*";
  108. //ECO档位助力参数
  109. const nGearParam_Struct_t GearParam_Default_ECO =
  110. {
  111. (uint16_t)377,
  112. (uint16_t)0,
  113. (uint16_t)100,
  114. (uint16_t)840,
  115. (uint8_t)1,
  116. (uint8_t)1,
  117. (uint16_t)338
  118. };
  119. //NORM档位助力参数
  120. const nGearParam_Struct_t GearParam_Default_NORM =
  121. {
  122. (uint16_t)795,
  123. (uint16_t)0,
  124. (uint16_t)100,
  125. (uint16_t)1200,
  126. (uint8_t)2,
  127. (uint8_t)1,
  128. (uint16_t)605
  129. };
  130. //SPORT档位助力参数
  131. const nGearParam_Struct_t GearParam_Default_SPORT =
  132. {
  133. (uint16_t)1504,
  134. (uint16_t)0,
  135. (uint16_t)100,
  136. (uint16_t)1590,
  137. (uint8_t)3,
  138. (uint8_t)1,
  139. (uint16_t)1003
  140. };
  141. //TURBO档位助力参数
  142. const nGearParam_Struct_t GearParam_Default_TURBO =
  143. {
  144. (uint16_t)2354,
  145. (uint16_t)0,
  146. (uint16_t)100,
  147. (uint16_t)2100,
  148. (uint8_t)5,
  149. (uint8_t)1,
  150. (uint16_t)1024
  151. };
  152. //SMART档位助力参数
  153. const nGearParam_Struct_t GearParam_Default_SMART =
  154. {
  155. (uint16_t)1000,
  156. (uint16_t)1460,
  157. (uint16_t)100,
  158. (uint16_t)2100,
  159. (uint8_t)4,
  160. (uint8_t)1,
  161. (uint16_t)1024
  162. };
  163. //全局函数定义
  164. //变量初始化
  165. void Var_Init(void)
  166. {
  167. //MC故障码初始化为0
  168. MC_ErrorCode.Code = 0;
  169. //TE故障码初始化为0
  170. MC_TE_SensorStatus.TE_ErrorCode.Code = 0;
  171. //设备在线检测结果初始化为离线
  172. DeviceOnLine_Status.Status = 0x07;
  173. //BMS设计信息初始化为默认值
  174. memcpy((uint8_t*)&BMS_DesignInfo.Capacity, (uint8_t*)&BMS_DesignInfo_Default.Capacity, sizeof(BMS_DesignInfo_Struct_t));
  175. //PBU配置参数初始化为默认值
  176. memcpy((uint8_t*)&PBU_ConfigParam.GearsNum, (uint8_t*)&PBU_ConfigParam_Default.GearsNum, sizeof(PBU_ConfigParam_Struct_t));
  177. //MC版本信息初始化,Mode和SN从EEPROM读取
  178. strcpy(MC_VerInfo.HW_Version, (char*)"V0r3r1_20190307.");//QD004C,增加修改同步IO和同步时钟的跳线
  179. strcpy(MC_VerInfo.FW_Version, (char*)"V0r1r0_20190530.");
  180. //MC校验信息初始化,校验码从EEPROM读取
  181. MC_CheckInfo.MAC_ID[0] = *(__IO uint32_t*)(0x1FFFF7E8);
  182. MC_CheckInfo.MAC_ID[1] = *(__IO uint32_t*)(0x1FFFF7EC);
  183. MC_CheckInfo.MAC_ID[2] = *(__IO uint32_t*)(0x1FFFF7F0);
  184. //MC存储参数初始化为默认值
  185. strncpy((char*)MC_CheckInfo.CheckCode, (char*)MC_CheckInfo.MAC_ID, 12);
  186. memcpy((uint8_t*)&MC_ConfigParam.RS1, (uint8_t*)&MC_ConfigParam_Default.RS1, sizeof(MC_ConfigParam_Default));
  187. memcpy((uint8_t*)&MC_TorqueCorrectParam.StarData, (uint8_t*)&MC_TorqueCorrectParam_Default.StarData, sizeof(MC_TorqueCorrectParam_Default));
  188. memcpy((uint8_t*)&MC_MotorParam.Rate_Power, (uint8_t*)&MC_MotorParam_Default.Rate_Power, sizeof(MC_MotorParam_Default));
  189. memcpy(Secret_Key, Secret_Key_Default, sizeof(Secret_Key_Default));
  190. memcpy((uint8_t*)&MC_RunLog.PowerOnCnt, (uint8_t*)&MC_RunLog_Default.PowerOnCnt, sizeof(MC_RunLog_Default));
  191. }
  192. //根据电机型号系列号调用不同的助力参数
  193. void UpdateGearParam(uint8_t SerialNum)
  194. {
  195. switch(SerialNum)
  196. {
  197. case 1:
  198. {
  199. break;
  200. }
  201. case 2:
  202. {
  203. break;
  204. }
  205. case 3:
  206. {
  207. break;
  208. }
  209. case 4:
  210. {
  211. break;
  212. }
  213. default:
  214. {
  215. //助力参数初始化
  216. memcpy((uint8_t*)&MC_AssisParam.Gear_ECO.Gain_K, (uint8_t*)&GearParam_Default_ECO.Gain_K, sizeof(nGearParam_Struct_t));
  217. memcpy((uint8_t*)&MC_AssisParam.Gear_NORM.Gain_K, (uint8_t*)&GearParam_Default_NORM.Gain_K, sizeof(nGearParam_Struct_t));
  218. memcpy((uint8_t*)&MC_AssisParam.Gear_SPORT.Gain_K, (uint8_t*)&GearParam_Default_SPORT.Gain_K, sizeof(nGearParam_Struct_t));
  219. memcpy((uint8_t*)&MC_AssisParam.Gear_TURBO.Gain_K, (uint8_t*)&GearParam_Default_TURBO.Gain_K, sizeof(nGearParam_Struct_t));
  220. memcpy((uint8_t*)&MC_AssisParam.Gear_SMART.Gain_K, (uint8_t*)&GearParam_Default_SMART.Gain_K, sizeof(nGearParam_Struct_t));
  221. break;
  222. }
  223. }
  224. }