4. CAN通信基础
在OBC(车载充电机)整机联调中,CAN总线是BMS、VCU、OBC三者之间交换充电握手、充电参数、故障状态的核心通道。很多“充电不启动”“充电中途停止”“报文丢失”的问题,最终都落到CAN物理层接线、终端电阻、帧格式或仲裁时序上。理解CAN的物理层、数据链路层、帧结构与仲裁机制,是排查OBC通信问题的基本功。
一、物理层:差分信号与终端匹配
CAN总线采用差分传输,两根信号线CAN_H与CAN_L的电压差决定总线电平。显性位(逻辑0)时差分电压约2V,隐性位(逻辑1)时差分电压接近0V。这种差分结构使CAN在整车强电磁干扰环境下仍能可靠通信。
物理层最容易被忽视的是终端电阻。标准高速CAN要求在总线两端各接一个120Ω电阻,并联后约60Ω。OBC台架联调时,若只接OBC与BMS两个节点,两端电阻必须齐全;若用万用表在断电状态下测量CAN_H与CAN_L之间电阻,正常应接近60Ω。若测得120Ω,说明只有一端终端电阻;若测得40Ω左右,说明多接了一个终端电阻,可能导致总线负载过重、波形畸变。
二、数据链路层:帧结构与位填充
CAN数据链路层把物理层的位流组织成帧。标准帧(CAN 2.0A)使用11位标识符,扩展帧(CAN 2.0B)使用29位标识符。OBC通信中,充电机与BMS之间的CAN报文通常使用扩展帧,以承载J1939或自定义协议中的源地址、目标地址信息。
一帧标准数据帧依次包括:帧起始(SOF)、仲裁段(标识符+RTR)、控制段(IDE、r0、DLC)、数据段(0~8字节)、CRC段、ACK段、帧结束(EOF)。其中仲裁段决定优先级,DLC决定数据长度。CAN FD在控制段增加FDF、BRS、ESI等位,数据段可扩展到64字节,但OBC当前主流仍以经典CAN为主。
位填充是CAN可靠性的关键机制:发送器在连续5个相同电平位后自动插入1个相反电平位,接收器再自动删除。这样保证接收方能从位流中恢复时钟。若位填充出错,节点会发出错误帧,导致报文重发。
标准数据帧结构(经典CAN):
SOF | 仲裁段(11位ID + RTR) | 控制段(IDE + r0 + DLC) | 数据段(0~8B) | CRC | ACK | EOF
扩展数据帧结构:
SOF | 仲裁段(11位基本ID + SRR + IDE + 18位扩展ID + RTR) | 控制段 | 数据段 | CRC | ACK | EOF
三、仲裁机制:非破坏性逐位仲裁
CAN总线是多主结构,多个节点可同时发送。当多个节点同时竞争总线时,采用“线与”逻辑进行非破坏性逐位仲裁:显性位(0)会覆盖隐性位(1)。每个节点在发送每一位的同时回读总线电平,若自己发送隐性位却读到显性位,说明有更高优先级节点在发送,该节点立即退出仲裁,转为接收状态,且不会破坏已获胜节点的报文。
仲裁的核心规则是:标识符数值越小,优先级越高。因此OBC通信中,安全相关报文(如BMS故障、充电停止请求)通常分配较小的ID,确保在总线繁忙时优先发送。仲裁只发生在仲裁段,一旦进入数据段,所有节点都已确定主从关系,不再仲裁。
四、OBC通信中的典型应用与误区复盘
在OBC充电流程中,CAN报文承担着“充电握手—参数配置—充电中监控—充电结束”的全过程。典型报文包括:BMS发送的电池充电需求(电压、电流、允许充电标志),OBC发送的充电机状态(输出电压、输出电流、故障码),VCU发送的控制指令(充电使能、目标电流)。这些报文通常以100ms或10ms周期发送,安全相关报文周期更短。
| 报文类型 | 典型ID范围 | 发送周期 | 关键信号 | 联调关注点 |
|---|---|---|---|---|
| BMS充电需求 | 0x180~0x1FF | 100ms | 需求电压、需求电流、允许充电 | ID优先级、DLC长度、字节序 |
| OBC状态反馈 | 0x200~0x27F | 100ms | 实际输出电压、电流、故障码 | 信号更新率、故障码定义 |
| VCU控制指令 | 0x100~0x17F | 10ms | 充电使能、目标电流 | 仲裁优先级、超时处理 |
| 充电结束/故障 | 0x080~0x0FF | 事件触发 | 停止原因、故障等级 | 最高优先级、立即发送 |
复盘一次典型的OBC充电不启动问题:BMS发送了允许充电报文,但OBC未响应。用CAN分析仪抓包发现,BMS报文ID为0x181,OBC期望接收0x180,两者差1,导致OBC过滤失败。修改DBC配置后通信恢复。这说明CAN通信联调必须“物理层—数据链路层—应用层”逐层确认:先测电阻和波形,再核对ID、DLC、字节序,最后检查应用层超时与状态机。
台架CAN联调检查清单:
1. 断电测CAN_H-CAN_L电阻:约60Ω
2. 上电测CAN_H对地:约2.5V;CAN_L对地:约2.5V
3. 示波器看差分波形:显性约2V,隐性约0V
4. CAN分析仪确认波特率:250kbps / 500kbps
5. 核对DBC中ID、DLC、字节序、周期
6. 检查终端电阻数量与位置
7. 观察错误帧计数:持续增长需查物理层
8. 确认应用层超时时间与重发策略
掌握CAN物理层、数据链路层、帧结构与仲裁机制后,面对OBC通信问题就能快速定位:是电阻不匹配、ID配置错误、优先级冲突,还是应用层状态机超时。CAN不是“插上线就能通”的简单总线,它的可靠性建立在严格的物理匹配与协议规范之上。