BMS与TMS的通讯

BMS(电池管理系统):电池的大脑,负责监控电池电压、温度、充放电状态。

TMS(热管理系统):空调机组的大脑,负责给电池加热或冷却。

通俗理解:TMS和BMS之间用一根"电话线"(CAN总线)通话,拨号规则遵循汽车行业通用标准(J1939),网速默认250k,每次短信限8个字。

通俗理解:BMS住在244号房间,TMS住在58号房间,它们互相发消息时会在地址栏写上对方房号。

报文1:BMS → TMS(BMS给TMS下指令)

报文ID:0x18FF45xx

发送频率:每500ms发一次(每秒2次)

这条报文里,BMS把8个字节的数据打包发给TMS,每个字节的含义如下:

通俗理解:BMS每0.5秒对TMS喊一次话:

"我现在电压是576V,你进入制冷模式,设定温度15℃,上高压!收到请回答!"

报文2:TMS → BMS(TMS向BMS汇报状态)

报文ID:0x18FFCxxx

发送频率:每500ms发一次(每秒2次)

通俗理解:TMS每0.5秒回一次话:

"收到!我现在是制冷模式,高压继电器已闭合,出水温度20℃,回水温度21℃,目前需要2.2kW的功率,一切正常没有故障!"

协议里温度存储有一个 偏移量(Offset),这是比较绕的地方:

公式:真实温度 = 原始数值 + (-40℃)

举个例子:

CAN总线上读到 Byte2 = 0x3C(十进制60)

真实温度 = 60 + (-40) = 20℃

40以下(0x28)就是零下,40以上就是零上。比如:

0x00 = -40℃(极寒)

0x28 = 0℃(冰点)

0x3C = 20℃(室温)

0x5A = 50℃(高温)

电压的计算更简单:真实电压 = 高字节×256 + 低字节

例如报文数据为 02 40,则电压 = 0x0240 = 576V。

功率的计算:真实功率 = (高字节×256 + 低字节) × 0.1kW

例如报文数据为 00 16,则功率 = 22 × 0.1 = 2.2kW。

上高压流程(简化版)

BMS说:"准备上高压了吗?" → 发送上高压请求

TMS自检: → 自检通过后发"继电器断开"

BMS说:"好,我闭合继电器。" → BMS闭合继电器 + 发送上高压请求

TMS检查条件: → 电压正常、无1级故障、预充完成

TMS说:"预充完成,闭合继电器!" → TMS闭合主回路继电器

BMS收到后说:"好的,开始干活!" → BMS发送工作模式(制冷/制热/自循环)

关键时间要求:

下高压时,TMS必须在 5秒内 将电流降为0并关闭压缩机。

如果BMS发出下高压请求后 8秒内 没收到TMS继电器的断开状态,BMS会强制切断。