从BMS到PCS,一条总线的“统治力”从何而来
一、为什么储能系统离不开CAN
储能系统内部的信息交互,有几个鲜明的特点:
- 实时性要求高:BMS(电池管理系统)需要在毫秒级时间内上报电压、温度、电流,PCS(储能变流器)才能在过压、过温时及时响应
- 节点数量多:一个集装箱储能系统,电池簇×电池包×BMU,节点数轻松上百
- 电磁环境恶劣:大电流、高频开关、强磁场——对通信抗干扰能力要求极高
- 成本敏感:每个节点都要加通信芯片,成本必须可控
在这些约束下,CAN总线几乎是“唯一解”。
对比几种常见总线:
| 总线 | 实时性 | 抗干扰 | 节点数 | 成本 | 储能适用性 |
|---|---|---|---|---|---|
| CAN | 高(事件触发) | 高(差分信号) | 110+ | 低 | ✅ 最合适 |
| RS485 | 中(轮询) | 中 | 32 | 低 | ❌ 节点数受限 |
| Ethernet | 高 | 中(需屏蔽) | 多 | 高 | ❌ 成本高、布线复杂 |
| 无线 | 低 | 低 | 多 | 中 | ❌ 可靠性不足 |
结论:在电芯级、模组级、簇级通信中,CAN是目前最成熟、最经济、最可靠的选择。
二、储能CAN网络的典型架构
一套完整的储能系统,CAN网络通常分为三层:
第一层:电芯级(BMU → 电芯)
每个电池模组内,BMU(电池管理单元)通过CAN采集各个电芯的:
- 单体电压(精度要求±5mV)
- 单体温度(精度要求±1℃)
- 均衡状态
这一层的通信特点是:节点多、数据密集、实时性要求高。常见配置是一个BMU管理12-24个电芯,CAN总线以250kbps或500kbps运行。
第二层:模组级/簇级(BMU → BSU)
多个BMU通过CAN汇集到一个BSU(电池系统单元)。BSU负责:
- 计算簇级SOC、SOH
- 检测簇级总压、总电流
- 执行簇级保护(过压、欠压、过温、过流)
- 控制簇级接触器、均衡开关
这一层的特点是:数据汇总、逻辑判断、保护执行。CAN总线通常以500kbps运行,通信周期50-100ms。
第三层:系统级(BSU → BAMS)
BAMS(电池阵列管理系统)是整个储能电池的“大脑”,通过CAN与各个BSU通信,同时还要与PCS、EMS、消防系统交互。
这一层的通信特点是:跨系统交互、协议复杂、可靠性要求最高。CAN总线以500kbps或1Mbps运行,通常配置冗余CAN通道(CAN A / CAN B)。
text
典型拓扑结构:
[ EMS ]
│ (CAN/Modbus/Ethernet)
[ BAMS ]
│ (CAN)
┌──────┼──────┐
│ │ │
[BSU] [BSU] [BSU] (每个BSU管理一个电池簇)
│ │ │
CAN CAN CAN
│ │ │
[BMU] [BMU] [BMU] (每个BMU管理一个电池模组)
│ │ │
电芯 电芯 电芯
三、CAN通信的关键协议
储能CAN通信虽然物理层是标准的CAN 2.0,但应用层协议各家厂商差异很大。主流的有几种:
1. 自定义协议(最常见)
大部分国内BMS厂商(如亿能、高特、科列)使用私有CAN协议。优点是灵活、高效,缺点是不同厂家设备不互通。
典型的私有协议格式(以某主流BMS为例):
| 字节 | 内容 | 说明 |
|---|---|---|
| Byte0 | 帧头 | 固定0xAA |
| Byte1 | 长度 | 后续数据字节数 |
| Byte2-3 | 命令码 | 如0x1001=读取电压 |
| Byte4-N | 数据 | 具体数据内容 |
| ByteN+1 | 校验 | XOR或CRC |
2. Modbus over CAN
将Modbus协议运行在CAN物理层上,主要优点是标准化程度高、调试工具丰富。缺点是Modbus的查询-响应机制天然比CAN的事件触发机制效率低。
3. CANopen
起源于工业自动化,在储能领域应用较少,但在某些出口项目中会被要求(尤其是欧洲市场)。优点是标准化程度最高,缺点是协议栈开销大、学习成本高。
4. 国标GB/T 34131
国内储能BMS的国家推荐标准,对CAN通信的物理层、数据链路层、应用层都有规定。值得关注的是,GB/T 34131-2023版对通信协议做了较大更新,增加了对无线通信、云边协同的支持。
四、实践中的几个“坑”
在实际调试储能CAN网络时,有几个常见问题值得记录:
坑一:终端电阻去哪儿了?
CAN总线要求在总线两端各加一个120Ω终端电阻。但在储能系统中,多个BSU级联时,终端电阻的位置容易被忽略。常见故障现象:通信不稳定、丢包率上升、偶尔有错误帧。
排查方法:断开所有节点,用万用表测量CAN_H和CAN_L之间的电阻。正常应为60Ω左右(两个120Ω并联)。如果测得120Ω,说明只有一个终端电阻;如果测得无穷大,说明一个都没有。
坑二:总线冲突率过高
储能系统节点多、数据量大,如果所有节点都按固定周期发送数据,总线负载率可能超过30%,导致冲突率飙升、实时性下降。
优化方法:
- 事件触发:只在数据变化时发送,而非固定周期
- 分级优先级:保护类数据(如过温告警)用高优先级ID,状态类数据用低优先级
- 数据打包:多个相关数据合并到一个CAN帧中,减少帧数
坑三:地电位漂移
储能系统中,电池簇之间的地电位可能存在差异(尤其是长距离布线时)。当CAN收发器的地参考点不同,共模电压可能超出CAN收发器的容忍范围(通常为-2V~+7V),导致通信错误。
解决方法:
- 使用隔离CAN收发器(如ADM3053、ISO1050)
- 确保各节点地电位差不超过规格
- 在长距离通信时,增加CAN中继器或使用光纤转换
坑四:协议不兼容
这是最常见的“软坑”——不同厂家的BMS、PCS、EMS之间CAN协议不兼容。明明是同一套物理网络,但A厂发的数据B厂解析不出来。
应对策略:
- 在项目前期就明确CAN通信协议表,作为技术协议附件
- 使用CAN网关(协议转换器)做“翻译”
- 要求各厂家提供CAN DBC文件,方便解析和仿真
五、CAN总线的未来:会被替代吗?
关于“CAN已死”的说法,每隔几年就会出现一次。但在储能领域,短期内看不到替代的可能。
| 候选技术 | 现状 | 替代可能性 |
|---|---|---|
| CAN FD | 正在普及,兼容CAN 2.0,速率可达5Mbps | ✅ 会逐步取代传统CAN |
| CAN XL | 刚发布,速率可达20Mbps | ⚠️ 长期看有潜力 |
| Ethernet(100BASE-T1) | 车载以太网在汽车领域已应用,成本仍高 | ❌ 5-10年内难普及 |
| 无线 | 可靠性不足 | ❌ 不适用于关键控制 |
最可能的演进路径:
- 电芯级、模组级:CAN FD逐步替代CAN 2.0
- 簇级、系统级:CAN + Ethernet并存,CAN负责实时控制,Ethernet负责大数据上传
六、一点个人思考
CAN总线在储能领域的“统治力”,本质上是工业系统的工程选择逻辑——不追求最先进,只追求“够用且可控”。
- 成本可控:一个CAN收发器几块钱,一个带CAN的MCU几十块钱
- 可靠性已知:三十年的应用历史,所有坑都被踩过了
- 生态成熟:从调试工具到分析软件,从芯片到协议栈,完整且便宜
- 人员熟悉:绝大多数嵌入式工程师都会调CAN
对于研究者而言,CAN总线本身已经不是技术热点,但基于CAN的协议设计、数据挖掘、故障诊断仍然有很多值得深入的方向。比如:
- 如何从CAN数据中识别电池老化特征?
- 如何在不增加总线负载的情况下,提高SOC估算精度?
- 如何检测CAN通信的异常模式(如伪装节点、重放攻击)?