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