CAN总线是什么?详细介绍
CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。
好的,我们来详细介绍一下 CAN总线。
CAN总线 的全称是 控制器局域网总线。它是一种广泛应用于汽车电子、工业自动化以及其他嵌入式和分布式控制系统中的串行通信协议。它最初由德国的博世公司在1980年代为汽车电子系统设计,目的是取代复杂的点对点布线,为汽车内各电子控制单元提供一个高效、可靠且经济的通信网络。
核心目标与设计理念
- 简化布线: 减少汽车内部复杂的点对点连线,降低重量和成本。
- 实时性: 提供可预测的传输延迟(确定性),满足关键控制信号(如引擎管理、刹车、气囊)对时间的严格要求。
- 高可靠性: 在恶劣的电磁环境下确保数据的可靠传输(抗干扰、容错)。
- 多主机操作: 允许多个节点(ECU - 电子控制单元)连接到同一总线上,任何节点都可以主动发起通信(广播或指定接收)。
- 事件驱动: 节点在有信息需要发送时才占用总线,适合数据突发传输。
工作原理
-
物理层:
- 传输介质: 通常使用双绞线(CAN_H 和 CAN_L),有时也使用光缆或无线传输(较少见)。双绞线提供差分信号传输,抗共模干扰能力强。
- 信号表示: 采用差分信号。逻辑“1”(隐性电平):两条线的电压差趋近于0V(通常CAN_H和CAN_L都接近2.5V或电源电压的一半)。逻辑“0”(显性电平):存在明显的电压差(例如CAN_H ≈ 3.5V, CAN_L ≈ 1.5V,差值为2V)。显性电平(0)具有优先权,它能覆盖隐性电平(1)。 这是实现非破坏性仲裁的基础。
- 终端电阻: 总线两端(最远端点)各需接一个120欧姆的终端电阻,用以匹配线路阻抗,消除信号反射。
-
数据链路层:
-
报文帧: CAN总线上的信息以帧为单位进行传输。常见的帧类型有数据帧、远程帧、错误帧、过载帧。其中数据帧用于传输实际数据。
-
数据帧结构 (关键部分详解):
- 起始位: 1个显性位(0),标志帧的开始。
- 仲裁域:
- 标准帧(11位标识符)或扩展帧(29位标识符):标识符代表了信息的优先级和内容含义。数值越小,优先级越高。
- RTR 位: 远程传输请求位,区分数据帧(0)和远程帧(1)。
- 控制域: 包含一个保留位(未来扩展)和4位的数据长度码(DLC),指示数据域的字节数(0-8字节)。
- 数据域: 实际需要传输的用户数据,长度为0-8字节。这是CAN帧的核心载荷。
- CRC域: 循环冗余校验码(15位)和CRC界定符,用于检测传输过程中的位错误。
- ACK域: 确认槽位和界定符。接收节点在收到正确的帧后,在ACK槽位发送一个显性位(0)表示确认。发送节点在隐性位(1)中检测到显性位即表示有节点成功接收。
- 帧结束: 7个连续的隐性位(1),表示帧结束。
-
非破坏性逐位仲裁: 这是CAN协议最核心的特性,确保高优先级信息无延迟传输。
- 当多个节点同时发送时,会从起始位开始,逐个比特比较各自发送的标识符。
- 只要发送的是隐性位(1)的节点监测到总线上出现显性位(0),就立即停止发送并转为接收模式。因为显性位(0)优先。
- 最终,只有发送最高优先级标识符(数值最小)的节点会赢得仲裁,不受干扰地完成整个帧的发送。其他节点在丢失仲裁后会自动等待总线空闲后重试。
- 这个过程是硬件实时完成的,不会因为仲裁失败而损坏任何信息。
-
错误检测与处理: CAN协议提供了强大的错误检测机制:
- 位监控: 发送节点会监控总线电平,确保发送的比特与实际总线上的比特一致。
- 位填充: 在帧起始到CRC序列之前,连续出现5个相同电平的比特后,会插入一个相反电平的填充位。接收方会去除填充位。这可以确保足够的跳变边沿用于时钟同步,同时也有助于检测错误(如出现连续6个相同电平)。
- 帧格式检查: 检测帧中各部分固定格式是否符合标准(如起始位、结束位、界定符)。
- CRC校验: 接收方会用与发送方相同的算法计算CRC值并与接收到的CRC对比。
- ACK缺失: 如果发送节点没有检测到任何接收节点的显性确认位。
- 错误计数器和错误状态: 每个节点有发送错误计数器和接收错误计数器。根据错误发生的频率和类型,节点会从错误主动->错误被动->总线关闭状态转移。总线关闭的节点将无法再收发报文。
-
主要特性总结
- 多主工作方式: 无中心主机,节点地位平等。
- 无破坏性逐位仲裁: 基于标识符优先级仲裁,高优先级报文传输无延迟。
- 实时性强: 具有可预测的响应时间(特别是高优先级信息)。
- 强鲁棒性: 差分信号抗干扰;强大的错误检测和处理机制;节点错误后可自我隔离。
- 报文结构简洁高效: 标识符决定内容而非地址,数据短(≤8字节),开销相对小。
- 广播/组播能力: 数据帧发送到总线,所有节点都可接收(广播),或仅部分节点接收(组播,由标识符隐含定义)。
- 低层协议实现: 由专用硬件CAN控制器处理,减轻MCU负担。
- 灵活性: 可动态增减节点(即插即用),节点数量理论上不受限(受电气负载限制)。
应用领域
- 汽车电子: 最核心的应用领域。 引擎管理、变速箱控制、车身控制(门窗、灯光、座椅)、仪表盘、空调、ABS/ESP、安全气囊、信息娱乐系统等ECU之间的通信。
- 工业自动化: PLC、传感器、执行器、电机驱动器、人机界面的联网控制。
- 医疗器械: 各种医疗仪器设备内部及设备间的通信。
- 航空航天: 飞机内部系统(非关键航电)、卫星子系统通信。
- 楼宇自动化: 照明、空调、安防系统的控制网络。
- 其他: 电梯、轨道交通车辆设备、船舶等。
CAN总线的演进
- CAN 2.0A/2.0B: 定义了标准格式(11位标识符)和扩展格式(29位标识符)。
- CAN FD: 在传统CAN(Classic CAN)基础上发展而来。
- 更快速率: 仲裁阶段(标识符部分)使用传统速率(如500kbps),数据阶段(数据部分)可以切换到更高的速率(如2Mbps或更高)。
- 更大的数据域: 最大数据长度增加到64字节(DLC可表示0-64字节)。
- 改进的CRC校验: 采用更长的多项式(17位或21位)增强长数据的错误检测能力。
- CAN XL: 旨在成为高速、大数据量通信的标准(数据域可达2048字节),目标是融合CAN与以太网的一些优势。
为何如此广泛采用?
- 可靠性经过严苛验证: 在汽车这种电磁环境复杂、安全要求极高的场景中经受住了长期考验。
- 成本效益高: 专用硬件芯片广泛应用,价格低廉;双绞线布线成本显著低于点对点。
- 真正的分布式通信: 多主机、事件驱动机制非常适合设备间交互的场景。
- 确定性与低延迟: 基于优先级的仲裁机制保证了关键信息能及时送达。
- 良好的错误处理: 确保单个节点的故障不会轻易导致整个网络瘫痪。
安全考虑
- 由于CAN最初设计时未充分考虑安全,存在安全隐患:
- 广播特性:报文易被监听。
- 缺乏强加密和认证:报文内容易被篡改、伪造、重放攻击。
- 随着车辆网联化和智能化(如OTA升级、自动驾驶),CAN总线安全日益重要。解决方案包括:
- 使用安全网关隔离关键域与非关键域。
- 部署入侵检测系统。
- 在应用层实现加密和认证(如SecOC)。
- 采用物理隔离。
- 开发下一代具备安全功能的协议(如CAN-XL可能集成安全层)。
总而言之,CAN总线是一种为实时控制设计的、高可靠、多主、基于优先级的串行通信协议,其核心价值在于非破坏性逐位仲裁带来的实时性和强鲁棒性。这使得它在汽车电子和工业控制等关键领域成为不可替代的骨干网络技术,尽管面临新的高速、大数据量、安全需求的挑战,其演进版(CAN FD/CAN XL)仍在持续发展以满足未来需求。
虹科干货 | 带你全面认识“CAN总线错误”(二)——CAN错误类型
AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细
2022-06-09 09:46:53
虹科干货 | 带你全面认识“CAN总线错误”(二)——CAN错误类型
AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细
2022-06-02 09:41:24
虹科干货 | 带你全面认识“CAN总线错误”(一)——CAN总线错误与错误帧
AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细
2022-05-27 10:39:21
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 传感器常见类型有哪些?
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机