BMS源码整体架构(自己学习)
(3) 应用层:BMS_Xxx 系列函数是主体功能实现的关键,位于源码目录 xx 的 xx.c 中,便于后续维护拓展。(6) 硬件层:I2C 总线驱动及相关 GPIO 控制构成根基,保障硬件运行稳定,确保数据传输与控制无误。(5) 硬件层:BQ769X0_系列函数借助 I2C 协议与 BQ 芯片交互,封装操作,为上层供接口。(4) 中间层:BMS_Halxxx 系列函数衔接硬件底层与应用层,隔离复
·
文章目录
整体架构流程
提示:只是为了梳理清楚流程
int main(void)
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
MX_CAN_Init();
BMS_SysInitialize();
I2C_BusInitialize();
BQ769X0_Initialize(&InitData);
/***********************任务一:电池监控***********************************/
BMS_MonitorInit(); // 电池监控初始化
BMS_MonitorTaskEntry(); //监控电池各项数据
BMS_MonitorBattery();
/****************1.单个电池电压********************/
Bms_HalMonitorCellVoltage(); //单个电池电压
BQ769X0_UpdateCellVolt(); //设置更新单体电压的频率
BQ769X0_ReadBlockWithCRC();
I2C_TransferMessages();
I2C_INFO();
BubbleSort(); //单体电池电压排序
/****************2.单个电池电压********************/
Bms_HalMonitorBatteryVoltage(); //电池组电压
BQ769X0_UpadteBatVolt(); //设置更新总电压的频率
BQ769X0_ReadRegisterWordWithCRC();
I2C_TransferMessages();
LOG_E();
/****************3.电池温度********************/
Bms_HalMonitorCellTemperature(); //电池温度
BQ769X0_UpdateTsTemp(); //设置更新热敏电阻的温度的频率
BQ769X0_WriteRegisterByteWithCRC();
LOG_E();
/****************4.电流采样********************/
Bms_HalMonitorBatteryCurrent(); //电流采样
BQ769X0_UpdateCurrent(); //设置更新总电流的频率
BQ769X0_ReadRegisterWordWithCRC();
BMS_MonitorSysMode(); //监控系统模式(放电、充电、睡眠)
/***********************任务二:电池保护***********************************/
BMS_ProtectInit(); //电池保护初始化
BMS_ProtectTaskEntry();
BMS_ProtectTiggerMonitor();
BMS_ChargeMonitor(); // 充电监控:过流、过温、低温
BMS_DischargeMonitor(); //放电监控:过流、过温、低温
BMS_ProtectRelieveMonitor(); //保护解除监控
rt_thread_mdelay(PROTECT_TASK_PERIOD);
/***********************任务三:电池分析***********************************/
BMS_AnalysisInit(); //电池分析初始化
BMS_AnalysisTaskEntry(); //电池状态分析任务线程入口
BMS_AnalysisCapAndSocInit(void); //容量和SOC上电初始化
BMS_AnalysisEasy();// 最大电压差 平均电压 实时功率 最大和最小电压
BMS_AnalysisCalCap();//实时校准容量涉及因素:温度、完整充放电、老化等等
BMS_AnalysisSocCheck();// soc检查
rt_thread_mdelay(ANALYSISI_TASK_PERIOD);
/***********************任务四:能量管理***********************************/
BMS_EnergyInit(); //能量管理初始化
BMS_EnergyTaskEntry();
BMS_EnergyBalanceManage(void); //均衡管理
BMS_EnergyChgDsgManage(void); //充放电管理
/***********************任务五:信息管理***********************************/
BMS_InfoInit(); //信息管理初始化
BMS_InfoTaskEntry();
BMS_InfoPrintf(); //实时打印BMS信息
/***********************任务六:通信管理***********************************/
BMS_CommInit(); //通信管理初始化
项目总体软件架构剖析综述
(1) 应用层:含 6 大功能模块,由 6 个 task 实现,保障功能完整独立。
(2) 应用层:利用全局变量 BMS_MonitorData 等,搭建任务间数据交互桥梁,确保系统协同。
(3) 应用层:BMS_Xxx 系列函数是主体功能实现的关键,位于源码目录 xx 的 xx.c 中,便于后续维护拓展。
(4) 中间层:BMS_Halxxx 系列函数衔接硬件底层与应用层,隔离复杂关联,提升可维护性。
(5) 硬件层:BQ769X0_系列函数借助 I2C 协议与 BQ 芯片交互,封装操作,为上层供接口。
(6) 硬件层:I2C 总线驱动及相关 GPIO 控制构成根基,保障硬件运行稳定,确保数据传输与控制无误。
更多推荐



所有评论(0)