1. CAN/LIN 总线基础:从起源到核心差异

各位好,我是老周。做汽车电子这行快十五年了,今天咱们聊聊 CAN 和 LIN 总线的基础。说实话,刚入行那会儿我也被这些协议搞得头大,但摸清楚它们的「脾气」之后,你会发现其实没那么复杂。

1.1 CAN 总线的起源:为什么会有它?

上世纪 80 年代,汽车里的电子设备越来越多。每个传感器、执行器都单独拉线,线束又粗又重,故障率还高。我记得有个老工程师跟我讲过,当年一辆豪华车的线束总长能超过两公里——你想想看,这得多沉?

1983 年,德国 Bosch 公司开始研发一种新的串行通信协议。1986 年,CAN(Controller Area Network)正式发布。它的核心目标就三个:

  • 减少线束:一根双绞线代替几十根独立信号线
  • 高可靠性:能在电磁干扰严重的车里稳定工作
  • 实时性:关键信号(比如刹车、油门)必须优先传输

我在 2010 年参与过一个国产 SUV 的项目,当时还在用老式的 K 线做诊断。后来全车切换到 CAN 总线,线束重量直接降了 40%。嗯,这个数字我记得很清楚。

1.2 物理层特性:CAN 是怎么「走线」的?

CAN 总线物理层用的是差分双绞线。说白了就是两根线拧在一起,分别叫 CAN_H 和 CAN_L。为什么要拧?因为两根线受到的电磁干扰几乎一样,接收端一相减,干扰就被抵消了。

参数 高速 CAN(ISO 11898-2) 低速 CAN(ISO 11898-3)
最大速率 1 Mbps 125 kbps
总线长度 ≤ 40 m @ 1 Mbps ≤ 500 m @ 125 kbps
显性电平 CAN_H ≈ 3.5V, CAN_L ≈ 1.5V CAN_H ≈ 3.5V, CAN_L ≈ 1.5V
隐性电平 CAN_H ≈ 2.5V, CAN_L ≈ 2.5V CAN_H ≈ 2.5V, CAN_L ≈ 2.5V
终端电阻 两端各 120 Ω 不需要
⚠️ 避坑指南: 我曾经在一个项目中,终端电阻只加了一端,结果总线信号反射严重,通信时好时坏。查了两天才找到原因——记住,高速 CAN 必须在总线两端各加一个 120 Ω 电阻。

1.3 差分信号原理:为什么它抗干扰强?

差分信号的核心逻辑很简单:不测电压绝对值,只测两根线的电压差。

  • 显性(Dominant):CAN_H 比 CAN_L 高 2V 左右,差值为正 → 逻辑 0
  • 隐性(Recessive):CAN_H 和 CAN_L 电压相等,差值为 0 → 逻辑 1

为什么会这样?你想想看,如果外界有个强电磁脉冲打过来,两根线上同时被叠加了 5V 的干扰。单端信号早就乱套了,但差分接收器只关心差值——两根线同时升高 5V,差值还是 0,信号纹丝不动。

我习惯用示波器同时看 CAN_H 和 CAN_L 的波形,再按一下 MATH 键做减法。看到干扰被完美抵消的那一刻,说实话,挺爽的。

💡 关键点: 差分信号是 CAN 总线能在发动机舱这种恶劣电磁环境下稳定工作的根本原因。别小看这两根线,它们是整个车载网络的「脊梁」。

1.4 CAN 与 LIN 的区别:什么时候用谁?

LIN(Local Interconnect Network)是 CAN 的「小弟」。2000 年左右,汽车里有些设备对速度要求不高(比如车窗、座椅、车灯),用 CAN 太浪费了。于是 LIN 总线应运而生。

我个人的经验是:CAN 管「大事」,LIN 管「小事」。具体区别看下表:

对比项 CAN 总线 LIN 总线
速率 最高 1 Mbps 最高 20 kbps
拓扑结构 多主站,总线型 单主站,多从站
物理层 差分双绞线 单线 + 地线
成本 较高(需要 CAN 收发器) 低(基于 UART)
节点数 最多 110 个(实际建议 ≤ 32) 最多 16 个
典型应用 发动机、ABS、变速箱、气囊 车窗、天窗、座椅、门锁
错误处理 完善的错误检测与重发机制 简单校验,无自动重发

说白了,CAN 是「高铁」,速度快、载客多、安全等级高;LIN 是「小区摆渡车」,速度慢、路线固定、成本低。你不可能用摆渡车跑长途,也不可能用高铁送业主回家——各司其职。

🎯 选型建议: 我一般这样判断——如果信号周期小于 10ms,或者涉及安全(如刹车、转向),必须用 CAN。如果只是开关信号、周期大于 50ms,用 LIN 就够了,成本能省 60% 以上。

1.5 知识体系总览

下面这张图把本章的核心逻辑串起来了。我建议你把它存下来,后面学拓扑优化的时候会反复用到这些概念。

CAN / LIN 总线知识体系 车载通信总线 CAN 总线 LIN 总线 差分信号 多主通信 错误重发 单线传输 主从结构 低成本 核心区别一句话总结 CAN:高速、可靠、多主、差分 → 用于动力与安全系统 LIN:低速、简单、主从、单线 → 用于车身舒适系统 两者互补,构成现代汽车网络的「高低搭配」

嗯,以上就是 CAN/LIN 总线的基础内容。这些概念看起来简单,但后面讲拓扑优化的时候,你会发现——物理层特性决定了你能怎么布线,协议差异决定了你能怎么组网。基础打牢了,后面才不慌。