当前位置:网站首页 > C++编程 > 正文

CAN报文解析(cantest报文解析)




CANFD,全称CAN with Flexible Data rate,顾名思义是可变数据速率的CAN报文。CANFD是在CAN的基础上的迭代更新,具备以下几个优势:

  1. 支持更高的传输速率(最高达到8Mbps),提高ECU刷写效率;
  2. CANFD通信能够利用CAN控制器的线束和物理层,可重复利用的特点降低成本,同时提高了兼容性;
  3. 更高的带宽在新能源汽车上具有更大的优势;
  4. 单个数据帧能够传输64个字节信息,避免了CAN数据分拆传输;
  5. 应用层不需要做调整,只是在原基础上做扩展。
    因此,CANFD得到了广泛的应用与发展。

CANFD支持消息的双比特率,具体实现上CANFD在仲裁段由于总线上可能存在多个发送节点,这时使用较低的传输速率;而数据段结束仲裁,总线上只有一个节点在发送数据,传输速率可以切换到一个较高的值,CANFD使用更大的数据场来提高传输效率,取消了远程帧。

CANFD帧由帧起始SOF,ID仲裁段,控制段,数据域,CRC域,ACK域,帧结束,共七个部分组成。各段长度信息已经在CANFD帧结构图中给出标示。标准帧格式如下图,扩展帧格式与CAN类似,仅在此基础上对ID做了扩展,不做赘述。

在这里插入图片描述

在这里插入图片描述

由于CANFD数据场长度有变化区间,为了提高数据传输的正确性,根据数据场长度变化采用不同的CRC校验机制:

  • 数据场长度小于16位,采用17位CRC校验;
  • 数据场长度大于16位,采用21位CRC校验。

CANFD在CRC场前面增加了4个位(stuff bit Counter),统计SOF到CRC前的填充位个数。从上面的帧结构来看,CANFD报文在CRC前和CRC段采用不同的位填充机制。

  • SOF到Data段:每5个相同位填充一个相反位(位填充规则与CAN一致)
  • CRC场:固定位置的位填充方式。规则为:确定在第1位以及以后每4位添加一个填充位,该填充位是上一位的反码。如果检测到填充位不是上一位的反码,就判定为错误处理。
到此这篇CAN报文解析(cantest报文解析)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • excel文件比较工具(excel文件工具选项里的拆分表格)2026-05-10 13:00:06
  • conv1d和conv2d的区别(convlstm2d)2026-05-10 13:00:06
  • c++合并数组(c++中数组合并)2026-05-10 13:00:06
  • tomcat解决乱码问题(tomcat启动有乱码)2026-05-10 13:00:06
  • c++ 条件变量使用(c++11条件变量)2026-05-10 13:00:06
  • MSVCP140.dll是什么意思(msvcp140.dll是干什么用的)2026-05-10 13:00:06
  • ceph存储中osd的作用(ceph osd数量)2026-05-10 13:00:06
  • msvcp140 dll丢失修复(msvcp140.dll丢失怎样修复视频)2026-05-10 13:00:06
  • ip138.cm查询网手机号码(ip138.cm查询网手机号码查吉凶)2026-05-10 13:00:06
  • conv1d是什么(cond是什么意思)2026-05-10 13:00:06
  • 全屏图片