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数据帧之前,了解我们要维护的Classic CAN的两个核心部分至关重要:
1#避免严重的邮件延迟
为什么不简单地用64个字节的数据打包经典CAN数据帧?
这样做将减少开销并简化消息解释。但是,如果比特率保持不变,这也会阻塞CAN总线更长的时间,从而可能延迟关键任务的更高优先级的数据帧。
2#保持实际的CAN线长
因此,如果我们希望每条消息发送更多数据,则需要更高的速度。
但是,为什么不加速整个 CAN消息(而不仅仅是数据阶段)呢?
这是由于“仲裁”:如果2个以上的节点同时发送数据,则仲裁将确定哪个节点具有优先权。“优胜者”继续发送(无延迟),而其他节点在数据传输期间“退避”。
在仲裁过程中,“位时间”在每个位之间提供足够的延迟,以允许网络上的每个节点做出反应。为了确保在位时间内到达每个节点,以1 Mbit / s的速度运行的CAN网络的最大长度应为40米(实际上为25米)。加快仲裁过程会将最大长度减少到不合适的水平。
另一方面,仲裁后有一条“空旷的高速公路”,可在数据传输期间(只有一个节点驱动总线时)实现高速传输。在ACK时隙之前-当多个节点确认正确接收数据帧时-速度需要降低到标称比特率。
简而言之,我们需要一种仅在数据传输过程中提高速度的方法。
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一样,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位停止,这也标志着可能增加的比特率的结束。
如前所述,以正常速度发送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 FD迁移,而不必一次切换每个ECU。
存在两种情况:
100%CAN FD系统:在这里,CAN FD控制器可以自由混合经典CAN和CAN FD数据帧。
一些节点是传统的经典CAN:在这里,CAN FD控制器可以切换到经典CAN通信,以避免来自经典CAN节点的错误帧反应。同样,在例如ECU闪烁期间,经典CAN节点可能会关闭,以允许暂时转换为CAN FD通信。
显而易见,与经典CAN相比,CAN FD的新增功能增加了很多额外的位-如何减少开销?
答案是事实并非如此-请参见下面的经典CAN与CAN FD可视化图,了解3个数据字节。实际上,直到跨越8个数据字节,CAN FD的效率才不会超过经典CAN。但是,通过移向64个数据字节,效率可以从约50%增至约90%(下文有更多介绍)。
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允许系统以更快的速度处理更多数据。
这对于许多越来越相关的用例至关重要:
电动汽车和混合动力汽车采用了新的动力总成概念,要求更高的比特率。复杂性的增加来自与DC / DC逆变器,电池,充电器,增程器等相关的新控制单元。到2025年,预计所需的比特率将超过CAN- 随着电动汽车的爆炸性增长,这可能是该技术的先驱CAN FD推出。
ADAS和安全驾驶
乘用车和商用车中越来越多地采用高级驾驶员辅助系统(ADAS)。这些系统对现有CAN总线的总线负载造成了压力,但是ADAS是提高安全性的重要一步(在我们等待真正的自动驾驶汽车的同时)。在此,CAN FD将在不久的将来成为增强安全驾驶的关键推动力。
卡车和大巴
卡车和公共汽车使用长CAN总线(10-20米)。结果,它们依赖慢速比特率(根据J1939-14为250 kbit / s或500 kbit / s )。在这里,即将到来的J1939 FD协议有望实现商用车功能的重大改进,包括。例如ADAS。