摘要:CANFD 节点如何与经典 CAN 总线正常通信呢?本文为您介绍 CANFD 与经典 CAN 快速融合的思路与方法。

 

一、CANFD 的来源

随着汽车电子行业的快速发展,越来越多的安全辅助 ECU、影音娱乐 ECU 加入到车身总线中,这就对 CAN 总线数据传送速率提出了更高的要求。基于市场需求,更高传输速率,更多数据载荷的 CANFD 应运而生。

 

相比于经典 CAN,CANFD 有两个显著特点:

 

一是可变速率,CAN FD 的传输速率分为两个频段,从 BRS 位开始到 CRC 校验之前这一段是可变速率段,这一段的波特率可以进行加速,理论最高可达到 5Mbit/s,而其他位置则和 CAN2.0 一样,最高速率可达到 1Mbit/s;

 

二是数据场长度增加,CAN FD 对数据场的长度做了扩充,从 CAN 的 8 字节增加到 CAN FD 的 64 字节。

 

图 1 CANFD 的提速与扩容

 

二、兼容性问题

从经典 CAN 升级到 CANFD 需要更换哪些硬件呢?硬件更换包括两部分:其一,CAN 收发器,通信速率需要从满足 1Mbit/s 提升到满足 5Mbit/s;其二,CAN 控制器,链路层协议需完全按照 CANFD 设计,对于 CAN 控制包含在微控制器内的节点,则需要更换 MCU。

 

图 2 CAN 与 CANFD 的链路层对比

 

虽然 CANFD 设计时考虑到向下兼容,但链路层的根本改变使我们不得不面临以下问题:经典 CAN 节点发送的 CAN 帧能被 CANFD 节点识别,但 CANFD 节点发送的 CANFD 帧不能被经典 CAN 节点识别,甚至被经典 CAN 判定为错误帧导致总线严重错误。

 

三、 解决思路

解决 CANFD 与经典 CAN 兼容性的方法有两种,一是将所有经典 CAN 节点全部升级为 CANFD,二是在经典 CAN 网络与 CANFD 网络间加入合适的桥接器。显然,设备的更新换代不能一蹴而就,方法一必然带来成本激增,因此方法二将是短期内最优解决方案。

 

CANFD 网桥的设计思路是当接收到 CAN FD 报文时采用直转、合并、拆分三种方式实现传统 CAN 的 8 字节长度和 CAN FD 的 64 字节长度的互相转换,无损还原原有数据。

 

图 3 CANFD 桥接方法

 

四、 CANFD 网桥

CANFDBridge 作为 CAN(FD)智能网桥,支持 ISO 标准 CANFD 与 Bosch CANFD 标准,支持 CAN 转 CAN、CAN 转 CANFD、CANFD 转 CAN、CANFD 转 CANFD 等报文默认转换处理。除此之外,还提供帧映射、合并和拆分等特殊转换处理。用户可自由设定 CAN(FD)报文的转发映射、组包拆包等规则,满足自身应用需求。

 

图 4 工业级 CANFD 网桥 CANFDBridge

 

1、每通道独立的控制器类型设置、CANFD 标准设置

每个通道都支持设置控制器类型,如图 5 所示。当选择类型为 CAN 时,只能收发 CAN 报文。用户可将接到 CAN 总线的端口控制器类型设置为 CAN,可防止 CANFD 报文转发到 CAN 总线。当选择类型为 CANFD 时, CAN 报文和 CANFD 报文都可以收发。

 

图 5 控制器类型

 

每个通道支持设置 CANFD 协议标准,如图 6 所示。支持 ISO 标准和 Non-ISO 标准。

 

图 6 CANFD 协议

 

2、帧类型高级设置

可设置 CAN 转 CANFD 或 CAN、CANFD 转 CANFD 或 CAN,当在 CAN→CAN、 CANFD→CANFD 时不改变帧数据。当使用勾选“填充”功能后,CAN 报文数据长度等于 8 字节时,会用填充数据将 CANFD 报文填充至设置的 CANFD 报文数据长度,当 CAN 帧数据长度为 0~7 时填充无效, 转换后的 CANFD 帧数据长度与 CAN 帧数据长度一样;

 

图 7 转换设置

 

3、数据合并

合并功能用于将多个 CAN 报文合并后转换为 CANFD 报文。设置如图 8 所示, 此设置使 CAN0 将 ID 为 0x01、 0x02、 0x03 的三个数据长度为 8 的标准 CAN 帧合并成 ID 为 0x123,数据长度为 24 的 CANFD 标准帧。

 

图 8 经典 CAN 数据合并 CANFD

 

4、数据拆分

拆分功能用于将 CANFD 报文拆分成多个 CAN 报文发送,设备最多支持设置 64 条拆分规则, 每条规则指定待拆分 CANFD 的帧 ID、帧类型及帧长度。如图 9 所示设置,此设置将 ID 为 0xF1,长度为 64 字节的 CANFD 标准帧拆分为 8 个数据长度为 8 字节的 CAN 标准帧, ID 分别为 0x00~0x07。

 

图 9 CANFD 拆分为经典 CAN 帧

 

5、可靠性保证

为保证数据帧转换的可靠性,CANFDBridge 提供失败回送设置。设置使能后 CANFDBridge 转发失败时,会发送指定帧来告知发送方转发失败。示意图如图 10 所示。

 

图 10 失败回送机制

 

CAN 与 CANFD 的桥接依靠 CANFDBridge 灵活的配置实现,更多应用细节请参阅相关产品手册。

 

来源:ZLG 立功科技·致远电子