CAN FD 是否能够与传统的 CAN 网络无缝对接,这一直是人们关心的一个核心问题。答案似乎并不乐观。要理解这一点,不妨先看看 CAN 帧和 CAN FD 帧的结构对比。乍一看,两者几乎没有差异。
传输开始时,消息会先发出一个起始位,随后进入包含消息头的仲裁阶段。仲裁确立后,便传送数据包,最后通过 CRC 和帧尾序列来结束传输。
CAN 与 CAN FD 的兼容性问题主要在于,虽然它们看似非常接近,实则有细微差别。其中最关键的一点是,在数据传输阶段,CAN FD 的数据传输速率会加快。但是,由于这个帧一开始看上去是个标准的 CAN 帧,标准 CAN 控制器会尝试接收它。当数据速率提高时,标准 CAN 系统无法识别其中的填充位,会误以为数据总线出现了问题,进而以错误帧的形式拒绝这个帧。
然而,反过来就不会出现这个问题,CAN FD 控制器可以轻松接收标准 CAN 帧。未来,市面上将出现能够容忍 CAN FD 帧的标准 CAN 控制器,它们能识别出 CAN FD 帧的传输并予以忽略,而不会报错。但总的来说,试图在旧式 CAN 系统上使用 CAN FD 并非明智之举,这样做几乎注定会失败。