基于TMS系统(热管理系统)与整车控制器、电池管理系统(BMS)、电机控制器(MCU)及各执行器的通信需求,设计以下CAN通信协议,采用CAN 2.0B标准,通信速率500kbps,确保-40℃~85℃工业环境下的可靠传输。
一、协议基础规范
-
帧类型:采用标准数据帧(11位标识符),扩展帧备用
-
数据长度:每帧数据8字节(最大化利用带宽)
-
通信周期:
-
关键状态帧:10ms(如TMS控制器状态、传感器数据)
-
控制指令帧:50ms(如执行器控制指令)
-
诊断帧:1000ms(如故障码、版本信息)
-
-
波特率:500kbps(匹配工程机械行业标准)
-
错误处理:连续3次接收错误则触发超时机制,发送节点重复发送3次后进入休眠重试
二、节点定义与ID分配规则
| 节点名称 | 节点ID范围 | 功能说明 |
|---|---|---|
| TMS控制器 | 0x100~0x10F | 系统主控制器,发送状态帧、接收控制指令 |
| BMS(电池管理系统) | 0x110~0x11F | 发送电池温度、SOC等,接收TMS温控请求 |
| MCU(电机控制器) | 0x120~0x12F | 发送电机温度、功率,接收散热控制指令 |
| 执行器组1(泵/阀) | 0x130~0x13F | 接收液冷泵、电子膨胀阀控制指令 |
| 执行器组2(风扇/加热) | 0x140~0x14F | 接收风扇、PTC加热器控制指令 |
| 诊断仪 | 0x700~0x7FF | 用于标定、故障诊断(符合UDS协议) |
ID编码规则: ID = 节点基础ID + 功能码(功能码占低4位,如0x100+0x01=0x101表示TMS传感器数据帧)
三、核心通信帧定义
1. TMS控制器→各节点(控制指令帧)
-
帧ID:0x101(液冷系统控制指令)
-
周期:50ms
-
数据格式:
字节位 内容 数据类型 范围 说明 0-1 电池侧目标流量 uint16 0~50L/min 分辨率0.1L/min,实际值=数值×0.1 2-3 电机侧目标流量 uint16 0~80L/min 同上 4 电子膨胀阀开度 uint8 0~100% 0x00=全关,0xFF=全开 5 风扇转速等级 uint8 0~5级 0=停止,5=最高速 6 工作模式 uint8 0~7 0=自动,1=制冷,2=制热,3=除霜… 7 校验位 uint8 – 前7字节异或结果 -
帧ID:0x102(热泵系统控制指令)
-
周期:50ms
-
数据格式:
字节位 内容 数据类型 范围 说明 0-1 目标蒸发温度 int16 -30~50℃ 分辨率0.1℃,实际值=数值×0.1 2-3 目标冷凝温度 int16 -10~80℃ 同上 4 PTC加热功率 uint8 0~100% 0=关闭,100=全功率 5 压缩机频率 uint8 20~100Hz 直接对应频率值 6 模式使能位 bitfield 8bit bit0=热泵使能,bit1=PTC使能… 7 校验位 uint8 – 前7字节异或结果
2. 传感器节点→TMS控制器(状态帧)
-
帧ID:0x111(电池与电机温度状态)
-
周期:10ms
-
数据格式:
字节位 内容 数据类型 范围 说明 0-1 电池组平均温度 int16 -30~80℃ 分辨率0.1℃ 2 电池最高单体温度 int8 -30~80℃ 直接表示温度值 3 电池最低单体温度 int8 -30~80℃ 同上 4-5 电机绕组温度 int16 -30~150℃ 分辨率0.1℃ 6 电机壳体温度 int8 -30~100℃ 直接表示温度值 7 校验位 uint8 – 前7字节异或结果 -
帧ID:0x112(液冷回路状态)
-
周期
-
数据格式:
字节位 内容 数据类型 范围 说明 0-1 电池侧实际流量 uint16 0~50L/min 分辨率0.1L/min 2-3 电池侧回路压力 uint16 0~2.0MPa 分辨率0.01MPa 4-5 电机侧实际流量 uint16 0~80L/min 分辨率0.1L/min 6 回路介质温度 int8 -30~100℃ 直接表示温度值 7 校验位 uint8 – 前7字节异或结果
3. 故障诊断帧
-
帧ID:0x1F0(故障码上报)
-
触发方式:事件触发+周期1000ms
-
数据格式:
字节位 内容 说明 0-1 故障码 高字节=故障类别,低字节=具体代码(如0x0102=传感器类-温度超上限) 2-3 故障发生时间 自系统启动后的秒数(uint16) 4-6 故障相关参数 如超温故障时记录实际温度值 7 故障等级 0=提示,1=警告,2=严重,3=致命
四、信号编码规则
-
数值转换:
-
温度信号:
物理值 = 原始值 × 0.1(精度0.1℃),负数用补码表示 -
流量/压力:
物理值 = 原始值 × 分辨率(分辨率在帧定义中明确)
-
-
位域处理:多状态信号采用bitfield(如模式使能位),单bit表示开关状态
-
校验机制:每帧最后1字节为前7字节的异或校验,接收方校验失败则丢弃该帧
五、通信状态管理
-
节点在线检测:各节点每100ms发送1帧心跳包(0x7F0),包含节点ID和状态字
-
休眠唤醒:支持远程帧唤醒(0x000),休眠状态下仅响应唤醒帧和诊断帧
-
优先级机制:故障帧(0x1F0)优先级最高,控制指令帧次之,状态帧最低
六、协议文档附件
-
完整信号列表(含所有帧ID、信号定义、物理范围)
-
故障码对照表(按ISO 14229规范定义)
-
通信时序图(节点启动、数据交互、故障处理流程)


请问有附件吗?