
CAN協議的「新老并存」是很多工程師都會遇到的現實難題:我們常用的經典CAN(CAN CC,即CAN 2.0),作為成熟穩定的協議,單幀報文通信比特率最高可達1Mbit/s,汽車電子領域進行ECU之間的通信常采用500kbit/s的速率,其單幀報文payload最大支持8字節,還能兼容遠程幀、擴展幀等多種數據段、仲裁段的變種形式,廣泛應用于各類測試臺架、舊設備系統中。
而作為第二代CAN協議的CAN FD,在性能上實現了大幅升級:采用CAN FD SIC收發器時,通信比特率最高可支持8Mbit/s,整車場景中一般采用500kbit/s-2Mbit/s,部分ADAS場景更是能達到500kbit/s-5Mbit/s;單幀報文payload最大支持 64 字節,能滿足新一代ECU對大量數據傳輸的需求。
但關鍵問題在于,兩者的兼容性存在「單向壁壘」:CAN FD節點可以兼容CAN FD和CAN CC的報文,但CAN CC節點完全無法識別CAN FD報文,一旦直接連接,必然導致總線錯誤。
在實際應用中,這種兼容性問題頻繁困擾著工程師:手里的測試臺架、系統或工具只支持CAN CC,而新采購的ECU卻只支持CAN FD。如果貿然升級全套設備,不僅要投入大量資金,還需要花費時間重新調試適配,人力成本也會大幅增加;可如果放棄新ECU,又會直接影響項目開發進度...
其實,只要一個可編程網關,就能輕松打通兩種協議的通信壁壘 —— 今天就帶大家詳細拆解,如何用虹科PCAN-Router FD實現CAN CC與CAN FD的雙向轉換。
01 .
轉換的核心原理是什么?
要實現雙向轉換,本質是解決「協議差異適配」和「數據承載兼容」兩個問題。我們先通過簡化的報文結構,看清核心差異:
CAN CC報文結構體
struct{ Message_ID; // 11/29 bit identifier Message_TYPE; // RTR/STANDARD/EXTENDED... Message_LEN; // DLC = 0...8 Message_DATA[8]; // Payload:DATA[0]...DATA[7]}CANCC_Msg;
CAN FD報文結構體
struct{ Message_ID; // 11/29 bit identifier Message_TYPE; // RTR/STANDARD/EXTENDED/FDF/BRS... Message_LEN; // DLC = 0...15 Message_DATA[64]; // Payload:DATA[0]...DATA[63]}CANFD_Msg;
轉換的關鍵的是比特率匹配和報文映射。核心報文的類型和數據長度這兩個字段的匹配問題,而報文ID可以直接復用。核心分兩種場景處理:
當數據長度DLC ≤ 8時:直接映射
此時CAN FD報文的數據量的能被CAN CC單幀承載,只需修改報文類型(如將CAN FD的FDF/BRS標識轉為CAN CC的STANDARD/EXTENDED類型),就能直接雙向轉發,操作最簡單。
當數據長度DLC>8時:定制化處理
CAN FD的64字節最大數據量,遠超過CAN CC單幀8字節的承載上限,這時候需要二選一:
舍棄冗余:直接挑選核心數據(≤8字節),多余部分丟棄,高效快捷;
拆分/合并:用多幀CAN CC報文承載一幀CAN FD數據(比如64字節需8幀CAN CC報文),可選擇「不同ID分幀」或「同一ID連續多幀」(類似ISO-15765多幀邏輯),靈活適配實際需求。
02 .
3步搞定核心配置
明確上述轉換邏輯后,可以通過虹科PCAN-Router FD網關來直接操作。

虹科PCAN-Router FD網關
虹科PCAN-Router FD作為可編程網關,支持通過代碼自定義轉換邏輯—— 無論是直接映射、數據舍棄,還是復雜的拆分合并,都能精準實現。下面是具體操作步驟,新手也能跟著做:
第一步:備好工具包
先下載核心開發資源,后續配置、編程都要用到:
固件開發包:PCANDevPack
https://www.intelnect.com/hongke-quick-start-center/installation-package-download-center/
開發教程
https://www.intelnect.com/hongke-quick-start-center/development-resources/
參考例程路徑
DevPack\PEAK-DevPack\Hardware\(對應設備型號)\Examples
第二步:修改總線比特率
首先要讓CAN CC和CAN FD總線的比特率匹配,避免通信異常:打開開發包中的can_user.c文件,找到比特率配置代碼,編輯對應通道的比特率。
can_user.c(部分)
// timings fo CAN1 and CAN2staticconstCANTiming_t Timing_CANx[2] = {_80M_500K_80___2M_80_ISO, //CAN1_80M_500K_80___2M_80_ISO //CAN2};
若需要自定義比特率(比如ADAS場景的5Mbit/s),可在can_user.h文件中編輯或新增配置。
第三步:編寫轉換邏輯
打開main.c文件,核心圍繞「讀報文 → 處理報文 → 轉發報文」的邏輯修改,以下是關鍵代碼示例:

03 .
轉換穩定嗎?看實測數據
我們搭建了測試環境:BUS1(CAN CC)比特率 500kbit/s,BUS2(CAN FD)仲裁段比特率500kbit/s、數據段比特率2Mbit/s,實測兩種方向的轉換均穩定可靠:


CAN CC → CAN FD
CAN CC的標準幀、擴展幀、遠程幀,均能成功轉換為帶FDF/BRS標識的CAN FD報文,數據無丟失,延遲控制在毫秒級。

CAN FD → CAN CC
16字節的CAN FD報文,成功拆分為兩幀8字節CAN CC報文,數據完整拼接無錯亂。

本期小結 .
相比普通網關,虹科PCAN-Router FD的核心優勢在于「可編程性」—— 無需受固定轉換規則限制,無論是簡單的直接映射,還是復雜的多幀拆分/合并,都能通過代碼定制,完美適配測試臺架、新舊設備兼容、ADAS場景等不同需求。
整個使用邏輯非常清晰:按照「比特率修改 → 讀報文 → 處理報文 → 轉發報文」,即可實現雙向轉發。對于汽車電子工程師來說,既不用額外投入成本升級設備,又能快速解決協議兼容難題,效率拉滿。
虹科技術賦能
虹科提供CAN(FD)、LIN、汽車以太網及TSN等主流通訊協議的全方位技術服務與定制化培訓課程。培訓秉承「小班教學 + 理論結合實操」核心特色,特邀國內外行業技術領頭人、項目經驗豐富的資深工程師授課,且與國外行業協會深度合作;每年在全國多地開設公開班,更支持按需定制上門服務。
-
汽車電子
+關注
關注
3045文章
8956瀏覽量
172794 -
CAN
+關注
關注
59文章
3066瀏覽量
472731 -
廣州虹科
+關注
關注
0文章
41瀏覽量
7319
發布評論請先 登錄
新品速遞 | 虹科CAN FD轉LAN網關:PCAN-Ethernet Gateway FD DR
PCAN-Router(FD)
虹科PCAN-miniPCIe FD介紹
虹科PCAN-Router FD介紹
虹科PCAN-Router介紹
虹科PCAN-Router Pro FD——CAN FD網關
CAN FD版本震撼發布!全新PCAN-GPS FD模塊,重新定義智能連接!
虹科干貨 |?突破功耗限制:PCAN Router設備低功耗模式與高效喚醒
虹科答疑 | 使用虹科PCAN-Explorer 6進行.DBC解析總共分幾步?
虹科答疑 | 3步搞定CAN CC/FD雙向轉換!虹科PCAN-Router FD實操教程來了
評論