CAN/CAN FD 故障排查指南
從接線、終端電阻到錯誤訊框,系統化定位 CAN Bus 通訊異常
CAN Bus 無法通訊或間歇性錯誤時,應先檢查供電、接線、終端電阻與拓撲,再核對節點、位元率、CAN 模式、負載率及訊息配置。本文整理 10 種常見故障,協助工程師依診斷層次縮小問題範圍。
CAN Bus 故障診斷應該先檢查什麼?
CAN Bus 故障診斷應由實體層開始:確認節點供電與接地、CAN_H/CAN_L/CAN_GND 接線、終端電阻、線長及拓撲。實體層正常後,再檢查 ACK、位元率、CAN 模式、負載率、錯誤訊框與 CAN ID 配置。
這個順序可避免在接線或終端配置尚未確認時,過早調整軟體參數或更換節點。Ixxat/HMS 官方資料也將接線、終端電阻、線長、節點數量、位元率、CAN 模式及訊號品質列為核心檢查項目。
CAN 與 CAN FD 常見故障快速對照表
相同現象可能由不同原因造成。以下內容可作為第一輪檢查清單,但仍須結合拓撲、設定、波形及錯誤訊框交叉判斷。
| 故障類型 | 常見現象 | 優先檢查 | 建議方式 |
|---|---|---|---|
| 1. 線路斷線 | 完全無通訊或節點離線 | 導通、接頭、端子 | 萬用電表/線路測試 |
| 2. 線材或腳位錯誤 | 無法連線、訊號不穩 | 線材、腳位、屏蔽 | 設備手冊/腳位表 |
| 3. 接線錯誤 | 持續或間歇性錯誤訊框 | CAN_H、CAN_L、CAN_GND | 線路及波形量測 |
| 4. 缺少 ACK | 訊息重傳、錯誤增加 | 節點數量、Listen Only | CAN 分析軟體 |
| 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 的導通及短路狀態。

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

D-Sub 9 腳位正確,為什麼仍可能無法通訊?
還需確認 CAN_H 與 CAN_L 是否使用同一雙絞線、線材是否適合差動通訊、屏蔽與接地是否合理,以及接頭是否鬆動或腐蝕。接頭可以插接,不代表訊號品質符合需求。
03
CAN_H、CAN_L 或 CAN_GND 接線錯誤
CAN_H/CAN_L 對調、腳位錯置、共地不良或支線誤接,可能造成完全無通訊,也可能只在特定負載或設備啟動後出現間歇性錯誤。

- 核對所有接頭的 CAN_H、CAN_L 與 CAN_GND。
- 檢查端子壓接、接頭鎖固及線束磨損。
- 確認屏蔽層與接地設計符合系統規範。
- 以波形判斷是否存在雜訊、振鈴或電位差。
04
網路只有一個可正常通訊的節點
一般 CAN 傳送需要另一個正常節點在 ACK 時槽回覆確認。若只有一個運作節點,或其他節點全部處於 Listen Only 模式,傳送端收不到 ACK,可能重傳訊息並累積傳送錯誤。

Error Active、Error Passive 與 Bus Off 有什麼差別?
CAN 控制器會依傳送錯誤計數器與接收錯誤計數器調整狀態。計數器增減取決於錯誤種類及節點角色,不能直接解讀成單純的「錯誤次數」。
| 狀態 | 節點行為 | 診斷方向 |
|---|---|---|
| Error Active | 仍可正常參與通訊,並送出主動錯誤旗標 | 檢查初期錯誤來源 |
| Error Passive | 仍可通訊,但錯誤回報方式受限制 | 錯誤已累積,應找出重複發生條件 |
| Bus Off | 節點停止參與匯流排通訊 | 排除根因後依控制器策略復原 |
05
CAN 線路過長或拓撲不當
可用線長受位元率、收發器傳播延遲、線材、節點數量、支線與拓撲影響。「1 Mbit/s 約40公尺」只能作常見設計參考,不能脫離設備與佈線條件視為保證值。

CAN FD 位元率較高,為什麼可用線長可能更短?
CAN FD 資料階段的位元時間縮短後,網路對傳播延遲、取樣點、支線及訊號完整性更敏感。線長必須依仲裁與資料階段設定驗證,不能一律以40公尺判斷。
06
匯流排負載率過高
訊息過多、週期過短或錯誤訊息持續重傳,都可能推高負載率。高負載會增加等待時間,並可能讓低優先權訊息延遲或逾時。
降低 CAN Bus 負載率有哪些方法?
- 移除沒有實際用途或重複的週期訊息。
- 延長非關鍵訊息的傳送週期。
- 在合適情況下改用事件觸發傳送。
- 排除造成持續重傳的錯誤。
- 確認全網相容後,再評估調高位元率。
- 評估 CAN FD 資料階段是否適合承載更多資料。
- 必要時重新分割網路。
07
終端電阻數量、阻值或位置錯誤
高速 CAN 線型拓撲通常在線路兩端各配置一個120Ω終端電阻。系統斷電後,從 CAN_H 與 CAN_L 之間量測,兩個120Ω電阻並聯通常接近60Ω;實際讀值仍可能受節點內部電路與量測誤差影響。





量到的阻值不是60Ω,可能代表什麼?
| 量測趨勢 | 可能狀態 | 下一步 |
|---|---|---|
| 接近60Ω | 兩個120Ω終端並聯的典型結果 | 仍須確認位置與波形 |
| 明顯低於60Ω | 終端過多、阻值過低或其他並聯路徑 | 逐段斷開分支確認 |
| 接近120Ω | 可能只剩一個120Ω終端 | 檢查另一端與導通 |
| 極高或開路 | 終端缺失、斷線或量測點隔離 | 檢查主幹線與兩端終端 |
08
位元率或 CAN 模式設定不一致
同一網路的節點必須使用相容位元率與位元時序,並正確設定 Classical CAN/CAN FD、標準11-bit ID或擴充29-bit ID。設定不一致可能造成無法解碼、錯誤訊框增加或節點進入錯誤狀態,但不應一律描述成必然 Bus Off。

09
相同 CAN ID 與資料內容衝突
多個節點不是絕對不能使用相同 CAN ID;但若它們同時以相同 ID 傳送不同資料,仲裁欄位結束後可能出現位元不一致,觸發位元錯誤與錯誤訊框。設計上應建立明確的訊息 ID 所有權與傳送規則。
可利用 canAnalyser 觀察訊息時間、ID、資料內容與錯誤訊框,確認衝突是否只在特定訊息或節點上發生。
10
CAN FD 時脈與位元時序不相容
控制器時脈頻率不同不代表一定無法通訊;真正需要相容的是仲裁與資料階段位元率、取樣點、時間量化單位、同步跳躍寬度及振盪器容差。資料階段位元率越高,設定與實體層品質通常越敏感。

CAN Bus 故障排查流程
完整排查應從不依賴協定解碼的實體檢查開始,再逐步進入網路設定與訊息分析:
- 確認供電與接地:排除電源不足、電壓不穩及地電位差。
- 核對接線與腳位:檢查CAN_H、CAN_L、CAN_GND、接頭與端子。
- 斷電量測終端電阻:確認阻值、數量及位置。
- 確認線長與拓撲:記錄主幹、支線、節點與終端位置。
- 確認ACK條件:保留可正常接收並回覆ACK的其他節點。
- 核對網路設定:比較位元率、CAN模式、ID格式及CAN FD設定。
- 量測差動訊號:觀察電位、振鈴、雜訊與邊緣品質。
- 監看匯流排狀態:檢查負載率、錯誤訊框與節點狀態。
- 分析訊息配置:檢查ID所有權、資料、優先權與週期。
- 修正並重新驗證:保存修正前後的設定、波形與記錄。
Ixxat 工具如何協助 CAN/CAN FD 故障診斷?
CANcheck偏向實體層與訊號品質檢查,Ixxat CAN介面負責讓電腦連接網路,canAnalyser則用於監看訊息與錯誤行為。單一工具不能取代完整的接線、拓撲與設定確認。
| 工具 | 主要用途 | 適合觀察 |
|---|---|---|
| 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訊息、錯誤訊框與網路行為,兩者處理的診斷層次不同。