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

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

3天内不再提示

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

CHANBAEK 来源:网络整理 作者:网络整理 2024-09-03 14:14 次阅读

CAN(Controller Area Network)总线协议的数据链路层是CAN通信中至关重要的一部分,它负责在物理层之上实现数据的可靠传输。数据链路层不仅管理着帧的同步、差错控制、流量控制等关键功能,还通过仲裁机制确保多个节点之间的高效通信。

一、CAN总线协议概述

CAN协议最早由德国Bosch公司于1983年提出,旨在解决汽车电子系统中的通信问题。随着技术的发展,CAN协议逐渐被广泛应用于工业控制、医疗设备、智能家居等领域。CAN协议采用多主控制、广播通信、非破坏性仲裁和错误检测与处理等机制,确保了通信的实时性、可靠性和灵活性。

二、数据链路层的组成

CAN总线协议的数据链路层主要由以下几个部分组成:

1. MAC子层(媒体访问控制子层)

MAC子层是CAN协议的关键组成部分,它主要负责将物理层接收到的信号组织成具有实际意义的信息,并管理错误控制等传输流程。MAC子层的主要功能包括:

  • 消息的帧化处理 :将待传输的数据封装成符合CAN协议规范的帧格式。
  • 仲裁 :通过非破坏性仲裁机制解决多个节点同时发送数据时的冲突。
  • 应答 :接收节点通过应答机制确认数据的正确接收。
  • 错误的检测和报告 :检测通信过程中的错误,并通过错误帧向其他节点报告。

2. LLC子层(逻辑链路控制子层)

虽然CAN协议标准中并没有明确划分LLC子层,但通常我们可以将帧过滤、报文重发等逻辑控制功能归为LLC子层的范畴。LLC子层主要负责:

  • 报文过滤 :通过过滤器对接收的报文进行过滤,只保留感兴趣的报文。
  • 报文重发 :在检测到通信错误或未收到应答时,自动重发报文。

三、数据链路层的功能

1. 帧同步

帧同步是数据链路层的基本功能之一,用于确保发送和接收节点能够正确识别信息帧的开始和结束。在CAN信息帧中,帧起始位(SOF)用于标识信息帧的开始,而帧结束位(EOF)则用于标识信息帧的结束。发送节点通过发送帧起始位来启动一个帧的传输,接收节点则通过检测帧起始位来实现帧同步。

2. 差错控制

差错控制是数据链路层的另一个重要功能,它包括错误检测和错误纠正。CAN协议采用循环冗余校验(CRC)进行错误检测,以确保数据的完整性。发送节点在发送数据前会生成CRC校验码,并将其附加到数据场之后。接收节点在接收到数据后,会重新计算CRC校验码,并与接收到的CRC校验码进行比较,以检测数据是否出现错误。如果检测到错误,接收节点会发送错误帧来通知其他节点。

3. 流量控制

流量控制用于防止发送节点过快地发送数据,导致接收节点无法处理。在CAN协议中,流量控制主要通过仲裁机制和应答机制来实现。仲裁机制确保了在多个节点同时发送数据时,具有较高优先级的节点能够优先发送数据。而应答机制则要求接收节点在接收到数据后发送应答信号,以确认数据的正确接收。如果发送节点未收到应答信号,则会认为通信失败并可能重发报文。

4. 访问控制

访问控制是数据链路层的另一个关键功能,它用于协调多个节点之间的通信。在CAN协议中,访问控制主要通过非破坏性仲裁机制实现。当两个或多个节点同时发送数据时,它们会竞争总线的使用权。仲裁机制通过比较仲裁场的值来确定发送数据的优先级。具有较高优先级的节点可以继续发送数据,而具有较低优先级的节点则需要等待直到高优先级节点完成数据发送。

四、CAN信息帧的组成部分

CAN信息帧是CAN协议中最基本的数据传输单元,其组成部分包括:

  • 帧起始位(SOF) :标识信息帧的开始。
  • 仲裁场 :用于确定发送数据的优先级。仲裁场的长度可以是11位(标准帧)或29位(扩展帧),仲裁场的值越小,优先级越高。
  • 控制场 :包括远程传输请求位(RTR)和标识符扩展位(IDE)。RTR位用于标识数据帧是远程帧还是数据帧,IDE位用于标识帧是标准帧还是扩展帧。
  • 数据场 :用于存储实际传输的数据。标准帧的数据场长度为0-8字节,扩展帧的数据场长度为0-64字节。
  • 校验场 :包括循环冗余校验(CRC)和CRC界定符。CRC用于检测数据在传输过程中是否出现错误,CRC界定符用于标识CRC校验的结束。
  • 应答场 :包括应答插槽和应答界定符。应答插槽用于接收节点发送应答信号,应答界定符用于标识应答场的结束。
  • 帧结束位(EOF) :标识信息帧的结束。

五、错误处理机制

CAN协议定义了多种错误类型,包括CRC错误、格式错误、应答错误、位发送错误和位填充错误等。当发生这些错误时,发送节点或接收节点会发送错误帧来通知其他节点。为了防止某些节点自身出错而一直发送错误帧干扰其他节点通信,CAN协议还规定了节点的三种状态及行为:主动错误状态、被动错误状态和Bus Off状态。这些状态根据接收错误计数器(REC)和发送错误计数器(TEC)的值进行转换。

六、总结

CAN总线协议的数据链路层是实现CAN通信的关键部分,它负责在物理层之上实现数据的可靠传输。通过帧同步、差错控制、流量控制和访问控制等功能,CAN协议确保了多个节点之间的高效、可靠通信。同时,CAN协议还提供了完善的错误处理机制来应对通信过程中可能出现的各种问题。这些功能和机制共同构成了CAN总线协议强大的通信能力,使其在众多领域得到了广泛应用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN总线
    +关注

    关注

    145

    文章

    1896

    浏览量

    130328
  • 数据链路层
    +关注

    关注

    0

    文章

    52

    浏览量

    11970
  • 总线协议
    +关注

    关注

    0

    文章

    111

    浏览量

    14811
收藏 人收藏

    评论

    相关推荐

    数据链路层组帧

    数据链路层怎么根据协议组帧,本人没有写过类似程序,大家有写过的可否贴下简单的程序 启发一下。感激不尽。谢谢。
    发表于 01-17 11:48

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

    监控和管理。  数据链路层的组成  数据链路层由发送和接收两部分组成,其中,数据链路层接收部件组成为:  1)、ACK/NAK DLLP发送逻辑  2)、“Error Check”逻辑
    发表于 01-08 17:25

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

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

    CAN总线的系统架构

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

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

    本博文主要介绍了车用CAN通讯的基础知识,数据链路层部分,主要包括帧类型、帧起始&帧结束、仲裁段、控制段、数据段、CRC段&ACK段和错误帧等。
    发表于 01-07 06:16

    数据链路层协议数据单元包括哪几部分

    功能一个观测任意数据波形的上位机前提知识数据帧所谓数据帧(Data frame),就是数据链路层协议
    发表于 01-14 06:56

    数据链路层.ppt

    数据链路层*3.1  数据链路层的基本概念*3.2  停止等待协议  3.2.1 完全理想化的数据传输  3.2.2 具有最
    发表于 10-23 16:41 0次下载
    <b class='flag-5'>数据链路层</b>.ppt

    常用的数据链路层协议

     ISO和CCITT在数据链路层协议的标准制定方面做了大量工作,各大公司也形成了自己的标准。
    发表于 07-22 15:51 4530次阅读
    常用的<b class='flag-5'>数据链路层</b><b class='flag-5'>协议</b>

    数据链路层的作用

    数据链路层的作用:通过一些数据链路层协议和链路控制规程,在不太可靠的物理链路上实现可靠的数据传输。 “链路(Link)”和“数据链路”是不
    发表于 07-22 16:04 6930次阅读

    数据链路层的定义

    数据链路层的定义 一、设计数据链路层的原因
    发表于 07-22 17:13 2512次阅读
    <b class='flag-5'>数据链路层</b>的定义

    什么是OSI模型数据链路层

    什么是OSI模型数据链路层 数据链路层最基本的服务是将源机网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路层
    发表于 03-18 15:11 2207次阅读

    基于无线HART协议数据链路层协议模型设计

      无线HART是一种专门为过程控制领域而设计的网络通信协议,是HART现场总线在无线领域的延伸,其通信模型主要由应用层、网络层、数据链路层、物理层组成。其中数据链路层
    发表于 08-26 17:27 1641次阅读
    基于无线HART<b class='flag-5'>协议</b>的<b class='flag-5'>数据链路层</b><b class='flag-5'>协议</b>模型设计

    数据链路层选择重传协议优化

    本文的主要目的是探索数据链路层中,选择重传协议的优化改进措施,主要方法是通过对量子通信的分析和研究,通过进行协议的模拟实验、优化协议仿真环境、引入缓存等措施,进过实验分析发现,与传统的
    发表于 11-17 09:44 55次下载
    <b class='flag-5'>数据链路层</b>选择重传<b class='flag-5'>协议</b>优化

    数据链路层到底是什么_数据链路层工作原理是怎样的

    本文开始阐述了什么是数据链路层,其次阐述了数据链路层的分类和数据链路层的工作原理,最后介绍了常用的数据链路层
    发表于 03-14 14:10 3w次阅读
    <b class='flag-5'>数据链路层</b>到底是什么_<b class='flag-5'>数据链路层</b>工作原理是怎样的

    数据链路层常用成纸法哪些_数据链路层的作用

    本文开始阐述了数据链路层的概念与数据链路层数据链路层的功能或作用,其次阐述了数据链路层的主要协议,最后分析了数据链路层常用成纸法
    发表于 03-14 14:44 2050次阅读
    <b class='flag-5'>数据链路层</b>常用成纸法<b class='flag-5'>有</b>哪些_<b class='flag-5'>数据链路层</b>的作用