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

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

3天内不再提示

一帧CAN报文多少字节

麦辣鸡腿堡 来源:美男子玩编 作者:不脱发的程序猿 2023-07-18 10:48 次阅读

一帧CAN FD报文位数

根据CAN FD帧结构组成,可以算出一帧CAN FD报文位数:

CAN FD报文位数 = 帧起始(1位)+ 仲裁段(13/32位)+ 控制段(8位)+ 数据段(0~512位)+ CRC段(28/33位)+ ACK段(2位)+ 帧结束(7位)

影响报文位数主要为仲裁段(帧ID长度)和数据段(CRC段受数据段长度影响)。通过帧类型、帧长度组合出不同情况报文位数:

标准帧,数据0字节

帧起始(1位)+ 仲裁段(13位)+ 控制段(8位)+ 数据段(0位)+ CRC段(28位)+ ACK段(2位)+ 帧结束(7位)= 59位

标准帧,数据64字节

帧起始(1位)+ 仲裁段(13位)+ 控制段(8位)+ 数据段(512位)+ CRC段(33位)+ ACK段(2位)+ 帧结束(7位)= 576位

扩展帧,数据0字节

帧起始(1位)+ 仲裁段(32位)+ 控制段(8位)+ 数据段(0位)+ CRC段(28位)+ ACK段(2位)+ 帧结束(7位)= 78位

扩展帧,数据64字节

帧起始(1位)+ 仲裁段(13位)+ 控制段(8位)+ 数据段(512位)+ CRC段(33位)+ ACK段(2位)+ 帧结束(7位)= 590位

精品专栏仲裁域和数据域位数

由于CANFD采用了双波特率形式:标准波特率(也称仲裁域波特率)和数据域波特率,所以帧结构中不同段采用的波特率也不同。

仲裁域波特率所占位数帧起始(1位)+ 仲裁段(13位)+ 控制段的EDL、r0、BRS(3位)+ ACK段(2位)+ 帧结束(7位)

数据域波特率所占位数控制段的ESI、DLC(5位)+ 数据段(0~512位)+ CRC段(28/33位)

主要说明的是,BRS位和CRC界定符位均同时使用了两个波特率:

BRS位:由**仲裁域波特率 * 仲裁域采样点 + 数据域波特率 * (1 - 仲裁域采样点)**组成;

CRC界定符:由**数据域波特率 * 数据域采样点 + 仲裁域波特率 * (1 - 数据域采样点)**组成。

此处将BRS认定采用仲裁域波特率、CRC界定符采用数据域波特率以方便计算。

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

    关注

    3024

    文章

    7863

    浏览量

    166395
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2714

    浏览量

    463328
  • 报文
    +关注

    关注

    0

    文章

    38

    浏览量

    4017
收藏 人收藏

    评论

    相关推荐

    CAN总线报文数据致性校验

    比如ECU1接收ECU2发出的一帧0x100报文,协议层是不会区分是ECU1发的,还是非法接入OBD的CAN盒发的?如果ECU1接收到非ECU2发出的0x100报文岂不是很危险?
    的头像 发表于 01-24 10:03 1671次阅读
    <b class='flag-5'>CAN</b>总线<b class='flag-5'>报文</b>数据<b class='flag-5'>一</b>致性校验

    ESP32C6作为UDP Server,使用recvfrom无法及时收到第一帧报文的原因?如何解决?

    后调用recvfrom()阻塞等待接收报文。 在测试时发现,AP在接收来自STA的第一帧UDP报文时recvfrom()无法及时返回结果,通常在STA发送第一帧
    发表于 06-06 07:34

    关于CAN发送的问题

    现在我的设备需要发送3共24个字节的数据给上位机,但是在上位机的通讯要求中只给了报文ID 0X1FD08063,我以前只试过用三个报文
    发表于 12-19 16:42

    请问STM32F4的OTG模块一帧内32最大可以传输多少字节给PC?

    我使用的是OTG_FS的bulk方式传输,PC为主机,单片机为设备。1:一帧内32最大可以传输多少字节给PC?一帧内可以传输多少次事务,次事务传输可以传输多少个数据包,
    发表于 11-14 09:03

    CAN报文定义

    1. CAN报文定义CAN报文是指发送单元向接受单元传送数据的。我们通常所说的CAN
    发表于 09-14 09:23

    CAN报文的单次发送和循环发送问题请教

    CAN报文怎样设置单次发送和循环发送?类似图片可以单次发送也可以循环发送,循环时间也可以修改,数据内容也可以修改问题关键在于多报文怎样去设置?当前的思路是每一帧
    发表于 10-26 11:54

    S32G2 FlexCAN CAN FD使用DMA接收字节顺序错误的原因?怎么解决?

    我在 goldbox 上以 DMA 模式使用 flexcan 时遇到字节字节序错误。因为没有DMA,发送正常。当接收到第一帧CAN FD报文
    发表于 04-27 07:09

    CAN报文到底有多少位?

    CAN-bus总线是应用最广泛的现场总线之,而很多非常熟练的CAN工程师,面对CAN报文
    发表于 06-06 16:36 3.4w次阅读
    <b class='flag-5'>一</b>条<b class='flag-5'>CAN</b><b class='flag-5'>报文</b>到底有多少位?

    文详解CAN总线的报文结构

    数据由7个不同的位场组成:起始、仲裁场、控制场、数据场、CRC场、应答场、结束。其中,数据场的长度为0~8个字节。标识符位于仲裁场中,报文
    发表于 11-02 10:46 1.2w次阅读

    can总线一帧多少字节多少位_MCU扩展CAN/CAN FD接口方案MCP2518FD+ATA6563

    CAN总线上日益增长的带宽需求。相比于CAN2.0主要有2点增强:将数据位段增加到最多64数据字节(CAN 2.0最大为8个数据字节)。标称
    发表于 10-29 11:21 18次下载
    <b class='flag-5'>can</b>总线<b class='flag-5'>一帧</b>多少<b class='flag-5'>字节</b>多少位_MCU扩展<b class='flag-5'>CAN</b>/<b class='flag-5'>CAN</b> FD接口方案MCP2518FD+ATA6563

    【Z站推荐】CANFD每秒最多可以发送多少报文

    我们知道CANFD比CAN拥有更长的数据长度(最长64字节),更高的波特率(8Mbps甚至更高)。那么波特率更高,数据更长的CANFD,秒钟最高可以发送多少CANFD
    的头像 发表于 07-29 09:34 1766次阅读
    【Z站推荐】CANFD每秒最多可以发送多少<b class='flag-5'>帧</b><b class='flag-5'>报文</b>?

    CAN FD结构介绍

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

    CAN协议数据的介绍

    位标识符(ID),扩展格式有 29个标识符(ID)。这 5 中的用途见表: 1、数据 数据由 7 段组成: ①、起始,表示数据
    的头像 发表于 07-25 10:36 1w次阅读
    <b class='flag-5'>CAN</b>协议数据<b class='flag-5'>帧</b>的介绍

    CAN报文为什么会发送失败?

    CAN总线调试过程中出现报文发送失败。很多工程师都对此只知其不知其二,今天我们就以CAN报文发送失败的问题来做
    的头像 发表于 04-12 08:25 1859次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>报文</b>为什么会发送失败?

    一帧CANFD报文由多少个位组成?

    要想知道CANFD报文由多少个位组成,那么我们就要了解CANFD结构,知道每个段占用位数从而得出CANFD报文位数。
    的头像 发表于 04-27 06:08 3861次阅读
    <b class='flag-5'>一帧</b>CANFD<b class='flag-5'>报文</b>由多少个位组成?