CAN基础知识
CAN基础知识
- 一、CAN协议的版本
- 1. CAN 1.0/1.2(基础版本,1986-1991)
- 2. CAN 2.0(主流经典版本,1991年发布)
- 3. CAN FD(Flexible Data Rate,灵活数据速率,2012年发布)
- 4. CAN XL(2019年发布,新一代协议)
- 二、CAN控制器的分类
- 1. 按集成方式分类
- 2. 按支持的协议版本分类
- 3. 按功能复杂度分类
- 三、常见的CAN控制器
- 1. 独立式CAN控制器
- 2. 集成式CAN控制器
- 3. 其他专用控制器
- 总结
一、CAN协议的版本
CAN(Controller Area Network)协议由博世(Bosch)主导制定,历经多次迭代,核心版本如下:
1. CAN 1.0/1.2(基础版本,1986-1991)
- 发布背景:最早的标准化版本,为汽车内部低速率通信设计。
- 核心特点:仅支持标准数据帧(11位标识符,ID范围0-0x7FF),数据长度固定为0-8字节,最高通信速率125kbps。
- 局限性:无扩展帧(无法支持更多节点)、速率低,仅用于早期汽车电子原型,目前已被淘汰。
2. CAN 2.0(主流经典版本,1991年发布)
CAN 2.0是应用最广泛的版本,分为两个子版本:
-
CAN 2.0A(标准帧模式):
支持11位标识符(标准ID),数据长度0-8字节,最高速率1Mbps(短距离),适用于节点数量较少的场景(如汽车车身控制、低端工业传感器)。 -
CAN 2.0B(扩展帧模式):
新增29位扩展标识符(标准ID+18位扩展位,ID范围0-0x1FFFFFFF),可支持更多节点(理论上万级),数据长度仍为0-8字节,速率1Mbps,兼容CAN 2.0A设备。 -
核心价值:奠定了CAN的工业化基础,目前90%以上的传统CAN设备(如汽车ECU、工业PLC)仍基于CAN 2.0B运行。
3. CAN FD(Flexible Data Rate,灵活数据速率,2012年发布)
-
核心改进:
- 突破数据长度限制:数据场从8字节扩展至64字节,大幅提升单次通信效率(减少帧数量)。
- 双速率机制:仲裁场(ID部分)仍用低速率(≤1Mbps,保证兼容性),数据场可切换至高速率(最高8Mbps,部分芯片支持12Mbps)。
- 兼容CAN 2.0:可与传统CAN设备共存于同一总线(通过“FD使能”位区分)。
-
应用场景:汽车ADAS(传感器大数据传输)、工业机器人(实时控制指令)、智能驾驶域控制器等对带宽要求高的场景。
4. CAN XL(2019年发布,新一代协议)
- 进一步扩展:
- 数据长度提升至2048字节,速率最高10Mbps,支持更长帧和更高带宽。
- 新增“元数据”字段,可携带帧优先级、时间戳等额外信息,适配物联网(IoT)和车载以太网协同场景。
- 现状:目前处于推广阶段,芯片和设备支持度有限,主要面向未来智能汽车和工业4.0的超高速通信需求。
二、CAN控制器的分类
CAN控制器是实现CAN协议的核心芯片(或芯片内模块),按集成方式、功能特性可分为以下几类:
1. 按集成方式分类
-
独立式CAN控制器(External CAN Controller):
作为独立芯片存在,需搭配外部MCU(微控制器)和CAN收发器(如TJA1050)使用,通过并行总线、SPI或I²C与MCU通信。- 特点:成本低、灵活性高(可适配任意MCU),但需额外PCB空间和硬件设计(如时序匹配)。
- 典型代表:SJA1000(并行)、MCP2515(SPI)。
-
集成式CAN控制器(Integrated CAN Controller):
嵌入在MCU内部(与CPU、内存等模块集成),直接通过内部总线与MCU交互,无需外部芯片。- 特点:集成度高(减少EMI干扰)、通信效率高(硬件加速与MCU深度协同),但依赖特定品牌MCU生态。
- 典型代表:NXP FlexCAN(S32K系列)、STM32 bxCAN(STM32F4/H7系列)。
2. 按支持的协议版本分类
-
仅支持CAN 2.0:仅能处理标准帧/扩展帧(8字节数据,≤1Mbps),无CAN FD功能。
代表:SJA1000、MCP2515、STM32F1系列的bxCAN。 -
支持CAN 2.0 + CAN FD:兼容传统CAN 2.0设备,同时支持64字节数据和高速率(>1Mbps)。
代表:NXP FlexCAN(S32K3系列)、STM32H743的bxCAN、Microchip PIC32的CAN FD模块。 -
支持CAN XL:目前极少,仅部分高端芯片(如NXP的部分汽车MCU)开始支持,尚未普及。
3. 按功能复杂度分类
-
基础型:仅实现CAN协议的核心逻辑(帧收发、错误检测),无硬件加速,依赖MCU处理CRC校验、帧解析等。
代表:MCP2515(低端型号)、SJA1000。 -
增强型:集成硬件加速(如硬件CRC、位填充/解填充、邮箱过滤),支持DMA(直接内存访问),降低MCU负担。
代表:FlexCAN、STM32 H7系列的bxCAN。
三、常见的CAN控制器
以下为工业和汽车领域最常用的CAN控制器,覆盖独立式和集成式:
1. 独立式CAN控制器
-
SJA1000(NXP,经典款):
- 协议支持:CAN 2.0A/B(无CAN FD),最高速率1Mbps,8字节数据。
- 接口:并行总线(8位数据/地址线),需搭配MCU(如8051)控制。
- 应用:老旧工业设备(如机床、农机)、低端传感器,因成本低、资料丰富仍在小范围使用。
-
MCP2515(Microchip,主流款):
- 协议支持:CAN 2.0A/B,最高速率1Mbps,8字节数据。
- 接口:SPI(仅4根线),适配资源有限的MCU(如PIC、STM32F0),硬件设计简单。
- 应用:智能家居(如智能开关)、低端工业传感器(温湿度、压力),性价比高。
-
MCP25625(Microchip,增强款):
- 集成CAN控制器+收发器(二合一),支持CAN 2.0A/B,SPI接口,减少外部元件,适合紧凑设计(如汽车OBD诊断模块)。
2. 集成式CAN控制器
-
FlexCAN(NXP,汽车级):
- 协议支持:CAN 2.0A/B + CAN FD(部分型号支持),最高速率8Mbps(CAN FD模式),64字节数据。
- 特点:32+可配置邮箱(精准ID过滤)、硬件加速(错误处理、帧缓冲),与NXP S32K/i.MX系列MCU深度集成。
- 应用:汽车域控制器(车身控制、动力系统)、ADAS(摄像头/雷达数据传输),以高实时性著称。
-
STM32 bxCAN(意法半导体,工业级):
- 协议支持:低端型号(如F1)仅CAN 2.0,高端型号(如H7)支持CAN FD(最高5Mbps)。
- 特点:8-32个邮箱,支持DMA与中断协同,适配STM32全系列MCU,开发工具(CubeMX)成熟。
- 应用:工业PLC、机器人、中端汽车电子(如车载娱乐系统),因STM32生态广泛而普及。
-
TCAN1042(TI,集成收发器):
- 严格来说是“CAN控制器+收发器”二合一芯片,支持CAN 2.0A/B,SPI接口,适合低功耗场景(如电池供电传感器)。
3. 其他专用控制器
- 英飞凌TLE9250:汽车级集成式CAN控制器,支持CAN FD,侧重高可靠性(抗电磁干扰),用于新能源汽车BMS(电池管理系统)。
- Microchip PIC32 CAN FD:集成于PIC32 MCU,支持CAN FD,适合工业物联网(IIoT)的边缘节点(如智能网关)。
总结
- 协议版本决定了CAN的通信能力(数据长度、速率),从CAN 2.0到CAN FD再到CAN XL,逐步突破带宽限制;
- 控制器分类影响硬件设计(独立式适合低成本,集成式适合高集成度);
- 常见控制器需根据场景选型:汽车高实时场景选FlexCAN,工业中端选STM32 bxCAN,低端低成本选MCP2515/SJA1000。