health.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef _HEALTH_H__
  2. #define _HEALTH_H__
  3. #include <stdint.h>
  4. #include "bsp/shark_bsp.h"
  5. /*
  6. * xxx_over_temp: 表示过高温(温度过高)
  7. * xxx_under_temp: 表示过低温(温度过低)
  8. */
  9. typedef struct {
  10. uint32_t charger_over_voltage:1;
  11. uint32_t discharger_lower_voltage:1; //关闭大电流输出
  12. uint32_t small_current_short:1;
  13. uint32_t load_current_short:1; //大电短路保护
  14. uint32_t charger_current:1; //不需要
  15. uint32_t discharger_current:1;
  16. uint32_t charger_over_current:1;
  17. uint32_t discharger_over_current:1;
  18. uint32_t res1 :1;//ST_TOTAL_CHRG
  19. uint32_t charger_cells_vol_diff_over:1; //充电cell的电压差异超过阈值
  20. uint32_t power_save:1;
  21. uint32_t powerdown_lower_voltage:1;
  22. uint32_t charger_lower_temp:1;
  23. uint32_t discharger_lower_temp:1;
  24. uint32_t charger_over_temp:1;
  25. uint32_t discharger_over_temp:1;
  26. uint32_t sigle_cell_lower_voltage:1; //关闭大电流输出
  27. uint32_t sigle_cell_over_voltage:1;
  28. uint32_t discharger_shutpower_voltage:1; //关闭动力
  29. uint32_t discharger_cell_shutpower_voltage:1; //关闭动力
  30. uint32_t is_work_temp_lower:1;
  31. uint32_t res2:11;
  32. uint8_t internal_resistance[CELLS_NUM]; //cell's internal resistance
  33. }bms_health_t;
  34. bms_health_t *bms_health(void);
  35. void health_init(void);
  36. void check_current_state(void);
  37. void check_voltage_state(void);
  38. void check_temp_state(void);
  39. void health_process_aux_lock(void);
  40. #endif /* _HEALTH_H__ */