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

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

3天内不再提示

CAN协议数据帧的介绍

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-25 10:36 次阅读

通过 CAN 总线传输数据是需要按照一定协议进行的,CAN 协议提供了 5种帧格式来传输数据:数据帧、遥控帧、错误帧、过载帧和帧间隔。其中数据帧和遥控帧有标准格式和扩展格式两种,标准格式有 11 位标识符(ID),扩展格式有 29个标识符(ID)。这 5 中帧的用途见表:

图片

1、数据帧

数据帧由 7 段组成:

①、帧起始,表示数据帧开始的段。②、仲裁段,表示该帧优先级的段。③、控制段,表示数据的字节数及保留位的段。④、数据段,数据的内容,一帧可发送 0~8个字节的数据。⑤、CRC 段,检查帧的传输错误的段。⑥、ACK 段,表示确认正常接收的段。⑦、帧结束,表示数据帧结束的段。

数据帧结构如图所示:

图片

图给出了数据帧标准格式和扩展格式两种帧结构,图中 D 表示显性电平 0、R 表示隐性电平 1,D/R 表示显性或隐性,也就是 0 或1,我们来简单分析一下数据帧的这 7 个段。

①、帧起始

帧起始很简单,标准格式和扩展格式都是由一个位的显性电平 0 来表示帧起始。

②、仲裁段

仲裁段表示帧优先级,仲裁段结构如图所示:

图片

标准格式和扩展格式的仲裁段不同,从图可以看出,标准格式的 ID 为 11 位,发送顺序是从 ID10 到 ID0,最高 7 位 ID10~ID4不能全为隐性(1),也就是禁止 0X1111111XXXXX这样的 ID。扩展格式的 ID 为 29 位,基本 ID 从 ID28 到 ID18,扩展 ID 由ID17 到 ID0,基本ID 与标准格式一样,禁止最高 7 位都为隐性。

③、控制段

控制段由 6 个位构成,表示数据段的字节数,标准格式和扩展格式的控制段略有不同,如图所示:

图片

图中 r1 和 r0 为保留位,保留位必须以显性电平发送。DLC 为数据长度,高位在前,DLC 段有效值范围为 0~8。

④、数据段

数据段也就是帧的有效数据,标准格式和扩展格式相同,可以包含 0~8 个字节的数据,从最高位(MSB)开始发送,结构如图所示:

图片

⑤、CRC 段

CRC 段保存 CRC 校准值,用于检查帧传输错误,标准格式和扩展格式相同,CRC 段结构如图所示:

图片

从图可以看出,CRC 段由 15 位的 CRC 值与 1 位的 CRC 界定符组成。CRC值的计算范围包括:帧起始、仲裁段、控制段、数据段,接收方以同样的算法进行计算,然后用计算得到的 CRC 值与此 CRC段进行比较,如果不一致的话就会报错。

⑥、ACK 段

ACK 段用来确认接收是否正常,标准格式和扩展格式相同,ACK 段结构如图所示:

图片

从图可以看出,ACK 段由 ACK 槽(ACK Slot)和 ACK 界定符两部分组成。发送单元的 ACK,发送 2
个隐性位,而接收到正确消息的单元在 ACK 槽(ACK Slot)发送显性位,通知发送单元正常接收结束,这个过程叫发送 ACK/返回 ACK。发送 ACK的是所有接收单元中接收到正常消息的单元,所谓正常消息是指不含填充错误、格式错误、CRC错误的消息,这些接收单元既不处于总线关闭态也不处于休眠态的所有接收单元中。

⑦、帧结束

最后就是帧结束段,标准格式和扩展格式相同,帧结束段结构如图所示:

图片

从图可以看出,帧结束段很简单,由 7 位隐性位构成。

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

    关注

    57

    文章

    2743

    浏览量

    463583
  • 数据帧
    +关注

    关注

    0

    文章

    45

    浏览量

    6737
收藏 人收藏

    评论

    相关推荐

    浅谈CAN FD总线协议格式

    假期更新了一文搞懂CAN总线协议格式,CAN FD总线协议怎能错过?本篇博文将讲解CAN FD
    发表于 10-14 12:49 3426次阅读
    浅谈<b class='flag-5'>CAN</b> FD总线<b class='flag-5'>协议</b><b class='flag-5'>帧</b>格式

    CAN协议规定了好几种类型

    通过对 CANBUS协议的理解,我们知道:CAN总线上的节点接收或发送数据都是以为单位的!!!CAN
    发表于 08-19 08:50

    CAN协议数据是如何构成的

    CAN协议具有哪些特点?CAN协议有哪几种类型呢?CAN
    发表于 10-27 07:46

    CAN总线过载数据详解

    CAN:Controller Area Network,控制器局域网是一种能有效支持分布式控制和实时控制的串行通讯网络。本文首先介绍CAN总线系统结构及数据传输,其次详细的阐述了
    的头像 发表于 05-07 10:59 2.1w次阅读
    <b class='flag-5'>CAN</b>总线过载<b class='flag-5'>帧</b>及<b class='flag-5'>数据</b><b class='flag-5'>帧</b>详解

    CAN标准数据和扩展数据的区别

    CAN协议可以接收和发送11位标准数据和29位扩展数据
    的头像 发表于 09-28 09:50 1.3w次阅读

    CAN FD结构介绍

    CAN FD结构 CAN FD节点可以正常收、发CAN报文,但CAN节点不能正确收、发CAN
    的头像 发表于 07-18 10:42 7575次阅读
    <b class='flag-5'>CAN</b> FD<b class='flag-5'>帧</b>结构<b class='flag-5'>介绍</b>

    CAN协议的几种格式介绍

    遥控 接收单元向发送单元请求数据的时候就用遥控,遥控由 6 个段组成: ①、起始,表示数据
    的头像 发表于 07-25 10:38 2381次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>协议</b>的几种<b class='flag-5'>帧</b>格式<b class='flag-5'>介绍</b>

    CAN和CANFD协议简介(下)

    前篇内容请点击查看: RA MCU CAN和CANFD IP介绍 CAN和CANFD协议简介(上) 2. CAN
    的头像 发表于 08-02 12:15 3070次阅读
    <b class='flag-5'>CAN</b>和CANFD<b class='flag-5'>协议</b>简介(下)

    CAN通信协议中有哪几种类型?CAN通信中格式的作用

    CAN通信协议中有四种类型,分别是数据、远程、错误
    的头像 发表于 01-30 09:18 5363次阅读

    请问用CAN存储器存储的CAN总线数据格式有哪些呢?

    请问用CAN存储器存储的CAN总线数据格式有哪些呢? CAN总线是一种常用于汽车、工业控制和其他应用领域的串行通信
    的头像 发表于 01-31 13:46 1266次阅读

    CAN数据的各个域及其作用

    CAN(Controller Area Network)是一种用于汽车电子系统中的通信协议,它具有高可靠性、实时性和灵活性等特点。在CAN通信中,数据
    的头像 发表于 07-24 15:10 1146次阅读

    can数据有哪几个域组成

    CAN(控制器局域网络)是一种基于消息传递的通信协议,广泛应用于汽车、工业自动化和嵌入式系统等领域。CAN协议数据
    的头像 发表于 07-24 15:14 936次阅读

    can网络数据的特点

    特点,在分布式系统中得到了广泛应用。 数据的重要性 :数据CAN网络中用于数据传输的基本单
    的头像 发表于 07-24 15:18 348次阅读

    can标准和扩展的区别

    CAN(Controller Area Network)是一种用于汽车和工业领域的通信协议,它允许多个设备在同一总线上进行通信。CAN协议有两种
    的头像 发表于 07-24 15:20 1785次阅读

    can标准和扩展能否共存

    CAN(Controller Area Network)是一种用于汽车和工业自动化领域的现场总线通信协议CAN协议具有多种格式,包括标准
    的头像 发表于 07-24 15:24 1827次阅读