CAN 总线(Controller Area Network,总线式控制器局域网)是一种串行通信总线标准,最早由德国 Bosch 公司在 1980 年代为汽车电子系统设计。它的特点是实时性强、可靠性高、成本低,因此广泛应用在汽车、工业自动化、医疗设备等领域。


1. 为什么需要 CAN 总线

在汽车等复杂设备中,原本每个控制单元(如发动机、ABS、防盗系统)之间都需要用点对点电缆连接,导致线束复杂、重量大、成本高。 CAN 总线的出现,用一条两线制(差分信号)总线,把所有节点并联在一起,实现多控制器共享通信线路,极大简化了布线。


2. CAN 总线的主要特点

  • 多主站:总线上所有节点(ECU)都可以主动发送数据,没有固定的主设备。
  • 消息广播:通信基于“消息 ID”,而不是“地址”。所有节点都能收到消息,但只有关心该 ID 的节点才会处理。
  • 差分信号传输:使用两根线(CAN_H、CAN_L),抗干扰能力强,适合车载等恶劣环境。
  • 仲裁机制:当多个节点同时发送,优先级高的 ID(数值小)会赢得总线仲裁,不会产生冲突。
  • 速率范围:典型为 125kbps、250kbps、500kbps,最高可达 1Mbps。

3. CAN 总线的组成

  • CAN 控制器:实现数据的打包、ID 编码、仲裁和错误检测(常见于 MCU 内置或独立芯片如 MCP2515)。
  • CAN 收发器:把控制器的数字信号转换为差分信号(典型芯片如 TJA1050、SN65HVD230)。
  • 物理层总线:一对双绞线(CAN_H、CAN_L),两端需要终端电阻(120Ω)。

4. CAN 总线的应用

  • 汽车电子:发动机控制单元(ECU)、安全气囊、ABS、防盗系统、车身控制等。
  • 工业控制:PLC、机器人、传感器网络。
  • 医疗设备:监控和控制系统。
  • 航空航天:飞行控制系统。

⚡ 可以把它理解成: 👉 CAN = 一条坚固耐用的“局域网”,专门为控制器之间的实时通信设计。

CAN 总线的结构示意图