點擊上方藍字談思實驗室
獲取更多汽車網絡安全資訊

經典CAN協議,也就是傳統CAN規定的最高速率是1Mb/s,汽車中目前實際應用的最高速率是500Kb/s,這個速度對于大部分ECU之間的數據通信已經夠用了。
但是隨著汽車智能化的發展,ECU軟件的代碼量越來越大,ECU間需要傳輸的數據也越來越多,經典CAN的速率在某些情況下就顯得不夠用了。
比如ECU的軟件很大時,通過CAN刷寫軟件的速度就會很慢,甚至可能超過1個小時;再比如ADAS、BMS等要求大數據、低延遲數據傳輸時可能速度也不夠用。
在這種情況下,由于已有的CAN網絡架構不方便整體更改,是否可以采取臨時的方案,只把單個ECU改為CAN FD?
這樣更改后的ECU在軟件刷寫或診斷或大數據通信時,使用CAN FD通信,而正常的功能數據通信時還是使用傳統CAN。
也就是說CAN FD是否能兼容經典CAN,CAN FD節點是否可以與經典CAN節點在同一網絡中混合使用?
01
物理層
要想知道CAN FD是否可以與CAN兼容,我們首先要知道CAN FD到底改了什么?
根據CAN的通信協議層次劃分,我們首先看下物理層。CAN FD的目的就是盡可能的保持物理層不變,主要對數據鏈路層協議進行更改升級。
所以在電氣特性上CAN FD與CAN兼容,CAN FD也是使用差分雙絞線(CAN_H和CAN_L),也就是說原有CAN總線的雙絞線布線和終端電阻都可以直接沿用。
既然ECU外部的線束和電氣接口不變,那么ECU內部同屬于物理層的收發器是否也不變呢?
CAN收發器的主要職責是將控制器的邏輯電平轉換為總線差分信號,雖然電氣信號的轉換規則是不變的?,但是CAN FD的收發器還是必須要升級。
這是因為CAN FD提升了速率,使數據段的速率可提升至 5-8Mbps,而這個速度影響了收發器的使用。
首先,經典CAN 收發器最高僅支持 1Mbps,上升/下降時間通常≥50ns;CAN-FD 數據段需支持 2~8Mbps,要求邊沿時間≤10~25ns 及更短的傳播延遲,否則高速下波形失真會導致誤碼或總線鎖死 。
經典CAN收發器的速率與邊沿時間是按原來的速度設計的,無法滿足CAN FD高速信號的邊沿要求,無法繼續使用。
另外,CAN FD在高速模式下位時間極短(如 5Mbps 時僅 200ns),傳統收發器較大的內部環路延遲會導致采樣點嚴重偏移,破壞通信同步;CAN-FD 專用收發器優化了延遲對稱性(通常<5ns 偏差)以確保準確采樣 。
所以使用CAN FD后,必須使用專用的CAN收發器,當然收發器是ECU的內部電路,對車輛的CAN網絡的外部電路并沒有影響。

CAN FD收發器示例-TJA1145A
也就是說物理層中只需要改ECU內部的CAN收發器即可,方案上沒有太大問題,接下來我們再看下數據鏈路層。
02
數據鏈路層
2.1 CAN FD格式標志位FDF
CAN FD中的FD是Flexible Data Rate的縮寫,表示靈活的數據速率,因此CAN FD最大的特點就是數據速率不是固定的,是可變的!
在CAN網絡中,如果識別出某個節點是CAN FD后,接收數據時就要按照已改變的高速速率處理,如果還是按照原來的低速率接收,收到的就是錯誤的信號。那么如何識別1個報文是CAN還是CAN FD呢?
這就需要在數據鏈路層中增加1個標志位,用于區分CAN和CAN FD。

經典CAN數據幀格式
上圖是經典CAN的數據幀結構,從幀起始SOF到幀結束EOF,中間包括了仲裁場、數據場、CRC場和ACK場。
前面說了,CAN FD最大的特點就是數據速率是可變的,也就是數據場(Data Field)的位傳輸速率是可變的,會變成高速。
所以CAN FD的標志位必須在數據場之前先被識別,否則后面的速率變化就來不及判斷了。
而數據場之前是仲裁場和控制場,這其中的ID、RTR、IDE和DLC都已經有明確的定義,不能更改。
只有r(保留位)沒有實際使用,是為了未來協議擴展預留的,這次剛好用上了,所以CAN FD就把r位重定義為FDF(Flexible Data Rate Format),即CAN FD格式標志位。

r字段重定義為FDF
在經典CAN中,規定發送節點?必須將r強制設為顯性電平(邏輯 0)?,不得發送隱性電平(邏輯 1)。
也就是經典CAN中,r=0,那么將r重定義為FDF后,規定FDF=1時為CAN FD幀,FDF=0時為經典CAN幀,這樣就與原來的r定義保持一致,完美的實現兼容了。
最后到底是不是完美的兼容了?我們后面再說,我們先繼續了解下CAN FD的數據幀結構。
2.2 位速率切換標志BRS?
有了FDF標志位字段是可以識別出CAN FD報文的,但是CAN FD報文的最終目的是要提高數據場的傳輸速率,使數據段的速率最大可提升至8Mbps,從而支持“仲裁場的低速+數據場的高速”傳輸模式。
那么高速數據段具體的速率是如何確定的呢?也就是發送方將速率提高了,接收方是如何知道的呢?
比如原報文的速率是500Kb/s,也就是仲裁場的速率是500Kb/s,然后發送節點把數據場的速率提升到2Mb/s。
首先接收方要知道數據場的速率是否要提高?然后才需要知道提高到多少?
所以首先增加了1個位速率切換標志位BRS(Bit Rate Switch),即BRS=?1表示數據段切換至更高波特率(如提升到2Mb/s),BRS=?0表示全程保持仲裁段波特率(仍然是500Kb/s)。

CAN FD增加了BRS位
如上圖所示,CAN FD協議將r重定義為FDF后,又增加了1個預留位res,用于后續的擴展,在res位之后又增加了BRS位速率切換標志位。
現在接收方收到BRS=1后就會知道數據場的速率已經提高了,但是它并不知道提高到多少?是2M,5M,還是8M?
CAN總線通信是異步通信,雙方的通信速率是提前約定的,比如500Kb/s,這在項目開發前就定好了,收發雙方的控制器都按照500Kb/s傳輸,運行后不能更改。
500Kb/s的速率就表示每個位時間是2us,所以通過位時間可以反向計算出傳輸速率。
而新的傳輸速率就是通過BRS的位時間來計算確定的,BRS是從500k到2M的加速的過度時間,它的位時間比較特殊,既不是500Kb/s的2us,也不是2Mb/s的0.5us。而是兩個時間的組合,BRS位的前一半的位時間按照500Kb/s的速度計算,后一半的位時間按照2Mb/s的速度計算,即BRS的位時間=(2/2)us+(0.5/2)us=1us+0.25us=1.25us;

BRS的位時間波形圖
接收方通過定時器計算出BRS的位時間,再反向計算,就可以計算出數據場的傳輸速率為2Mbit/s。
CAN FD中只有數據場需要高速,其它場不需要高速傳輸,所以具體的高速字段是從控制場中的BRS位到CRC場的DEL分界符為可變速率,其余部分仍為經典CAN總線的速率。

CAN FD的速率分布圖
如上圖所示,報文兩側的仲裁場、大部分控制場和ACK場使用標準的通信速率,而中間的數據場會切換到更高的通信速率。
上圖中可以發現,BRS位是從低速到高速的過渡位,所以它的位時間一分為二,一半按仲裁場的位時間計算,一半按數據場的位時間計算;而與它相似的還有后面的DEL位。
DEL 位指?CRC 界定符(CRC Delimiter)?,是?1 位隱性固定電平(邏輯 1)?,用于?標志 CRC 序列結束,在CAN FD里同時是表示從高速到低速的過渡位,它的位時間的計算原理與BRS相同,DEL的位時間=0.25us+1us=1.25us。
2.4數據長度
除了提高數據傳輸速率外,CAN FD還擴展了數據長度,它將一幀的數據長度從最大8個字節改為了64個字節,這項更改不僅可以增加信號數量,還可以解決長信號的傳輸問題,比如說PEPS、EMS的密鑰信息、診斷信息等。
數據長度的更改是通過控制場中DLC的重新定義實現的,在經典CAN中,DLC是4位二進制數,0000-1000表示0-8,大于8仍然被解析為8;而CAN-FD中將大于8的數值重新做了定義,如下表所示:

CAN與CAN-FD的DLC解析對比(黃色為不同部分)
由于CAN FD單幀數據長度增加,相當于原來CAN的多幀共用一個仲裁場,這減少了仲裁的開銷,提高了傳輸效率。

數據場最大值改為512bit
如上圖所示,數據場的最大值由64bit(8Byte)改為512bit,即512/8=64 Byte。
另外,順便說一下,CAN FD在BRS后面還增加了1個ESI位(Error State Indicator),表示錯誤狀態指示器,這個標志位用于告知接收節點?發送該幀的節點當前是否處于“錯誤被動”狀態。
ESI = 0(顯性)?:發送節點處于?錯誤主動?狀態(Error Active,TEC ≤ 127),可正常發送主動錯誤標志。
?ESI = 1(隱性)?:發送節點處于?錯誤被動?狀態(Error Passive,TEC > 127),發送時只能發被動錯誤標志,且需額外等待延遲期。
2.5是否可以混和使用
現在我們了解了CAN FD數據鏈路層協議的主要更改內容,還是回到最初的問題,就是CAN FD和經典CAN是否可以混合使用?
從CAN FD的協議來看,關鍵是FDF位(Flexible Data Rate Format),也就是原來的res位。這個位如果雙方都能識別,那么后面的處理就方便多了。
前面說了,在經典CAN中,規定發送節點?必須將res位強制設為 0?,不得發送1。而res改為FDF后,規定FDF=1時為CAN FD幀,FDF=0時為經典CAN幀,這樣看來貌似可以識別。
但是發送節點雖然是這樣定義的,但是經典CAN中的?接收節點卻并?不對其值進行校驗或邏輯判定?,無論收到 0 或 1 均會按正常幀處理,也就是說經典CAN的接收節點是無法識別出CAN和CAN FD報文的!
如果經典CAN網絡里面一旦出現1個CAN FD幀,會因為CAN FD報文多了BRS、ESI等控制位被認為是格式錯誤,其它節點會發送錯誤幀。所以經典CAN網絡中是不能假加入CAN FD控制器的。
也就是說CAN FD和經典CAN是不能混合使用的!
03
小結
CAN FD與經典CAN相比,保持仲裁場的速度不變,通過提高數據場的傳輸速度,提高了整個報文的傳輸速度;同時通過提高數據字節長度(8->64),提高了報文的傳輸效率。
雖然CAN FD與經典CAN之間可以通過FDF(Flexible Data Rate Format)標志位(1=CAN FD,0=CAN)進行識別區分。但是由于經典CAN的接收節點并沒有對這個標志位(新的FDF=原來的res)進行判斷和差別處理,所以經典CAN無法識別出CAN FD,會把CAN FD當作錯誤幀處理,引起網絡故障,所以CAN FD和CAN不能混合使用!
end

談思汽車媒體門戶

精品活動推薦



AutoSec系列沙龍

專業社群
部分入群專家來自:
新勢力車企:
特斯拉、理想、極氪、小米、零跑汽車、阿維塔汽車、智己汽車、小鵬、嵐圖汽車、蔚來汽車、吉祥汽車、賽力斯......
外資傳統主流車企代表:
大眾中國、大眾酷翼、奧迪汽車、寶馬、福特、戴姆勒-奔馳、通用、保時捷、沃爾沃、現代汽車、日產汽車、捷豹路虎、斯堪尼亞......
內資傳統主流車企:
吉利汽車、上汽乘用車、長城汽車、上汽大眾、長安汽車、北京汽車、東風汽車、廣汽、比亞迪、一汽集團、一汽解放、東風商用、上汽商用......
全球領先一級供應商:
博世、大陸集團、聯合汽車電子、安波福、采埃孚、科世達、舍弗勒、霍尼韋爾、大疆、日立、哈曼、華為、百度、聯想、聯發科、普瑞均勝、德賽西威、蜂巢轉向、均聯智行、武漢光庭、星紀魅族、中車集團、濰柴集團、地平線、紫光同芯、字節跳動、......
二級供應商(500+以上):
中科數測、ETAS、BlackDuck、NXP、上海軟件中心、Deloitte、奇安信、為辰信安、云馳未來、信長城、澤鹿安全、紐創信安、復旦微電子、天融信、奇虎360、中汽中心、中國汽研、上海汽檢、加特蘭微電子、浙江大學......
人員占比

公司類型占比

文章
關于涉嫌仿冒AutoSec會議品牌的律師聲明
一文帶你了解智能汽車車載網絡通信安全架構
網絡安全:TARA方法、工具與案例
汽車數據安全合規重點分析
淺析汽車芯片信息安全之安全啟動
域集中式架構的汽車車載通信安全方案探究
系統安全架構之車輛網絡安全架構
車聯網中的隱私保護問題
智能網聯汽車網絡安全技術研究
AUTOSAR 信息安全框架和關鍵技術分析
AUTOSAR 信息安全機制有哪些?
信息安全的底層機制
汽車網絡安全
Autosar硬件安全模塊HSM的使用
首發!小米雷軍兩會上就汽車數據安全問題建言:關于構建完善汽車數據安全管理體系的建議