隨著總線技術(shù)在汽車電子領(lǐng)域越來越廣泛和深入的應(yīng)用,特別是自動駕駛技術(shù)的迅速發(fā)展,汽車電子對總線寬度和數(shù)據(jù)傳輸速率的要求也越來也高,傳統(tǒng)CAN(1MBit/s,8Bytes Payload)已難以滿足日益增加的需求。因此在2012年,Bosch發(fā)布了新的CAN FD標準(CAN with Flexible Data Rate),CAN FD繼承了CAN的絕大多數(shù)特性,如同樣的物理層,雙線串行通信協(xié)議,基于非破壞性仲裁技術(shù),分布式實時控制,可靠的錯誤處理和檢測機制等,同時CAN FD彌補了CAN在總線帶寬和數(shù)據(jù)長方面的不足。
下文將對CAN FD和CAN總線進行對比,并做相關(guān)介紹。
1、什么是CAN FD?
CAN FD協(xié)議是由Bosch以及行業(yè)專家預(yù)研開發(fā)的,并于2012年發(fā)布。通過標準化對其進行了改進,現(xiàn)已納入ISO 11898-1:2015。一開始的Bosch CAN FD版本(非ISO CAN FD)與ISO CAN FD是不兼容。
CAN FD具有以下4個主要優(yōu)點:
(1)增加了數(shù)據(jù)的長度
CAN FD每個數(shù)據(jù)幀最多支持64個數(shù)據(jù)字節(jié),而傳統(tǒng)CAN最多支持8個數(shù)據(jù)字節(jié)。這減少了協(xié)議開銷,并提高了協(xié)議效率。
(2)增加傳輸?shù)乃俣?/span>
CAN FD支持雙比特率:與傳統(tǒng)CAN一樣,標稱(仲裁)比特率限制為1 Mbit/s,而數(shù)據(jù)比特率則取決于網(wǎng)絡(luò)拓撲/收發(fā)器。實際上,可以實現(xiàn)高達5 Mbit/s的數(shù)據(jù)比特率。
(3)更好的可靠性
CAN FD使用改進的循環(huán)冗余校驗(CRC)和“受保護的填充位計數(shù)器”,從而降低了未被檢測到的錯誤的風險。這在汽車和工業(yè)自動化等安全攸關(guān)的應(yīng)用中至關(guān)重要。
(4)平滑過渡
在一些特定的情況下CAN FD能用在僅使用傳統(tǒng)CAN的ECU上,這樣就可以逐步引入CAN FD節(jié)點,從而為OEM簡化程序和降低成本。
實際上,與傳統(tǒng)CAN相比,CAN FD可以將網(wǎng)絡(luò)帶寬提高3到8倍,從而為數(shù)據(jù)的增長提供了一種簡單的解決方案。
2、CAN FD和CAN總線協(xié)議幀差異
CAN FD和CAN總線協(xié)議幀格式如下所示:
CAN FD和CAN總線協(xié)議幀不同點如下所示:

(1)傳輸速率不同
CAN FD的速率可變,從控制場中的BRS位到ACK場之前(含CRC分界符)為可變速率,最高速率可達到8Mbps,其他部分與CAN相同。
(2)數(shù)據(jù)長度不同
CAN FD支持的最大數(shù)據(jù)長度為64byte,CAN支持的最大數(shù)據(jù)長度為8byte。
(3)幀格式不同
CAN FD新增了FDF、BRS、ESI位:
FDF位(Flexible Data Rate Format):原CAN數(shù)據(jù)幀中的保留位r。表示CAN報文還是CAN-FD報文,F(xiàn)DF位常為隱性(1),表示CAN FD報文;
BRS位(Bit Rate Switch):表示位速率轉(zhuǎn)換,當BRS為顯性位(0)時數(shù)據(jù)段的位速率與仲裁段的位速率一致(恒定速率),當BRS為隱性位(1)時速率可變(即BSR到CRC使用轉(zhuǎn)換速率傳輸);
ESI位(Error State Indicator):發(fā)送節(jié)點錯誤狀態(tài)指示,主動錯誤時發(fā)送顯性位(0),被動錯誤時發(fā)送隱性位(1)。
(4)ID長度不同
CAN FD標準幀ID長度可擴展至12bit,CAN的標準幀ID為11bit。
3、CAN FD幀結(jié)構(gòu)
CAN FD節(jié)點可以正常收、發(fā)CAN報文,但CAN節(jié)點不能正確收、發(fā)CAN FD報文,因為其幀格式不一致。

與CAN一樣,CAN FD一共具有:幀起始,仲裁域,控制域,數(shù)據(jù)域,CRC,ACK和幀結(jié)束,共7部分組成。
3.1幀起始
CAN與CANFD使用相同的SOF標志位來標志報文的起始。幀起始由1個顯性位構(gòu)成,標志著報文的開始,并在總線上起著同步作用。

3.2仲裁域
與CAN不同,CAN FD取消了對遠程幀的支持,用RRS位替換了RTR位,為常顯性。IDE用于區(qū)分標準幀和擴展幀。

3.3控制域
CAN FD與CAN有著相同的IDE、res和DLC位,同時增加了FDF、BRS、ESI三個bit位,如上所述。

3.4數(shù)據(jù)域
CAN FD兼容CAN的數(shù)據(jù)格式,同時最大還能支持:12、16、20、24、32、48和64byte。
像在傳統(tǒng)CAN中一樣,CAN FD DLC是4位,表示幀中數(shù)據(jù)字節(jié)的數(shù)量。為了維持4位DLC,CAN FD使用從9到15的其余7個值來表示所使用的數(shù)據(jù)字節(jié)數(shù)(12、16、20、24、32、48、64)。

3.5 CRC
傳統(tǒng)CAN中的循環(huán)冗余校驗(CRC)為15位,而在CAN FD中為17位(最多16個數(shù)據(jù)字節(jié))或21位(20-64個數(shù)據(jù)字節(jié))。在傳統(tǒng)CAN中,CRC中可以包含0到3個填充位,而在CAN FD中,總是有四個固定填充位以提高通信可靠性。

3.6 ACK
ACK緊跟著CRC結(jié)束標識位。不同的是,CAN FD支持2bits的ACK的識別。

3.7幀結(jié)束
與CAN一樣,CAN FD的幀結(jié)尾也為連續(xù)7位的隱性位。
