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