1. CANFD的來歷
我們知道了, CAN2.0數(shù)據(jù)段只有8byte,最高速率為 1Mbit/s,通常使用的是 500k,隨著功能的逐漸增多,各 ECU 之間的信息交互也越多,導(dǎo)致總線負(fù)載持續(xù)走高;CAN 報(bào)文中只有約 40~50%的帶寬用于實(shí)際數(shù)據(jù)傳輸;響應(yīng)機(jī)制受車內(nèi)布線的物理特性限制,例如 CAN 控制器中的 ACK 生成延遲;收發(fā)器傳播延遲;導(dǎo)線延遲等,然而隨著汽車功能越來越多,CAN總線的局限性也逐漸暴露:
為了解決上訴CAN總線的局限性,對(duì)其進(jìn)行升級(jí)時(shí)必不可少的,從而有了CAN FD,其全稱為CAN with Flexible Data rate。2011年,開始CAN FD協(xié)議的開發(fā),2015年ISO11898-1進(jìn)行了修訂,將CAN FD加入其中。
CAN與CAN-FD性能對(duì)比:
2.? CANFD與CAN的協(xié)議異同
在完全理解了CAN協(xié)議后,我們只需要對(duì)比CANFD與其的不同就可以比較簡(jiǎn)單的熟悉CANFD協(xié)議,那相對(duì)于CAN,CAN FD有什么不同呢?
(1)傳輸速率不同。
CAN FD的速率可變,從控制場(chǎng)中的BRS位到ACK場(chǎng)之前(含CRC分界符)為可變速率,最高速率可達(dá)到8Mbps(下圖的藍(lán)色部分)。其他部分與CAN相同。
(2)數(shù)據(jù)長(zhǎng)度不同。
CAN FD支持的最大數(shù)據(jù)長(zhǎng)度為64byte。
(3)幀格式不同。
CanFD新增了FDF、BRS、ESI位:
FDF:表示 CAN 報(bào)文還是 CAN-FD 報(bào)文;BRS:表示位速率轉(zhuǎn)換,該位隱性時(shí),速率可變(即 BSR 到 CRC 使用轉(zhuǎn)換速率傳輸),該位為顯性時(shí),以正常的 CAN-FD 總線速率傳輸(恒定速率);ESI:表示發(fā)送節(jié)點(diǎn)狀態(tài)。
(4)ID長(zhǎng)度不同。
CAN FD標(biāo)準(zhǔn)幀ID長(zhǎng)度可擴(kuò)展至12bit,CAN的標(biāo)準(zhǔn)幀ID為11bit。
3. CANFD幀結(jié)構(gòu)解析
CAN FD節(jié)點(diǎn)可以正常收發(fā)CAN報(bào)文,但CAN節(jié)點(diǎn)不能正確收發(fā)CAN FD報(bào)文,因?yàn)槠鋷袷讲灰恢隆?/p>
CAN FD的幀結(jié)構(gòu)是什么呢?
與CAN一樣,CAN FD一共具有,幀起始SOF,仲裁段,控制段,數(shù)據(jù)域,CRC域,ACK域,幀結(jié)束,共七個(gè)部分組成。
3.1 幀起始
CAN與CANFD使用相同的SOF標(biāo)志位來標(biāo)志報(bào)文的起始。幀起始由1個(gè)顯性位構(gòu)成,標(biāo)志著報(bào)文的開始,并在總線上起著同步作用。
3.2.仲裁域
與CAN不同,CAN FD取消了對(duì)遠(yuǎn)程幀的支持,用RRS位替換了RTR位,為常顯性。IDE用于區(qū)分標(biāo)準(zhǔn)幀和擴(kuò)展幀。
3.3 控制域
CANFD與CAN有著相同的IDE,res,DLC位。同時(shí)增加了FDF、BRS、ESI三個(gè)bit位。FDF為隱性時(shí),表示為CAN FD報(bào)文;
BRS為為速率轉(zhuǎn)換開發(fā),當(dāng)其隱性時(shí),速率可變,當(dāng)其顯性時(shí),以正常的CAN-FD總線速率傳輸(恒定速率);
ESI用于表示錯(cuò)誤狀態(tài),主動(dòng)錯(cuò)誤發(fā)送顯性位,被動(dòng)錯(cuò)誤發(fā)送隱性位。
3.4 數(shù)據(jù)域
CAN FD兼容CAN的數(shù)據(jù)格式,同時(shí)最大還能支持12, 16, 20, 24, 32, 48, 64byte。
3.5 CRC
CAN FD對(duì)CRC算法進(jìn)行了改進(jìn),CRC對(duì)填充位也加入了計(jì)算。在校驗(yàn)和部分為避免有連續(xù)位超過6個(gè),就確定在第一位以及以后每4位添加一個(gè)填充位加以分割,這個(gè)填充位的值是上一位的反碼,作為格式檢查,如果填充位不是上一位的反碼,就作出錯(cuò)處理。CAN FD的CRC場(chǎng)擴(kuò)展到了21位。
3.6 ACK
ACK緊跟著CRC結(jié)束標(biāo)識(shí)位。不同的是,CAN FD支持2bits的ACK的識(shí)別。
3.7 幀結(jié)尾
與CAN一樣,CAN FD的幀結(jié)尾也為連續(xù)7位的隱性位。
審核編輯:湯梓紅
?
評(píng)論