Files
CCU621M/app/bms/bms模块说明.md

1.7 KiB
Raw Permalink Blame History

bms 模块说明

路径:app/bms/
返回主说明:README

1. 模块职责

  • 负责 BMS 通信报文收发与协议状态机处理;
  • 管理 BMS 充电阶段控制、超时处理与异常状态;
  • 提供与流程控制模块对接的 BMS 数据接口。

2. 关键文件

  • bms_task.c/h
  • bms_interface.c/h
  • sae1939.c/h

3. 功能说明

  • 周期接收/发送 BMS 报文并更新运行状态;
  • 维护关键定时器(超时、等待、状态切换计时);
  • 将 BMS 结果映射为流程层可用的控制/状态数据。

4. 调度与对外接口

该模块由 FreeRTOS 任务 BmsComm 周期运行(单位:ms),周期来自 app/app_init/app_init.c

  • BmsComm5ms(任务入口:v_bms_task(void *arg)

对外接口(来自 bms_task.h / bms_interface.h,列出主要用法入口):

  • uint16_t u16_bms_get_sys_para(U8_T gunNo, E_BMS_GET_PARA_TYPE e_type):读取 BMS 系统参数
  • uint16_t u16_bms_put_data(U8_T gunNo, E_BMS_PUT_DATA_TYPE e_type, U8_T u8_dataPara):设置/上报 BMS 数据(按 e_type 不同)
  • void v_bms_put_vin_str(U8_T u8_gunNo, U8_T *u8_vin, U8_T u8_len):写入 VIN 字符串
  • void v_bms_get_rt_time(Comm_Time *time):读取 BMS/系统时间(取决于实现)
  • U8_T u8_bms_get_cst(U8_T gunNo, U8_T *u8_data):读取充电阶段/状态相关值
  • void v_bms_get_pile_nun(U8_T *pilenum):读取桩侧枚举/数量(命名以代码为准)

5. 维护建议

  • 修改报文处理流程时需同步校验超时逻辑;
  • 与流程控制交互字段应保持枚举/状态码一致。

6. 关联文档