总目录链接==>> AutoSAR入门和实战系列总目录
总目录链接==>> AutoSAR BSW高阶配置系列总目录
传统CAN网络的主要限制是带宽受限,在 40 米长的 CAN 总线上最大为 1 Mbit/s。CAN-Flexible Data Rate nothing but the CAN-FD protocol是博世于2011年制定的新标准,旨在增加CAN总线的带宽,同时保留传统CAN总线的核心特性。经过一年的实验室测试,他们在 2012 年发布了它。
在 CAN 总线上,在更高优先级的消息赢得仲裁之前,允许多个节点同时传输。然后来自节点的信号必须能够通过CAN总线的整个长度传播并再次返回。为了确保在仲裁方案中比较相应的位,即使对于彼此相距最远的节点也是如此。然而,一旦优先级较高的节点获得对 CAN 总线的访问权限,则只有一个节点将传输数据。通过利用 CAN 总线的这一特性,一旦总线上只有一个节点传输,就可以以更高的速率传输数据。这是称为 CAN-FD 协议的新标准背后的主要思想。
随着客户期望的增加,汽车技术每年都在发生变化。如果仔细观察车辆,就会发现汽车 ECU 中添加了很多功能。为了防止这种情况,他们需要一种可以在单个帧中发送更大数据包并且数据速率为 5-10 Mbps 的协议。目前主要用于ECU通信的只有CAN协议。和恶 FlexRay、MOST 相比,从成本和安全性进行比较,则 CAN 比它们更好。即使FlexRay、MOST 也可以获得更好的数据速率,但成本会很高。
还有一个主要原因是现在大多数车辆都具有CAN协议。OEM 不想更改它,这将使他们从客户和开发中付出代价。
随后BOSCH开始研发先进的CAN协议,称为CAN-FD协议。与标准的经典 CAN 协议相比,CAN-FD 协议具有许多高级功能。下面让我们讨论一下CAN协议和CAN-FD协议的区别。
为了实现数据传输的最大安全性,
在每个 CAN FD 节点中实施了强大的错误检测、信号发送和自检措施。
CAN-FD协议物理层设计不同于标准的经典CAN协议。CAN-FD控制器变化不大,但在收发器设计上,完全不同,这是为了兼容新的高带宽和有效负载支持。
物理层负责管理位和确定传输信号的方法。这涉及描述位时序、位编码和同步。然而,物理层的电气驱动器/接收器的特性并未指定,以便允许为其特定应用定制传输介质和信号级实现。
数据链路层处理帧并由两个子层组成:
LLC 对应于节点的控制器-主机接口,并与消息过滤、过载通知和恢复管理有关,它的职责范围是
MAC 子层负责几个关键功能,包括消息组帧、仲裁、确认、错误检测和信令。为确保系统完整性,称为故障限制的自我监控机制监督 MAC 子层并区分短暂中断和持续故障。在 MAC 子层内,确定总线是否可用于新的传输或是否正在进行接收。作为CAN FD协议的核心,MAC子层是不可修改的。
CAN-FD 协议有自己的帧格式。尽管没有太多变化,但还是有一些变化以支持新功能以及它如何与标准经典 CAN 网络一起工作。除了Data frame,其他的frame都是一样的,所以我们来讨论一下CAN-FD的data frame。
主机准备传输消息,然后通过节点的控制器-主机接口和数据链路层的 LLC 子层传输到负责消息组帧的 MAC 子层。这些消息可能存储在共享内存中,确保从该共享内存传输的消息的数据一致性可以通过以下两种方法中的至少一种来实现:
CAN FD单元的工作状态分为四种,即Integrating、Idle、Receiver和Transmitter,每一种状态定义如下:
CAN FD 节点可以在可选的总线监控模式下运行,在此期间它可以接收有效的数据帧和有效的远程帧,但它不能启动传输,只能在 CAN 总线上发送隐性位。如果 CAN FD 协议控制器需要发送一个显性位,例如 ACK SLOT、OVERLOAD FLAG 或 ACTIVE ERROR FLAG,该位将在内部重新路由以便控制器可以监控它,即使 CAN 总线可能仍处于隐性状态。
仲裁字段和控制字段的长度有四种不同的格式:
消息传输由四种不同的帧类型表现和控制:
DATA FRAME 将数据从发送器传送到接收器。
CAN FD中DATA FRAME有四种子类型: