[驱动开发篇]《Can 通信协议从入门到精通》- 综述
前言
写在最前,本文主要是对Can 通信的定义做出详细的介绍,熟话说知己知彼,百战不殆,我们在学习Can 通信协议前,也需要先知道什么是Can 总线通信、为什么要有Can 通信(它和其它通信协议比优势 / 劣势分别是什么)、我们如何一步步的学习Can 通信、如何去寻找准确的Can 协议相关资料等;
一、 综述
1.1. Can 是什么?
Can是Controller Area Network 的缩写(以下称为CAN),是ISO 国际标准化的串行通信协议。
随着汽车电子化程度提升,车载系统对安全性、舒适性及成本控制的要求日益严格,催生了多样化的电控单元(ECU)。不同系统对通信速率与可靠性的需求差异,导致车内多总线并存、线束复杂化。为减少线束并实现高速数据交互,博世公司于1986年提出CAN总线协议(Controller Area Network),后通过ISO11898 / ISO11519标准化
,现已成为全球汽车网络的主流通信架构。下图简略展现了传统汽车上总线的基本分布情况。
现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
1.2. Can 的重要性
CAN总线凭借革命性的分布式架构、极致的性价比、军工级可靠性,逐步成为:汽车电子的神经系统(全球年装车量超20亿节点)、工业4.0的通信基座(85%工厂设备互联标准)、物联网边缘计算的关键载体。下面分别从通信架构、成本结构、总线优势、未来发展几个方面简要说一下Can在汽车电子、机器人等方向的重要性;
1.2.1. 技术重要性:重新定义分布式通信架构
特性 | 重要性体现 |
---|---|
多主通信架构 | 无需中央控制器,节点自由收发数据 → 显著降低系统复杂度 |
非破坏性仲裁 | ID优先级机制(小ID优先)→ 解决总线冲突,保障关键指令实时传输(如刹车信号) |
高可靠性 | CRC校验 + 自动重传 + 故障节点静默 → 错误率 < 10⁻¹¹(航空级可靠) |
强抗干扰能力 | 差分信号(抗共模干扰)+ 双绞线屏蔽 → 在汽车引擎舱等强电磁环境稳定工作 |
实时性保障 | 确定性延迟(1Mbps时位时间固定1μs)→ 满足汽车控制毫秒级响应需求 |
1.2.2. 经济重要性:重塑产业成本结构
维度 | 经济价值 |
---|---|
线束成本 | 单双绞线替代复杂线束 → 汽车线束减重30%(主流车型节省电线超2km) |
开发成本 | 标准化协议(ISO 11898)→ 软硬件解耦,缩短新车型开发周期40% |
维护成本 | 诊断接口统一(ISO 15765)→ OBD-II故障诊断效率提升60% |
能耗成本 | 低功耗模式(静态电流<10μA)→ 新能源车待机每年省电超5kWh |
1.2.3. 不可替代性:对比其他总线的优势
总线类型 | 缺陷 | CAN的不可替代性 |
---|---|---|
LIN总线 | 速率≤20kbps,主从架构 | 多主架构 + 高实时性 |
FlexRay | 成本高(10倍于CAN) | 性价比最优($0.3/节点) |
以太网 | 实时性较差(非确定性延迟) | 微秒级确定性延迟 |
MOST | 仅支持多媒体传输 | 全领域控制(动力/车身/诊断一体化) |
1.2.4. 未来发展趋势:持续赋能智能化
- CAN FD(ISO 11898-6/7)数据段速率8Mbps + 64字节数据 → 支持ADAS传感器数据流
- CAN XL(ISO 11898-8草案)10Mbps+ 速率 + 以太网融合 → 构建车内异构网络骨干(主要面向无人驾驶领域日益增长速率需求)
二、 Can 协议简介
Can协议具有以下特点:(1)多主控制:多主站依据优先级进行总线访问(2)总线仲裁:非破坏性的基于竞争的总线总裁机制(3)错误检测与标定:具备完善的错误检测/错误帧机制(4)发送期间若是丢失仲裁/由于出错造成的发送失败,可以重新传输;
2.1. Can 通信的物理层 - 简介
最初Can协议经过ISO标准化后,有ISO11898标准和 ISO11519标准两种,两种协议在数据链路层
上定义是相同的,但是在物理层
面却有比较大的区别:
- ISO11898-2(高速CAN) 是通信速度为125Kpbs - 1Mbps 的Can高速通信标准。
- ISO11519(低速/容错CAN)是通信速度为125Kbps以下的Can 低速通信标准。
注意: ISO11519 已经逐步被ISO11898-3取代,其主要适用于车身舒适网等对速率要求不高的场景,其容错机制可应对单线通信故障,确保总线稳定性
- 两者的主要区别可以参考下表(这里我直接使用了
瑞萨Can应用手册
中的表格,相对比较经[古]典[老]的资料):
从上表中可以看到,不论是低速Can还是高速Can,都采用双绞线(屏蔽/非屏蔽)
作为通信媒介,双绞线的主要优势在于:通过差分信号可以有效的抑制总线上的噪声(在汽车上需要考虑到电机等强干扰源设备产生的各种复杂的噪声干扰)。CAN 收发器根据两根总线(CAN_High 和CAN_Low)的电位差来
判断总线电平。总线电平分为显性电平和隐性电平两种。总线必须处于两种电平之一。总线上执行逻辑上的线“与”时,显性电平为“0”,隐性电平为“1”。物理层的特征如下图所示。
2.2. Can 控制器及Can 收发器 - 简介
在典型MCU的CAN通信架构中,需协同配合集成于芯片内部的CAN控制器与外部独立CAN收发器:CAN控制器(如STM32F4/英飞凌TC3xx等)实现数据链路层协议(ISO 11898-1),负责数据帧封装/解封、ID仲裁、错误检测及位时序控制
;CAN收发器(如TJA1050)则处理物理层信号转换(ISO 11898-2),将控制器的TTL电平转换为差分总线信号
,提供≥40mA驱动能力并集成显性超时/短路保护,二者协同完成从协议处理到物理驱动的完整通信链路。
模块 | 核心职责 | 工作层级 | 技术依赖 |
---|---|---|---|
CAN控制器 | 协议处理(数据帧封装/解封、错误检测、仲裁逻辑) | 数据链路层 | MCU软件配置(寄存器) |
CAN收发器 | 信号转换(TTL↔差分电平)及物理总线驱动 | 物理层 | 双绞线特性阻抗匹配. |
⚡ 类比说明:
- 控制器 = 外交官:负责制定通信规则(协议),决定"说什么、何时说"
- 收发器 = 翻译官+邮差:将信息编码为可传输信号(差分电平),并驱动线路传输
2.2.1. Can 控制器(Can Controller)
CAN控制器是CAN总线系统中的核心处理芯片,承担协议解析与硬件控制的关键角色(通常集成于MCU内部)。以下是其核心作用及工作原理的详细解析:
- 技术定位: 实现数据链路层协议(ISO 11898-1)
- 核心功能:
- 协议处理: 数据帧封装/解封、ID仲裁、CRC校验
- 错误管理: 位填充、ACK响应、错误计数器状态迁移
- 时序控制: 波特率配置(BS1/BS2分段)、采样点校准
- 主流集成方案:
平台 | 代表型号 | 车规认证 |
---|---|---|
车载高性能 | 英飞凌TC3xx/瑞萨RH850 | ASIL-D |
通用嵌入式 | STM32F4/ESP32 | 工业级 |
域控制器 | 恩智浦S32K | ASIL-B |
- 核心功能定位
功能模块 | 作用描述 | 技术实现 |
---|---|---|
协议帧处理 | 实现数据链路层协议(ISO 11898-1)的硬件封装 | • 自动添加SOF、ID、控制位、CRC等字段 • 完成位填充(每5个相同位后插入1个相反位) |
总线仲裁管理 | 处理多节点竞争冲突 | • 逐位比对ID值(低ID优先级更高) • 仲裁失败时中止发送并自动重试 |
错误检测与处理 | 确保数据传输可靠性 | • 实时执行CRC校验、帧格式检查 • 错误计数器累加,触发被动错误/总线关闭状态迁移 |
位时序控制 | 同步收发时序 | • 配置BS1(传播段+相位缓冲段1)、BS2(相位缓冲段2) • 控制采样点位置(通常75%~90%) |
2.2.2. Can 收发器(Can Transceiver)
三、 扩展章节:了解ISO11898 标准 🔍
在前面章节中,我们多次提到过ISO11898标准,相信很多读者都会有些疑惑,为什么ISO11898标准还分为1/2/3… …,每个结尾的标号又分别代表什么意思呢?那么本节作为扩展章节我们需要了解下什么是ISO11898;
ISO 11898 是国际标准化组织(ISO)制定的控制器局域网(CAN)通信协议核心标准系列,专门规范汽车及工业领域中的 CAN 总线通信技术。其核心功能是定义电气特性、物理层信号、数据链路层协议,实现多节点设备间高可靠性、实时性数据交换。以下是其结构化解析:
3.1. 标准概括
子标准 | 范围 | 核心作用 | 现实应用 |
---|---|---|---|
ISO 11898-1 | 数据链路层 | 定义帧结构、仲裁、错误检测、流量控制 | 所有CAN系统的通信基础(包括CAN FD) |
ISO 11898-2 | 高速物理层(经典CAN) | 规范差分信号传输(最高1Mbps) | 发动机控制、ABS、实时动力系统 |
ISO 11898-3 | 低速容错物理层 | 支持单线/差分混合模式(≤125kbps) | 车身控制(车门/灯光/座椅) |
ISO 11898-4 | 时间触发通信(TTCAN) | 定义时间片调度机制(增强实时性) | 航空航天高精度控制 |
ISO 11898-5 | 低功耗模式 | 规范休眠/唤醒机制 | 新能源汽车待机省电设计 |
ISO 11898-6 | CAN FD 高速物理层 | 支持最高8Mbps的灵活数据速率 | 智能驾驶传感器数据传输 |
ISO 11898-7 | CAN FD 数据链路层 | 扩展帧格式(64字节数据) | 车载以太网关、OTA升级 |
3.2. 性能指标
参数 | ISO 11898-2 | ISO 11898-3 | ISO 11898-6 (CAN FD) |
---|---|---|---|
最高速率 | 1 Mbps | 125 kbps | 8 Mbps(数据段) |
最大帧数据量 | 8字节 | 8字节 | 64字节 |
节点容错能力 | 弱 | 强 | 中等 |
3.3. 如何获取ISO 11898协议
ISO 11898是控制器局域网(CAN)总线技术的核心国际标准,广泛应用于汽车电子、工业控制等领域。以下是获取该协议的主要途径,分为免费和付费两类,并附注意事项:
1. 官方渠道
① 国际标准化组织(ISO)官网
② 国内标准机构
2. 免费获取途径
① 技术社区与公众号资源
② 开源技术平台