CAN和CANFD的区别总结

概述
CANFD:可以理解成CAN协议的升级版,只升级了协议,物理层未改变。
Can与CanFD主要区别:传输速率不同、数据长度不同、帧格式不同、ID长度不同。

传输速率不同
Can:最大传输速率1Mbps。
CanFD:速率可变,仲裁比特率最高1Mbps(与CAN相同),数据比特率最高8Mbps,如下图所示。

在这里插入图片描述
数据长度不同
Can:一帧数据最长8字节
CanFD:一帧数据最长64字节。

帧格式不同
CanFD新增了FDF、BRS、ESI位。
FDF:表示CAN报文还是CAN-FD报文。
BRS:表示位速率转换,该位隐性时,速率可变(即BSR到CRC使用转换速率传输),该位为显性时,以正常的CAN-FD总线速率传输(恒定速率);
ESI:表示发送节点状态。

在这里插入图片描述

ID长度不同
CAN标准帧ID长度最长11bit
CANFD标准帧ID长度可扩展到12bit。

CAN2.0B标准帧

CAN 标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。

字节1为帧信息。第7位(FF)表示帧格式,在标准帧中,FF=0;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度。

字节2、3为报文识别码,11位有效。

字节4~1为数据帧的实际数据,远程帧时无效。

CAN2.0B扩展帧

CAN 扩展帧信息为13个字节,包括两部分,信息和数据部分。前5个字节为信息部分

字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF=1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC 表示在数据帧时实际的数据长度。

字节2~5为报文识别码,其高29位有效。

字节6~13数据帧的实际数据,远程帧时无效。

工作流程:

1、使能flexcan模块时钟
2、使模块进入禁止模式
3、在禁止模式下选择好时钟源(协议引擎时钟源)
4、开启flexcan模块 一旦开启flexcan模块,flexcan即进入冻结模式,也可以同过软中断来复位flexcan然后进入冻结模式
5、初始化flexcan模块寄存器,初始化MB为0
6、退出冻结模式
7、设置Rx消息缓冲区(CS,format,type,id,date)首先写0x0000d到CS字段失活MB,最后写0x01000激活MB
8、设置Tx消息缓冲区(CS,format,type,id,length, date)首先写0x1000d到CS字段失活MB,最后写0x11000激活MB,等待消息发送。
9、通过读取中断标志位判断是否完成发送接收。

 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值