假期更新了一文搞懂CAN總線協(xié)議幀格式,CAN FD總線協(xié)議怎能錯過?本篇博文將講解CAN FD總線協(xié)議幀格式。
1為什么會出現(xiàn)CAN FD?
隨著總線技術(shù)在汽車電子領(lǐng)域越來越廣泛和深入的應(yīng)用,特別是自動駕駛技術(shù)的迅速發(fā)展,汽車電子對總線寬度和數(shù)據(jù)傳輸速率的要求也越來也高,傳統(tǒng)CAN(1MBit/s,8Bytes?Payload)已難以滿足日益增加的需求。
因此在2012年,Bosch發(fā)布了新的CAN FD標(biāo)準(zhǔn) (CAN with Flexible Data Rate) ,CAN FD繼承了CAN的絕大多數(shù)特性,如同樣的物理層,雙線串行通信協(xié)議,基于非破壞性仲裁技術(shù),分布式實時控制,可靠的錯誤處理和檢測機制等,同時CAN FD彌補了CAN在總線帶寬和數(shù)據(jù)長方面的不足。
2015年6月30日,國際標(biāo)準(zhǔn)化組織(ISO)已經(jīng)正式認(rèn)可CAN?FD,并無反對票通過ISO 11898-1作為國際標(biāo)準(zhǔn)草案。
2什么是CAN FD?
CAN FD協(xié)議是由Bosch以及行業(yè)專家預(yù)研開發(fā)的,并于2012年發(fā)布。通過標(biāo)準(zhǔn)化對其進行了改進,現(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ù)乃俣?/p>
CAN FD支持雙比特率:與傳統(tǒng)CAN一樣,標(biāo)稱(仲裁)比特率限制為1 Mbit/s,而數(shù)據(jù)比特率則取決于網(wǎng)絡(luò)拓?fù)?收發(fā)器。實際上,可以實現(xiàn)高達5 Mbit/s的數(shù)據(jù)比特率。
3、更好的可靠性
CAN FD使用改進的循環(huán)冗余校驗(CRC)和“受保護的填充位計數(shù)器”,從而降低了未被檢測到的錯誤的風(fēng)險。這在汽車和工業(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ù)的增長提供了一種簡單的解決方案。
3CAN 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)換,當(dāng) BRS 為顯性位(0)時數(shù)據(jù)段的位速率與仲裁段的位速率一致(恒定速率),當(dāng) BRS 為隱性位(1)時速率可變(即 BSR 到 CRC 使用轉(zhuǎn)換速率傳輸);
ESI 位(Error State Indicator):發(fā)送節(jié)點錯誤狀態(tài)指示,主動錯誤時發(fā)送顯性位(0),被動錯誤時發(fā)送隱性位(1)。
4、ID長度不同
CAN FD標(biāo)準(zhǔn)幀ID長度可擴展至12bit,CAN的標(biāo)準(zhǔn)幀ID為11bit。
4解析CAN FD幀結(jié)構(gòu)
CAN FD節(jié)點可以正常收、發(fā)CAN報文,但CAN節(jié)點不能正確收、發(fā)CAN FD報文,因為其幀格式不一致。
與CAN一樣,CAN FD一共具有:幀起始,仲裁段,控制段,數(shù)據(jù)段,CRC段,ACK段和幀結(jié)束,7部分組成。
4.1、幀起始
CAN與CANFD使用相同的SOF標(biāo)志位來標(biāo)志報文的起始。幀起始由1個顯性位構(gòu)成,標(biāo)志著報文的開始,并在總線上起著同步作用。
4.2、仲裁段
與CAN不同,CAN FD取消了對遠(yuǎn)程幀的支持,用RRS位替換了RTR位,為常顯性。IDE用于區(qū)分標(biāo)準(zhǔn)幀和擴展幀。
4.3、控制段
CAN FD與CAN有著相同的IDE、res和DLC位,同時增加了FDF、BRS、ESI三個bit位。
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)換,當(dāng) BRS 為顯性位(0)時數(shù)據(jù)段的位速率與仲裁段的位速率一致(恒定速率),當(dāng) BRS 為隱性位(1)時速率可變(即 BSR 到 CRC 使用轉(zhuǎn)換速率傳輸);
ESI 位(Error State Indicator):發(fā)送節(jié)點錯誤狀態(tài)指示,主動錯誤時發(fā)送顯性位(0),被動錯誤時發(fā)送隱性位(1)。
4.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)。?
4.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中,總是有四個固定填充位以提高通信可靠性。
4.6、ACK段
ACK緊跟著CRC結(jié)束標(biāo)識位。不同的是,CAN FD支持2bits的ACK的識別。
4.7、幀結(jié)束
?
與CAN一樣,CAN FD的幀結(jié)尾也為連續(xù)7位的隱性位。
5CAN FD的改進
CAN FD采用了兩種方式來提高通信的效率:一種方式為縮短位時間提高位速率;另一種方式為加長數(shù)據(jù)場長度減少報文數(shù)量降低總線負(fù)載率。
CAN FD在 CRC 校驗段采用了三種多項式來保證高速通訊下的數(shù)據(jù)可靠性。
?
1、縮短位時間提高位速率
CAN FD支持雙比特率,與傳統(tǒng)CAN一樣,標(biāo)稱(仲裁)比特率限制為1 Mbit/s,而數(shù)據(jù)比特率則取決于網(wǎng)絡(luò)拓?fù)?收發(fā)器。實際上,可以實現(xiàn)高達5 Mbit/s的數(shù)據(jù)比特率。
從控制段中的 BRS 位到 ACK 段之前(含 CRC 分界符)為可變速率,其余部分為原 CAN 總線用的速率。兩種速率各有一套位時間定義寄存器,它們除了采用不同的位時間單位 TQ 外,位時間各段的分配比例也可不同。
2、加長數(shù)據(jù)段長度減少報文數(shù)量降低總線負(fù)載率
CAN FD每個數(shù)據(jù)幀最多支持64個數(shù)據(jù)字節(jié),而傳統(tǒng)CAN最多支持8個數(shù)據(jù)字節(jié),這減少了協(xié)議開銷,并提高了協(xié)議效率。
DLC 最大支持 64 個字節(jié),在 DLC 小于等于 8 時與原 CAN 總線是一樣的,大于 8 時則有一個非線性的增長,最大的數(shù)據(jù)場長度可達 64 字節(jié)。如下所示為 DLC 數(shù)值與字節(jié)數(shù)的非線性對應(yīng)關(guān)系。
3、CRC校驗段
CAN FD使用改進的循環(huán)冗余校驗(CRC)和“受保護的填充位計數(shù)器”,由于 DLCs 的長度不同,在 DLC 大于 8 個字節(jié)時,CAN FD選擇了兩種新的 BCH 型 CRC 多項式,從而降低了未被檢測到的錯誤的風(fēng)險。
6如何從傳統(tǒng)的CAN升級到CAN FD
盡管 CANFD 繼承了絕大部分傳統(tǒng) CAN 的特性,但是從傳統(tǒng) CAN 到 CANFD 的升級, 我們?nèi)孕枰龊芏嗟墓ぷ鳌?/p>
1、在硬件和工具方面,要使用 CANFD,首先要選取支持 CANFD 的 CAN 控制器和收發(fā)器,還要選取新的網(wǎng)絡(luò)調(diào)試和監(jiān)測工具。
2、在網(wǎng)絡(luò)兼容性方面,對于傳統(tǒng) CAN 網(wǎng)段的部分節(jié)點需要升級到 CANFD 的情況要特別注意,由于幀格式不一致的原因,CANFD 節(jié)點可以正常收發(fā)傳統(tǒng) CAN 節(jié)點報文,但是傳統(tǒng) CAN 節(jié)點不能正常收發(fā) CANFD 節(jié)點的報文。
CAN FD 協(xié)議是 CAN-BUS 協(xié)議的最新升級,將 CAN 的每幀 8 字節(jié)數(shù)據(jù)提高到 64 字節(jié),波特率從最高的 1Mbps 提高到 8-15Mbps,使得通訊效率提高 8 倍以上,大大提升了車輛的通訊效率。
此項技術(shù)一直被歐美企業(yè)壟斷,直至 2016 年,中國 CAN-BUS 領(lǐng)導(dǎo)者—廣州致遠(yuǎn)電子股份有限公司,基于擁有完全知識產(chǎn)權(quán)的 CAN FD IP 核代碼,研制出中國第一款 CAN FD 接口卡,使中國的總線技術(shù)水平與世界最高水平同步。
審核編輯:湯梓紅
評論
查看更多