很多人了解過CANFD,可能知道CANFD CRC段與傳統CAN CRC差距是CRC多項式不同,但實際CANFD CRC段與傳統CAN的差異遠不止這些。接下來,我們細說下CANFD CRC段帶來的變化:
不同數據段長度選擇不同的CRC多項式
傳統CAN采用的是15位的CRC校驗,由于CANFD支持更大的數據量,為提供通信可靠性,針對不同長度的CANFD報文,調整其CRC算法,詳見下表。
當報文為傳統CAN時,仍采用原有的CRC多項式。
當報文為CANFD且數據長度小于等于16字節時,調整為17位的CRC多項式。
當報文為CANFD且數據長度大于16字節時,則調整為21位的CRC多項式。
?CRC計算時機不同
在傳統CAN中,位填充(連續5位相同位后填充一位相反位)是在CRC計算之后進行。當CAN控制器發送報文時,先對報文CRC計算后,再填入填充位發送;接收時,則對接收數據移除填充位后,再做CRC校驗。
在CANFD中,CRC計算時機調整為位填充后。也就是說,發送方發送時,先對報文進行位填充后,再做CRC計算。這種方式增加了對填充位的CRC計算,降低了錯誤漏檢的概率。
增加固定填充位和填充位計數
CANFD中,CRC域采用一種固定填充位的格式:在CRC段第一位及接下來的每四位增加一個固定填充位,填充位為上一位的反碼。以下分別為CRC17和CRC21的固定填充位(FSB)位置。
除了固定填充位之外,CRC域的起始還包含了3位的填充位計數,及1位填充位計數檢驗位,以進一步提高通信可靠性。填充位計數在CRC段的位置如下圖紅框所示。
3位填充位計數表示的值為實際填充位計數對8取模的結果,采用格雷碼顯示。奇偶校驗位對填充位計數進行奇偶校驗。詳見下表。需要注意的是,non-ISO CANFD協議標準,無固定填充位FSB及填充位計數。若使用USBCANFD-200U時,遇到通訊的CANFD控制器為non-ISO標準,可以在打開通道時,選擇CANFD標準為non-ISO,以兼容non-ISO標準CANFD控制器。
-
CAN
+關注
關注
57文章
2770瀏覽量
464398
發布評論請先 登錄
相關推薦
CAN/CANFD?總線干擾儀TESTBASE-BDI
![<b class='flag-5'>CAN</b>/<b class='flag-5'>CANFD</b>?總線干擾儀TESTBASE-BDI](https://file1.elecfans.com/web3/M00/03/D5/wKgZPGdszDuAd9_oAABhbiYsSsg400.png)
rk3588 canfd發送部分數據失敗的問題
CAN FD與傳統CAN的區別是什么
![<b class='flag-5'>CAN</b> FD與<b class='flag-5'>傳統</b><b class='flag-5'>CAN</b>的區別是什么](https://file1.elecfans.com/web2/M00/09/ED/wKgZomcXEmuAHGyvAABInkg2Lks051.jpg)
【龍芯2K0300蜂鳥板試用】CAN接口驅動板設計、CANFD測試、CAN C++程序驅動測試
CAN主站轉Profinet從站協議網關(JM-PN-CAN)
![<b class='flag-5'>CAN</b>主<b class='flag-5'>站</b>轉Profinet從<b class='flag-5'>站</b>協議網關(JM-PN-<b class='flag-5'>CAN</b>)](https://file1.elecfans.com/web2/M00/04/18/wKgaombAVWGAaybMAALztlkrbjQ671.png)
canfd標準幀的id段及相關特性
CANFD_TopFIFO無法正常工作的原因?
詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗方法
![詳解TSMaster <b class='flag-5'>CAN</b> 與 <b class='flag-5'>CANFD</b> 的 <b class='flag-5'>CRC</b> E2E 校驗方法](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
評論