一、可以读取版本号

- 新增QMP4810300-4多协议双向电源通信协议V1.2文档
- 多个源文件头文件版本号更新至V1.1.8
- 在chrg_comm.c中添加Modbus固件版本只读寄存器
- 新增测试日志与修改日志V1.1.8版本记录
- 修复PD协议切换逻辑问题,新增复位机制
This commit is contained in:
wrh
2026-08-24 18:06:10 +08:00
parent 72cf1b75fa
commit 792e201d1e
11 changed files with 82 additions and 7 deletions
+21 -1
View File
@@ -1,7 +1,7 @@
/****************************************************************************
文件名称 : chrg_comm.c
完成日期 :
当前版本号 : V1.0
当前版本号 : V1.1.8
主要功能 : 实现对外通讯协议 MODBUS 服务端,以独立线程等待处理响应请求数据。
版本历史 : 创建原始版本
说明 :
@@ -26,6 +26,9 @@
#include "stm32f4xx_hal.h"
#define HOLD_REG_FIRMWARE_VERSION 0x0300U /* 协议板固件版本,只读 */
#define CHRG_FIRMWARE_VERSION 0x0118U /* 当前协议板版本:V1.1.8 */
rt_uint8_t ucDiscInBuf[(TOTAL_DISC_REGS+BITS_UCHAR-1)/BITS_UCHAR];
rt_uint8_t ucCoilBuf[(TOTAL_COIL_REGS+BITS_UCHAR-1)/BITS_UCHAR];
rt_uint16_t usRegInBuf[TOTAL_INPUT_REGS];
@@ -602,6 +605,23 @@ eMBException funcReadHoldingRegister (rt_uint8_t *reqFrame, rt_uint16_t reqLen,
return MB_EX_ILLEGAL_DATA_VALUE;
}
/*
* 协议板版本号使用独立的只读地址0x0300,不占用现有通道保持寄存器空间。
* 当前版本V1.1.8编码为0x0118,Modbus响应按高字节在前返回01 18。
* 该特殊地址只支持一次读取一个寄存器,避免与普通连续寄存器混用。
*/
if (regAddress == HOLD_REG_FIRMWARE_VERSION) {
if (cntReg != 1U) {
return MB_EX_ILLEGAL_DATA_VALUE;
}
resFrame[1] = MB_READ_HOLDING_REGISTER;
resFrame[2] = 2U;
resFrame[3] = (rt_uint8_t)(CHRG_FIRMWARE_VERSION >> 8);
resFrame[4] = (rt_uint8_t)(CHRG_FIRMWARE_VERSION & 0xFFU);
*resLen = 5U;
return MB_EX_NONE;
}
resFrame[1] = MB_READ_HOLDING_REGISTER;
resFrame[2] = cntReg * 2;
+1 -1
View File
@@ -1,7 +1,7 @@
/****************************************************************************
文件名称 : chrg_comm.h
完成日期 :
当前版本号 : V1.0
当前版本号 : V1.1.8
主要功能 : 实现对外通讯协议 MODBUS 服务端,以独立线程等待处理响应请求数据。
版本历史 : 创建原始版本
说明 :
+1 -1
View File
@@ -1,7 +1,7 @@
/****************************************************************************
文件名称 : chrg_north.c
完成日期 :
当前版本号 : V1.0
当前版本号 : V1.1.8
主要功能 : 实现北向通信交互,包括接收命令解析,发送请求命令,切换通路。以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,7 @@
/****************************************************************************
文件名称 : chrg_roll_nor.c
完成日期 :
当前版本号 : V1.0
当前版本号 : V1.1.8
主要功能 : 实现北向通信轮巡请求命令。以独立线程处理。
版本历史 : 创建原始版本
说明 :
@@ -1,7 +1,7 @@
/****************************************************************************
文件名称 : chrg_roll_nor.h
完成日期 :
当前版本号 : V1.0
当前版本号 : V1.1.8
主要功能 : 实现北向通信轮巡请求命令。以独立线程处理。
版本历史 : 创建原始版本
说明 :
+1 -1
View File
@@ -1,7 +1,7 @@
/****************************************************************************
文件名称 : chrg_source.c
完成日期 :
当前版本号 : V1.0
当前版本号 : V1.1.8
主要功能 : 北向数据source请求数据填充及发送。
版本历史 : 创建原始版本
说明 :
+1 -1
View File
@@ -1,7 +1,7 @@
/****************************************************************************
文件名称 : chrg_source.c
完成日期 :
当前版本号 : V1.0
当前版本号 : V1.1.8
主要功能 : 北向数据source请求数据填充及发送,命令字定义。
版本历史 : 创建原始版本
说明 :
+19
View File
@@ -1,5 +1,24 @@
# 修改日志
## V1.1.8 - 2026-08-24
### 修改主题
修复了source部分的PD协议长时间运行后会出不来的问题
对应芯海3221/source版本V_1.07
### Source协议复位切换
- 新增`SOURCE_RESET`命令:发送`06 00 02 18 00 0E`,校验回码`05 00 02 18 16`。
- 首次发送协议不复位;PD与非PD跨类别切换时先复位。
- PD切PD、非PD切非PD以及仅切换CC线时不复位。
- 删除`CC_CLOSE`状态及其共享等待屏障。
- 协议设置回码有效后更新`last_pd_pro`,避免协议尚未生效时错误判断。
### 验证记录
- 使用1-2,3-4测试自举例程测试俩百次正常
- git diff --check`:通过。
- 旧`CC_CLOSE`状态、宏和调用引用:已检查清理。
- Keil编译:按当前要求未执行,待现场烧录后验证复位回码和协议切换时序。
## V1.1.7 - 2026-08-08
### 修改主题
+36
View File
@@ -0,0 +1,36 @@
# 测试日志
## V1.1.8 - 2026-08-24
### 测试对象
Source协议切换复位逻辑。
### 验证记录
| 编号 | 测试项 | 预期结果 | 当前结果 |
| --- | --- | --- | --- |
| 1 | 首次发送Source协议 | 直接发送协议,不发送`SOURCE_RESET` | 静态检查通过 |
| 2 | PD切换到非PD | 先复位,再发送协议 | 静态检查通过 |
| 3 | 非PD切换到PD | 先复位,再发送协议 | 静态检查通过 |
| 4 | PD切PD | 不复位,直接发送协议 | 静态检查通过 |
| 5 | 非PD切非PD | 不复位,直接发送协议 | 静态检查通过 |
| 6 | 仅切换CC线 | 不复位 | 静态检查通过 |
| 7 | 复位命令帧 | 发送`06 00 02 18 00 0E` | 静态检查通过 |
| 8 | 复位回码 | 收到`05 00 02 18 16`后推进状态 | 待硬件验证 |
### 静态验证
- 已执行`git diff --check`,无格式错误。
- 已检查复位命令、状态映射、回码长度校验和`last_pd_pro`更新路径。
- Keil编译及硬件实测未执行。
### 待补充现场信息
- 板卡编号:
- 测试连接方式:
- 测试开始/结束时间:
- 复位发送日志:
- 复位回码日志:
- 协议切换结果:
- 最终结论: