1 CAN总线的帧类型及结构-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

CAN总线的帧类型及结构

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-11-03 09:05 次阅读

本文主要介绍CAN总线的帧类型及结构。

CAN总线定义五种帧类型,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。数据帧就是总线上传输用户数据的帧,其最高有效载荷是8字节(CAN FD为64字节),除了有效载荷外,数据帧还包括必要的帧头帧位部分以执行CAN标准通信,比如消息标识符(Identifier)、数据长度代码、校验信息等。远程帧是用来向总线上其它节点请求数据的帧,它的帧结构与数据帧相似,只不过没有有效载荷部分;错误帧是表示通信出错的帧;帧间隔是用来隔离数据帧或者遥控帧的。

数据帧和远程帧有标准格式和扩展格式两种格式。标准格式有11位的标识符,扩展格式有29位标识符。

帧类型 帧用途 备注
数据帧 用于发送单元向接收单元传送数据的帧 分为标准格式和扩展格式,标准格式有11位标识符,扩展格式有29位标识符
遥控帧 用于接收单元向具有相同ID的发送单元请求数据的帧
错误帧 用于当检测出错误时向其它单元通知错误的帧
过载帧 用于接收单元通知其尚未做好接收准备的帧
帧间隔 用于将数据帧及遥控帧与前面的帧分离开来的帧 过载帧和错误帧前不能插入帧间隔

数据帧

数据帧的帧结构如下图所示:

7d03c54e-5b12-11ed-a3b6-dac502259ad0.png

7d19af9e-5b12-11ed-a3b6-dac502259ad0.jpg

各个字段定义及长度分别为:

SOF:表示数据帧开始;(1bit)

Identifier:标准格式11 bit,扩展格式29 bit包括Base Identifier(11bit)和Extended Identifier(18bit),该区段标识数据帧的优先级,数值越小,优先级越高;

RTR:远程传输请求位,0时表示为数据帧,1表示为远程帧,也就是说RTR=1时,消息帧的Data Field为空;(1bit)

IDE:标识符扩展位,0时表示为标准格式,1表示为扩展格式;(1bit)

DLC:数据长度代码,0~8表示数据长度为0~8 Byte;(4bit)

Data Field:数据域;(0~8Byte)

CRC Sequence:校验域,校验算法G(x) = x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1;(15bit)

DEL:校验域和应答域的隐性界定符;(1bit)

ACK:应答,确认数据是否正常接收,所谓正常接收是指不含填充错误、格式错误、 CRC 错误。发送节点将此位为1,接收节点正常接收数据后将此位置为0;(1bit)

SRR:替代远程请求位,在扩展格式中占位用,必须为1;(1bit)

EOF:连续7个隐性位(1)表示帧结束;(7bit)

ITM:帧间隔,Intermission (ITM),又称Interframe Space (IFS),连续3个隐性位,但它不属于数据帧。帧间空间是用于将数据帧和远程帧与前面的帧分离开来的帧。数据帧和远程帧可通过插入帧间空间将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。过载帧和错误帧前不能插入帧间空间。

远程帧

一般情况,数据是由发送单元主动向总线上发送的,但也存在接收单元主动向发送单元请求数据的情况。远程帧的作用就在于此,它是接收单元向发送单元请求发送数据的帧。远程帧与数据帧的帧结构类似,如下图所示。

7d331d58-5b12-11ed-a3b6-dac502259ad0.jpg

远程帧与数据帧的帧结构区别如下表所示:

帧起始 仲裁段 控制段 数据段 CRC段 ACK段 帧结束
意义 表示帧开始 表示数据优先级 表示数据段的字节数
数据帧 1位显性位 11位或29位(RTR位为显性) 6位 0~8个字节 15位CRC值和1位CRC界定符 1位ACK槽和1位ACK界定符 7位隐性位
遥控帧 1位显性位 可请求具有相同ID的数据帧(RTR位为隐性) 6位

当总线上具有相同标识符的数据帧和远程帧同时发送时,由于数据帧的 RTR 位是显性的,数据帧将在仲裁中赢得总线控制权。

错误帧

用于在接收和发送消息时检测出错误时,通知错误的帧。错误帧由错误标志和错误界定符构成。错误帧的帧结构如下图所示。

7d455248-5b12-11ed-a3b6-dac502259ad0.png

错误标志:6-12 个显性/隐性重叠位

主动错误标志(6个显性位):处于主动错误状态的单元检测出错误时输出的错误标志

被动错误标志(6个隐性位):处于被动错误状态的单元检测出错误时输出的错误标志

错误界定符:8 个隐性位

过载帧

过载帧是用于接收单元通知发送单元它尚未完成接收准备的帧。在两种情况下,节点会发送过载帧:

接收单元条件的制约,要求发送节点延缓下一个数据帧或远程帧的传输;
帧间空间(Intermission)的3 bit内检测到显性位

每个节点最多连续发送两条过载帧。过载帧由过载标志和过载界定符(8 个隐性位)构成。过载帧的结构如下图所示。

7d5eba3a-5b12-11ed-a3b6-dac502259ad0.png

帧间隔

帧间隔是用来隔离数据帧(或者遥控帧)的,也就是说,数据帧(或者遥控帧)通过插入帧间隔可以将本帧与先行帧(数据帧、遥控帧、错误帧、过载帧)分隔开来。但是过载帧和错误帧的前面不能插入帧间隔。

7d7b9a2e-5b12-11ed-a3b6-dac502259ad0.png

帧间隔有两种不同的形式:

主动错误状态的帧间隔

被动错误状态的帧间隔

间隔段:连续三个隐性位;间隔段期间,所有节点不允许发送数据帧或遥控帧,只要在这期间监听到显性位,接收节点就会发送过载帧。

空闲段:连续隐性位,个数不一定,0个或者多个都可以。总线空闲的时间是任意长的,只要总线空闲,节点就可以竞争总线。

暂停段:又叫做延迟传送段,只有处于被动错误状态的节点在发送帧间隔的时候,才会在帧间隔中插入8个连续隐性位的暂停段。

以上就是针对CAN总线的帧结构的介绍。

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

    关注

    145

    文章

    1946

    浏览量

    130726
  • 数据
    +关注

    关注

    8

    文章

    7002

    浏览量

    88938
  • 通信
    +关注

    关注

    18

    文章

    6024

    浏览量

    135949

原文标题:硬件接口协议之“CAN总线报文”

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅谈CAN FD总线协议格式

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

    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总线远程和错误,首先我们先来了解了解一下通讯时使用的类型有哪些,他们的
    的头像 发表于 05-07 11:30 2.7w次阅读
    一文解析<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>远程<b class='flag-5'>帧</b>和错误<b class='flag-5'>帧</b>

    CANOpen系列教程04 _CAN总线波特率、位时序、类型及格式说明

    CANOpen系列教程04_CAN总线波特率、位时序、类型及格式说明
    的头像 发表于 03-06 16:18 8006次阅读

    CAN总线的特点/类型/应用中的注意事项

    CAN以其多主,高速(最高1Mbps),抗干扰的特性被广泛应用汽车及各种工业环境。在此我们主要介绍一下CAN总线的特点,类型,以及应用中的
    发表于 01-05 10:37 4284次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的特点/<b class='flag-5'>帧</b><b class='flag-5'>类型</b>/应用中的注意事项

    CAN总线错误的类型介绍

    在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线错误的基础概念、CAN总线
    的头像 发表于 06-13 16:08 8211次阅读

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

    AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线
    的头像 发表于 05-27 10:39 4613次阅读
    虹科干货 | 带你全面认识“<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>错误”(一)——<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>错误与错误<b class='flag-5'>帧</b>

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

    AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线
    的头像 发表于 06-02 09:41 1425次阅读
    虹科干货 | 带你全面认识“<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>错误”(二)——<b class='flag-5'>CAN</b>错误<b class='flag-5'>类型</b>

    CAN FD结构介绍

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

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

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

    CAN总线的标准和扩展有什么区别呢?分别适用于什么工况?

    CAN总线的标准和扩展CAN协议中的两种类型
    的头像 发表于 01-30 09:41 6098次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的标准<b class='flag-5'>帧</b>和扩展<b class='flag-5'>帧</b>有什么区别呢?分别适用于什么工况?

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

    之间的信息传输。下面将详细介绍CAN总线数据的格式。 CAN总线数据分为两种
    的头像 发表于 01-31 13:46 1268次阅读

    CAN总线的数据结构

    CAN总线是一种基于时间分割的通信协议,它允许多个设备共享一个通信介质(如双绞线或光纤)。CAN总线的数据传输速率可以达到1 Mbps,适用于短距离通信。
    的头像 发表于 07-24 15:06 872次阅读

    can标准和扩展的区别

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

    CAN总线通信中的数据结构解析

    CAN总线由Bosch公司在1980年代开发,旨在为汽车电子系统提供一个可靠的通信网络。随着技术的发展,CAN总线已经被广泛应用于各种工业和自动化领域。 2.
    的头像 发表于 11-12 10:12 506次阅读