晟辉智能制造

CAN总线技术概念是什么?

一个简单的比喻:办公室的内部通讯系统

想象一下一个现代化的办公室,里面有很多员工(比如发动机、刹车系统、气囊、车灯等),在早期,老板(驾驶员)需要给每个员工下达指令,或者需要了解每个员工的工作状态,就必须一对一地沟通,这不仅效率低下,而且办公室里会布满各种电线(线路杂乱),还容易出错。

CAN总线技术概念是什么?-图1
(图片来源网络,侵删)

后来,公司引入了一个内部通讯系统——比如一个即时聊天群(比如企业微信或钉钉群)。

  • 员工:各个汽车电子控制单元。
  • 聊天群CAN总线
  • 发送消息:某个ECU(比如刹车系统)需要报告“刹车被踩下了”,它就在群里发一条消息:“@全体成员,刹车已踩下,请相关同事(如ABS、发动机)注意!”
  • 接收消息:所有员工(ECU)都能看到这条消息,但只有相关的员工(如ABS、发动机)会处理这条消息,而其他不相关的员工(如车灯、收音机)则会忽略它。
  • 消息优先级:如果老板(驾驶员)同时发了“准备开会”和“着火了”两条消息,系统会确保“着火了”这条紧急消息被所有人优先看到和处理,在CAN总线里,这通过标识符来实现,数值越小,优先级越高。

这个“内部通讯系统”就是CAN总线的核心思想:用一对线缆代替成百上千根独立线缆,让车内所有电子单元在一个统一的、高效的“语言”下进行沟通。


技术定义与核心概念

CAN(Controller Area Network,控制器局域网)总线,是一种设计用于在汽车电子系统中进行通信的串行通信协议,它是一种多主机、广播式的总线技术,允许多个电子控制单元在不依赖中央计算机的情况下相互通信。

下面我们来分解几个关键概念:

CAN总线技术概念是什么?-图2
(图片来源网络,侵删)

为什么需要CAN总线?(解决的问题)

在CAN总线出现之前(1980年代),汽车电子系统是“点对点”的连接方式:

  • 线束复杂:一辆汽车的线束长度可达数公里,重量可达几十公斤,占据了大量空间。
  • 成本高昂:大量的电线和连接器增加了制造成本。
  • 可靠性差:线路越多,潜在的故障点也越多,排查和维修困难。
  • 扩展性差:增加一个新的电子功能,就需要增加大量新的线路,非常不便。

CAN总线就是为了解决这些问题而生的。

CAN总线的核心构成

一个典型的CAN总线系统由以下几部分组成:

  • 节点:网络中的任何设备,在汽车里,每个ECU(如发动机控制单元ECU、变速箱控制单元TCU、防抱死系统ABS等)都是一个节点。
  • 控制器:通常是微控制器中的一个模块,负责处理通信协议,它决定何时发送数据、如何打包数据,以及如何解读收到的数据。
  • 收发器:一个物理芯片,负责将控制器逻辑电平的信号(0V/5V)转换成总线上的差分信号,反之亦然,它还负责总线的电气特性。
  • 总线线路:通常由两条线组成:CAN_H (CAN High)CAN_L (CAN Low)
  • 终端电阻:在总线的两端各有一个120欧姆的电阻,它的作用是吸收信号,防止信号在总线末端反射,从而保证信号质量。

CAN总线如何工作?(关键技术原理)

a. 物理层:差分信号与“线与”逻辑

CAN总线使用差分信号进行通信。

CAN总线技术概念是什么?-图3
(图片来源网络,侵删)
  • 逻辑 1 (隐性状态, Recessive State):当总线空闲或发送逻辑1时,CAN_H和CAN_L的电压大约相等(约2.5V),电压差接近0V。
  • 逻辑 0 (显性状态, Dominant State):当发送逻辑0时,CAN_H被拉高到约3.5V,CAN_L被拉低到约1.5V,形成约2V的电压差。

“线与”逻辑是CAN总线的精髓,所有节点的收发器都并联在总线上。

  • 如果一个节点想发送显性信号(0),它就会将CAN_H拉高、CAN_L拉低。
  • 如果另一个节点想发送隐性信号(1,即不干预),它就不会改变总线电压。
  • 最终结果:只要总线上有一个节点发送显性信号(0),总线就呈现显性状态(0),只有当所有节点都发送隐性信号(1)时,总线才呈现隐性状态(1)。

这种机制天然地解决了总线冲突问题:如果两个节点同时发送不同电平,总线上会优先呈现“显性”(0),发送隐性(1)的节点会检测到冲突,并自动退出发送,等待下一次机会。

b. 数据链路层:报文结构与仲裁机制

CAN总线的通信以报文为单位,一个标准的CAN 2.0A报文包含:

  • 帧起始:1个显性位,标志着报文的开始。
  • 仲裁段:包含11位标识符,这是最重要的部分,它定义了报文的优先级内容类型(ID=0x001可能代表“发动机转速”,ID=0x002代表“车速”)。标识符值越小,优先级越高
  • 控制段:6位,包含数据长度码等信息。
  • 数据段:0到8字节,是实际要传输的数据。
  • CRC段:16位循环冗余校验码,用于接收方检查数据是否在传输中出错。
  • 应答段:2位,发送节点发送完数据后,会监听总线,如果至少有一个节点正确接收,就会发一个应答信号。
  • 帧结束:7个隐性位,标志着报文的结束。

仲裁机制: 这是CAN总线最巧妙的设计之一,当多个节点同时准备发送数据时,仲裁过程开始:

  1. 所有节点同时开始发送其报文的仲裁段(11位标识符)。
  2. 它们一边发送,一边监听总线上的电平。
  3. 如果节点发送的位与监听到的位不一致(节点A发送“隐性”1,但监听到总线是“显性”0),说明有另一个优先级更高的节点也在发送数据,节点A立即停止发送,转为接收者,并在总线空闲后重试。
  4. 这个过程是无损的,没有破坏性冲突,优先级高的节点总能顺利发送完自己的数据。

CAN总线的主要特点总结

  1. 多主机架构:任何节点都可以在总线空闲时主动发送数据,无需主控设备。
  2. 非破坏性总线仲裁:通过优先级标识符和“线与”逻辑,高效解决通信冲突,确保高优先级信息不被延误。
  3. 广播通信:所有节点都能收到总线上的所有报文,但只处理与自己相关的报文。
  4. 极高的可靠性
    • 强大的错误检测:CRC校验、位监控、位填充(连续5个相同电平后会插入一个相反电平,用于同步)等多种机制。
    • 错误处理机制:节点能检测出错误(如位错误、填充错误、CRC错误等),并自动发送“错误帧”通知所有节点,出错的节点会自动关闭输出,防止“错误数据”污染总线。
  5. 实时性:高优先级的报文可以被快速发送,满足了汽车对实时控制(如刹车、气囊)的严苛要求。
  6. 性价比高:大大减少了线束数量、重量和成本,提高了系统的灵活性和可扩展性。

CAN总线的应用

虽然CAN总线是为汽车而生的,但现在它的应用已经非常广泛:

  • 汽车领域(最主要的应用)
    • 动力系统:发动机、变速箱、电池管理系统的通信。
    • 底盘系统:ABS、ESP、电动助力转向的协同控制。
    • 车身系统:车窗、车灯、中控门锁、空调的集中控制。
    • 信息娱乐系统:仪表盘显示、车载导航、音响系统。
  • 工业自动化:生产线上的机器人、传感器、PLC之间的通信。
  • 医疗设备:病房监护设备、影像设备之间的数据交换。
  • 航空航天:飞机内部各子系统(如飞控、导航、通信)的通信。
  • 智能家居与楼宇自动化:各种传感器和执行器的联网控制。

CAN总线技术本质上是一种为解决复杂分布式系统通信问题而设计的、高度可靠、实时且低成本的“局域网”协议,它通过一对差分信号线和一套巧妙的仲裁与错误检测机制,让汽车内部的众多“电子大脑”(ECU)能够高效、有序地协同工作,是现代汽车电子技术的基石。

分享:
扫描分享到社交APP
上一篇
下一篇