4、物理层与链路层基础:CAN总线特性、波特率、终端电阻、帧格式(标准帧/扩展帧)及错误处理
GB27930标准所定义的电动汽车直流快充通信,其物理载体是控制器局域网(CAN)总线。CAN总线自20世纪80年代由Bosch公司开发以来,凭借其高可靠性、实时性和抗干扰能力,成为汽车电子系统的事实标准。在直流快充场景中,充电桩与电池管理系统(BMS)通过CAN总线进行报文交互,任何物理层或链路层的异常都可能导致充电中断甚至安全事故。本章将深入剖析CAN总线的电气特性、通信参数配置、报文帧结构以及错误处理机制,为后续理解GB27930的报文定义与状态机切换打下坚实基础。
4.1 CAN总线电气特性与物理层设计
4.1.1 差分信号与总线电平
CAN总线采用差分信号传输方式,通过两根导线CAN_H和CAN_L之间的电压差来表示逻辑状态。这种设计使得总线具有极强的共模干扰抑制能力,非常适合电动汽车内部电机、逆变器等强干扰环境。在显性状态(逻辑0)下,CAN_H电压约为3.5V,CAN_L电压约为1.5V,差分电压约为2V;在隐性状态(逻辑1)下,两根线均被偏置到2.5V,差分电压接近0V。值得注意的是,显性电平会覆盖隐性电平,这是CAN总线仲裁机制的基础。
4.1.2 终端电阻与信号完整性
CAN总线两端必须各接入一个120Ω的终端电阻,用于匹配传输线阻抗,防止信号反射。在直流快充场景中,充电桩侧和车辆BMS侧各有一个终端电阻。若终端电阻缺失或阻值漂移,会导致信号过冲、振铃甚至位错误。工程上,终端电阻通常集成在CAN收发器模块或连接器内部,但维修时需使用万用表测量CAN_H与CAN_L之间的电阻值,正常应为60Ω(两个120Ω并联)。
| 检查项目 | 正常范围 | 异常表现 | 可能原因 |
|---|---|---|---|
| CAN_H对地电压 | 2.0-3.0V(静态) | 低于1.5V或高于4V | 收发器损坏、短路 |
| CAN_L对地电压 | 2.0-3.0V(静态) | 低于1.5V或高于4V | 收发器损坏、断路 |
| CAN_H与CAN_L间电阻 | 约60Ω | 无穷大或接近0Ω | 终端电阻缺失、短路 |
| 总线空闲电平 | CAN_H≈CAN_L≈2.5V | 持续显性电平 | 节点故障、总线锁死 |
4.1.3 波特率配置与同步机制
CAN总线的波特率由位时间(Bit Time)决定,位时间由同步段(SYNC_SEG)、传播时间段(PROP_SEG)、相位缓冲段1(PHASE_SEG1)和相位缓冲段2(PHASE_SEG2)组成。GB27930规定使用250kbps,采样点通常设置在75%-80%位置。若采样点设置不当,在总线较长或节点时钟偏差较大时,容易产生位错误。工程中,BMS和充电桩的CAN控制器均需配置为相同的波特率和采样点,否则无法正常通信。
// 以S32K144为例,250kbps波特率配置(16MHz总线时钟)
// 预分频器 = 4,位时间 = 16个时间量子
// SYNC_SEG = 1, PROP_SEG = 3, PHASE_SEG1 = 8, PHASE_SEG2 = 4
// 采样点 = (1+3+8)/16 = 75%
CAN.CTRL1 = CAN_CTRL1_PRESDIV(3) | CAN_CTRL1_PROPSEG(2) |
CAN_CTRL1_PSEG1(7) | CAN_CTRL1_PSEG2(3) |
CAN_CTRL1_RJW(1) | CAN_CTRL1_SMP_ONE;
4.2 CAN帧格式详解
4.2.1 标准帧与扩展帧结构对比
CAN协议定义了两种帧格式:标准帧(CAN 2.0A)使用11位标识符,扩展帧(CAN 2.0B)使用29位标识符。GB27930明确规定使用扩展帧格式,原因在于29位标识符可以承载更多信息,例如源地址、目的地址、报文类型等。扩展帧的仲裁场由29位ID、SRR位、IDE位和RTR位组成,其结构比标准帧复杂,但提供了更灵活的寻址能力。
| 帧格式 | 标识符长度 | 仲裁场结构 | 最大数据长度 | GB27930使用 |
|---|---|---|---|---|
| 标准帧 | 11位 | ID[10:0] + RTR | 8字节 | 否 |
| 扩展帧 | 29位 | ID[28:18] + SRR + IDE + ID[17:0] + RTR | 8字节 | 是 |
4.2.2 扩展帧的位场组成
一个完整的扩展帧数据帧包含以下位场:帧起始(SOF,1位显性)、仲裁场(32位)、控制场(6位)、数据场(0-8字节)、CRC场(15位CRC + 1位界定符)、应答场(2位)和帧结束(EOF,7位隐性)。在GB27930中,报文ID的分配遵循特定规则:例如,BMS发送的报文ID范围通常为0x1800xxxx至0x18FFxxxx,充电桩发送的报文ID范围通常为0x1000xxxx至0x10FFxxxx。ID的高位字节表示报文优先级和类型,低位字节表示源地址和目标地址。
4.2.3 位填充与CRC校验
CAN协议采用位填充机制:在发送端,若连续出现5个相同电平的位,则自动插入一个反相位的填充位;接收端在检测到5个相同位后,会删除紧随其后的填充位。这一机制保证了时钟同步的可靠性。CRC校验场使用15位CRC多项式(x^15 + x^14 + x^10 + x^8 + x^7 + x^4 + x^3 + 1),覆盖从帧起始到数据场结束的所有位。在GB27930通信中,CRC错误是最常见的错误类型之一,通常由电磁干扰或总线终端不匹配引起。
4.3 CAN错误处理与故障恢复
4.3.1 错误类型与检测机制
CAN协议定义了五种错误检测机制:位错误、填充错误、CRC错误、形式错误和应答错误。位错误发生在发送节点监控总线电平与自身发送电平不一致时;填充错误发生在接收节点检测到连续6个相同位时;CRC错误发生在接收节点计算的CRC与发送节点不一致时;形式错误发生在检测到非法位场格式时;应答错误发生在发送节点在应答场未检测到显性位时。每种错误都会触发错误帧的发送,错误帧由6个显性位和8个隐性位组成。
4.3.2 错误状态机与恢复流程
每个CAN节点维护两个计数器:发送错误计数器(TEC)和接收错误计数器(REC)。节点根据计数器值处于三种状态之一:主动错误状态(TEC<128,REC<128)、被动错误状态(TEC>127或REC>127)和总线关闭状态(TEC>255)。在主动错误状态,节点可主动发送错误帧;在被动错误状态,节点只能被动接收,且发送错误帧前需等待8个隐性位;在总线关闭状态,节点完全脱离总线,需等待128次总线空闲检测后才能恢复。
4.3.3 错误处理实战案例
场景描述:某充电桩在批量生产测试中发现,约3%的桩与车辆BMS握手失败,故障码显示"CAN通信超时"。使用CANoe抓取总线数据,发现BMS发送的报文存在间歇性CRC错误,且错误频率随充电功率升高而增加。
分析过程:首先检查终端电阻,测得CAN_H与CAN_L间电阻为58Ω,略低于标准值,但仍在可接受范围。进一步使用示波器观察总线波形,发现显性电平的上升沿存在明显过冲,幅值超过5V,且振铃持续约1μs。分析认为,充电桩内部的高压DC-DC变换器产生的电磁干扰耦合到CAN总线,导致信号完整性恶化。
解决措施:①在CAN收发器的VCC引脚增加100nF去耦电容,并串联磁珠(600Ω@100MHz)抑制高频干扰;②将CAN总线线缆更换为双绞屏蔽线,屏蔽层单点接地;③调整CAN控制器采样点从75%移至80%,增加相位缓冲段1的长度,提高对信号畸变的容忍度。
结果对比:整改后,CRC错误率从0.5%降至0.01%以下,握手成功率恢复至99.9%以上。该案例表明,CAN物理层的抗干扰设计对GB27930通信可靠性至关重要。
4.4 常见误区与设计要点
- 误区一:认为终端电阻可以省略或使用任意阻值。实际上,终端电阻不匹配会导致信号反射,严重时引发位错误。
- 误区二:忽视CAN收发器的共模电压范围。在充电桩与车辆地电位不一致时,共模电压可能超出收发器允许范围(-12V至+12V),导致通信异常。
- 误区三:将标准帧和扩展帧混用。GB27930严格要求扩展帧,若BMS或充电桩误配置为标准帧,将无法解析报文。
- 误区四:忽略CAN控制器的时钟精度。若晶振偏差超过0.5%,在250kbps速率下可能导致位时间漂移,引发同步错误。
物理层与链路层是GB27930通信协议的基础保障。只有确保CAN总线电气特性正确、帧格式配置无误、错误处理机制完善,才能保证直流快充过程中BMS与充电桩之间的报文交互稳定可靠。在实际工程中,建议使用CAN分析仪进行一致性测试,并参考ISO 11898-2标准进行物理层验证。