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