1. 通信协议概述:BMS与PMS系统架构、通信必要性、协议分层模型

各位同学,咱们今天正式开课。聊BMS和PMS之间的通信协议,我习惯先不讲协议本身,而是把这两个系统到底长什么样、为什么要通信、通信是怎么分层的,先理清楚。这就像盖房子,地基打不牢,后面全是坑。

1.1 BMS与PMS的系统架构

先说说BMS,也就是电池管理系统。说白了,它就是电池包的“大管家”。我做过一个储能项目,BMS要管的事情特别杂:

  • 监测:实时盯着每节电芯的电压、温度、电流
  • 保护:过压、欠压、过温、过流,哪个出问题都得立刻切断
  • 均衡:电芯之间电压不一致?BMS得想办法拉平
  • 估算:SOC(剩余电量)、SOH(健康度),这些都得算准

PMS呢,是功率管理系统。它负责整个系统的能量调度。比如光伏发电、电网供电、负载用电,这些功率怎么分配,全听PMS的指挥。

我画了一张图,帮大家直观理解这两个系统的位置和关系:

BMS 电池管理系统 电压采集 温度采集 电流检测 均衡控制 SOC估算 保护逻辑 PMS 功率管理系统 光伏调度 电网交互 负载管理 功率分配 策略优化 故障响应 通信协议 CAN / RS485 / 以太网

你看,BMS在左边,PMS在右边。中间那条红色的虚线,就是咱们这门课要啃的通信协议。没有这条线,两个系统就是信息孤岛。

1.2 通信的必要性

为什么要通信?这个问题我问过不少刚入行的工程师。有人回答“因为要传数据”,这没错,但太表面了。

我举个例子。有一次我在调试一个光储充一体化项目,BMS检测到电池温度已经45度了,但PMS还在拼命给电池充电。为什么?因为BMS没告诉PMS“我热了,你悠着点”。结果呢?电池保护板直接跳闸,整个系统停机。业主气得够呛。

所以,通信的必要性体现在这几个方面:

  1. 安全互锁:BMS发现异常,必须立刻通知PMS降功率或停机。这是保命的。
  2. 功率协同:PMS要知道电池还能充多少电、还能放多少电,才能合理分配功率。
  3. 状态同步:BMS的SOC、SOH这些关键参数,PMS必须实时掌握,否则策略就是瞎指挥。
  4. 故障诊断:系统出问题了,两边得一起分析。BMS说“我电压异常”,PMS说“我功率没超”,才能定位到具体原因。

核心观点:BMS和PMS的通信,不是“传个数据就行”,而是“传对了数据,还要传得及时、传得可靠”。

1.3 协议分层模型

说到分层模型,很多人第一反应就是OSI七层模型。但说实话,在BMS和PMS这种嵌入式系统里,我们很少直接用七层。太臃肿了。

我个人习惯用四层模型来理解:

层级 名称 职责 常见协议
第4层 应用层 定义数据含义、命令格式 Modbus、自定义协议
第3层 传输层 数据分包、重传、校验 CAN 2.0、TCP/UDP
第2层 数据链路层 帧格式、寻址、冲突检测 CAN总线、RS485
第1层 物理层 电平标准、连接器、线缆 CAN_H/L、差分信号

你想想看,如果应用层直接操作物理层,代码会写成什么样?每个报文都得自己拼比特流,还得处理电平转换。那不乱套了?

分层的好处就是各司其职。物理层只管把0和1发出去,别管这数据是电压值还是温度值。应用层只管解析数据,别管这数据是通过CAN还是RS485传过来的。

我的经验:在实际项目中,我建议把应用层协议设计得尽量简单。别搞太复杂的嵌套结构。我曾经见过一个协议,一个报文里套了三层TLV,调试的时候差点没把我逼疯。简单、明确、可扩展,这才是好协议。

1.4 常见的物理层选择

物理层选什么,取决于你的应用场景。我简单列一下:

  • CAN总线:工业储能、电动汽车的首选。抗干扰强,实时性好。我做过一个项目,现场电机一启动,RS485直接乱码,换成CAN就稳了。
  • RS485:成本低,距离远。适合对实时性要求不高的场景。但要注意,RS485是半双工的,同一时刻只能一个设备说话。
  • 以太网:大型储能站、云端互联的场景。带宽大,但功耗高,实时性不如CAN。

注意:物理层选型一定要考虑现场环境。我见过有人把RS485用在强干扰环境,结果通信误码率高达10%。后来加了隔离和终端电阻,才勉强能用。但说实话,这种场合就该上CAN。

好了,这一章的内容就到这。BMS和PMS的系统架构、为什么必须通信、协议怎么分层,这些基础概念先消化一下。后面我们会深入到具体的报文格式、数据定义、时序要求,一步步把协议吃透。