CAN FD解释-简单介绍

1、什么是CAN FD?

CAN FD协议由Bosch(与行业专家)预先开发,并于2012年发布。

在标准化过程中已得到显着改进,如今已在ISO 11898-1:2015中进行了改进。原始的Bosch CAN FD版本(非ISO CAN FD)与ISO CAN FD不兼容。

CAN FD具有四个主要优点:

1#增加数据长度

CAN FD 每个数据帧最多支持64个数据字节,而Classic CAN 支持8个数据字节。这减少了协议开销,并提高了协议效率。

2#速度提升

CAN FD支持双比特率:经典CAN中给定的标称(仲裁)比特率限制为1 Mbit / s,而数据比特率则取决于网络拓扑和收发器。实际上,可以实现高达5 Mbit / s的数据比特率。

3#改进的可靠性

CAN FD使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。例如,这对于车辆和工业自动化等对安全至关重要的应用至关重要。

4#平滑过渡

在某些条件下,可以混合使用CAN FD和经典CAN ECU。这样就可以逐步引入CAN FD节点,从而大大降低了OEM的成本和复杂性。

实际上,与经典CAN 相比,CAN FD可以将网络带宽提高3到8 ,从而为数据增长提供了一种简单的解决方案。

CAN FD如何工作?

因此,CAN FD看起来非常简单:

加快数据传输速度,并将更多数据打包到每个消息中,对吗?

但是实际上,这不是那么简单。

下面我们概述了CAN FD解决方案必须解决的主要挑战。

两个关键挑战

在查看CAN FD数据帧之前,了解我们要维护的Classic CAN的两个核心部分至关重要:

1#避免严重的邮件延迟

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

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

2#保持实际的CAN线长

因此,如果我们希望每条消息发送更多数据,则需要更高的速度。

但是,为什么不加速整个 CAN消息(而不仅仅是数据阶段)呢?

这是由于“仲裁”:如果2个以上的节点同时发送数据,则仲裁将确定哪个节点具有优先权。“优胜者”继续发送(无延迟),而其他节点在数据传输期间“退避”。

在仲裁过程中,“位时间”在每个位之间提供足够的延迟,以允许网络上的每个节点做出反应。为了确保在位时间内到达每个节点,以1 Mbit / s的速度运行的CAN网络的最大长度应为40米(实际上为25米)。加快仲裁过程会将最大长度减少到不合适的水平。

另一方面,仲裁后有一条“空旷的高速公路”,可在数据传输期间(只有一个节点驱动总线时)实现高速传输。在ACK时隙之前-当多个节点确认正确接收数据帧时-速度需要降低到标称比特率。

简而言之,我们需要一种仅在数据传输过程中提高速度的方法。

解决方案:CAN FD框架

CAN FD协议引入了经过调整的CAN数据帧,以实现额外的数据字节和灵活的比特率。

下面我们比较一个11位的经典CAN帧与一个11位的CAN FD帧(也支持29位):

让我们逐步解决这些差异:

RTR与RRS:远程传输请求(RTR)在经典CAN中用于标识数据帧和相应的远程帧。在CAN FD中,根本不支持远程帧-远程请求替换(RRS)始终占主导地位(0)。

r0 vs. FDF:在经典CAN中,r0保留且占优势(0)。在CAN FD中,它被称为FDF和隐性(1)。

在r0 / FDF位之后,CAN FD协议添加“ 3个新位”。请注意,不具备CAN FD功能的节点在FDF位之后会产生错误帧。

res:这个新的保留位起着与r0相同的作用-即将来可能将其设置为隐性(1)来表示新协议。

BRS:比特率开关(BRS)可以为显性(0),这意味着CAN FD数据帧以仲裁速率(即最高1 Mbit / s)发送。将其设置为隐性(1)意味着数据帧的其余部分以更高的比特率(最高5 Mbit / s)发送。

ESI:默认情况下,错误状态指示器(ESI)位为显性(0),即“错误激活”。如果发送器变为“被动错误”,则将隐性(1)表示它处于被动错误模式。

数据长度DLC CAN总线灵活的数据速率

DLC:与传统CAN一样,CAN FD DLC为4位,表示帧中数据字节的数量。上表显示了两种协议如何一致地使用多达8个数据字节的DLC。为了维持4位DLC,CAN FD使用9到15之间的其余7个值来表示所使用的数据字节数(12、16、20、24、32、48、64)。

SBC:填充位计数(SBC)在CRC之前,由3个格雷编码位和一个奇偶校验位组成。随后的固定填充位可以视为第二个奇偶校验位。添加了SBC以提高通信可靠性。

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

ACK: CAN FD数据帧的数据阶段(也称为有效负载)在ACK位停止,这也标志着可能增加的比特率的结束。

 

NEED FOR SPEED:开启比特率切换

如前所述,以正常速度发送64个数据字节会阻塞CAN总线,从而降低了实时性能。

为了解决这个问题,可以启用比特率切换,以允许以比仲裁率更高的速率(例如5 Mbit / s与1 Mbit / s)发送有效负载。上面我们以图解方式可视化了3个数据字节和64个数据字节方案的效果。

注意,较高的速度适用于从BRS位开始到CRC分隔符结束的数据帧部分。

除此之外,当今大多数车辆使用0.25-0.5 Mbit / s,这意味着以5 Mbit / s的速度,CAN FD将是有效载荷传输速度的10倍。

令人印象深刻,对不对?

混合经典CAN和CAN FD节点

 

如前所述,经典CAN和CAN FD节点可以在某些条件下混合使用。这样就可以逐步向CAN FD迁移,而不必一次切换每个ECU。

存在两种情况:

100%CAN FD系统:在这里,CAN FD控制器可以自由混合经典CAN和CAN FD数据帧。

一些节点是传统的经典CAN:在这里,CAN FD控制器可以切换到经典CAN通信,以避免来自经典CAN节点的错误帧反应。同样,在例如ECU闪烁期间,经典CAN节点可能会关闭,以允许暂时转换为CAN FD通信。

CAN FD与CAN的开销和数据效率

显而易见,与经典CAN相比,CAN FD的新增功能增加了很多额外的位-如何减少开销?

答案是事实并非如此-请参见下面的经典CAN与CAN FD可视化图,了解3个数据字节。实际上,直到跨越8个数据字节,CAN FD的效率才不会超过经典CAN。但是,通过移向64个数据字节,效率可以从约50%增至约90%(下文有更多介绍)。

CAN FD的最大比特率是多少?

 

CAN FD的一个令人困惑的方面是有效负载阶段的最大比特率-因为不同的文章提到了不同的级别。

有人指出,实际应用中可以达到8 Mbit / s,理论上可以达到15 Mbit / s。其他人则表示高达12 Mbit / s。此外,戴姆勒指出,超过5 Mbit / s是令人怀疑的 -既没有标准,又因为低成本汽车以太网(10 BASE-T1)有望限制对CAN FD的更高需求。

那么什么是正确的?

这取决于。从ISO 11898-2(收发器芯片标准)来看,它指定了两个对称参数集。建议使用对称性参数得到改善的天线,通常宣传为5 Mbit / s收发器。可达到的数据相位比特率取决于许多因素。最重要的一项是所需的温度范围。ECU的闪烁不需要低温的支持。这意味着对于ECU闪烁,可能会达到12 Mbit / s。另一个重要的比特率限制是由所选的拓扑引起的。存根非常短的总线拓扑与长存根甚至星形的混合拓扑相比,可以显着提高比特率。对于-40摄氏度至+125摄氏度的温度范围,大多数多点总线线路网络被限制为2 Mbit / s。CiA在CiA 601-3网络设计建议中提供了适当的经验法则。这包括在数据阶段设置采样点的建议。

示例:CAN FD用例

简而言之,CAN FD允许系统以更快的速度处理更多数据。

这对于许多越来越相关的用例至关重要:

电动汽车

电动汽车和混合动力汽车采用了新的动力总成概念,要求更高的比特率。复杂性的增加来自与DC / DC逆变器,电池,充电器,增程器等相关的新控制单元。到2025年,预计所需的比特率将超过CAN- 随着电动汽车爆炸性增长,这可能是该技术的先驱CAN FD推出。

ECU闪烁

车载软件变得越来越复杂。因此,今天通过OBD2端口执行ECU更新可能要花费数小时。使用CAN FD,可以使此类过程的速度提高4倍以上。该用例一直是汽车OEM需求CAN FD的原动力之一。

CAN灵活的数据速率比特率开关BRS

机器人

一些应用程序依赖于时间同步的行为-例如,具有多个轴的机器人手臂。这样的设备通常使用CANopen,并且每个控制器都需要与时间同步的发送多个CAN帧(PDO)(即不受较高优先级帧的干扰)。通过转换为CAN FD,可以在单个帧中发送所需数据,从而提高效率和简化操作。

 

ADAS和安全驾驶

乘用车和商用车中越来越多地采用高级驾驶员辅助系统(ADAS)。这些系统对现有CAN总线的总线负载造成了压力,但是ADAS是提高安全性的重要一步(在我们等待真正的自动驾驶汽车的同时)。在此,CAN FD将在不久的将来成为增强安全驾驶的关键推动力。

卡车和大巴

卡车和公共汽车使用长CAN总线(10-20米)。结果,它们依赖慢速比特率(根据J1939-14为250 kbit / s或500 kbit / s )。在这里,即将到来的J1939 FD协议有望实现商用车功能的重大改进,包括。例如ADAS。

安全CAN总线

最近的CAN黑客攻击所示,经典CAN容易受到攻击。如果黑客能够访问CAN总线(例如,无线),则可能会关闭关键功能。带宽更高时,CAN FD可以通过安全车载通信(SecOC)模块进行身份验证-这可能成为CAN FD的核心理由。

 

 

 

 

CAN 总线自 总线自 19 世纪 80 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统CAN 只能支持最高 只能支持最高 只能支持最高 只能支持最高 1M bit/s bit/s传输速率 传输速率 ,这就给 ,这就给 ,这就给 CAN CAN通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高宽及数据吞吐量, 宽及数据吞吐量, 宽及数据吞吐量, 宽及数据吞吐量, CAN FD CAN FD CAN FD应运而生。
### 关于CAN FD与ISO标准的技术信息 #### CAN FD简介 控制器局域网灵活数据速率(Controller Area Network with Flexible Data-rate, CAN FD)是一种增强型通信协议,旨在提高车载网络的数据传输效率和带宽。相较于传统CAN总线,CAN FD支持更高的比特率以及更大的有效载荷长度。 #### ISO标准化进展 国际标准化组织(International Organization for Standardization, ISO)针对CAN FD制定了多项重要标准: - **ISO 11898系列**:定义了物理层和数据链路层规范,适用于高速串行通信系统中的应用[^1]。 - **ISO 11898-1:2015**:描述了经典CAN的帧格式及其操作模式;而其后续版本则扩展至涵盖CAN FD特性,允许单次仲裁场之后跟随更长的数据字段并采用可变位定时方案来实现更高传输速度。 - **ISO 11783系列**:虽然最初设计用于农业机械自动化控制,但也包含了部分有关CAN FD的规定,在某些特定应用场景下提供了指导原则。 #### 技术特点对比 | 特性 | Classic CAN | CAN FD | | --- | --- | --- | | 数据域大小 | 最多8字节 | 可达64字节 | | 比特率范围 | 单一固定值 | 支持双速模式——较低的速度用于同步阶段,较高的速度应用于数据传送期间 | ```cpp // 示例代码展示如何配置CAN FD接口参数 void configureCanFd(CanInterface& interface) { CanFdConfig config; // 设置最大数据长度为64字节 config.setMaxDataLength(64); // 配置不同的波特率 config.setArbitrationBitRate(500_kbps); // 同步/仲裁期使用较慢的波特率 config.setDataPhaseBitRate(2_Mbps); // 数据传输期切换到更快的波特率 interface.applyConfiguration(config); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值