0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

can总线原理如何理解

  CAN(Controller Area Network),中文名称为控制器局域网络,通常称为CAN bus,即CAN总线。是由德国BOSCH(博世)公司研究开发的,现已成为ISO国际标准化的串行通信协议,是目前在国际上应用最广泛的开放式现场总线之一。

分享:

好的,理解CAN总线的原理可以拆分成以下几个核心部分来把握:

核心目标:实现众多电子控制单元(ECU)之间的可靠、高效通信。

想象一下一辆现代汽车:有发动机控制器、变速箱控制器、ABS控制器、仪表盘、安全气囊控制器等等几十个甚至上百个电子模块。它们需要实时地共享信息(如车速、转速、刹车状态、故障码)。CAN总线就是为解决这种“多点对多点”通信而设计的。

核心原理与工作机制:

  1. 基于总线拓扑和差分信号 (物理层):

    • 结构: 所有ECU节点都挂接到一对(两根)总线电缆上:CAN_High (CAN_H) 和 CAN_Low (CAN_L)。就像一个微信群,所有成员都在一个群里发言(总线)。
    • 抗干扰: 采用差分电压传输信号。逻辑状态不是靠单线电压高低判断,而是看两根线之间的电压差
      • 显性电平 (Dominant State) - 逻辑“0”: CAN_H 和 CAN_L 电压差较大(典型值:CAN_H ≈ 3.5V, CAN_L ≈ 1.5V, 差值≈2V)。这代表总线被“主动驱动”的状态,优先级高。
      • 隐性电平 (Recessive State) - 逻辑“1”: CAN_H 和 CAN_L 电压差非常小(约0V)。这代表总线“未被主动驱动”(靠终端电阻维持)的状态,优先级低。
    • 好处: 差分传输对电磁干扰具有极强的抑制能力(干扰通常是共模的,即同时加到两条线上,不会显著改变电压差),非常适应汽车等电气环境恶劣的场合。
  2. 多主结构与非破坏性逐位仲裁 (数据链路层核心):

    • 多主: 任何一个ECU节点都可以在总线空闲时主动发送信息。没有固定的“主”节点控制发送权。
    • 先听后说 (CSMA/CA): 节点想发送消息时,先侦听总线。只有当总线空闲(检测到连续11个隐性位)时,才开始发送。
    • 边说边听 (冲突检测与仲裁): 如果多个节点恰好同时开始发送(冲突),冲突必然发生。CAN总线解决冲突的机制极其巧妙,称为非破坏性逐位仲裁(Nondestructive Bitwise Arbitration)
      • 节点在发送自己报文ID(标识符,决定了报文的优先级)的同时,实时监听总线的实际电平状态。
      • 节点自己发送的位电平会与监听到的总线电平比较:
        • 如果一致:继续发送下一位(说明自己占优或还没冲突)。
        • 如果不一致(比如自己发“1”(隐性)却读到“0”(显性)):说明有更高优先级的节点正在发送显性位。本节点立即停止发送后续位并转为接收模式。这个过程发生在发送ID域的过程中。
      • 仲裁规则: 显性位“0”覆盖隐性位“1”。也就是说,在冲突发生时,谁先发送“0”(较低ID值的对应位更可能是“0”),谁就赢得仲裁。ID数值越小,优先级越高
      • “非破坏性”关键: 赢得仲裁的高优先级报文会完整无缺地继续发送,而退出发送的节点也不会因为冲突而损坏任何信息。对于旁观节点来说,整个过程只看到最终胜利者发出的连贯报文。就像多辆车同时到达路口都想进主路,但谁的车头先占位(发出显性位),谁就继续通行,其它车立刻谦让,道路不会堵塞,赢的车通行顺畅。这种仲裁机制保证了最重要的信息(高优先级)能以最小的延迟被传输。
  3. 报文/帧结构与标识符 (ID):

    • CAN的信息以固定格式的“”进行传输。基本结构如下:
      • 仲裁域 (Arbitration Field): 包含核心的标识符 (ID) 和 RTR 位(标识是数据帧还是远程帧)。ID长度通常是11位(标准帧)或29位(扩展帧)。ID决定了报文的优先级,用于仲裁。
      • 控制域 (Control Field): 包含标识符扩展位和DLC(数据长度码,指示数据域字节数,0-8字节)。
      • 数据域 (Data Field): 实际传输的有效数据(0-8字节)。CAN协议设计传输的是小数据块,适合实时控制系统。
      • CRC域 (CRC Field): 循环冗余校验码,供接收节点检查帧传输错误。
      • ACK域 (ACK Field): 发送节点发送隐性位。所有正确接收到报文(无CRC错误)的节点,无论报文是不是发给它的,都会在这个位置主动回一个显性位,向发送节点确认收到了一个有效帧。
      • 帧结束: 特定结束符。
    • 广播特性: 报文发送到总线上,所有节点都会收到。每个节点通过报文ID来判断自己是否需要处理这个报文。ID既标识了报文含义(如车速),也隐含了其优先级。
  4. 强大的错误检测与处理机制:

    • 为了极高的可靠性,CAN定义了一套完整的错误检测方法:
      • 位监控 (Bit Monitoring): 发送节点在发显性位时会同时监听总线,确保总线确实是显性状态(防止故障节点只接收不发送)。
      • 填充规则检查 (Stuff Rule Check): CAN使用位填充确保同步(连续发5个相同极性位后,自动填充一个反极性位)。接收端检查是否符合填充规则。
      • 帧格式检查 (Frame Check): 检查帧的关键部分(起始帧、仲裁域、控制域、ACK域、帧结束)的固定格式是否合法。
      • CRC校验 (CRC Check): 接收端根据收到的数据重新计算CRC,与报文中的CRC域进行比较。
      • ACK槽检查 (ACK Slot Check): 发送节点检查在ACK域位置是否收到至少一个显性位(确认),否则没人收到。
    • 错误处理: 检测到错误的节点会立即发送一个显性“错误标志”(连续6个显性位,违反填充规则)来主动破坏错误帧,通知总线上所有节点。发送错误帧的节点会重试发送出错的报文(计数器控制)。严重故障的节点会被隔离(进入“总线关闭”状态),避免拖垮整个总线。

总结关键要点:

  1. 目标: 多点、可靠、实时的控制通信(汽车、工业)。
  2. 物理层: 双线差分 (CAN_H, CAN_L),显性/隐性电平,抗干扰强。
  3. 多主仲裁: 核心精髓!“非破坏性逐位仲裁”机制实现:
    • 谁空闲谁发 (CSMA/CA)
    • 冲突时:低ID (小号)优先级高;发0(显)赢,发1(隐)让 (逐位比较)
    • 赢者全发,输者无损退让
  4. 报文结构: 格式固定帧,ID决定含义和优先级,数据短小(0-8字节)。
  5. 广播与确认: 所有节点都收到,由ID决定处理;接收者确认(ACK)。
  6. 高度可靠: 多重错误检测(位监控、填充、帧格式、CRC、ACK)、错误帧破坏、重发、故障隔离。

简单比喻(不严谨但助理解):

想象一个微信群(CAN总线),群成员是各个ECU节点。大家约定:

  • 发言前先看消息记录,如果一段时间没人说话(总线空闲),就可以发言(发送报文)。
  • 发言内容包括“身份标签ID”(自我介绍)和“具体内容”(数据)。ID越小越牛(优先级越高)。
  • 如果几个人同时开始讲话(冲突):
    • 每个人在说自己ID的同时,也在听群里的语音
    • ID值比较:假设用户A开始说“我是1号...”,用户B开始说“我是5号...”。
    • 当说到ID的第二位(比如A的ID是11,B的ID是52):
      • A说 “1”, B说 “5”。
      • 但群里只能听到声音大的人说话(显性“0”压制隐性“1”)。
      • 由于第一位大家都听到A说的 “1” (假设1代表“1”隐性?这里比喻有点弱化优先级比较),但第二位,A打算说“1”(隐形),B打算说“5”也就是发“101”(第一位是1隐性)。当比到ID的第二位时:
        • A要发 “1” (隐性),B要发 “0” (显性,因为5的二进制101,第二位是0)。
        • 群里听到的是显性“0”(因为B发的是显性)。A发现自己准备发隐性但听到显性,立刻闭嘴(退出发送)。
        • B发现听到的和自己说的一致(都是显性),就继续把话说完(完整发送报文)。
    • 结果:高优先级的B发言成功,低优先级的A自动让行,群消息不受影响。
  • 听众收到信息后,如果没听错,就默默回个收到(ACK)。
  • 如果有人听出明显错误(比如语音断断续续、逻辑不通——CRC错等),立刻大声喊“错了错了”(发送错误标志),打断当前错误发言,要求重来。

CAN总线的非破坏性仲裁机制是它能在复杂多节点系统中实现高效、可靠、实时通信的关键所在,也是其设计的精妙之处。

stm32的can总线理解及应用

stm32的can总线理解及应用——程序对应stm32f103系列CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。它的通信速度

大连云港 2021-08-19 06:26:04

CANOpen系列教程02_ 理解CAN总线协议

CANOpen系列教程02_理解CAN总线协议

2020-03-06 16:17:30

速锐得LIN总线在灯光控制系统的应用硬件设计

LIN是CAN总线系统的子网,也叫“局域子系统”。汽车上LIN总线控制的所有系统之间的数据交换,必须通过CAN总线控制单元才能实现。LIN总线作为CAN总线的一种有益补充,可以更为经济、有效地完成

suruide 2022-10-13 16:13:19

认识CAN总线错误 CAN总线错误分析与解决

认识CAN 总线错误的第一步就是了解认识CAN 总线协议和它的具体功能,这样才能更容易地理解CAN 总线是如何去发现并解决错误的。

2023-08-14 15:18:46

CAN 总线错误检测机制#can总线

CAN 总线

2023-05-26 13:54:03

高速CAN总线和低速CAN总线的特性

高速CAN总线和低速CAN总线的特性 高速CAN总线和低速CAN总线是两种常见的CAN总线类型。它们在数据传输速率、最大电缆长度、适用场景等方面存在一些差异。下面将详尽、详实、细致地介绍这两种CAN

2024-01-31 14:09:01

什么是CAN总线通信?CAN总线工作原理

这意味着变送器通过CAN收发器改变总线电平,并将其信息传输到CAN总线。接收器通过监测总线电平将总线上的信息读取到自己的CAN收发器中。

2024-02-19 14:53:54

高速CAN总线和低速CAN总线的特性

在ISO 11898-2和ISO 11898-3中分别规定了两种CAN总线结构(在BOSCH CAN2.0规范中,并没有关于总线拓扑结构的说明):高速CAN总线和低速CAN总线,区别表如下所示。

2023-04-07 09:30:18

can总线为什么要用双绞线?can总线不用双绞线可以吗?

can总线为什么要用双绞线?can总线不用双绞线可以吗? CAN总线是一种数据通信协议,广泛用于汽车、航空、船舶、工业自动化、机器人等领域。CAN总线采用串行通信方式,主要用于实现多个模块之间的通信

2023-09-14 16:48:05

CAN总线为什么这么火,CAN总线是什么

很多的司机朋友以及工控圈的朋友都有听到过“CAN总线”一词,今天我们就来一起看一下CAN总线为什么这么火? CAN总线,也叫做控制器局域网总线(Controller Area Network

2022-01-15 17:04:48

CAN总线收发器的工作原理和应用

CAN(Controller Area Network)总线收发器是CAN总线通信中的关键组件,其工作原理和应用对于理解现代汽车电子、工业自动化等领域的通信系统至关重要。以下将详细阐述CAN总线收发器的主要工作原理及其应用。

2024-08-26 15:23:00

高速CAN总线和低速CAN总线区别分析

高速CAN总线上为显性电平(逻辑0)时,CAN_H为3.5V、CAN_L为1.5V,此时电压差是2V,显性状态的CAN总线电压范围。 高速CAN总线上为隐性电平(逻辑1)时,CAN_H和CAN_L都为2.5V,此时电压差就是0V,隐性状态的CAN总线电压范围。

2022-09-13 16:57:22

CAN总线是如何通信的#CAN #常学常新

CAN总线

2024-11-07 16:34:29

can总线负载率多少合理

can总线负载率多少合理  CAN总线是一种控制器区域网络,它是用于在不同设备之间进行通信的技术。CAN总线的应用领域广泛,例如汽车、航空航天、医学仪器等。在CAN总线中,数据通过网络传输,并且在

2023-09-07 15:05:41

CAN控制器总线错误分析之CAN节点BusOff恢复过程分析与测试

总线关闭(bus off)是CAN节点比较重要的错误处理机制。那么,在总线关闭状态下,CAN节点的恢复流程是怎样的?又该如何理解节点恢复流程的“快恢复”和“慢恢复”机制?本文将为大家详细分析总线

2020-08-04 11:16:00

汽车CAN数据总线的控制原理

我们来学习CAN总线的一个基本的控制原理。那么CAN它是一个局域网络,我们可以把CAN总线看作一个圆桌会议,通过这个比喻我们更好理解。那么这个圆桌会议就称为局域网。那么在局域网上它有很多个节点

2021-02-23 10:22:50

CAN总线错误的类型介绍

在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线错误的基础概念、CAN总线错误的类型、CAN错误帧和CAN节点错误状态,并通过实际的应用测试生成并记录CAN错误。

2022-06-13 16:08:34

CAN总线学习①-总线仲裁机制 精选资料分享

总线总线仲裁机制是我觉得设计的非常精妙的,下面总结几个CAN总线的特征点,这几个特征点对理解CAN的总裁机制非常重要。1、CAN总线在物理层上只有两根线CANH和CANL,根据两根线的的电位差来...

云汉007 2021-08-20 06:08:03

CAN总线是什么 CAN总线的作用

现场总线VS工业以太网现场总线CAN总线(Control Area Network)一、CAN总线是什么?CAN总线的作用?CAN总线的优点CAN总线拓扑图各接口协议速率对比

听我讲 2021-08-06 07:44:19

CAN总线、SPI、I2C的理解

最近找实习的时候,看到好多任职岗位都对CAN总线、SPI、I2C都有要求,之前也有道友问过这些问题,我也不是太理解。虽然在校也学习了相关的知识,但了解的只是很浅显的一部分,通过在家的这段时间,查缺补漏。一天进步一点点,这便已经足够了,先从I2C(读作I方C)开始吧!参考以下资料:

h1654155275.6372 2021-08-20 06:35:37

什么是汽车CAN总线#can #汽车电子

CAN总线,CAN,总线,can总线控制器,总线/接口技术

2022-09-26 20:44:30

CAN总线的发展历程 CAN XL总线的典型应用

CAN总线通讯协议由德国博世于上世纪80年代发明,第一个使用CAN总线通讯协议的量产车型是1991年的奔驰S级轿车,至今CAN总线依旧是车内主要的通讯总线。随着汽车电子智能化加速,CAN总线也开始

2023-12-21 14:03:45

虹科干货 | 带你全面认识“CAN总线错误”(一)——CAN总线错误与错误帧

AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线错误的基础概念、CAN总线错误的类型、CAN错误帧和CAN

2022-05-27 10:39:21

CAN总线是什么意思

CAN总线是什么意思 CAN的全称是Controller Area Network,中文名称是控制器局域网络,是由德国BOSCH公司开发的,并且最后成为国际标准,这是目前应用最多的现场总线之一。现场

2021-08-07 16:37:13

加载更多