CAN Bus 故障怎麼查?CAN/CAN FD 10 大常見問題與診斷方法

CAN/CAN FD 故障排查指南

從接線、終端電阻到錯誤訊框,系統化定位 CAN Bus 通訊異常

CAN Bus 無法通訊或間歇性錯誤時,應先檢查供電、接線、終端電阻與拓撲,再核對節點、位元率、CAN 模式、負載率及訊息配置。本文整理 10 種常見故障,協助工程師依診斷層次縮小問題範圍。

CAN 與 CAN FD 匯流排常見故障診斷
CAN/CAN FD 通訊問題可能涉及實體層、位元時序、網路狀態與應用層配置,應依序排查。

CAN Bus 故障診斷應該先檢查什麼?

CAN Bus 故障診斷應由實體層開始:確認節點供電與接地、CAN_H/CAN_L/CAN_GND 接線、終端電阻、線長及拓撲。實體層正常後,再檢查 ACK、位元率、CAN 模式、負載率、錯誤訊框與 CAN ID 配置。

這個順序可避免在接線或終端配置尚未確認時,過早調整軟體參數或更換節點。Ixxat/HMS 官方資料也將接線、終端電阻、線長、節點數量、位元率、CAN 模式及訊號品質列為核心檢查項目。

參考:HMS Networks CAN Bus 故障排查說明

CAN 與 CAN FD 常見故障快速對照表

相同現象可能由不同原因造成。以下內容可作為第一輪檢查清單,但仍須結合拓撲、設定、波形及錯誤訊框交叉判斷。

CAN/CAN FD 10 種常見故障
故障類型常見現象優先檢查建議方式
1. 線路斷線完全無通訊或節點離線導通、接頭、端子萬用電表/線路測試
2. 線材或腳位錯誤無法連線、訊號不穩線材、腳位、屏蔽設備手冊/腳位表
3. 接線錯誤持續或間歇性錯誤訊框CAN_H、CAN_L、CAN_GND線路及波形量測
4. 缺少 ACK訊息重傳、錯誤增加節點數量、Listen OnlyCAN 分析軟體
5. 線路過長高速時不穩、邊緣振鈴線長、支線、拓撲示波器/CANcheck
6. 負載率過高延遲、逾時週期、資料量、重傳CAN 分析軟體
7. 終端電阻錯誤反射、振鈴、間歇通訊阻值、數量、位置斷電量阻/波形
8. 位元率或模式不一致無法解碼、錯誤訊框位元率、ID 格式、CAN FD設定比對/CANcheck
9. ID 與資料衝突特定訊息觸發錯誤ID 所有權、資料與時序canAnalyser
10. 位元時序不相容CAN FD 資料階段錯誤取樣點、時脈、容差時序計算/波形

01

CAN 線路斷線

線束、接頭或端子斷路會中斷差動訊號,使全部或部分節點無法通訊。外觀可見的破損應先修復;若外觀正常,則應在斷電後逐段檢查 CAN_H、CAN_L 與 CAN_GND 的導通及短路狀態。

CAN 通訊線路斷線示意圖
可依接頭、分支與節點位置逐段量測,縮小斷線範圍。

02

使用錯誤線材或接頭腳位不符

外觀相同的線材或接頭不代表內部腳位與電氣特性相同。應核對雙絞線、阻抗、屏蔽與腳位配置;D-Sub 9 雖有常見 CiA 配置,設備仍可能使用其他接頭或自訂腳位。

D-Sub 9 接頭常見 CAN 腳位配置
D-Sub 9 常見 CAN 腳位示意;實際連接前仍須核對設備手冊。

D-Sub 9 腳位正確,為什麼仍可能無法通訊?

還需確認 CAN_H 與 CAN_L 是否使用同一雙絞線、線材是否適合差動通訊、屏蔽與接地是否合理,以及接頭是否鬆動或腐蝕。接頭可以插接,不代表訊號品質符合需求。

03

CAN_H、CAN_L 或 CAN_GND 接線錯誤

CAN_H/CAN_L 對調、腳位錯置、共地不良或支線誤接,可能造成完全無通訊,也可能只在特定負載或設備啟動後出現間歇性錯誤。

CAN 節點接線錯誤造成通訊異常示意圖
應檢查每個節點與中間接頭的線序、極性、共地及屏蔽方式。
  • 核對所有接頭的 CAN_H、CAN_L 與 CAN_GND。
  • 檢查端子壓接、接頭鎖固及線束磨損。
  • 確認屏蔽層與接地設計符合系統規範。
  • 以波形判斷是否存在雜訊、振鈴或電位差。

04

網路只有一個可正常通訊的節點

一般 CAN 傳送需要另一個正常節點在 ACK 時槽回覆確認。若只有一個運作節點,或其他節點全部處於 Listen Only 模式,傳送端收不到 ACK,可能重傳訊息並累積傳送錯誤。

CAN 網路只有一個正常通訊節點的 ACK 問題示意圖
應確認網路上是否存在可正常接收並回覆 ACK 的其他節點。

Error Active、Error Passive 與 Bus Off 有什麼差別?

CAN 控制器會依傳送錯誤計數器與接收錯誤計數器調整狀態。計數器增減取決於錯誤種類及節點角色,不能直接解讀成單純的「錯誤次數」。

CAN 節點錯誤狀態
狀態節點行為診斷方向
Error Active仍可正常參與通訊,並送出主動錯誤旗標檢查初期錯誤來源
Error Passive仍可通訊,但錯誤回報方式受限制錯誤已累積,應找出重複發生條件
Bus Off節點停止參與匯流排通訊排除根因後依控制器策略復原

05

CAN 線路過長或拓撲不當

可用線長受位元率、收發器傳播延遲、線材、節點數量、支線與拓撲影響。「1 Mbit/s 約40公尺」只能作常見設計參考,不能脫離設備與佈線條件視為保證值。

CAN 位元率與建議線路長度關係圖
實際線長上限仍取決於收發器、拓撲、支線與訊號品質。

CAN FD 位元率較高,為什麼可用線長可能更短?

CAN FD 資料階段的位元時間縮短後,網路對傳播延遲、取樣點、支線及訊號完整性更敏感。線長必須依仲裁與資料階段設定驗證,不能一律以40公尺判斷。

06

匯流排負載率過高

訊息過多、週期過短或錯誤訊息持續重傳,都可能推高負載率。高負載會增加等待時間,並可能讓低優先權訊息延遲或逾時。

降低 CAN Bus 負載率有哪些方法?

  • 移除沒有實際用途或重複的週期訊息。
  • 延長非關鍵訊息的傳送週期。
  • 在合適情況下改用事件觸發傳送。
  • 排除造成持續重傳的錯誤。
  • 確認全網相容後,再評估調高位元率。
  • 評估 CAN FD 資料階段是否適合承載更多資料。
  • 必要時重新分割網路。

07

終端電阻數量、阻值或位置錯誤

高速 CAN 線型拓撲通常在線路兩端各配置一個120Ω終端電阻。系統斷電後,從 CAN_H 與 CAN_L 之間量測,兩個120Ω電阻並聯通常接近60Ω;實際讀值仍可能受節點內部電路與量測誤差影響。

高速 CAN 匯流排兩端各配置 120Ω 終端電阻
高速 CAN 線型拓撲的典型終端方式。
CAN 終端電阻過多的線路示意圖
終端過多會使等效阻值過低。
CAN 終端阻值過低時的異常波形示意圖
原案例約13Ω;數值僅代表該配置。
CAN 終端電阻缺少的線路示意圖
終端缺少或位置錯誤可能造成反射。
CAN 終端電阻缺少造成訊號反射的波形示意圖
波形振鈴也可能與線長、支線或阻抗不連續有關。

量到的阻值不是60Ω,可能代表什麼?

終端電阻量測結果與檢查方向
量測趨勢可能狀態下一步
接近60Ω兩個120Ω終端並聯的典型結果仍須確認位置與波形
明顯低於60Ω終端過多、阻值過低或其他並聯路徑逐段斷開分支確認
接近120Ω可能只剩一個120Ω終端檢查另一端與導通
極高或開路終端缺失、斷線或量測點隔離檢查主幹線與兩端終端

08

位元率或 CAN 模式設定不一致

同一網路的節點必須使用相容位元率與位元時序,並正確設定 Classical CAN/CAN FD、標準11-bit ID或擴充29-bit ID。設定不一致可能造成無法解碼、錯誤訊框增加或節點進入錯誤狀態,但不應一律描述成必然 Bus Off。

Ixxat CANcheck 檢查 CAN 與 CAN FD 網路設定
CANcheck可協助檢查實體層、訊號品質與相關網路條件;功能以產品版本為準。

09

相同 CAN ID 與資料內容衝突

多個節點不是絕對不能使用相同 CAN ID;但若它們同時以相同 ID 傳送不同資料,仲裁欄位結束後可能出現位元不一致,觸發位元錯誤與錯誤訊框。設計上應建立明確的訊息 ID 所有權與傳送規則。

可利用 canAnalyser 觀察訊息時間、ID、資料內容與錯誤訊框,確認衝突是否只在特定訊息或節點上發生。

10

CAN FD 時脈與位元時序不相容

控制器時脈頻率不同不代表一定無法通訊;真正需要相容的是仲裁與資料階段位元率、取樣點、時間量化單位、同步跳躍寬度及振盪器容差。資料階段位元率越高,設定與實體層品質通常越敏感。

CAN FD 控制器時脈與位元時序設定示意圖
40MHz或80MHz可作常見時脈選項,但不是所有CAN FD網路的強制要求。

CAN Bus 故障排查流程

完整排查應從不依賴協定解碼的實體檢查開始,再逐步進入網路設定與訊息分析:

  1. 確認供電與接地:排除電源不足、電壓不穩及地電位差。
  2. 核對接線與腳位:檢查CAN_H、CAN_L、CAN_GND、接頭與端子。
  3. 斷電量測終端電阻:確認阻值、數量及位置。
  4. 確認線長與拓撲:記錄主幹、支線、節點與終端位置。
  5. 確認ACK條件:保留可正常接收並回覆ACK的其他節點。
  6. 核對網路設定:比較位元率、CAN模式、ID格式及CAN FD設定。
  7. 量測差動訊號:觀察電位、振鈴、雜訊與邊緣品質。
  8. 監看匯流排狀態:檢查負載率、錯誤訊框與節點狀態。
  9. 分析訊息配置:檢查ID所有權、資料、優先權與週期。
  10. 修正並重新驗證:保存修正前後的設定、波形與記錄。

Ixxat 工具如何協助 CAN/CAN FD 故障診斷?

CANcheck偏向實體層與訊號品質檢查,Ixxat CAN介面負責讓電腦連接網路,canAnalyser則用於監看訊息與錯誤行為。單一工具不能取代完整的接線、拓撲與設定確認。

Ixxat工具的診斷角色
工具主要用途適合觀察
CANcheck實體層與訊號品質診斷接線、終端、電位、錯誤訊框
CAN介面將PC連接CAN/CAN FD收發、記錄與應用程式存取
canAnalyser訊息與網路行為分析ID、資料、時間、負載與錯誤訊框

可前往Ixxat CAN/CAN FD介面與網路診斷方案了解相關產品。

從 CAN 實體層問題延伸至 BESS 儲能網路

BESS儲能系統的BMS網路也可能受到線長、拓撲、電容負載、訊號反射與接地影響。大型網路有時需要重新分段,而不是只加入中繼器或提高位元率。

Extended Reading:Ixxat能源與BESS CAN通訊應用案例

CAN/CAN FD 故障診斷常見問題

CAN Bus 無法通訊時應先檢查什麼?

先確認節點供電、CAN_H/CAN_L/CAN_GND接線與終端電阻,再檢查位元率、CAN模式、ACK及錯誤訊框。

CAN Bus 終端電阻為什麼通常量到約60Ω?

高速CAN線型拓撲通常在線路兩端各裝一個120Ω終端電阻,斷電後從CAN_H與CAN_L量測時,兩者並聯約為60Ω。

CAN Bus 只有一個節點可以正常傳送嗎?

一般CAN傳送需要另一個正常節點回覆ACK;若只有一個節點或其他節點都處於Listen Only模式,傳送端可能持續重傳並累積錯誤。

CAN與CAN FD可以使用相同線材嗎?

能否沿用取決於線材阻抗、長度、拓撲、收發器與CAN FD資料階段位元率,不能只看接頭是否相同。

相同CAN ID一定會造成通訊衝突嗎?

不一定,但若多個節點同時使用相同ID傳送不同資料,可能產生位元錯誤與錯誤訊框,因此應建立清楚的訊息ID配置規則。

CANcheck與canAnalyser有什麼不同?

CANcheck偏向實體層與訊號品質檢查,canAnalyser則用於監看CAN訊息、錯誤訊框與網路行為,兩者處理的診斷層次不同。