1.1 CAN总线概述

1.1.1 CAN总线起源

CAN(Controller Area Network,控制器局域网)总线由德国博世(Bosch)公司于1986年开发,最初为汽车内部电子控制单元(ECU)之间的通信而设计。随着汽车电子化程度提高,传统点对点布线方式导致线束复杂、成本高昂,CAN总线应运而生,实现了多节点、高可靠性的串行通信。

CAN总线发展历程 1986 Bosch提出 1991 CAN 2.0规范 2003 ISO 11898 至今 广泛普及

1.1.2 CAN总线特点

差分信号传输

CAN总线使用CAN_H和CAN_L两条差分信号线,通过电压差表示逻辑状态:

  • 显性电平(逻辑0):CAN_H ≈ 3.5V,CAN_L ≈ 1.5V,差分电压约2V
  • 隐性电平(逻辑1):CAN_H ≈ 2.5V,CAN_L ≈ 2.5V,差分电压约0V
CAN差分信号波形 CAN_H (3.5V) CAN_L (1.5V) 显性位(逻辑0) 隐性位(逻辑1) 2V

多主从通信

CAN总线采用多主站结构,任何节点在总线空闲时均可发起通信,通过非破坏性逐位仲裁机制解决冲突:

  • 标识符(ID)越小,优先级越高
  • 显性位覆盖隐性位,优先级高的节点自动获得总线控制权
  • 无需中央控制器,节点可自由加入或退出网络

实时性与可靠性

特性 说明
实时性 数据帧优先级仲裁,最坏响应时间可预测
错误检测 CRC校验、位填充、帧格式检查、应答确认
错误处理 自动重发、错误被动/主动状态切换、总线关闭
传输距离 1Mbps时最长40m,50kbps时最长1km

1.1.3 CAN与RS485/LIN对比

通信协议对比架构 CAN 多主从 差分信号 实时性高 错误检测强 RS485 主从结构 差分信号 无仲裁机制 距离远 LIN 单主多从 单线传输 低成本 低速(20kbps)
对比项 CAN RS485 LIN
物理层 差分双线 差分双线 单线+地
拓扑结构 多主 主从 单主多从
最大速率 1 Mbps 10 Mbps 20 kbps
仲裁机制 非破坏性逐位仲裁 无(需协议层处理) 主节点调度
错误处理 完善(CRC/ACK/位填充) 无(需上层实现) 简单校验
典型应用 汽车动力/车身/诊断 工业控制/仪表 车门/车窗/座椅
成本 中等 低 最低

典型应用场景

  • CAN总线:发动机控制、ABS、安全气囊、车载诊断(OBD)
  • RS485:工厂自动化、楼宇控制、远距离数据采集
  • LIN总线:车窗升降、后视镜调节、空调风门控制
CAN总线典型节点拓扑 CAN_H CAN_L 120Ω 120Ω ECU 1 ECU 2 ECU 3 ECU 4

专注课程资料整理