LPC55S1x/LPC55S0 拥有带有 CAN-FD 功能的 CAN 控制器。LPC5500 系列的 SDK 软件包提供了 mcan_interrupt_transfer 示例,演示了如何使用 SDK 的CAN API 来传输 CAN 帧。基于此示例,本文描述了如何使用 CAN-FD 的比特率切换和发送延迟补偿功能。启用这两个功能可以提高吞吐量,并消除由收发器延迟引起的误码。
传统的 CAN 和 CAN-FD 之间主要有两个区别。首先是 CAN-FD 可以使用比传统 CAN 高得多的比特率。传统 CAN 的比特率限制为 1 Mbit/s。CAN-FD 没有理论的极限值,但实际上会受到收发器的限制。第二个区别是每个 CAN 消息所含的数据量增加了。传统的 CAN 最多为 8 个字节,而对于 CAN-FD,每条消息的最大值增加了 8 倍至 64 个字节。
随着每个 CAN 消息所含数据量的增加,CAN-FD 每帧需要更高的比特率,以减少通信中的时间延迟并提高实时性。通过启用比
特率切换功能,CAN-FD 可以达到更高的比特率。
另一方面,比特率越高,比特时间越短。为了使数据域的比特时间比发送延迟更短,引入了延迟补偿。如果没有发送延迟补偿,CAN-FD 数据相位中的比特率会受到发送延迟的限制。