chore: 更新修改日志到V1.1.7并完成低电流待机与并行握手优化

1. 关闭南向寄存器写命令调试日志
2. 新增SINK_LOAD_ENABLE_MIN_MA宏限制最低带载电流为100mA
3. 新增SINK_WORK_LOAD_STANDBY等4种低电流待机工作状态
4. 重构协议电压/电流变化处理逻辑,改为软卸载不切继电器
5. 实现南北向握手并行执行,降低0x20查询频率
6. 新增chrg_sink_load_should_start和chrg_sink_handshake_north_ready接口
7. 优化RUNING状态命令顺序,避免主继电器重复断开
8. 更新编译日志,修正代码尺寸数据
This commit is contained in:
wrh
2026-08-08 20:09:18 +08:00
parent b96902f9b9
commit 8b7f29d0fc
8 changed files with 676 additions and 158 deletions
+162
View File
@@ -1,5 +1,167 @@
# 修改日志
## V1.1.7 - 2026-08-08
### 修改主题
并行执行Sink完整握手中的南向低电流确认与北向协议/CC设置。
### 主要修改
- 南向安全批次完成并收到辅助继电器回码、建立量测基线后,立即允许北向设置协议和CC线。
- 南向实际电流连续两次不大于 `100mA` 的确认过程与北向协议/CC设置并行执行。
- 北向进入 `GET_SINK_VC` 后,只有低电流确认完成且CC后的 `200ms` 查询保护时间到期,才发送第一条 `0x20`。
- 电压稳定后再发送 `ALL_REL_ON -> 目标电流 -> WORK_START`,防止协议协商期间提前带载。
### 涉及文件
- `apps/chrg/applications/thread/chrg_roll_nor.c`
- `apps/chrg/applications/utils/chrg_sink.c`
- `apps/chrg/applications/utils/chrg_sink.h`
### 编译验证
- Keil MDK 编译结果:`0 Error(s), 0 Warning(s)`。
## V1.1.5 - 2026-08-08
### 修改主题
协议电压和协议电流变化统一采用软卸载重发协议流程。
### 主要修改
- 协议类型、CC线和协议组号变化仍进入完整握手并切换南向继电器。
- 协议电压、协议电流单独变化或同时变化时,只发送 `WORK_STOP`,不关闭南向继电器。
- 软卸载不再额外发送 `CURRENT=0`,仅通过实际电流连续两次不大于 `100mA`确认电子负载已停止。
- 协议重新生效且电压稳定后,由RUNNING先写入实际负载电流,再发送 `WORK_START`。
### 涉及文件
- `apps/chrg/applications/thread/chrg_comm.c`
- `apps/chrg/applications/utils/chrg_sink.c`
### 编译验证
- Keil MDK 编译结果:`0 Error(s), 0 Warning(s)`。
## V1.1.4 - 2026-08-07
### 修改主题
调整负载低电流启动时的继电器和工作命令顺序。
### 主要修改
- 设定电流为 `0A` 或低于 `100mA` 时,协议握手仍正常执行。
- 电压达到目标后发送 `ALL_REL_ON`,确保主继电器打开。
- 主继电器打开后继续发送 `WORK_STOP` 和 `CURRENT=0`,保持电子负载不带载。
- 已经处于运行状态切换到低电流时,沿用原有停止流程,不重复切换继电器。
### 涉及文件
- `apps/chrg/applications/utils/chrg_sink.c`
### 编译验证
- Keil MDK 编译结果:`0 Error(s), 0 Warning(s)`。
## V1.1.3 - 2026-08-07
### 修改主题
并行执行Sink南向初始化与北向握手,并优化握手查询和RUNING继电器时序。
### 主要修改
- `INIT`将 `FU_REL_ON -> CURRENT=0 -> MODE -> VON` 作为一个有序南向批次提交。
- 南向初始化批次成功入队后立即打开北向Sink继电器、设置 `enable=1` 并开始协议握手。
- `SINK_WORK_INIT_AUX_WAIT`改为后台监控南向初始化,不再阻塞北向协议、CC和电压查询。
- 南向初始化失败重试时保留当前北向 `sub`,不重复拉回协议设置起点。
- 协议或CC有效回码后,首条 `0x20` 等待 `200ms`;电压未稳定时后续每 `100ms` 查询一次。
- 一帧通过CRC、ID、命令和配置版本校验的电压达到目标后立即进入 `RUNING`,不再等待第二帧。
- 进入稳定运行后立即解除查询节流,恢复北向正常轮询速度。
- `RUNING`删除重复的 `FU_REL_ON`,调整为 `ALL_REL_ON -> 目标负载值 -> WORK_START`。
### 涉及文件
- `apps/chrg/applications/utils/chrg_sink.c`
- `apps/chrg/applications/thread/chrg_roll_nor.c`
- `apps/chrg/applications/thread/chrg_north.c`
### 编译验证
- Keil MDK 编译结果:`0 Error(s), 0 Warning(s)`。
### 硬件验证
- 待确认南向初始化命令与北向协议/CC设置并行执行且互不重置状态。
- 待确认首条和后续 `0x20` 间隔分别约为 `200ms` 和 `100ms`。
- 待确认进入 `RUNING` 时不再发送 `FU_REL_ON`,主继电器不会被重复断开。
## V1.1.2 - 2026-08-07
### 修改主题
降低Sink协议握手阶段的北向电压电流查询频率。
### 主要修改
- 新增 `SINK_HANDSHAKE_QUERY_INTERVAL_MS`,设置为 `200ms`。
- Sink协议或CC设置收到有效回码后,不立即发送或连续快速发送 `0x20` 查询。
- CC路径的 `200ms` 从有效 `0x17` 回码时刻开始计时,包含原有 `50ms` CC稳定保护。
- 协议握手、软恢复等待和掉电恢复监控阶段的 `0x20` 查询按每 `200ms` 一次执行。
- 北向量测连续两次达到稳定条件后解除节流,`RUNING` 和低电流待机恢复正常查询频率。
- 仅重发协议的 `IDX_SET_SINK_PD_ONLY` 路径同样启动 `200ms` 查询等待。
- 设置协议和CC命令仍然按有效回码、超时和原有重试机制处理。
### 涉及文件
- `apps/chrg/applications/thread/chrg_roll_nor.c`
### 编译验证
- Keil MDK 编译结果:`0 Error(s), 0 Warning(s)`。
### 硬件验证
- 待观察协议/CC设置后 `0x20` 的发送间隔是否稳定为不小于 `200ms`。
- 待验证电压连续两次稳定后是否恢复正常量测频率。
## V1.1.1 - 2026-08-07
### 修改主题
增加普通负载最低带载电流控制,低电流时保持协议在线但关闭电子负载。
### 主要修改
- 新增 `SINK_LOAD_ENABLE_MIN_MA`,恒流负载设定低于 `100mA` 时禁止发送 `WORK_START`。
- 最低带载门限只判断南向负载电流 `loadc`,不影响北向协议电流 `pro_loadc` 和协议握手。
- 首次启动或完整重握手后为低电流时,发送 `WORK_STOP -> CURRENT=0` 并保持主继电器关闭。
- 运行中由有效电流降至低电流时,发送 `WORK_STOP -> CURRENT=0`,保持协议、CC和继电器不变。
- 运行中低电流待机恢复有效电流时,只发送目标电流和 `WORK_START`,不重新握手或切换继电器。
- 主继电器未打开的低电流待机使用独立 `SINK_WORK_LOAD_START` 恢复入口,避免被 `RUNING` 状态去重。
- 低电流待机期间仅修改协议电压时不重复卸载,并保持原有主继电器状态语义。
- 将 COM 端运行电流跨门限判断封装为 `chrg_comm_handle_sink_load_current()`,避免生效分支继续膨胀。
- 北向解析将两种低电流待机状态作为稳定状态,不因实际电流为零反复进入 `RUNING`。
### 涉及文件
- `apps/chrg/applications/utils/chrg_sink.h`
- `apps/chrg/applications/utils/chrg_sink.c`
- `apps/chrg/applications/thread/chrg_comm.c`
- `apps/chrg/applications/thread/chrg_north.c`
### 编译验证
- Keil MDK 编译结果:`0 Error(s), 0 Warning(s)`。
### 硬件验证
- 待验证 `20V/3A -> 20V/0A -> 20V/3A` 的南向命令顺序和协议保持情况。
- 待验证首次以低于 `100mA` 的电流启动时,北向握手正常且南向不执行 `WORK_START`。
## V1.1.0 - 2026-08-07
### 修改主题