2、充电系统基础架构:充电桩硬件组成与软件分层
大家好,我是老张。今天咱们聊聊充电桩的基础架构。说实话,很多新手工程师一上来就盯着算法和策略,结果硬件选型就踩了坑。我个人习惯是,先搞清楚系统长什么样,再谈怎么优化。
充电桩说白了,就是一个大号的电源管理系统。它要把电网的交流电,变成电池能吃的直流电,还要跟车实时通信,确保安全。嗯,这里要注意,不同功率等级的桩,内部结构差异很大,但核心模块是通用的。
2.1 硬件组成:四大核心部件
我拆过几十种充电桩,从7kW的家用桩到360kW的超充桩。硬件上,万变不离其宗,主要就这几块:
- AC/DC功率模块:这是心脏。把380V交流电整流成200V-750V可调的直流电。我见过不少项目,模块选型时没考虑散热冗余,夏天一跑就降功率。
- 主控制板(MCU/MPU):这是大脑。负责协议解析、功率分配、故障诊断。我个人偏爱用带双核锁步的芯片,安全等级高。
- 枪线组件:这是手脚。包含充电枪、线缆、电子锁、温度传感器。枪线的寿命往往被低估,我建议选型时重点看插拔次数和线缆柔韧性。
- 辅助电源与计量:给控制板供电,同时精确计量充电电量。计量芯片的精度直接关系到结算,马虎不得。
核心要点:硬件选型时,AC/DC模块的电压范围要覆盖目标车型,控制板的CAN接口数量要留余量,枪线的温度检测必须冗余设计。
2.2 软件分层架构:三层解耦
软件架构这块,我踩过不少坑。早期项目我把所有逻辑写在一起,结果改一个协议就要重新编译整个固件。后来我强制团队采用三层架构,维护成本直线下降。
为什么一定要分层?你想想看,充电协议在更新,驱动芯片在换代,但应用层的功率分配算法相对稳定。分层之后,换协议不用动算法,换硬件不用动协议。
| 层级 | 职责 | 典型内容 |
|---|---|---|
| 应用层 | 业务逻辑、策略 | 功率分配算法、充电启停控制、人机交互 |
| 协议层 | 通信协议解析 | GB/T 27930、CCS、CHAdeMO、OCPP |
| 驱动层 | 硬件抽象与操作 | CAN驱动、GPIO控制、ADC采集、PWM输出 |
我曾经在一个项目中,协议层和驱动层耦合严重。换了一个CAN控制器型号,结果协议解析也出了问题,排查了整整两天。从那以后,我要求驱动层必须提供标准接口,协议层只管调用,不管底层实现。
个人经验:应用层和协议层之间,建议用消息队列解耦。这样协议解析慢一点,也不影响功率分配的实时性。我在一个360kW项目中就是这么做的,效果很好。
2.3 通信总线:CAN与RS485
充电桩内部通信,说白了就两种主流总线:CAN和RS485。它们各有各的脾气。
2.3.1 CAN总线:实时性之王
CAN总线在充电桩里无处不在。控制板跟AC/DC模块通信,用CAN;控制板跟BMS通信,用CAN;枪线上的温度传感器,也用CAN。为什么?因为它实时性好,抗干扰能力强。
我记得有一次在实验室调试,示波器一挂上去,发现CAN总线上的波形毛刺很多。排查了半天,原来是终端电阻没焊对。嗯,这里要注意,CAN总线两端必须各加一个120欧姆的终端电阻,否则信号反射会导致通信失败。
// CAN初始化示例(基于STM32 HAL库)
void CAN_Init(void)
{
hcan.Instance = CAN1;
hcan.Init.Prescaler = 6; // 分频系数,决定波特率
hcan.Init.Mode = CAN_MODE_NORMAL; // 正常模式
hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan.Init.TimeSeg1 = CAN_BS1_13TQ;
hcan.Init.TimeSeg2 = CAN_BS2_2TQ;
hcan.Init.TimeTriggeredMode = DISABLE;
hcan.Init.AutoBusOff = ENABLE; // 自动恢复总线
HAL_CAN_Init(&hcan);
}
波特率怎么选?我一般用250kbps或500kbps。250kbps抗干扰更好,适合长距离;500kbps实时性更高,适合机柜内部。具体选哪个,要看你的线缆长度和电磁环境。
2.3.2 RS485:远距离的可靠选择
RS485在充电桩里主要用于电表通信和部分扩展模块。它的优势是距离远,理论上能到1200米。但速度慢,一般也就9600bps到115200bps。
我曾经在一个项目中,电表装在配电柜里,离控制板有50米远。用CAN的话,线缆成本高,而且容易受干扰。换成RS485,一对双绞线就搞定了,稳定运行了三年没出过问题。
避坑指南:RS485的A/B线不能接反,否则通信失败。另外,地线一定要接,否则共模电压会烧毁收发器。我曾经因为偷懒没接地线,烧了三个485模块,教训深刻。
2.4 实战中的架构选择
说了这么多,到底怎么选?我给大家一个参考:
- 7kW家用桩:单AC/DC模块,控制板用低成本MCU,CAN总线连接模块和BMS,RS485接电表。软件上,协议层只支持GB/T 27930就够了。
- 120kW直流快充桩:多个AC/DC模块并联,控制板用高性能MPU,内部CAN总线连接所有模块,外部CAN连接车辆。软件上,协议层要支持GB/T和CCS双协议。
- 360kW超充桩:模块化设计,每个模块组独立控制,内部用高速CAN FD总线,外部用CAN或以太网。软件上,应用层要有动态功率分配算法,协议层要支持多枪并发。
我个人习惯,在设计初期就画好通信拓扑图。哪个设备用CAN,哪个用RS485,波特率多少,终端电阻在哪,都标清楚。这样后期调试能省一半时间。
总结一下:硬件上,AC/DC模块是核心,控制板是大脑,枪线是手脚。软件上,三层架构让系统更灵活。通信上,CAN用于实时控制,RS485用于远距离数据采集。把这些基础打牢了,后面的多枪充电路径规划和功率分配才能玩得转。
下一章,咱们聊聊充电协议的具体细节。到时候我会分享一些跟BMS通信时遇到的奇葩问题,保证让你大开眼界。