#ifndef _HEALTH_H__ #define _HEALTH_H__ #include #include "bsp/shark_bsp.h" /* * xxx_over_temp: 表示过高温(温度过高) * xxx_under_temp: 表示过低温(温度过低) */ typedef struct { uint32_t charger_over_voltage:1; uint32_t discharger_lower_voltage:1; //关闭大电流输出 uint32_t small_current_short:1; uint32_t load_current_short:1; //大电短路保护 uint32_t charger_current:1; //不需要 uint32_t discharger_current:1; uint32_t charger_over_current:1; uint32_t discharger_over_current:1; uint32_t res1 :1;//ST_TOTAL_CHRG uint32_t charger_cells_vol_diff_over:1; //充电cell的电压差异超过阈值 uint32_t power_save:1; uint32_t powerdown_lower_voltage:1; uint32_t charger_lower_temp:1; uint32_t discharger_lower_temp:1; uint32_t charger_over_temp:1; uint32_t discharger_over_temp:1; uint32_t sigle_cell_lower_voltage:1; //关闭大电流输出 uint32_t sigle_cell_over_voltage:1; uint32_t discharger_shutpower_voltage:1; //关闭动力 uint32_t discharger_cell_shutpower_voltage:1; //关闭动力 uint32_t is_work_temp_lower:1; uint32_t res2:11; uint8_t internal_resistance[CELLS_NUM]; //cell's internal resistance }bms_health_t; bms_health_t *bms_health(void); void health_init(void); void check_current_state(void); void check_voltage_state(void); void check_temp_state(void); void health_process_aux_lock(void); #endif /* _HEALTH_H__ */