docs: 新增电源流程文档并更新代码版本号及注释

新增 docs/电源流程.md,记录电源各阶段指令流向
更新多个源文件的版本号从 V1.1.24 到对应版本
修改 chrg_rel.c 注释补充继电器包含类型
修改 chrg_source.c、chrg_lcd.c 中部分子命令定义
This commit is contained in:
wrh
2026-09-28 11:54:25 +08:00
parent fc3da8b1cb
commit 3e07e2cdd6
36 changed files with 94 additions and 39 deletions
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_fal.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 初始化片上FLASH存储驱动,参数读/写FLASH接口实现;
升级数据包写入实现;日志写入FLASH实现。
版本历史 : 创建原始版本
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_fal.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 提供参数读/写FLASH接口。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_gpio.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 一般性 GPIO 读写操作: 管脚设置,读取等
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_gpio.h
完成日期 :
当前版本号 : V1.1.24
主要功能 :
GPIO口宏定义。
版本历史 : 创建原始版本
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_led.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 采用系统软件定时器驱动多路GPIO
LED灯,实现LED等工作模式初始化,闪烁方式等的功能。
版本历史 : 创建原始版本
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_led.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 控制LED灯工作模式。
版本历史 : 创建原始版本
说明 :
+1 -2
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_rel.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : sink/source 切换继电器操作。
版本历史 : 创建原始版本
说明 :
@@ -28,7 +27,7 @@ struct chrg_rel_t chrgrel[TOTAL_NOR_CHS] = {
输入参数: ch: 通道索引 id: sink/source
输出参数: -
返回说明: -
其它说明: -
其它说明: -包含D+D-,CC1,CC2继电器
*****************************************************************/
void chrg_nor_sw_rel (eIDX_NOR_CH ch, eIDX_ID id)
{
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_rel.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : sink/source 切换继电器操作。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_switch.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : SN74LV4052APW 选通操作接口。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_switch.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : SN74LV4052APW 选通操作接口。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_tmr.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 芯片内支持的高精度(us级)硬件定时器操作实现:启动、停止、回调等接口。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_tmr.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 高精度(us级)硬件定时器调用接口:启动、停止、读取时刻等接口。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_tty.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现串口设备创建、销毁、配置、读取数据、发送数据等接口函数。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_tty.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 串口设备调用接口:创建、销毁、配置、读取数据、发送数据等接口。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_vcom.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现USB虚拟串口作为控制终端。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_vcom.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现USB虚拟串口作为控制终端。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_wdt.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现芯片内部看门狗初始化以及喂狗函数。
版本历史 : 创建原始版本
说明 :
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_wdt.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现芯片内部看门狗初始化以及喂狗函数。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_comm.h
完成日期 :
当前版本号 : V1.1.31
主要功能 : 实现对外通讯协议 MODBUS 服务端,以独立线程等待处理响应请求数据。
版本历史 : 创建原始版本
说明 :
+2 -3
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_lcd.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现与显示屏交互,向屏更新数据与接收屏控制数据,以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -49,7 +48,7 @@ void chrg_sou_stop(eIDX_SOU_CH ch,struct chrg_switch_t *pSW,struct chrg_north_t
}
else if(pSW->id == ID_SINK){
pSW->sink.On_work = 0;
pSW->sub = IDX_SET_SINK_WORK_STATE;
pSW->sub = IDX_GET_SINK_VC;
}
pSOU->online[ch] = 0;
#if LCD_OPEN
@@ -96,7 +95,7 @@ void chrg_set_CC(rt_uint8_t ch,struct chrg_switch_t *pSW){
void chrg_roll_set_cv(eIDX_NOR_CH ch,struct chrg_switch_t *pSW,rt_uint8_t CV_flag){
if(CV_flag ==1) chrg_set_CV(ch,pSW);
else chrg_set_CC(ch,pSW);
pSW->sub = IDX_SET_SOURCE_ID;
pSW->sub = IDX_GET_SOURCE_VC;
}
/*****************************************************************
函数名称: chrg_lcd_parse
-1
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_lcd.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现与显示屏交互,向屏更新数据与接收屏控制数据。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_north.h
完成日期 :
当前版本号 : V1.1.39
主要功能 : 实现北向通信交互,包括接收命令解析,发送请求命令,切换通路。以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_roll_sou.c
完成日期 :
当前版本号 : V1.1.36
主要功能 : 实现南向通信轮巡请求命令。以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_roll_sou.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现南向通信轮巡请求命令。以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_south.c
完成日期 :
当前版本号 : V1.1.31
主要功能 : 实现南向通信交互,包括接收命令解析,发送请求命令,切换通路。以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_south.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 实现南向通信交互,包括接收命令解析,发送请求命令,切换通路。以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_thread.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 启动多个业务线程
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_thread.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 统一管理业务线程,业务线程信息定义。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_eload.c
完成日期 :
当前版本号 : V1.1.34
主要功能 : 源载命令数据解析,封装,读写请求。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_eload.h
完成日期 :
当前版本号 : V1.1.34
主要功能 : 源载命令数据解析,封装,读写请求,寄存器定义,数据结构定义。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_north_pkg.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 北向数据编码、解码。
版本历史 : 创建原始版本
说明 :
+1 -2
View File
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_source.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 北向数据source请求数据填充及发送。
版本历史 : 创建原始版本
说明 :
@@ -324,7 +323,7 @@ static int chrg_source_work_stop(eIDX_SOU_CH idx, struct chrg_switch_t *pSW)
pNOR->enable[idx] = 0;
pSOU->online[idx] = 0;
chrg_nor_sw_rel((eIDX_NOR_CH)idx, 0);
pSW->sub = IDX_SET_SOURCE_STOP_STATE;
pSW->sub = IDX_GET_SOURCE_VC;
pSW->source.work_mode = SOURCE_WORK_WAIT;
return 0;
}
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_source.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 北向数据source请求数据填充及发送,命令字定义。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_utils.c
完成日期 :
当前版本号 : V1.1.24
主要功能 : 一些通用数据封装,功能接口。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,6 @@
/****************************************************************************
文件名称 : chrg_utils.h
完成日期 :
当前版本号 : V1.1.24
主要功能 : 一些通用数据封装,功能接口。
版本历史 : 创建原始版本
说明 :
+90
View File
@@ -0,0 +1,90 @@
# 电源流程
本文按当前代码记录每个通道的实际指令流向。南向为功率板 Modbus 指令;北向为协议板命令。北向配置命令收到匹配回码后才推进状态。
## 电源初始化/停止后重新启动
```text
上位机 PARAM_EFFECT(电源启动)
-> Source INIT
-> 南向批次:REG_ELOAD = ELOAD_SOURCE
-> 南向批次:REG_MODE = CV_mode
-> 南向批次:REG_REL_ON = 0x03
-> 南向批次:REG_CURRENT_OUT + 1 = 协议最大电流
-> 南向批次:REG_WORK = WORK_START
-> 北向继电器:chrg_nor_sw_rel(ch, ID_SOURCE)
接通该通道的 D+/D-、CC Source 路径
-> 等待整组南向初始化命令回码
-> [标准协议 PRO_NONE]
南向:写入目标电压,进入 RUNING
-> [快充协议]
北向:设置电源协议(0xD0)
等待 0xD0 回码后 100ms
北向:设置目标 CC
北向:0x20 查询协商电压/电流
北向量测解析后,南向写入最新输出电压
```
快充初始化时功率板启动电压会先置为 0,避免沿用上一次协商电压;启动保护电流使用协议最大电流。
## 运行中同类别协议或 CC 切换
适用于 PD 到 PD、非 PD 到非 PD,或仅 CC 改变。
```text
上位机 PARAM_EFFECT
-> Source PROTOCOL_SWITCH
-> 南向:REG_VOLTAGE_OUT + 1 = 0
-> [标准协议] 同一南向批次继续写 REG_MODE、REG_CURRENT_OUT + 1
-> 北向:设置新协议(0xD0)
-> 等待 0xD0 回码后 100ms
-> 北向:设置目标 CC
-> 北向:0x20 查询协商电压/电流
-> 北向量测解析后,南向写入新的输出电压
```
当前实现中,南向 0V 命令成功入队后就允许继续北向协议设置;不会等待该条南向命令的回码。此流程不会关闭南向继电器,也不会断开北向 D+/D-、CC 继电器。
## PD 与非 PD 跨类别切换
```text
上位机 PARAM_EFFECT
-> 取消本通道尚未完成的南向批次
-> 南向:REG_WORK = WORK_STOP
-> 等待南向回码
-> 南向:REG_REL_ON = ALL_REL_OFF
-> 等待南向回码
-> 北向继电器断开:chrg_nor_sw_rel(ch, 0)
断开该通道 D+/D-、CC 路径
-> 北向:Source RESET
-> 等待 RESET 回码
-> 再执行 Source INIT
-> 北向:设置协议(0xD0)
-> 等待 0xD0 回码后 100ms
-> 北向:设置目标 CC
-> 北向:0x20 查询协商结果
```
跨类别切换是当前唯一会主动断开北向 D+/D-、CC 继电器的协议切换路径。
## 停止电源
```text
上位机停止
-> 南向批次:关闭两路功率继电器
-> 南向批次:输出电压清零
-> 南向批次:REG_WORK = WORK_STOP
-> 北向继电器断开:chrg_nor_sw_rel(ch, 0)
-> 禁用北向轮询,清除目标电压和运行标志
```
停止命令只要求成功入队;当前不会等待南向回码后才断开北向继电器。
## 当前延时参数
| 位置 | 当前值 | 起点 |
| --- | ---: | --- |
| 北向协议设置回码等待上限 | 150ms | 每次协议/CC命令发出后 |
| 0xD0 回码后的协议生效保护 | 100ms | 收到匹配 0xD0 回码后 |
| 北向 0x20 量测回码等待上限 | 80ms | 每次 0x20 发出后 |