写点什么

CAN 与 CAN FD 通信之间存在的问题

  • 2022-10-19
    北京
  • 本文字数:1960 字

    阅读完需:约 1 分钟

CAN与CAN FD通信之间存在的问题

对汽车电子技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~

因为受制于产品的稳定性考验,改造成本等问题,没法快速全面普及 CAN FD。另外,在 2012 年底提出 CAN FD 到 2015 年中成为 ISO CAN FD。

也就是说目前市场上大部分都还是在用传统的 CAN2.0,有一小部分用非 ISO 标准的 CAN FD,一部分用 ISO 标准的 CAN FD。

这样会遇到一个问题:传统 CAN 与 CAN FD 共存的网络中,如何解决彼此通讯?

将可能存在的问题分成了 4 类。

1、通讯速率和数据长度不同的问题

这个问题里面,又分成如下几种情况:

  • 传统 CAN 节点以 1Mbit/s 传输数据到 CAN FD;

  • CAN FD 设备以 8Mbit/s 传输数据到传统 CAN;

  • 传统 CAN 节点向 CAN FD 节点传输 8 字节的数据;

  • CAN FD 节点向传统 CAN 节点传输 64 字节的数据。

第 1 种情况和第 3 种情况是可以直接通过的,因为 CAN FD 天然向下兼容 CAN2.0。

CAN FD 节点向传统 CAN 节点传输 64 字节的数据,需要采用可编程 CAN FD 路由器。预先编程并下载到路由器,CAN FD 数据通过路由器后可以按照预先设置的程序将数据做拆包等处理再转成 8 字节转发出去给传统 CAN 设备。

2、非 ISO CAN FD 与 ISO CAN FD 设备的通讯问题

非 ISO CAN FD 与 ISO CAN FD 的共同点在于:传输速率一致,数据长度一致。区别在于:后者引入了一个 3 位的填充位计数器以及额外的校验位,另外,CRC 计算值也不同。

所以两者是不兼容的,因此 CiA 建议所有的 CAN FD 应用需注明 ISO CAN FD 或 non-ISO CAN FD。

2012 年底到 2015 年中之前有很多厂家已经开发了 CAN FD 产品,但是那个是非 ISO 标准的 CAN FD 产品,并且已经有少部分产品已经在市场流通。而这些非 ISO 产品的供应商也没法完全收回或者销毁原有产品,所以这些供应商仍然需要解决这个问题。

3、多设备切换的通讯问题

未来的 CAN 网络,较长时间内都会存在着传统 CAN 与 CAN FD 并存的情况。

那么在一个共存网络中,就需要解决某几个设备之间交叉通讯的问题、多个切换的问题、以及一个设备需要同时与 CAN FD 节点和传统 CAN 节点通讯的切换问题。

如下图所示,一个网络中只有 EMS 与 ABS 是用 CAN FD 的,如果是 EMS 和 ABS 通信,这个时候只要对 CAN FD 之间的数据 1:1 转发即可。但是如果是 EMS 或者 ABS 与其他 ECU 通信,那么这时就需要将 CAN FD 数据切换为传统 CAN 再转发。

否则可能会遇到以下两种问题:

1、使用 CAN FD 网络时,需要 ECU 和 CAN 控制器、收发器均支持 CAN FD 通讯。当 CAN 网络中某些节点升级为 CAN FD 时,车辆上 CAN 与 CAN FD 处于共存的情况,因为普通的 CAN 节点无法正常解析 CAN FD 报文,节点就会一直报错,出现大量错误报文,导致总线通讯异常。

2、假设 CAN FD 的数据传输速率是 5Mbit/s,而 CAN 的传输速率为 500Kbit/s,平常使用上位机软件解析 CAN 报文的时候需要设置对应的波特率,否则报文无法解析。可能会遇到波特率不匹配,不能被正常解析,节点报错,导致 CAN FD 报文无法正常发送,干扰总线的正常运行。

当然也是有一些解决办法的,如下:

1、CAN 节点忽略 CAN FD 报文

支持 CAN2.0 的 ECU 忽略 CAN FD 报文不对其进行识别,这样虽然无法对 CAN FD 报文进行解析处理,但是也不会将其识别为错误帧,总线可以保证正常通讯。

因为 CAN FD 是向下兼容 CAN 的,保证 CAN FD 节点可以正常接收所有类型的 CAN 报文,CAN 节点无法接收解析 CAN FD 报文,该解决方案仅可作为临时使用。

2、全部节点升级为 CAN FD

将所有网络上所有的节点都替换成 CAN FD,由于 CAN FD 可以向下兼容 CAN,此时的网络既可以进行 CAN 报文收发也可以进行 CAN FD 报文收发。但是由于整体网络全部更新替换,成本较高,所以使用率很低。

3、利用 CAN 网桥进行 CAN FD 与 CAN 的转换

在原有的 CAN 网络上通过 CAN 网桥与新的 CAN FD 节点进行连接,将传统的 CAN 总线网络通过协议转换与 CAN FD 网络进行融合,快速实现 CAN 设备的升级。当接收到 CAN FD 报文的时候,CAN 网桥会采用直转、合并、拆分三种方式实现传统 CAN 的 8 字节长度和 CAN FD 的 64 字节长度的互相转换,无损还原原有数据。

4、测试平台共用的问题

CAN FD 节点在进行环境测试、疲劳测试、寿命测试等的情况下,只需要测试设备本身的性能,而与通讯速率/字节数无关,因此,这几类测试可以沿用传统 CAN 设备的测试平台。

而 CAN FD 通讯性能的测试、兼容性测试等涉及到通讯机制本身,因此这类测试需要用新的 CAN FD 测试工具。

一个完整的测试需要同时满足以上所有测试条件,因此存在两种测试平台的交互。


详解CAN总线:什么是CAN总线?

详解CAN总线:高速CAN总线和低速CAN总线的特性

详解CAN总线:CAN协议分层结构及功能

详解CAN总线:CAN节点硬件构成方案

详解CAN总线:常用CAN连接器的使用方法

详解CAN总线:CAN总线报文格式—数据帧

详解CAN总线:标准数据帧和扩展数据帧​​​​​​

详解CAN总线:CAN总线报文格式—遥控帧

详解CAN总线:CAN总线报文格式—错误帧

详解CAN总线:CAN总线报文格式—过载帧

详解CAN总线:CAN总线报文格式—帧间隔

一文搞懂CAN和CAN FD总线协议

发布于: 刚刚阅读数: 4
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018-02-09 加入

嵌入式工程师,创客爱好者,公众号:美男子玩编程,全网粉丝10万+。 CSDN博客专家、微软MVP、华为云云享专家、阿里云专家博主、知乎认证科学技术领域答主。

评论

发布
暂无评论
CAN与CAN FD通信之间存在的问题_汽车电子_不脱发的程序猿_InfoQ写作社区