【CANFD详细介绍与CAN区别】

news/2024/12/19 17:51:03/

在汽车领域,随着人们对数据传输带宽要求的增加,传统的CAN总线由于带宽的限制难以满足这
种增加的需求。此外为了缩小CAN网络(max. 1MBit/s)与FlexRay(max.10MBit/s)网络的带宽差距,BOSCH公司推出了CAN FD。
CAN FD(CAN with Flexible Data rate)继承了CAN总线的主要特性。CAN总线采用双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制使CAN总线有很高的安全性,但CAN总线带宽和数据场长度却受到制约。CAN FD总线弥补了CAN总线带宽和数据场长度的制约,CAN FD总线与CAN总线的区别主要在以下两个方面:
1. 可变速率:CAN FD采用了两种位速率。 CAN FD的仲裁场和数据场速率可变:在仲裁场用低速500kbit/s,在数据场可选择用高速如2Mbit/s,而传统CAN总线只能保持同一个速率。从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,其余部分为原CAN总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位TQ外,位时间各段的分配比例也可不同;
2. 新的数据场长度:CAN FD对数据场的长度作了很大的扩充,DLC最大支持64个字节,在DLC
小于等于8时与原CAN总线是一样的,大于8时有一个非线性的增长,所以最大的数据场长度可达64字

1、为什么不简单地用64个字节的数据打包经典CAN数据帧?

这样做将减少开销并简化消息解释。但是,如果比特率保持不变,这也会阻塞CAN总线更长的时间,从而可能延迟关键任务的更高优先级的数据帧。

2、如果我们希望每条消息发送更多数据,则需要更高的速度。但是,为什么不加速整个 CAN消息而不仅仅是数据阶段呢?

这是由于“仲裁”:如果2个以上的节点同时发送数据,则仲裁将确定哪个节点具有优先权。“优胜者”
继续发送(无延迟),而其他节点在数据传输期间“退避”。在仲裁过程中,“位时间”在每个位之间提供足够的延迟,以允许网络上的每个节点做出反应。为了确保在位时间内到达每个节点,以1 Mbit / s的速度运行的CAN网络的最大长度应为40米(实际上为25米)。加快仲裁过程会将最大长度减少到不合适的水平。另一方面,仲裁后有一条“空旷的高速公路”,可在数据传输期间(只有一个节点驱动总线时)实现高速传输。在ACK时隙之前-当多个节点确认正确接收数据帧时-速度需要降低到标称比特率。简而言之,我们需要一种仅在数据传输过程中提高速度的方法。并保持实际的CAN线长。

CANFD与CAN的区别
1. CAN-FD:可以理解成CAN协议的升级版,只升级了协议,物理层未改
变。
2. CAN与CAN-FD主要区别:传输速率不同、数据长度不同、帧格式不
同、ID长度不同。
3. 由传统CAN转移到CANFD比较方便

2. 传输速率不同
1. CAN:最大传输速率1Mbps。
2. CAN-FD:速率可变,仲裁比特率最高1Mbps(与CAN相同),数据比特率最高8Mbps。

 3. 数据域长度不同
1. CAN:一帧数据最长8字节
2. CAN-FD:一帧数据最长64字节。

4. 协议内容改变—取消远程帧

5. CANFD报文具体结构—红色缩写为增加部

6. CAN报文与CANFD报文结构对比
1. CANFD不存在远程帧,CAN报文中的RTR(用于区别标准帧与远程帧)被替换为RRS(远程请求替代位,默认值为0)RTR与RRS:远程传输请求(RTR)在经典CAN中用于标识数据帧和相应的远程帧。在CAN FD中,根本不支持远程帧-远程请求替换(RRS)始终占主导地位(0)
2. FDF用于传统CAN报文和CANFD报文,FDF位为0时为传统报文,FDF为1时为CANFD报文 

 3. BRS位速率切换为,BRS位为0时CANFD速率保持恒定速率、BRS位为
1时CANFD的数据段会被切换到高速率

4. ESI错误状态指示位:CAN报文中发送节点的错误状态只有该节点自己
知道,CANFD报文中可以通过ESI标志位来告诉其他节点该节点的错误
状态,当ESI为1时表示发送节点处于被动错误状态、当ESI为0时表示发
送节点处于主动错误状态

 5. CRC-stuff count:填充位计数(计算从SOF开始到Data Field最后一位
的填充位的个数)

1、CRC场之前和CRC场之后位填充是不一样的
2、SOF到Data Field最后一位的位填充跟CAN报文一样:每五个相同位之后填
充一个相反位
3、CRC场采用固定位填充

 1. Stuff Count由以下两个元素组成:
格雷码计算(前3位):CRC区域之前的填充位数除以8,得到的余数
(Stuff bit count modulo 8)进行格雷码计算得到的值(Bit0-2)
奇偶校验(最后1位):通过格雷码计算后的值的奇偶校验(偶校验)

7. CRC:随着数据场的扩大,为了保证信息发送的质量,CAN FD的CRC
计算不仅要包括数据段的位,还包括来自SOF的Stuff Count和填充位。
通过比较CRC的计算结果,可以判断接收节点是否能够正常接收。
在CAN中,CRC的位数是15位,而在CAN FD中,CRC场扩展到了21
位,详见以下:

CAN中:CRC 15位
CANFD中当传输数据为16字节或更少时:CRC 17位
CANFD中当传输数据超过16字节时:CRC 21位

 8. CRC的Bit Stuffing

Stuff Count 之前加一个填充位,每隔4位添加1个填充位,
17位的CRC有6个Stuff Bits
21位的CRC有7个Stuff Bits

7. CANFD报文的标准帧和扩展帧—IDE为1表示为扩展帧、为0表示标准帧 

 

 

 


http://www.ppmy.cn/news/829851.html

相关文章

10 thymeleaf模版引擎使用

10.1 原理 首先&#xff0c;在idea搜索thymeleafProperties这个配置类。 通过源代码可以发现&#xff0c;使用的文件后缀是html&#xff0c;文件应该放在templates路径下&#xff1a; 10.1 依赖 直接加入启动器的thymeleaf依赖。 <dependency><groupId>org.sprin…

Skype - 经济有效的P2P电话 [完全免费/轻量级软件]

KaZaA 开发人员的又一杰作&#xff1a; http://ui.skype.com/skype.zh.html 实在令人佩服。

Skype for Business 2016或Lync 2013安装在Windows7上闪退

很多人现在可能还在使用Windows7&#xff0c;但是最近发现了一个奇怪的现象&#xff0c;将Skype for Business 2016或Lync 2013安装在Windows7上会出现闪退。 背景&#xff1a;客户新安装Win7&#xff0c;所有补丁都没打&#xff0c;IE仍旧是IE8。安装Office Pro Plus 2013的时…

Skype的服务器架构

这篇文章 SKYPEs Roadmap and Architecture 简化地描述了Skype的架构。 Skype的数据库团队leader Asko Oja 的幻灯&#xff0c; http://www.slideshare.net/highload/asko-oja-moskva-architecture-highload-presentation 则说Skype使用了PostgreSQL和Skype贡献的开源工具(plP…

Skype逆向之旅

左懒 2015/11/10 11:20 from: Skype逆向之旅: 创世纪 www.oklabs.net/skype-rever…Skype逆向之旅&#xff1a;分析篇 www.oklabs.net/skype-rever… 0x00 背景 我想...在显示分析之前先交代一下背景信息。 But&#xff0c;我得先为我糟糕的英语先道个歉。 在2k6的时候&#x…

各种SKYPE网页代码,SKYPE在线代码

2019独角兽企业重金招聘Python工程师标准>>> <a href"skype:账户?chat" target"_blank">开始 Skype 文字聊天</a><a href"skype:账户?userinfo" target"_blank">查看 Skype 资料</a><a href&…

TwinCAT3 全黑主题 Dark Mode

据可靠消息&#xff0c;德国倍福将在TwinCAT3 全新版本 3.1.4026推出Dark Mode主题&#xff0c;支持TwinCAT3所有界面呈现出全黑状态&#xff0c;那如果是现在使用的4024及之前的版本&#xff0c;想用全局全黑界面&#xff0c;国外大神给了一个例子&#xff0c;供参考。 话不多…