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