1. 25 kW基站HVDC电源监控系统概述
这套运行在TI C2000系列DSP(F2803x)上的监控软件,是专为5G基站设计的25kW高可靠性直流电源系统的核心大脑。它需要同时处理三相Vienna PFC和串联全桥LLC拓扑的实时控制,管理32个并联模块的协同工作,确保400V/62.5A的稳定输出。在实际基站应用中,系统需要满足99.999%的可用性要求,这意味着全年不可用时间不能超过5分钟。
关键设计指标:稳压精度±0.5%(-40~+70℃环境)、均流不平衡度<3%、故障响应时间<200μs、CAN总线丢包率<10⁻⁷
系统采用分层架构设计,底层是10kHz高速中断的控制环,中层是CAN/SCI通信协议栈,上层是状态管理和故障处理逻辑。这种设计使得系统既能满足实时性要求,又能保持足够的灵活性应对各种异常情况。我在实际部署中发现,这种架构特别适合需要长期稳定运行的工业场景。
2. 系统硬件架构与通信设计
2.1 硬件拓扑与接口分配
系统采用典型的三级架构:
code复制[交流输入] → [三相Vienna PFC] → [420V直流母线] → [串联全桥LLC] → [400V直流输出]
DSP需要同时控制PFC和DCDC两个功率级,这在资源分配上是个挑战。F2803x的PWM模块被划分为:
- PWM1A/B/C:PFC的三相驱动(互补带死区)
- PWM2A/B:LLC初级全桥
- PWM3A/B:预留同步整流控制
通信接口配置也很有讲究:
- CAN总线(250kbps):连接后台SCU(ID 0x069)和其他并联模块
- SCI(115.2kbps):用于Modbus-RTU子集协议,连接本地HMI
- GPIO扩展:包括地址拨码开关、故障指示灯、TEST按键等
2.2 HHP通信协议详解
自主设计的HHP协议(High-reliability HVDC Protocol)基于CAN 2.0B扩展帧,其ID字段定义如下:
code复制28 20 19 18 11 10 3 2 0
|ProtNo|PTP| SrcID | DstID |CNT|
典型应用场景:
- 广播数据(ProtNo=7):0x075开头的帧携带实时电压电流数据(Q10定标)
- 点对点控制(ProtNo=6):0x069开头的帧用于参数读写
- 紧急事件(ProtNo=F):最高优先级,用于故障广播
数据域格式:
code复制Byte0:MsgType(0x01=读,0x02=写...)
Byte1:ErrType(按位定义故障)
Byte2-5:数据负载
Byte6-7:CRC-16(多项式0x1021)
现场经验:在32节点组网时,建议将CAN终端电阻设为120Ω,并确保总线长度不超过40米。我们曾遇到因阻抗不匹配导致的通信丢包问题。
3. 软件架构与实时控制
3.1 中断调度机制
系统采用时间触发式调度,关键时序如下:
- 10kHz中断(PWM周期同步):执行所有控制环计算
- 1kHz任务:处理通信协议栈
- 100Hz任务:更新均流算法
- 1Hz任务:记录运行日志
在C2000上实现时,需要注意:
c复制// 中断优先级配置
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1; // PWM周期中断
PieCtrlRegs.PIEIER9.bit.INTx1 = 1; // CAN接收中断
3.2 控制环实现细节
电压外环设计:
code复制Verr = Vref - Vactual
Iref = Kp*Verr + Ki*∫Verr dt
抗饱和处理采用clamping法:
c复制if (Iref > I_max) {
integrator = I_max - Kp*Verr;
Iref = I_max;
}
电流内环前馈:
加入输入电压前馈可提升动态响应:
code复制Duty = (Vout/Vin) + (Ierr * Gcomp)
其中Gcomp是补偿器传递函数。
功率限幅策略:
实时计算P=U×I,当P>25kW时:
- 优先降低电流参考值(斜率限制0.5A/ms)
- 若持续超限,触发POWER_MAJOR告警
- 严重过载时(>28kW),硬件比较器直接关断PWM
4. 故障处理与可靠性设计
4.1 三级故障管理体系
| 级别 | 触发条件 | 响应措施 | 恢复方式 |
|---|---|---|---|
| Level1 | 输入过压、温度超限 | 降额运行 | 自动恢复 |
| Level2 | 硬件OC、风扇故障 | 锁机 | 人工复位 |
| Level3 | 绝缘击穿、雷击 | 硬件关断 | 维修更换 |
4.2 黑匣子实现技巧
黑匣子记录采用循环缓冲,每个条目包含:
c复制struct AlarmLog {
uint32_t timestamp; // 运行秒数
uint8_t errCode; // 见下表
uint16_t actualValue;// 故障发生时采样值
};
常见故障码定义:
code复制0x01:OV_AC(交流过压)
0x02:OC_DC(直流过流)
...
0x20:FAN_STUCK(风扇堵转)
存储策略优化:
- 使用EEPROM的1024-2038地址段
- 采用页写入模式(每页64字节)
- 写入前先擦除整页
- 添加写平衡算法延长寿命
5. 生产测试与现场维护
5.1 自动校准流程
- 进入校准模式(发送0x55AA到0x069)
- 断开所有负载
- 内部DAC输出2.5V基准
- 读取ADC采样值(VDC_SAM_SYSA)
- 计算校准系数:
code复制CalFactor = (2.5 * 4096) / ActualADC - 写入EEPROM的0x100-0x1FF区域
5.2 远程升级方案
双Bank Flash设计关键点:
- Bank A:运行版本(CRC32校验)
- Bank B:升级区域(支持断点续传)
- 版本号存储在0x3F7FF0
- 切换逻辑:
c复制if (BankB_CRC_OK && BankB_Newer) { asm(" LB #0x80000"); // 跳转到BankB }
升级协议要点:
- 握手阶段:验证目标设备ID
- 数据传输:128字/帧,带序列号
- 校验阶段:全镜像CRC32
- 原子切换:更新入口指针后复位
6. 现场问题排查指南
6.1 典型故障现象与处理
现象1:并联模块电流不平衡
- 检查CAN终端电阻(应≈60Ω)
- 验证地址分配(无冲突)
- 校准各模块的电流传感器
- 调整均流算法参数(Kp_share)
现象2:频繁误报OV
- 检查AC电压采样电路(分压电阻温漂)
- 验证软件滤波参数:
c复制Vfiltered = 0.9*Vfiltered + 0.1*Vraw; - 必要时启用ALLOWACOV标志
现象3:EEPROM写入失败
- 确保写之前执行页擦除
- 检查WP引脚电平
- 单次写入不超过16字节
- 添加重试机制(最多3次)
6.2 调试接口使用技巧
利用SCI接口可以直接读取运行参数:
code复制发送:01 03 00 64 00 02 C5 CD
(读取0x0064开始的2个寄存器)
返回:01 03 04 01 7A 00 3C XX XX
(电压=378V,电流=60A)
TEST按键组合功能:
- 按住5秒:恢复出厂设置
- 快速按3次:进入Bootloader
- 按住上电:跳过APP直接升级
这套系统在实际部署中表现稳定,但需要特别注意防雷设计——我们在某山区基站曾因雷击导致多块PFC板损坏,后来在交流输入端增加了气体放电管和TVS二级防护后问题彻底解决。对于极端低温环境(-40℃),建议选用工业级器件并做好加热措施,防止电解电容失效。
