LPC55S1x/LPC55S0 擁有帶有 CAN-FD 功能的 CAN 控制器。LPC5500 系列的 SDK 軟件包提供了 mcan_interrupt_transfer 示例,演示了如何使用 SDK 的CAN API 來傳輸 CAN 幀?;诖耸纠?,本文描述了如何使用 CAN-FD 的比特率切換和發(fā)送延遲補償功能。啟用這兩個功能可以提高吞吐量,并消除由收發(fā)器延遲引起的誤碼。
傳統(tǒng)的 CAN 和 CAN-FD 之間主要有兩個區(qū)別。首先是 CAN-FD 可以使用比傳統(tǒng) CAN 高得多的比特率。傳統(tǒng) CAN 的比特率限制為 1 Mbit/s。CAN-FD 沒有理論的極限值,但實際上會受到收發(fā)器的限制。第二個區(qū)別是每個 CAN 消息所含的數(shù)據(jù)量增加了。傳統(tǒng)的 CAN 最多為 8 個字節(jié),而對于 CAN-FD,每條消息的最大值增加了 8 倍至 64 個字節(jié)。
隨著每個 CAN 消息所含數(shù)據(jù)量的增加,CAN-FD 每幀需要更高的比特率,以減少通信中的時間延遲并提高實時性。通過啟用比
特率切換功能,CAN-FD 可以達到更高的比特率。
另一方面,比特率越高,比特時間越短。為了使數(shù)據(jù)域的比特時間比發(fā)送延遲更短,引入了延遲補償。如果沒有發(fā)送延遲補償,CAN-FD 數(shù)據(jù)相位中的比特率會受到發(fā)送延遲的限制。