登录/注册

can总线数据链路层是什么?有什么特性?

CAN实现总线分配的方法,可保证当不同的站申请总线存取时,明确地进行总线分配。这种位仲裁的方法可以解决当两个站同时发送数据时产生的碰撞问题。

更多

好的,我们来详细解释一下CAN总线的数据链路层及其特性。

1. 什么是CAN总线的数据链路层?

在计算机网络通信的OSI七层参考模型中,数据链路层位于物理层之上,网络层之下。它的核心任务是在物理连接的两个相邻节点之间提供可靠且有效的数据帧传输服务。

对于CAN总线协议来说,其数据链路层是标准化的核心部分(由ISO 11898-1标准定义)。它是实现CAN总线高效、可靠、实时通信的关键所在。简单理解:

2. CAN总线数据链路层的主要特性

CAN数据链路层最突出的特性源于其设计目标(多主、高实时性、高可靠性、强干扰环境),主要包括:

  1. 多主结构 & 事件触发:

    • 没有中心控制器,所有节点地位平等,都可以主动向总线发送数据。
    • 采用事件触发方式通信。当一个节点的状态发生变化(如传感器测量值改变)或需要周期性更新时,它就主动发送消息。这种机制响应速度快,延迟低。
    • 特性:避免了轮询机制的延迟,提高了总线利用率。
  2. 非破坏性逐位仲裁:

    • 当多个节点同时试图发送时,冲突不可避免。
    • CAN采用基于标识符ID优先级(ID值越小优先级越高)的载波侦听多路访问/逐位仲裁机制。
    • 原理: 节点发送的同时也在监听总线电平。如果一个节点发送了一个隐性位(逻辑'1',电压差为0),但在总线上检测到一个显性位(逻辑'0',电压差大于阈值),它就立刻停止发送并转为接收模式,因为它知道有更高优先级的节点赢得了仲裁。
    • 特性: "非破坏性" 是指最高优先级的消息总能不受影响地完整发送成功,失败的低优先级节点会自动退出发送尝试,不会有数据损坏,仲裁期间不浪费总线时间。这使得总线利用率极高,实时性保证得到保障(高优先级消息的传输延迟确定可预测)。
  3. 强大的错误检测与处理:

    • 这是CAN总线能在严酷工业环境下可靠运行的关键。
    • 检测机制:
      • 位监视: 发送节点在发送一个位的同时会回读总线电平。如果发送的位(显性或隐性)与回读到的位不符,则检测到位错误
      • 位填充检查: CAN帧中在帧起始、仲裁场、控制场、数据场连续发送5个相同极性(显性或隐性)位后,必须插入一个反向位(填充位)。接收节点检查这一规则,连续收到6个相同极性位则检测到填充错误。这是重要的检错机制,确保足够多的电平跳变用于同步。
      • 帧格式检查: 接收节点检查固定格式的帧字段(如CRC界定符、ACK界定符、EOF等)是否符合规范,检测到违规则报格式错误
      • CRC校验: 发送节点根据数据内容计算一个循环冗余校验码并随帧发送。接收节点重新计算CRC并与接收到的比较,不一致则检测到CRC错误
      • ACK检查: 发送节点在确认时隙(ACK Slot)内如果没有监听到至少一个其他节点发送的显性位(ACK),则表明没有节点成功接收该帧,报应答错误
    • 处理机制: 当节点检测到错误时(除了可能是瞬时干扰),它会立即发送一个显性的错误帧来主动通知总线上的所有节点。当前发送节点收到错误帧后,会丢弃当前发送的帧(数据丢失),并自动尝试重发。这种全局性通知使错误能够快速被整个系统感知和处理。
    • 特性: 极其完备的多重错误检测机制,确保所有节点都看到一致的总线状态(不会一半节点认为传输成功另一半认为失败),漏检概率极低(小于未检出错误帧概率 < 4.7 × 10^{-11} / 帧),提供了极高的数据完整性保障。
  4. 自动重传:

    • 节点检测到自身发送失败(如无ACK应答)或因错误标志中断后,会自动尝试重传。
    • 特性:无需上层协议干预即可进行错误恢复,提高了可靠性和健壮性。但可能导致多个节点同时重传时再次仲裁(这对总线负载有影响,因此有了错误限制)。
  5. 错误界定与故障限制:

    • 为防止故障节点(如持续发送错误帧、干扰总线)拖垮整个总线,数据链路层引入了错误计数
    • 每个节点维护发送错误计数器(TEC)和接收错误计数器(REC)。根据错误类型(本地位错误还是总线级错误)和节点角色(发送方还是接收方),计数器的增减规则不同。
    • 节点状态迁移:
      • 错误激活: 正常状态,可以正常发送主动错误标志。
      • 错误认可: TEC或REC达到较高阈值时进入。处于此状态的节点发送被动错误标志(隐性位),退出总线竞争更早。
      • 总线关闭: 当TEC超过更高阈值时进入。节点彻底断开与总线的连接,停止发送和接收任何帧(进入“静默”状态),直到用户干预(如重启)或内部计时器触发返回错误认可状态。
    • 特性: 实现了故障节点的自隔离,保护了总线的整体可用性,是CAN容错能力的重要体现。
  6. 报文过滤:

    • 虽然通常认为报文过滤是高层(如CAN控制器或软件驱动)的任务,但其基础由数据链路层提供。
    • 接收节点在数据链路层读取帧的标识符ID部分。
    • 特性: CAN控制器的硬件寄存器能够基于这个ID进行快速匹配和过滤,只接收那些ID满足特定条件的帧(如匹配某个值或在某个范围内),将不关心的帧直接丢弃,无需CPU大量中断处理,大大减轻了主处理器的负担。这是CAN总线上节点可以“监听”但不关心所有消息却不会堵塞自身的关键。

总结

CAN总线的数据链路层是整个协议栈的心脏,负责将高层信息封装成帧、管理总线访问权限(仲裁)、确保数据传输的高度可靠性(强大的错误检测和自动重传),并保护总线免受故障节点影响(错误限制)。正是这些特性——多主、非破坏性仲裁、强大的错误检测与处理、自动重传、错误限制以及硬件过滤——共同造就了CAN总线在汽车、工业控制等对实时性和可靠性要求极高的领域的广泛应用和卓越声誉。

如何使用ZPS-CANFD观察CAN数据链路层的工作过程

也可以完成对CAN总线数据链路层工作过程的观察。什么是数据链路层在

2025-03-18 11:38:40

PCIE数据链路层架构解析

PCIe的数据链路层在事务层和物理层之间,用来负责链路管理,其主要功能是保证来自事务层的TLP在PCIe链路中的正确传输,为此数据链路层定义了一系列的DLLP报文,

2024-11-05 17:06:04

CAN总线协议的数据链路层哪些部分

CAN(Controller Area Network)总线协议的数据链路层是CAN

2024-09-03 14:14:26

RS485通讯---Modbus数据链路层与应用层(二)

Modbus RTU通讯协议中OSI模型,数据链路层和应用层是通讯关键部分。

资料下载 罗星 2021-11-21 20:36:04

基于数据链路层特征的无线网络加密研究

基于数据链路层特征的无线网络加密研究

资料下载 佚名 2021-06-19 15:05:48

TD_CAN隔离收发模块应用指南

、实时性和灵活性,CAN 总线标准包括物理层、数据链路层,随着 CAN

资料下载 菜鸟老吴 2021-06-15 14:14:22

计算机网络第三章数据链路层资源下载

计算机网络第三章数据链路层资源下载

资料下载 ah此生不换 2021-05-17 10:38:30

探讨CAN总线的抗千扰能力

当今CAN总线的竞争对手包括以RS485为物理层的总线和FlexRay总线

资料下载 姚小熊27 2021-04-19 15:39:26

ISO 11898里CAN总线的基本特点与结构

ISO 11898-1主要描述了CAN总线的基本架构,定义了CAN在数据链路层

2023-10-31 14:31:48

介绍车用CAN通讯的基础知识,数据链路层部分

本博文主要介绍了车用CAN通讯的基础知识,数据链路层部分,主要包括帧类型、帧起始&帧结束、仲裁段、控制段、数据段、CRC段&AC

2022-01-07 06:16:41

CAN总线的系统架构

使用的CAN2517FD有所区别,仅供参考),主要体现在数据链路层这一部分。应用程序,具体表现在控制器以不同的通信方式、MCP2517FD提供的相应指令集和指令集格式对

2021-08-19 06:47:56

CAN总线工作原理及数据链路层、延时分析

通信协议仅仅包括OSI七层互联参考模型中的数据链路层和物理层。三、CAN总线物理层:1.

2021-05-13 06:00:00

TLP的数据链路层组成与操作

  本章将着重讲述TLP的数据链路层组成与操作,上一篇更新应该为第五讲,数据链路层位于事务层和物理层之间,使用容错和重传机制保证了数据传输的完整

2021-01-08 17:25:23

数据链路层设备有哪些

数据链路层的设备与组件是指那些同时具有物理层和数据链路层功能的设备或组件。数据链路层的设备与组件主要有网卡、网桥和交换机。

2019-02-27 15:17:08

数据链路层的任务

数据链路层的主要任务是使网络层无需了解物理层的特征而获得可靠的传输。数据链路层将通过链路层的

2019-02-27 15:08:58

7天热门专题 换一换
相关标签