深入解析 CAN bus 和CAN FD 10大常見故障診斷問題及解決辦法

CAN bus憑藉著可靠、即時、經濟和靈活的優勢,在汽車、工業等領域得到廣泛應用,並逐漸普及到電池儲能、醫療器械、智慧大樓等應用場景中。隨著 CAN bus在越來越多領域得到應用,CAN bus測試的需求也逐漸增多。

本文主要總結了 10項平時測試過程中經常遇到的一些典型問題,並給出解決方案,幫助您更加順利地完成測試。

文章大綱導覽

01 斷線

02 線纜類型錯誤:非CAN線

03 接線不當

04 網絡上只有1個正常通訊的節點

05 CAN線太長

06 總線負載率過高

07 終端電阻錯誤

08 波特率錯誤

09 相同ID引起的通訊衝突

10 相同的波特率但是時鐘頻率不同

01 斷線

如果線纜破損,CAN通訊則無法繼續。

CAN通訊斷線示意圖
CAN通訊斷線示意圖

【解決辦法】

1、可以明顯看出來線纜損壞的話,直接換線即可

2、外表看不出來的,可以使用斷路測試儀檢查每一個引腳,確定線纜損壞,換線。

02 線纜類型錯誤:非CAN線

有可能現場用的線纜看起來是用於 CAN 方面的,但實際不是 CAN 線纜,不符合標准定義。大部分常見產品採用 DSub9 接頭,符合 CiA® 303-1 引腳定義的規範。當然也可以採用其他比如 RJ45 等接頭。

下表是DB9端CAN的引腳定義。

DB9端CAN的引腳定義
DB9端CAN的引腳定義

【解決辦法】

檢查線纜的引腳分配,如果不符合標準就更換線纜;如果符合標準,再檢查其它方面。

03 接線不當

當一個 CAN 網路中有多個節點,連接的時候有多個插頭需要連接的時候,就很可能出現連接錯誤。導致無法進行 CAN 通訊或者出現零星錯誤。

CAN節點2的錯誤狀態可能會變成被動錯誤
CAN 節點2的錯誤狀態可能會變成被動錯誤

【解決辦法】

1、檢查所有插線是否正確

2、 檢查所有接頭是否引腳匹配

04 上只有 1 個正常通訊的節點

一個正常工作的 CAN 網路至少有兩個或者更多 CAN 節點。如果只有一個 CAN 節點正常工作,它的錯誤狀態就會進入被動錯誤,因為它發送資料後沒法接收到對方的確認回覆。

網路上只有 1 個正常通訊的節點示意圖
網路上只有 1 個正常通訊的節點示意圖

【解決辦法】

可以用分析儀監測節點的錯誤狀態:

• Bus Light:超過 96 個錯誤時,進入”error active”

• Bus Heavy:超過 127 個錯誤,進入”error passive”

• Bus Off:超過 255 個錯誤,進入”bus off”

注意:如果只有一個正常工作的 CAN 節點而且它發送了一條 CAN 資料,那麼這個報文就會很快速地一直被重發,直到它收到另外一個節點的確認回覆或進入被動錯誤狀態。

這些資訊可以透過CANking或者CANeasy等獲取》點我了解CAN分析工具

05 CAN線太長

傳統CANbus波特率與長度相關
傳統 CAN bus波特率與長度相關

1Mbit/s的波特率,在一個完美的佈線系統裡面不能超過 40m(理論值)。最大的線纜長度也與所用收發器有關。

對於 CAN FD 來講,波特率也取決於線纜長度,儘管 CAN FD 的波特率更高,如果總線長度超過 40米,CAN 資料就會失效,因為 ACK 位到來的太晚。

【解決辦法】

根據實際情況縮短線纜的長度

06 總線負載率過高

總線負載過高會引起傳輸故障。這個通常是指發送的資料過多,特別是在波特率和 cycle time 較高的情況下容易發生。或者是一條 CAN 資料發生錯誤,然後 CAN 控制器一直嘗試重發該資料,就會導致總線負載增加。

診斷方法:採用 Ixxat CANcheck 來診斷匯流排負載率

【解決辦法】

1、減少資料

2、 延長資料發送周期

3、 提高 bus波特率

4、 如果使用 CAN2.0,後續可以考慮使用 CAN FD

07 終端電阻錯誤

高速 CAN bus(ISO 11898-2) 必須在 CAN 線兩端各接入120 Ω 終端電阻(CAN_L與CAN_H之間)。這樣做有利於減少線纜的訊號反射並確保 CAN 收發器能正常工作。

CAN 收發示意圖
CAN 收發示意圖

【解決辦法】

1、使用 CANcheck,測量CAN_L與CAN_H之間的終端電阻。

2、有經驗的用戶以利用 CANcheck的示波器上波形形狀評估終端電阻的情況(看側翼振鈴等)

下面我們會看下不同的終端電阻情況下的波形特徵:

① 終端電阻情況1:過載Over termination

過載原因:終端電阻接入太多

正常兩個 120歐姆終端電阻並聯應該是 60歐姆左右,如下圖測出來是 13歐姆,導致 CAN波形畸變。

圖片為示意圖,非儀器實際畫面
圖片為示意圖,非儀器實際畫面

② 終端電阻情況 2:終端電阻接入太少或者丟失

正常兩個 120歐姆終端電阻並聯應該是 60歐姆左右,如下圖測出來是丟失,導致 CAN波形畸變。

圖片為示意圖,非儀器實際畫面
圖片為示意圖,非儀器實際畫面

08 波特率錯誤

同一個網路的各節點波特率應保持一致。如果不一致,則節點會進入 bus off 的錯誤狀態,並會影響其他節點通訊

【解決辦法】

採用 Ixxat CANcheck 檢測 CAN/CAN FD網路的波特率。

CANcheck CAN分析工具

09 相同ID引起的通訊衝突

在一個 CAN 網路中,應當保證每個節點的資料 ID 都不一樣;如果發現兩條資料 ID 一樣的情況,這樣就沒法仲裁哪條資料的優先級更高,每次衝突都會使得錯誤計數器加 1。

【解決辦法】

可以透過 Ixxat CANcheck 的Error frames來看單位時間內的錯誤幀數,或者用canAnalyser 軟體在線監控,查找哪些 CAN 資料發生了衝突。

10 相同的波特率但是時鐘頻率不同

這個主要是針對 CAN FD 網路,在 CAN FD 網路裡,波特率越高就會越接近物理極限。所以在同一條網絡,不建議用戶使用不同的時鐘頻率。

CiA 是建議使用 40或者 80MHz的時鐘頻率。

如果對於本篇文章有任何想法,歡迎留言回饋給我們!

如對產品有興趣,也歡迎點擊下方按鈕聯繫我們