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作為國際標準草案。
2CAN FD簡介
1.1CAN FD的報文結構
CAN FD在控制場中新引入了三個位:
●EDL位(Extended Data Length),原CAN數據幀中的保留位r, 該位功能為:
隱性: 表示 CAN FD 報文 (采用新的 DLC 編碼和 CRC 算法)
顯性: 表示 CAN 報文
●BRS位(Bit Rate Switch):該位功能為:
隱性:表示轉換可變速率
顯性:表示不轉換速率
●ESI位(Error State Indicator):該位的功能為:
隱性:表示發送節點處于被動錯誤狀態(Error Passive)
顯性:表示發送節點處于主動錯誤狀態(Error Active

圖1:CAN FD的報文結構
另外,CAN FD采用新的DLC編碼方式,控制場有四個位組成了數據長度碼(DLC),DLC包含了擴展的有效數據長度;有效數據長度可能為12,16,20,24,32,48和64個字節,如圖2所示。

圖2:CAN FD的DLC編碼方式
1.2CAN FD提高通信速率的方法
CAN FD提高通信速率主要是兩種方法:一是提高波特率;二是提高有效載荷。

圖3:CAN FD提高通信速率的方法
1.3CAN FD的優勢
基于背景所述以及如上關于報文結構和提高通信速率的方法的說明,我們可以總結出一些CAN FD的優勢:
●該協議能夠支持更高的速率,可以更快的刷寫ECU;
●在單個數據幀內傳送率可達64字節,避免了經常發生的數據分拆傳輸的狀況;
●對汽車行業而言,CAN-FD協議顯得非常重要,CAN線束和其它物理層面元件可重新再利用;
●更高的帶寬,在電動車以及今后的動力CAN上應用更有優勢
●上層應用層架構不需要改變,在原來基礎上擴展即可。
3、CAN與CAN FD通信的問題
因為受制于產品的穩定性考驗,改造成本等問題,沒法快速全面普及CAN FD。另外,在2012年底提出CAN FD到2015年中成為ISO CAN FD。也就是說目前市場上大部分都還是在用傳統的CAN2.0,有一小部分用非ISO標準的CAN FD,一部分用ISO標準的CAN FD。
這樣我們就都會遇到這樣一個問題:傳統CAN與CAN FD共存的網絡中,如何解決彼此通訊?
首先,我們先來看下主要會有哪些問題:
●共存網絡中,如何解決通訊速率和數據長度不同的沖突?
●如何解決非ISO CAN FD與ISO CAN FD設備的通訊問題?
●共存網絡中,如何解決某幾個設備之間交叉通訊的問題,多個切換的問題?
●如何解決一個設備需要同時與CAN FD節點和傳統CAN節點通訊的切換問題?
●如何解決測試平臺共用的問題?(如針對非通訊狀態下的:疲勞測試,壽命測試,環境測試等,共用平臺)
●如何對CAN FD產品做測試?
4、CAN與CAN FD通信問題的解決方法
4.1解決通訊速率和數據長度不同的問題
這個問題里面,又會分成如下幾種情況:
1) 傳統CAN節點以1Mbit/s 傳輸數據到 CAN FD:解決方法是可以直接通過,因為CAN FD是向下兼容CAN2.0的。
2) CAN FD設備以8Mbit/s傳輸數據到傳統CAN:解決方法是采用可編程CAN FD路由器:先將傳統CAN FD的速率自動降為1Mbit/s再轉出去。
3) 傳統CAN節點向 CAN FD節點傳輸8字節的數據:解決方法是可以直接通過,因為CAN FD是向下兼容CAN2.0的。
4) CAN FD節點向傳統CAN 節點傳輸64字節的數據:解決方法是采用可編程CAN FD路由器:預先編程并下載到路由器,CAN FD的數據通過路由器后可以按照預先設置的程序將數據做拆包等處理再轉成8字節轉發出去給傳統CAN設備。
4.2 解決非ISO CAN FD與ISO CAN FD設備的通訊問題
非ISO CAN FD與 ISO CAN FD的共同點在于:傳輸速率一致,數據長度一致;區別在于:后者引入了一個3位的填充位計數器以及額外的校驗位,另外,CRC計算值也不同。所以兩者是不兼容的。因此CiA建議所有的CAN FD應用需注明ISO CAN FD或non-ISO CAN FD。
2012年底到2015年中之前有很多廠家已經開發了CAN FD產品,但是那個是非ISO標準的CAN FD產品,并且已經有少部分產品已經在市場流通。而這些非ISO產品的供應商也沒法完全收回或者銷毀原有產品,所以這些供應商仍然需要解決這個問題。
解決方法是采用可編程CAN FD路由器,實現兩種CAN FD機制的轉換。
4.3 解決多設備切換的通訊問題
未來的CAN網絡,較長時間內都會存在著傳統CAN與CAN FD并存的情況。部分亟需解決速率問題的節點會率先采用CAN FD技術。其他對實時要求不高的節點仍然會保存原有技術并存在著。
那么在一個共存網絡中,就需要解決某幾個設備之間交叉通訊的問題,多個切換的問題?以及一個設備需要同時與CAN FD節點和傳統CAN節點通訊的切換問題?
舉例如圖4所示,一個網絡中只有EMS與ABS是用CAN FD的,解決方法其實也是用CAN FD的網關;如果是EMS和ABS通信,PCAN-Router FD網關這個時候只要對CAN FD之間的數據1:1轉發即可;如果是EMS或者ABS與其他ECU通信,那么這時PCAN-Router FD網關就需要將CAN FD數據切換為傳統CAN再轉發。

圖4:多設備切換的通訊問題
4.4 解決測試平臺共用的問題
CAN FD節點在進行環境測試、疲勞測試、壽命測試等的情況下,只需要測試設備本身的性能,而與通訊速率/字節數無關,因此,這幾類測試可以沿用傳統CAN設備的測試平臺。而CAN FD通訊性能的測試、兼容性測試等涉及到通訊機制本身,因此這類測試需要用新的CAN FD測試工具。
一個完整的測試需要同時滿足以上所有測試條件。因此存在兩種測試平臺的交互。
解決方法也是采用Router FD可以將同一個待測的CAN FD設備連入不同的測試平臺中,最終完成各項測試任務。
4.5 如何測試CAN FD產品?
關于CAN FD節點的測試,應該主要包括如下測試:
1.CAN FD報文測試(收發機制),這個可以使用一些工具供應商提供的CAN FD總線測試工具,如德國PEAK公司的PCAN-USB FD硬件+PCAN-Explorer6軟件或者其它公司的類似產品。。
2.CAN FD互操作性測試,互操作性測試由于涉及到各個廠家產品之間的測試,目前大部分這個測試都是通過CiA實驗室來做的。
3.CAN FD網絡模擬故障測試,這個可以使用一些工具供應商提供的CAN FD總線測試工具來測試,如德國PEAK公司的PCAN-Diag FD或者其它公司的類似產品。
4.OEM要求的其它測試,根據實際要求來選擇測試工具,或者委托第三方。
5.CAN FD測試工具簡介

圖5:CAN FD測試工具概覽
5.1 PCAN-Router FD
PCAN-Router FD是一個兩路的可編程的CAN FD的網關,可以完美的解決4.1-4.4的CAN和CAN FD之間的轉換問題。
5.2 PCAN-USB FD硬件+PCAN-Explorer6軟件
PCAN-USB FD硬件是一路CAN FD轉USB接口的CAN FD接口卡,可以將CAN FD和CAN數據通過USB傳輸到電腦上;結合軟件PCAN-Explorer6,可以做CAN FD通信機制方面的測試;PCAN-Explorer6軟件也支持DBC文件,后期還將支持XML文件,可以用于分析CAN FD報文所攜帶的信號,創建圖形面板,生成信號的歷史曲線等。
5.3 PCAN-Diag FD
PCAN-Diag FD是一個手持式的CAN/CAN FD診斷儀,具有監控CAN/CAN FD網絡通信,測試終端電阻,總線負載,總線電壓等功能,也能做為一個小型的示波器使用,特別適用于現場檢測和排除總線故障。
5.4 PCAN-Router Pro FD
PCAN-Rouer Pro FD是1個6路的可編程的CAN FD網關,可以解決CAN和CAN FD之間的轉換問題,也可以作為CAN/CAN FD記錄儀使用。
6、總結
本文總結的CAN與CAN FD之間通信的問題,在未來很長一段時間內都會存在。因此,相信我們提出的解決方案,不管是對主機廠還是零部件供應商,應該都很有實用價值。