控制器局域网(Controller Area Network,CAN)是一种广泛应用于汽车电子和工业控制领域的现场总线协议。作为现代分布式控制系统的基础,CAN总线的物理层技术直接决定了整个通信系统的质量和可靠性。在实际工程应用中,理解物理层的工作原理对于系统设计、故障排查和性能优化都至关重要。
CAN协议在OSI参考模型中主要定义了数据链路层和部分物理层功能。物理层负责将数据链路层的逻辑信号转换为实际的物理信号,并通过传输介质(如双绞线)在节点间传递。这种分层设计使得CAN协议能够适应不同的物理介质和应用场景,从汽车内部的电子控制单元(ECU)通信到工业自动化设备的联网控制。
物理层的核心功能包括:
关键提示:CAN物理层设计必须考虑电磁兼容性(EMC)问题,特别是在汽车电子这种高干扰环境中。差分信号传输和适当的终端匹配是保证信号完整性的基础。
CAN总线采用非归零(Non-Return-to-Zero,NRZ)编码方式,这是其物理层的核心特征之一。与曼彻斯特编码等其它方式相比,NRZ编码具有更高的传输效率和更简单的实现方式:
为解决同步问题,CAN协议采用了位填充机制:
c复制// 示例:位填充算法逻辑(简化版)
void bit_stuffing(uint8_t* data, int length) {
int same_bit_count = 0;
uint8_t last_bit = (data[0] & 0x80) ? 1 : 0;
for(int i=1; i<length*8; i++) {
uint8_t current_bit = (data[i/8] >> (7-(i%8))) & 1;
if(current_bit == last_bit) {
same_bit_count++;
if(same_bit_count == 5) {
// 在此位置插入相反位
insert_opposite_bit(data, i);
same_bit_count = 0;
i++; // 跳过插入的位
}
} else {
same_bit_count = 0;
last_bit = current_bit;
}
}
}
CAN总线采用差分信号传输方式,这是其抗干扰能力的核心所在。典型的高速CAN(ISO 11898-2)物理层规范定义了以下电气特性:
| 参数 | CAN_H电压 | CAN_L电压 | 差分电压(Vdiff) |
|---|---|---|---|
| 显性位 | 3.5V (典型) | 1.5V (典型) | 2V (最小1.5V) |
| 隐性位 | 2.5V (典型) | 2.5V (典型) | 0V (最大0.5V) |
差分传输的工作原理:
设计经验:在PCB布局时,CAN_H和CAN_L走线应保持等长、平行且紧密耦合,间距最好控制在2倍线宽以内。这种对称布局能最大限度保持差分信号的完整性。
CAN总线采用同步位传输方式,精确的位定时是可靠通信的基础。一个位时间(Bit Time)被划分为四个主要段:
同步机制包含两种类型:
位定时参数通常通过波特率预分频器(BRP)、时间段1(TSEG1)和时间段2(TSEG2)等寄存器配置。例如,对于1MHz的CAN总线,典型的位时间配置可能是:
CAN物理层有多个国际标准,适用于不同应用场景:
| 标准 | 传输速率 | 拓扑结构 | 典型应用 | 终端电阻 | 特点 |
|---|---|---|---|---|---|
| ISO 11898-2 (高速CAN) | 最高1Mbps | 线性总线 | 动力总成系统 | 120Ω | 差分信号,抗干扰强 |
| ISO 11898-3 (容错CAN) | 最高125kbps | 灵活拓扑 | 车身电子 | 无固定要求 | 单线容错,低功耗 |
| SAE J2411 (单线CAN) | 33.3kbps | 灵活拓扑 | 舒适系统 | 不适用 | 单线传输,成本低 |
| ISO 11992 (点对点) | 125kbps | 点对点/菊花链 | 拖车系统 | 特定值 | 专用连接器,防水 |
在现代汽车中,不同速率的CAN网络通常分层部署:
高速CAN(动力总成网络):
低速/容错CAN(车身网络):
诊断CAN(OBD接口):
工业环境中的CAN总线应用有其特殊考虑:
典型工业CAN应用包括:
设计CAN网络时需要考虑以下关键参数关系:
波特率与总线长度:
常见波特率与最大长度参考:
| 波特率 | 理论最大长度 | 实际推荐长度 |
|---|---|---|
| 1Mbps | 40m | 30m |
| 500kbps | 100m | 80m |
| 250kbps | 200m | 150m |
| 125kbps | 500m | 400m |
节点数量限制:
终端电阻选择:
CAN收发器部分的PCB设计直接影响通信质量:
布局原则:
接地设计:
保护电路:
CAN物理层常见问题及解决方法:
| 故障现象 | 可能原因 | 检测方法 | 解决方案 |
|---|---|---|---|
| 通信完全失败 | 终端电阻缺失 | 测量CAN_H-CAN_L间电阻 | 补装终端电阻 |
| 间歇性错误 | 接触不良 | 摇动连接器观察波形 | 更换连接器或压接端子 |
| 高错误率 | 波特率不匹配 | 对比各节点配置 | 统一节点配置 |
| 信号振荡 | 分支线过长 | 检查拓扑结构 | 缩短分支线(<0.3m) |
| 电压异常 | 线间短路 | 测量CAN_H-CAN_L电压 | 检查线缆绝缘 |
示波器测量要点:
CAN FD(Flexible Data-rate)是对传统CAN协议的扩展,物理层主要改进:
可变速率传输:
增强的收发器设计:
电缆与连接器要求:
眼图测试要求:
实际应用中,CAN FD物理层设计需特别注意:
在汽车电子架构向域控制器发展的趋势下,CAN FD正逐步替代传统CAN,特别是在需要传输大量数据的场景(如ADAS传感器数据、OTA升级等)。工业领域也在逐步引入CAN FD,以满足工业4.0对实时性和数据量的更高要求。