CAN FD总线技术详解:原理、应用与未来展望
CAN FD总线技术详解:原理、应用与未来展望
CAN FD(Controller Area Network Flexible Data-rate)是CAN总线技术的升级版本,通过增加数据帧长度和提高传输速度,解决了传统CAN总线在现代应用中遇到的带宽瓶颈问题。本文将详细介绍CAN FD的技术特点、工作原理及其在汽车、工业自动化等领域的应用前景。
为什么选择CAN FD
CAN协议自1986年问世以来一直广受欢迎,几乎所有的移动设备(如汽车、卡车、船只、飞机和机器人)都在使用CAN总线。然而,随着现代技术的发展,传统CAN协议面临着以下挑战:
- 车辆功能的增强导致数据量激增
- 网络带宽限制在1 Mbit/s
- 为应对数据增长,原始设备制造商不得不采用复杂且成本高昂的解决方案
传统CAN协议的主要问题是巨大的开销(>50%),因为每个数据帧只能包含8个字节的数据。此外,1 Mbit/s的网络速度限制了数据生成功能的实现。
什么是CAN FD?
CAN FD协议由博世公司与行业专家共同开发,并于2012年发布。经过标准化改进后,现已纳入ISO 11898-1:2015标准。需要注意的是,原博世CAN FD版本与ISO CAN FD不兼容。
CAN FD具有以下四大优势:
- 长度增加:支持每个数据帧最多64个数据字节,而传统CAN仅支持8个数据字节。这减少了协议开销并提高了协议效率。
- 速度提高:支持双比特率。标称(仲裁)比特率限制为1 Mbit/s,而数据比特率则取决于网络拓扑/收发器,最高可达5 Mbit/s。
- 更好的可靠性:使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,降低了未检测到错误的风险。这对于车辆和工业自动化等安全关键型应用至关重要。
- 平滑过渡:CAN FD和经典CAN ECU在某些条件下可以混合使用。这样可以逐步引入CAN FD节点,大大降低OEM的成本和复杂性。
实际上,与传统CAN相比,CAN FD可以将网络带宽提高3-8倍,为数据增长提供了简单的解决方案。
CAN FD如何工作?
虽然CAN FD看起来很简单——加快数据传输速度并将更多数据打包到每个消息中,但在实践中,事情并不那么简单。主要面临以下两个关键挑战:
- 避免严重的消息延迟:如果简单地用64字节数据打包经典CAN帧,虽然可以减少开销并简化消息解释,但也会使CAN总线阻塞更长时间,可能延迟关键任务的高优先级数据帧。
- 保持实用的CAN线长度:加快整个CAN消息(而不仅仅是数据阶段)会将最大长度减少到不合适的水平。因此,需要找到一种只在数据传输过程中提高速度的方法。
CAN FD帧
CAN FD协议引入了调整后的CAN数据帧,以实现额外的数据字节和灵活的比特率。下面比较11位经典CAN帧与11位CAN FD帧(也支持29位):
下面是各字段的详细解释:
- RTR与RRS:传统CAN中使用远程传输请求(RTR)来识别数据帧和相应的远程帧。在CAN FD中,根本不支持远程帧——远程请求替换(RRS)始终占主导地位(0)。
- r0与FDF:在经典CAN中,r0是保留且占主导地位(0)。在CAN FD中,它被命名为FDF并隐性(1)。
- 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:循环冗余校验(CRC)在经典CAN中为15位,而在CAN FD中为17位(最多16个数据字节)或21位(针对20-64个数据字节)。在经典CAN中,CRC中可以有0到3个填充位,而在CAN FD中总是有4个固定填充位以提高通信可靠性。
- ACK:CAN FD数据帧的数据阶段(也称为有效负载)在ACK位处停止,这也标志着潜在增加的比特率的结束。
CAN FD与CAN的开销和数据效率
虽然CAN FD的附加功能增加了许多额外的位,但通过转向64个数据字节,效率可以从50%提高到90%。通过启用比特率切换,可以将有效负载传输速度提高10倍。
混合传统CAN和CAN FD节点
经典CAN和CAN FD节点在某些条件下可以混合使用。这允许逐步迁移到CAN FD,而不必一次性切换每个ECU。
CAN FD的最大比特率
CAN FD的有效负载阶段最大比特率取决于多个因素,包括温度范围和网络拓扑。大多数多点总线网络在-40℃至+125℃的温度范围内仅限于2 Mbit/s。
CAN FD的应用
CAN FD对于以下应用至关重要:
- 电动车:需要更高的比特率来处理新的动力系统概念
- ECU闪烁:可以将软件更新速度提高4倍以上
- 机器人技术:可以在单帧中发送数据以提高效率
- ADAS与安全驾驶:增强安全驾驶的关键技术
- 卡车和公共汽车:J1939 FD协议将显着改进商用车功能
- 安全CAN总线:通过安全板载通信(SecOC)模块进行的CAN FD身份验证
CAN FD展望
- 首批支持CAN FD的汽车预计将于2019/20年售出
- 初期可能使用2 Mbit/s,逐渐过渡到5 Mbit/s
- CANopen FD已通过CiA 1301 1.0进行调整
- J1939-22使用CAN FD数据帧
- CAN FD在未来的角色仍有待确定,但预计将持续发展
CAN FD与其他协议
没有带宽和有效负载要求的传统应用程序仍将使用经典CAN。CAN社区正在开发下一代CAN数据链路层,支持高达2048字节的有效负载。这种方法可以被视为10 Mbit/s以太网的替代方案。因此,CAN FD在未来将扮演什么角色仍有待确定——但它肯定会不断上升。