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
    +关注

    关注

    56

    文章

    2471

    浏览量

    459310
  • 数据帧
    +关注

    关注

    0

    文章

    33

    浏览量

    6647
收藏 人收藏

    评论

    相关推荐

    CAN总线协议及概念

    要求,不会占用过长总线时间,实时性强。(8),CAN都有CRC校验及其他验错措施。(9),接口中集成了CAN总线协议的物理层和数据链路层
    发表于 04-18 16:36

    CAN错误定义

    ] &0x40为真,表明恢复到错误激活状态。CAN通信协议出错  #define CAN_ERR_PROT  0x00000008U  当错误结构体中
    发表于 01-03 15:57

    STM32之间CAN协议通讯 精选资料分享

    CAN(Controlled Area Network)协议是不同设备之间的一种通信方式,但有一定的规则。当消息通过 CAN 总线传输时,必须遵循这些规则。在这里,我们将看到这些规则。下面显示的是标准
    发表于 08-03 06:04

    can的五种介绍

    一、can的五种:1.数据,包括七段,起始,仲裁段,控制段,数据段,校验段,ACK段,结束
    发表于 08-06 09:13

    串口协议数据格式

    前言好久没更新博客了,这篇文章写写停停,用了近一周的时间,终于写完了。本篇文章介绍,串口协议数据格式、串行通信的工作方式、电平标准、编码方式及Verilog实现串口发送一个字节
    发表于 08-06 08:20

    CAN协议的特点

    目录1、什么是CAN2、CAN协议的特点3、ISO11898标准下的物理层特征4、CAN 协议的5 种类型
    发表于 08-19 08:02

    CAN BUS协议的理解

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

    CAN协议规定了好几种类型

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

    CAN协议介绍  CAN协议介绍  

    1.CAN协议介绍   CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行
    发表于 08-19 06:36

    CAN总线的标准和扩展

    CAN总线的标准和扩展主要决定ID的长度,标准ID长度是11位,也就是
    发表于 08-20 06:43

    CAN FD协议介绍

    CAN FD(CAN with flexible data-rate)是CAN2.0协议的扩展,CAN-FD由博世开发,并由 ISO 118
    发表于 08-20 06:51

    CAN协议数据是如何构成的

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

    CAN协议的各种及其用途有哪些

    CAN协议具有哪些特点?CAN协议的各种及其用途有哪些?
    发表于 11-10 06:58

    CAN协议是通过哪几种类型的进行的

    CAN协议是通过哪几种类型的进行的?CAN的发送与接收流程是怎样的?
    发表于 11-11 06:23

    CAN协议的相关资料分享

    目录CAN协议介绍物理层闭环总线网络开环总线网络通讯节点差分信号协议层简介CAN的波特率位时序
    发表于 02-21 07:34