网站首页 > 技术文章 正文
现如今打开一款CAN收发器芯片手册,在Features里都会写着支持CAN FD(CAN with Flexible Data rate, 可变速率的CAN)。尤其是随着电子电器架构的升级,发展到域控阶段,经典CAN(即CAN BUS2.0)负载率越来越高,其局限性越来越大,当前域控制器间更多采用CAN FD或以太网进行通讯。
如前面文章讲到波特率和负载率,我理解本质上, CAN FD就是为了提高CAN总线的波特率,即单位时间内能够传递更多位的数据,使得同样的负载率下使用CAN FD形式的CAN总线传输效率更高,即通过提高控制场中的BRS位到ACK场之前的传输速率(最高速率可达到8Mbps)和增加数据段长度。其实也可以简单的认为是传统CAN的升级版,只升级了协议,物理层没有改变。CAN FD支持的最大数据长度为64byte。。下面具体对比经典CAN(和CAN FD,来看看它们之间到底有哪些相同点,又有哪些不同点。
1 帧结构
对于经典CAN,报文帧有5种类型,分别是数据帧、遥控帧、错误帧、过载帧和帧间隔。而CAN FD没有远程帧。通常我们只考虑两者的数据帧,均有标准格式和扩展格式,其帧结构均包含7个段:SOF,仲裁段,控制段,数据段,CRC段,ACK段和EOF。
1)对比标准格式的数据帧:
2)对比扩展格式的数据帧如下:
通过上述比较,不难发现,不同点主要在于:
- 仲裁段:CAN FD用RRS位替换了RTR位,为常显性。经典CAN帧中的RTR用于区别标准帧与远程帧,在CAN FD帧中被RRS替换,因此CANFD中没有远程帧了。
- 控制段:CAN FD帧中增加了3个控制位,FDF、BRS、ESI。
- CRC段:CAN帧中CRC段15位,而CAN FD帧中CRC段能扩展到21位或25位。
关于控制段,FDF(Flexible Data Rate Format):常为隐性,表示CAN FD报文,如下所示:
BRS(Bit Rate Switch):位速率转换开关。当BRS为显性位时,数据段的位速率与仲裁段的位速率一致;当BRS为隐性位时,数据段的位速率高于仲裁段的位速率。
ESI(Error State Indicator) :为错误状态指示位,在CAN帧中发送节点的错误状态只有自己知道,而CANFD帧中可通过ESI来告诉其他节点自己的错误状态。当ESI为隐性位时,表示发送节点处于被动错误状态;当ESI为显性位时,表示发送节点处于主动错误状态。
关于CRC段,在CAN帧中CRC段是15位,而在CAN FD帧中,当传输数据为不超过16字节时,CRC段是17位;当传输数据超过16字节时,CRC段是 21位。这是因为随着数据段的扩大,为了保证信息的发送质量,CAN FD帧的CRC计算需要涵盖数据段的位。
另外,CRC段还包括填充位计数器,由格雷码(前3位)和奇偶校验(最后1位):通过格雷码计算后的值的奇偶校验(偶校验)。
总的来说,CRC段采用了改进的循环冗余校验(CRC)和填充位计数器(SBC),以提高错误检测能力,增强数据的完整性和可靠性。
2 数据长度
CAN帧数据段最长8字节,CAN FD帧数据段最长64字节,对比如下表:
3传输速率
CAN-FD帧采用了两种位速率:从控制场中的 BRS 位到 ACK 场之前(含 CRC 分界符)为可变速率,也叫数据波特率,最高可达8Mbps;其余部分为原 CAN总线用的速率,叫仲裁波特率,最高可达1Mbps。两种速率各有一套位时间定义寄存器,它们除了采用不同Tq外,位时间的4个段的分配比例也可不同。
4小结
以上基于经典CAN帧与CANFD帧的概念定义进行对比,总的来说:
1)CAN FD帧设置更长的数据段,以传输更多的数据;
2)CAN FD帧可设置2种传输速率,以提高CAN总线的传输速率。
3)CAN FD帧采用改进的CRC计算方法和填充位计数器,以此提高错误检测能力,增强数据的完整性和可靠性。
猜你喜欢
- 2024-12-24 CAN通讯系列9- 负载率怎么算 can线负载率多大合适
- 2024-12-24 干货分享:CAN总线详解 整车的控制只需要一条线
- 2024-12-24 以太网can转换器的波特率怎么设置?
- 2024-12-24 CAN报文解析 can报文解析代码
- 2024-12-24 说说stm32开发板波特率如何用can分析仪来判断?
- 2024-12-24 来可电子元器件CAN FD实战之可变波特率
- 2024-12-24 说说如何修改can总线分析仪的波特率
- 2024-12-24 说说canopen io中的节点号以及波特率如何设置
- 2024-12-24 掌握 CAN 转 PN 网关连接 can 设备的配置要领
- 2024-12-24 继续说说不同波特率的can总线设备通信的具体方法
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)