9ceb218f80
Co-authored-by: Cursor <cursoragent@cursor.com>
47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# bms 模块说明
|
||
|
||
> 路径:`app/bms/`
|
||
> 返回主说明:[README](../../README.md)
|
||
|
||
## 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`:
|
||
|
||
- `BmsComm`:`5ms`(任务入口:`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. 关联文档
|
||
|
||
- 主索引:[README](../../README.md)
|