細說汽車電子通信總線之CAN-FD 總線協議詳解

內容提要

引言

1. CAN-FD總線協議概述

2. CAN-FD的仲裁場(Arbitration  Field) &控制場(Control Field)

3. CAN-FD的CRC場(CRC  Field)

4. CAN2.0A/B(Classic CAN) vs. CAN-FD 傳輸效率

5. CAN-FD與CAN2.0 A/B節點共同組網要求

總結

參考文檔

    引言

    上篇公衆號文章(點擊文章標題即可直接跳轉閱讀)--《細說汽車電子通信總線之CAN 2.0 總線協議詳解》詳細介紹了目前汽車電子ECU中使用最爲廣泛的傳統CAN 2.0 A/B總線協議。

    但是隨着汽車電子的日益發展,尤其是汽車智能化(Autonomy,自動駕駛技術)、電氣化(Electrification,零排放、跟嚴格的排放標準,e.g 國VI,新能源電動車或者氫能源車)和互聯化(Connectivity,車聯網, V2V,V2X等),對汽車電子通信總線的帶寬提出了更高的要求。

傳統CAN 2.0 A/B總線協議已經很難滿足汽車電子的發展需求,因此,一種能夠與CAN 2.0 A/B兼容,但通信速率更高,有效載荷更高的CAN總線--CAN-FD總線協議應用而生。

本文就給大家詳細介紹一下CAN-FD總線協議,希望對大家有所幫助。

1. CAN-FD總線協議概述

由於汽車行業的帶寬要求,需要改進CAN數據鏈路層協議。2011年,博世與汽車製造商和其他CAN專家密切合作,啓動了CAN FD(Flexible Data rate,靈活數據速率)開發。

改進的CAN-FD總線協議克服了CAN 2.0的限制:可以比1 Mbit/s更快地傳輸數據(CAN-FD的數據場傳輸數據率可高達8MBbit/s),並且每幀CAN報文的有效載荷(payload數據字段)不再限於8字節(CAN-FD的數據場長度最大可支持到64字節)。

CAN-FD和CAN主要的區別有兩點:

1、可變速率

CAN-FD採用了兩種位速率:從控制場中的BRS位到ACK場之前(含CRC分界符)爲可變速率,其餘部分爲原CAN總線用的速率。兩種速率各有一套位時間定義寄存器,它們除了採用不同的位時間單位TQ外,位時間各段的分配比例也可不同。

2、新的數據場長度

CAN-FD對數據場的長度作了很大的擴充,DLC最大支持64個字節,在DLC小於等於8時與原CAN總線是一樣的,大於8時有一個非線性的增長,所以最大的數據場長度可達64字節。

CAN FD協議控制器兼容支持傳統CAN 2.0 A/B幀。兩種CAN協議(CAN 2.0和CAN FD)在ISO 11898-1:2015中都是國際標準化的。具有11位標識符的CAN FD數據幀使用FBFF(FD基本幀格式),具有29位標識符的CAN FD數據幀使用FEFF(FD擴展幀格式)。CAN FD協議不支持遠程請求的數據幀。

2. CAN-FD的仲裁場(Arbitration  Field) &控制場(Control Field)

CAN-FD的仲裁場(Arbitration  Field) 與CAN 2.0 A/B兼容:

  • IDE(Identifier Extension Flag)-bit: 用於標識使用擴展ID還是標誌ID幀;

  • RRS(Remote Request Substitution)-bit: 用於控制遠程請求訂閱;

  • SRR(Substitute Remote Request)-bit: 用於控制訂閱遠程請求;

    這意味着CAN-FD也是可以支持標準ID和擴展ID的,但其沒有RTR(RemoteTransmission Request)-bit,因此不支持遠程幀。

CAN-FD的控制場(Control Field) 在CAN 2.0 A/B的基礎上,擴展了FDF(FlexibleData Format),以標識是否爲CAN-FD幀(FDF=1);並增加了EDL(Extended DataLength)擴展數據長度標識位、BRS(Bit Rate Switch)數據場比特率切換控制位和ESI(ErrorStatus Indicator)錯誤狀態指示位:

CAN-FD爲了保持與CAN 2.0的兼容,雖然DLC(Data Length Control)數據長度控制位依然保持爲4-bit,但增加了12/16/20/24/32/48/64選項:

3. CAN-FD的CRC場(CRC  Field)

CAN FD節點對不同的幀格式使用不同的CRC生成多項式。第一個多項式CRC_15用於CAN格式的所有幀。第二個CRC_17用於CAN FD格式的幀,DATA FIELD最長爲16個字節。第三個CRC_21用於CAN FD格式的幀,DATA FIELD長度超過16個字節。每個多項式保證HD = 6的漢明距離;

4. CAN2.0A/B(Classic CAN) vs. CAN-FD 傳輸效率

爲了對CAN-FD相較於傳統CAN2.0總線的傳輸效率有一個比較直觀的認識,本小節就以一個實際的應用案例介紹這兩種CAN總線的傳輸效率計算方法和結果對比:

當CAN 2.0A/B工作在高速CAN模式(波特率爲500Kbit/s),數據場長度爲8Byte(64bit),其傳輸效率爲58%,平均速率0.5Mbit/s;

配置與其兼容的CAN-FD,設置幀頭波特率爲500Kbit/s,數據場長度爲64Byte(512bit),波特率爲8Mbit/s,其傳輸效率高達90%,平均速率爲4.5Mbit/s;

不同的數據長度和通信波特率,CAN總線的傳輸效率有所差異,如下圖所示:

Tips:以上數據是通過工具CAN FD Efficiency Calculator根據用戶輸入自動計算,我已將該工具分享到如下百度雲盤,感興趣的讀者可以自行下載使用(鏈接僅7天有效期)

  • 鏈接: https://pan.baidu.com/s/158qybdxzGavhWI3ocT4oeg

  • 提取碼: pt43

5. CAN-FD與CAN2.0 A/B節點共同組網要求

根據CAN-FD協議,其與CAN 2.0A/B兼容,即支持CAN-FD的節點也是可以支持發送CAN 2.0 A/B報文幀的;

因此在同一個CAN總線通信網絡中,允許同時存在CAN-FD節點和CAN 2.0 A/B節點:

  • CAN-FD節點可以接收和發送 CAN-FD和CAN 2.0 A/B報文,通過每一幀CAN報文的控制場自動識別;

  • CAN 2.0 A/B節點無法發送和接收CAN-FD報文,所以必須使用帶有CAN-FD屏蔽(shield)的CAN收發器,才能夠保證正常工作,否則會檢測到總線錯誤;

比如,如下的一個汽車電子CAN網絡中,包含了2個CAN-FD ECU節點和2個傳統CAN 2.0 ECU節點,爲了保證網絡正常工作,需要在2個傳統CAN 2.0 ECU節點使用CAN-FD屏蔽的收發器:

CAN-FD節點可以正常收發CAN2.0和CAN-FD報文幀:發送CAN-FD報文幀時,其控制場的FDF=1,標識該幀數據爲CAN-FD,同時BRS根據需求設置,從而實現數據場傳輸數據率的切換:

CAN 2.0節點由於使用了CAN-FD屏蔽的收發器,在CAN-FD節點發送CAN-FD數據報文幀時,會在物理層檢測到FDF=1,進而給節點MCU發送6-bit 顯性位,製造填充錯誤(stuff error), 然後產生被動錯誤標誌幀,但是不會影響其他的CAN網絡節點正常收發CAN-FD報文幀數據:

CAN-FD屏蔽收發器將在CAN-FD報文幀的ACK場釋放與MCU連接的RXD引腳,從而RXD可以正常響應總線:

Tips:由於之前量產的汽車MCU集成的CAN控制器都不支持CAN-FD,而考慮到成本和技術發展路線,整車的所有CAN ECU節點不可能一下子全部升級到支持CAN-FD,因此,CAN 2.0與CAN-FD節點共存於同一個CAN通信網絡的情況在接下來若干年汽車CAN總線網路向CAN-FD升級過程中將是比較常見的。

總結

本文詳細介紹了最新的CAN-FD總線協議的優勢和與CAN 2.0 A/B協議的兼容/差異實現細節--仲裁場(Arbitration  Field)、控制場(Control Field)和增強的CAN-FD的CRC場(CRC  Field),並以一個實際案例分析了CAN2.0A/B(Classic CAN) vs. CAN-FD 傳輸效率計算和結果比較,最後還介紹了在傳統CAN 2.0 網絡向CAN-FD升級過程中如何實現CAN-FD與CAN2.0 A/B節點共同組網。

參考文檔

CAN FD-The basic idea:https://www.can-cia.org/can-knowledge/can/can-fd/

CAN FD-Wikipedia:https://en.wikipedia.org/wiki/CAN_FD

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章