很多人了解過(guò)CANFD,可能知道CANFD CRC段與傳統(tǒng)CAN CRC差距是CRC多項(xiàng)式不同,但實(shí)際CANFD CRC段與傳統(tǒng)CAN的差異遠(yuǎn)不止這些。接下來(lái),我們細(xì)說(shuō)下CANFD CRC段帶來(lái)的變化:
不同數(shù)據(jù)段長(zhǎng)度選擇不同的CRC多項(xiàng)式
傳統(tǒng)CAN采用的是15位的CRC校驗(yàn),由于CANFD支持更大的數(shù)據(jù)量,為提供通信可靠性,針對(duì)不同長(zhǎng)度的CANFD報(bào)文,調(diào)整其CRC算法,詳見(jiàn)下表。
當(dāng)報(bào)文為傳統(tǒng)CAN時(shí),仍采用原有的CRC多項(xiàng)式。
當(dāng)報(bào)文為CANFD且數(shù)據(jù)長(zhǎng)度小于等于16字節(jié)時(shí),調(diào)整為17位的CRC多項(xiàng)式。
當(dāng)報(bào)文為CANFD且數(shù)據(jù)長(zhǎng)度大于16字節(jié)時(shí),則調(diào)整為21位的CRC多項(xiàng)式。
?CRC計(jì)算時(shí)機(jī)不同
在傳統(tǒng)CAN中,位填充(連續(xù)5位相同位后填充一位相反位)是在CRC計(jì)算之后進(jìn)行。當(dāng)CAN控制器發(fā)送報(bào)文時(shí),先對(duì)報(bào)文CRC計(jì)算后,再填入填充位發(fā)送;接收時(shí),則對(duì)接收數(shù)據(jù)移除填充位后,再做CRC校驗(yàn)。
在CANFD中,CRC計(jì)算時(shí)機(jī)調(diào)整為位填充后。也就是說(shuō),發(fā)送方發(fā)送時(shí),先對(duì)報(bào)文進(jìn)行位填充后,再做CRC計(jì)算。這種方式增加了對(duì)填充位的CRC計(jì)算,降低了錯(cuò)誤漏檢的概率。
增加固定填充位和填充位計(jì)數(shù)
CANFD中,CRC域采用一種固定填充位的格式:在CRC段第一位及接下來(lái)的每四位增加一個(gè)固定填充位,填充位為上一位的反碼。以下分別為CRC17和CRC21的固定填充位(FSB)位置。
除了固定填充位之外,CRC域的起始還包含了3位的填充位計(jì)數(shù),及1位填充位計(jì)數(shù)檢驗(yàn)位,以進(jìn)一步提高通信可靠性。填充位計(jì)數(shù)在CRC段的位置如下圖紅框所示。
3位填充位計(jì)數(shù)表示的值為實(shí)際填充位計(jì)數(shù)對(duì)8取模的結(jié)果,采用格雷碼顯示。奇偶校驗(yàn)位對(duì)填充位計(jì)數(shù)進(jìn)行奇偶校驗(yàn)。詳見(jiàn)下表。需要注意的是,non-ISO CANFD協(xié)議標(biāo)準(zhǔn),無(wú)固定填充位FSB及填充位計(jì)數(shù)。若使用USBCANFD-200U時(shí),遇到通訊的CANFD控制器為non-ISO標(biāo)準(zhǔn),可以在打開(kāi)通道時(shí),選擇CANFD標(biāo)準(zhǔn)為non-ISO,以兼容non-ISO標(biāo)準(zhǔn)CANFD控制器。
【版權(quán)聲明】本文為ZLG開(kāi)發(fā)者社區(qū)用戶原創(chuàng)內(nèi)容,未經(jīng)授權(quán)不得轉(zhuǎn)載。
-
CAN
+關(guān)注
關(guān)注
57文章
2744瀏覽量
463612
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論