如何快速了解CAN FD之CAN和CANFD的区别(1)

CAN FD(Flexible Data-Rate)是一种现代化的控制器局域网络(Controller Area Network)协议,它提供了高速数据传输和灵活性,可用于各种应用,包括汽车、工业自动化和航空航天。CAN FD相比传统的CAN协议具有更高的数据传输速率和更大的数据帧大小,这使其能够满足现代系统中更高的数据需求。

can和canfd通信区别

CAN(Controller Area Network)通信和CAN FD(Flexible Data-Rate)通信之间有几个主要的区别:

1.数据传输速率: CAN通信的最大传输速率通常为1 Mbps,而CAN FD通信提供了更高的速率,可达到最高8 Mbps。

2.数据帧长度:CAN通信的数据帧长度有限,最大为8字节。而CAN FD通信引入了灵活数据率和灵活数据帧长度的概念,允许更大的数据帧长度,最大可达到64字节。

3.兼容性:CAN FD通信是对CAN通信的扩展和改进,因此在兼容性方面,CAN FD设备可以与传统CAN设备兼容,但传统CAN设备不支持CAN FD的高速和灵活性特性。

4.错误检测和处理:CAN FD引入了更多的错误检测和处理机制,使得在高速和高数据量的通信环境下,系统更可靠。

报文(Message)通常指在计算机通信或网络通信中传输的数据单元。它包含了发送者和接收者之间交换的信息,通常以一种特定的格式进行组织和传输。CAN总线上传输信息的就称为报文

CAN FD和CAN总线协议帧格式:

CAN FD新增了FDF、BRS、ESI位:

FDF 位(Flexible Data Rate Format):原 CAN 数据帧中的保留位 r。表示 CAN 报文还是 CAN-FD 报文,FDF 位常为隐性(1),表示 CAN FD 报文;
BRS 位( Bit Rate Switch):表示位速率转换,当 BRS 为显性位(0)时数据段的位速率与仲裁段的位速率一致(恒定速率),当 BRS 为隐性位(1)时速率可变(即 BSR 到 CRC 使用转换速率传输);
ESI 位(Error State Indicator):发送节点错误状态指示,主动错误时发送显性位(0),被动错误时发送隐性位(1)。

CANFD帧结构

CAN FD节点可以正常收、发CAN报文,但CAN节点不能正确收、发CAN FD报文,因为其帧格式不一致。
CAN FD的帧结构由七部份组成:起始帧,仲裁段,控制段,数据段,CRC段,ACK段和结束帧。

起始帧:

CAN与CANFD使用相同的SOF(start of name,帧的开始标志,是一个具有特殊位模式的比特,用于指示一个新的can帧的开始)标志位来标志报文的起始。起始帧由1个显性位构成,标志着报文的开始,并在总线上起着同步作用。

仲裁段:

与CAN不同,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。IDE用于区分标准帧和扩展帧,为0时,表示CAN是标准帧,为1时,表示CAN是扩展帧。
其中RRS(Remote Request Substitution这个字段用于指示CAN帧是否是一个远程请求帧。当RRS位被设置为1时,表示该CAN帧是一个远程请求帧;当RRS位被设置为0时,表示该CAN帧是一个数据帧。RTR(Remote Transmission Request)这个字段与RRS类似,也用于指示CAN帧是否是一个远程请求帧。当RTR位被设置为1时,表示该CAN帧是一个远程请求帧;当RTR位被设置为0时,表示该CAN帧是一个数据帧。
标准帧和扩展帧在标识符(Identifier)字段的长度上有所不同:

  • 标准帧的标识符字段长度为11位,取值范围为0x000至0x7FF。
  • 扩展帧的标识符字段长度为29位,取值范围更广,可以是任意的29位二进制值。

控制段:

CAN FD与CAN有着相同的IDE、res和DLC位,同时增加了FDF、BRS、ESI三个bit位。
FDF 位(Flexible Data Rate Format):原 CAN 数据帧中的保留位 r。表示 CAN 报文还是 CAN-FD 报文,FDF 位常为隐性(1),表示 CAN FD 报文;
BRS 位( Bit Rate Switch):表示位速率转换,当 BRS 为显性位(0)时数据段的位速率与仲裁段的位速率一致(恒定速率),当 BRS 为隐性位(1)时速率可变(即 BSR 到 CRC 使用转换速率传输);
ESI 位(Error State Indicator):发送节点错误状态指示,主动错误时发送显性位(0),被动错误时发送隐性位(1)。

数据段:

CAN FD兼容CAN的数据格式,同时最大还能支持:12、16、 20、 24、 32、 48和64byte。
像在传统CAN中一样,CAN FD DLC是4位,表示帧中数据字节的数量。为了维持4位DLC,CAN FD使用从9到15的其余7个值来表示所使用的数据字节数(12、16、20、24、32、48、64)

crc:

传统CAN中的循环冗余校验(CRC)为15位,而在CAN FD中为17位(最多16个数据字节)或21位(20-64个数据字节)。 在传统CAN中,CRC中可以包含0到3个填充位,而在CAN FD中,总是有四个固定填充位以提高通信可靠性。

ACK段:

ACK紧跟着CRC结束标识位。不同的是,CAN FD支持2bits的ACK的识别

帧结束:

由至少七个高电平(1)组成,随后是总线的低电平状态,以便接收器准备接收下一个帧。

canfd是如何进行改进的:

CAN FD采用了两种方式来提高通信的效率:一种方式为缩短位时间提高位速率;另一种方式为加长数据场长度减少报文数量降低总线负载率。
1)CAN FD支持双比特率,与传统CAN一样,标称(仲裁)比特率限制为1 Mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5 Mbit/s的数据比特率。
从控制段中的 BRS 位到 ACK 段之前(含 CRC 分界符)为可变速率,其余部分为原 CAN 总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位 TQ 外,位时间各段的分配比例也可不同。
2)CAN FD每个数据帧最多支持64个数据字节,而传统CAN最多支持8个数据字节,这减少了协议开销,并提高了协议效率。
DLC 最大支持 64 个字节,在 DLC 小于等于 8 时与原 CAN 总线是一样的,大于 8 时则有一个非线性的增长,最大的数据场长度可达 64 字节。如下所示为 DLC 数值与字节数的非线性对应关系。
CAN FD在 CRC 校验段采用了三种多项式来保证高速通讯下的数据可靠性

如何从can升级到canfd:

1)硬件:
如果现有的CAN控制器不支持CAN FD协议,需要选取支持CAN FD的控制器和收发器,以支持更高的数据传输速率和灵活的数据长度。硬件接口和传输线路可能也需要更新,还需要根据CAN FD帧格式更新硬件逻辑,以支持新的数据帧结构和功能。
2)软件:
CAN FD 节点可以兼容CAN,但是传统CAN节点不能正常收发CANFD节点。所以需要更新CAN的通信协议和驱动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值