1
常見的CAN通信錯誤類型
位錯誤(Bit Error)
位錯誤指的是CAN總線傳輸中,某個節點接收到的位與發送節點發送的位不一致。通常是由于信號干擾、噪聲或時鐘同步問題引起的。
常見原因:電磁干擾(EMI)、時鐘偏移、物理連接問題(如電纜老化、接觸不良)。
排查技巧:
檢查總線連接是否牢固,線纜是否有損壞或松動。
使用示波器查看CAN信號波形,確認信號是否清晰。
確保CAN節點的時鐘頻率和同步設置正確。
幀格式錯誤(Frame Error)
幀格式錯誤發生在數據幀的結構部分不符合CAN協議標準時。例如,數據長度字段錯誤,CRC校驗失敗等。
常見原因:硬件或軟件錯誤、數據解析問題、協議不匹配。
排查技巧:
檢查硬件是否存在故障,特別是CAN控制器和驅動芯片。
確認數據幀結構是否符合CAN協議的規范,尤其是在開發自定義數據幀時。
使用協議分析儀或調試工具查看發送的CAN幀是否有誤。
CRC錯誤(CRC Error)
CRC錯誤發生在數據傳輸過程中,接收端計算出的CRC值與發送端計算的CRC值不匹配時。
常見原因:通信線路噪聲、信號干擾、時序錯誤。
排查技巧:
檢查通信線路的物理連接,確保線路完整且沒有松動。
使用示波器分析CAN總線的波形,檢查信號質量。
調整節點的波特率,減少信號傳輸錯誤。
確認錯誤(Acknowledge Error)
當CAN總線上的節點未能正確接收到某個數據幀的確認信號時,會發生確認錯誤。發送節點發送的消息沒有被接收節點確認。
常見原因:接收節點無法正確接收消息(由于硬件問題、負載過重等),或者接收節點超時未發送確認信號。
排查技巧:
檢查接收節點是否在線,或者其狀態是否正常。
使用診斷工具查看接收節點的錯誤狀態。
重新啟動節點或檢查硬件故障。
總線錯誤(Bus Error)
總線錯誤通常表示CAN總線處于異常狀態,可能由于某些節點的錯誤狀態或總線沖突引起。
常見原因:總線終端電阻不匹配、多個設備同時驅動總線、硬件故障、物理層問題。
排查技巧:
確認CAN總線的兩端是否有終端電阻(通常是120Ω)。
檢查所有CAN節點的電源和接地連接,避免不穩定的電源引起總線干擾。
使用總線診斷工具檢查錯誤幀的來源,找出異常的節點。
過載錯誤(Overload Error)
過載錯誤發生在CAN控制器因接收到過多的數據幀或過快的幀而無法及時處理時。CAN控制器會進入過載錯誤狀態,暫時停止數據傳輸。
常見原因:CAN總線上的節點發送數據過于頻繁,導致某些節點無法及時處理。
排查技巧:
檢查數據幀的發送頻率,確保節點的發送頻率適當。
使用軟件或硬件來限流數據發送,避免節點過載。
監控節點的處理能力和CPU使用情況,檢查是否存在性能瓶頸。
冗余錯誤(Stuff Error)
在CAN協議中,如果連續5個相同的位值(例如5個“1”或5個“0”)在數據中出現時,會插入反碼位(stuff bit)。冗余錯誤指的是反碼位沒有按規范插入,導致數據出錯。
常見原因:硬件故障或協議實現不當。
排查技巧:
檢查CAN控制器的硬件實現,確保反碼位正確插入和刪除。
確認節點的CAN協議實現符合標準。

2
故障排查的常用工具
示波器
用于查看CAN信號的波形,可以分析信號質量、時序、噪聲干擾等問題。
檢查CANH、CANL信號的電壓波形,確認是否符合電氣規范(如電平高低、邊緣清晰度)。
CAN分析儀
可以監控和記錄CAN總線的通信數據,分析每一幀的內容,幫助發現幀格式錯誤、CRC錯誤、位錯誤等問題。
常用的工具有Vector CANoe、PEAK System的PCAN-USB等。
協議分析器
用于檢測總線上的通信協議是否符合標準,并排除協議級錯誤。
該工具還可以幫助分析總線的負載情況、發送頻率等。
診斷工具
大多數CAN控制器都提供了硬件錯誤診斷功能,可以通過診斷工具查詢錯誤信息(如錯誤計數器、總線狀態等)。
3
排查流程
檢查物理連接
確保CAN線纜連接牢固,終端電阻正確安裝(120Ω)。
檢查節點的電源和地線,確保穩定。
分析錯誤狀態
使用CAN分析儀或診斷工具獲取CAN錯誤狀態信息,查看錯誤幀類型及其頻率。
根據錯誤碼確定問題類型(如位錯誤、幀格式錯誤等)。
測試各個節點
分析每個節點的通信狀態,檢查是否有節點因過載或硬件故障導致錯誤。
可以嘗試暫時移除一個節點,排查問題是否仍然存在。
信號質量檢查
使用示波器查看CAN總線的波形,檢查是否有干擾或噪聲。
確認時序是否符合規范,邊緣是否清晰。
調整波特率
如果出現過多的CRC錯誤或同步問題,嘗試調整波特率,減少信號誤差。
逐步排除法
如果問題復雜,逐步排除每個可能的故障點。例如,從硬件連接到軟件協議實現,從物理層到應用層逐一排查。
掌握CAN協議的基本原理和常見錯誤類型,將有助于在開發和調試過程中快速解決問題。
