登录/注册

CAN总线是什么?详细介绍

CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。

更多

好的,我们来详细介绍一下 CAN总线

CAN总线 的全称是 控制器局域网总线。它是一种广泛应用于汽车电子、工业自动化以及其他嵌入式和分布式控制系统中的串行通信协议。它最初由德国的博世公司在1980年代为汽车电子系统设计,目的是取代复杂的点对点布线,为汽车内各电子控制单元提供一个高效、可靠且经济的通信网络。

核心目标与设计理念

  1. 简化布线: 减少汽车内部复杂的点对点连线,降低重量和成本。
  2. 实时性: 提供可预测的传输延迟(确定性),满足关键控制信号(如引擎管理、刹车、气囊)对时间的严格要求。
  3. 高可靠性: 在恶劣的电磁环境下确保数据的可靠传输(抗干扰、容错)。
  4. 多主机操作: 允许多个节点(ECU - 电子控制单元)连接到同一总线上,任何节点都可以主动发起通信(广播或指定接收)。
  5. 事件驱动: 节点在有信息需要发送时才占用总线,适合数据突发传输。

工作原理

  1. 物理层:

    • 传输介质: 通常使用双绞线(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欧姆的终端电阻,用以匹配线路阻抗,消除信号反射。
  2. 数据链路层:

    • 报文帧: 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缺失: 如果发送节点没有检测到任何接收节点的显性确认位。
      • 错误计数器和错误状态: 每个节点有发送错误计数器和接收错误计数器。根据错误发生的频率和类型,节点会从错误主动->错误被动->总线关闭状态转移。总线关闭的节点将无法再收发报文。

主要特性总结

应用领域

CAN总线的演进

为何如此广泛采用?

  1. 可靠性经过严苛验证: 在汽车这种电磁环境复杂、安全要求极高的场景中经受住了长期考验。
  2. 成本效益高: 专用硬件芯片广泛应用,价格低廉;双绞线布线成本显著低于点对点。
  3. 真正的分布式通信: 多主机、事件驱动机制非常适合设备间交互的场景。
  4. 确定性与低延迟: 基于优先级的仲裁机制保证了关键信息能及时送达。
  5. 良好的错误处理: 确保单个节点的故障不会轻易导致整个网络瘫痪。

安全考虑

总而言之,CAN总线是一种为实时控制设计的、高可靠、多主、基于优先级的串行通信协议,其核心价值在于非破坏性逐位仲裁带来的实时性和强鲁棒性。这使得它在汽车电子和工业控制等关键领域成为不可替代的骨干网络技术,尽管面临新的高速、大数据量、安全需求的挑战,其演进版(CAN FD/CAN XL)仍在持续发展以满足未来需求。

CAN总线通信原理介绍 CAN总线模块选择指南

于工业自动化、医疗设备、船舶系统等领域。 CAN总线通信原理介绍 1. CAN

2024-11-21 10:21:51

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

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

2024-01-31 14:09:01

CAN总线错误的类型介绍

在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括

2022-06-13 16:08:34

CAN总线的基础知识详细讲解

CAN总线的基础知识详细讲解。

资料下载 叶酤珵 2022-04-02 17:44:33

CAN总线的双绞线及光纤传输

在分析CAN总线双绞线和光纤传输特点的基础上,提出一种基于光纤收发一体模块及CAN总线

资料下载 姚小熊27 2021-04-20 10:24:37

CAN总线详细教程手册

CAN总线详细教程手册说明。

资料下载 姚小熊27 2021-04-20 10:23:11

浅谈CAN总线系统

结合汽车技术发展对传统布线方法中存在的问题和CAN总线系统的使用进行了介绍,总结了CA

资料下载 姚小熊27 2021-04-19 17:31:30

CAN总线基础的详细资料概述

本文档的主要内容详细介绍的是CAN总线基础的

资料下载 佚名 2019-11-29 15:31:20

虹科干货 | 带你全面认识“CAN总线错误”(二)——CAN错误类型

AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细

2022-06-09 09:46:53

虹科干货 | 带你全面认识“CAN总线错误”(二)——CAN错误类型

AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细

2022-06-02 09:41:24

关于CAN总线错误的相关知识

在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括

2022-05-27 17:56:12

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

AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细

2022-05-27 10:39:21

介绍CAN总线的相关概念

本文主要简单介绍CAN总线的相关概念,以及通信协议等知识,和使用STM32自带的bxCAN外设进行

2021-08-19 08:01:12

简单介绍CAN总线的相关概念

基于STM32的CAN总线通信学习笔记本文主要简单介绍CAN

2021-08-19 07:23:37

CAN总线介绍

CAN 通讯实验CAN 介绍CAN

2021-08-05 06:54:40
7天热门专题 换一换
相关标签