can总线原理如何理解
CAN(Controller Area Network),中文名称为控制器局域网络,通常称为CAN bus,即CAN总线。是由德国BOSCH(博世)公司研究开发的,现已成为ISO国际标准化的串行通信协议,是目前在国际上应用最广泛的开放式现场总线之一。
更多
好的,理解CAN总线的原理可以拆分成以下几个核心部分来把握:
核心目标:实现众多电子控制单元(ECU)之间的可靠、高效通信。
想象一下一辆现代汽车:有发动机控制器、变速箱控制器、ABS控制器、仪表盘、安全气囊控制器等等几十个甚至上百个电子模块。它们需要实时地共享信息(如车速、转速、刹车状态、故障码)。CAN总线就是为解决这种“多点对多点”通信而设计的。
核心原理与工作机制:
-
基于总线拓扑和差分信号 (物理层):
- 结构: 所有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)。这代表总线“未被主动驱动”(靠终端电阻维持)的状态,优先级低。
- 好处: 差分传输对电磁干扰具有极强的抑制能力(干扰通常是共模的,即同时加到两条线上,不会显著改变电压差),非常适应汽车等电气环境恶劣的场合。
-
多主结构与非破坏性逐位仲裁 (数据链路层核心):
- 多主: 任何一个ECU节点都可以在总线空闲时主动发送信息。没有固定的“主”节点控制发送权。
- 先听后说 (CSMA/CA): 节点想发送消息时,先侦听总线。只有当总线空闲(检测到连续11个隐性位)时,才开始发送。
- 边说边听 (冲突检测与仲裁): 如果多个节点恰好同时开始发送(冲突),冲突必然发生。CAN总线解决冲突的机制极其巧妙,称为非破坏性逐位仲裁(Nondestructive Bitwise Arbitration):
- 节点在发送自己报文ID(标识符,决定了报文的优先级)的同时,实时监听总线的实际电平状态。
- 节点自己发送的位电平会与监听到的总线电平比较:
- 如果一致:继续发送下一位(说明自己占优或还没冲突)。
- 如果不一致(比如自己发“1”(隐性)却读到“0”(显性)):说明有更高优先级的节点正在发送显性位。本节点立即停止发送后续位并转为接收模式。这个过程发生在发送ID域的过程中。
- 仲裁规则: 显性位“0”覆盖隐性位“1”。也就是说,在冲突发生时,谁先发送“0”(较低ID值的对应位更可能是“0”),谁就赢得仲裁。ID数值越小,优先级越高。
- “非破坏性”关键: 赢得仲裁的高优先级报文会完整无缺地继续发送,而退出发送的节点也不会因为冲突而损坏任何信息。对于旁观节点来说,整个过程只看到最终胜利者发出的连贯报文。就像多辆车同时到达路口都想进主路,但谁的车头先占位(发出显性位),谁就继续通行,其它车立刻谦让,道路不会堵塞,赢的车通行顺畅。这种仲裁机制保证了最重要的信息(高优先级)能以最小的延迟被传输。
-
报文/帧结构与标识符 (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既标识了报文含义(如车速),也隐含了其优先级。
- CAN的信息以固定格式的“帧”进行传输。基本结构如下:
-
强大的错误检测与处理机制:
- 为了极高的可靠性,CAN定义了一套完整的错误检测方法:
- 位监控 (Bit Monitoring): 发送节点在发显性位时会同时监听总线,确保总线确实是显性状态(防止故障节点只接收不发送)。
- 填充规则检查 (Stuff Rule Check): CAN使用位填充确保同步(连续发5个相同极性位后,自动填充一个反极性位)。接收端检查是否符合填充规则。
- 帧格式检查 (Frame Check): 检查帧的关键部分(起始帧、仲裁域、控制域、ACK域、帧结束)的固定格式是否合法。
- CRC校验 (CRC Check): 接收端根据收到的数据重新计算CRC,与报文中的CRC域进行比较。
- ACK槽检查 (ACK Slot Check): 发送节点检查在ACK域位置是否收到至少一个显性位(确认),否则没人收到。
- 错误处理: 检测到错误的节点会立即发送一个显性“错误标志”(连续6个显性位,违反填充规则)来主动破坏错误帧,通知总线上所有节点。发送错误帧的节点会重试发送出错的报文(计数器控制)。严重故障的节点会被隔离(进入“总线关闭”状态),避免拖垮整个总线。
- 为了极高的可靠性,CAN定义了一套完整的错误检测方法:
总结关键要点:
- 目标: 多点、可靠、实时的控制通信(汽车、工业)。
- 物理层: 双线差分 (CAN_H, CAN_L),显性/隐性电平,抗干扰强。
- 多主仲裁: 核心精髓!“非破坏性逐位仲裁”机制实现:
- 谁空闲谁发 (CSMA/CA)
- 冲突时:低ID (小号)优先级高;发0(显)赢,发1(隐)让 (逐位比较)
- 赢者全发,输者无损退让
- 报文结构: 格式固定帧,ID决定含义和优先级,数据短小(0-8字节)。
- 广播与确认: 所有节点都收到,由ID决定处理;接收者确认(ACK)。
- 高度可靠: 多重错误检测(位监控、填充、帧格式、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总线的非破坏性仲裁机制是它能在复杂多节点系统中实现高效、可靠、实时通信的关键所在,也是其设计的精妙之处。
高速CAN总线和低速CAN总线的特性
在ISO 11898-2和ISO 11898-3中分别规定了两种CAN总线结构(在BOSCH CAN2.0规范中,并没有关于
2023-04-07 09:30:18
7天热门专题
换一换
换一换
- 如何分清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功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机