摘要
研發工程師在在調試CAN總線過程中一旦CAN總線通訊出現丟數、遲滯現象后,經常感到無措可施。本次分享的案例就是致遠電子工程如何一步一步定位解決CAN通訊故障。 一、現場通訊故障描述
用戶現場為一煤安監控網絡,節點包括一個主站設備、兩個分站設備,主站設備對分站設備進行輪詢式數據查詢。故障出現時發現分站上傳的數據出現缺失現象。致遠電子工程師將專業工具——CANScope分析儀接入故障網絡捕獲數據,然后進行分析。現場情況如圖1所示。

圖1 現場測試圖片
二、對故障通訊網絡快速體檢
監控系統上電工作后,記錄一段時間數據,通過【報文幀統計功能】分析,此次測試樣本為135個幀,成功報文119個,正確率為88.15%。錯誤幀類型主要包括CRC定界符錯誤、幀結束錯誤、應答定界符錯誤、數據場填充錯誤。使用CANScope分析儀輕松捕獲到網絡中的錯誤數據,如圖2所示。

圖2 報文幀統計結果
三、數據丟失分析
由于用戶采取輪詢的方式查詢分站數據,存在固有的數據周期,通過【流量分析功能】可以發現,未丟數據的周期中,包含7條有效報文,如圖3所示。

圖3 未丟數據周期
丟數據的周期中出現了紅色的錯誤幀,如圖4所示。有效報文數量=周期報文總數7-錯誤幀數量。我們都知道在正常模式下CAN總線中出現錯誤幀后底層會實現自動重發,保證報文不會因為錯誤幀而丟失,然而在本網絡中這一機制未能實現。通過檢查軟件,發現軟件工程師在CAN控制器初始化代碼中禁用了重發功能,導致錯誤幀不能重發。

圖4 丟數據周期
四、錯誤幀分析
通過修改代碼解決了數據重發的問題,但是網絡中偶爾冒出的錯誤幀仍然是工程師的一塊心病,錯誤重發機制的使能僅僅是治標不治本,那么究竟是什么原因導致CAN網絡中出現錯誤幀呢?這就需要借助CANScope的信號質量分析功能。通過觀察錯誤幀的波形我們發現,CAN信號上存在很嚴重的共模干擾,使得CAN_H和CAN_L上的單線波形畸變嚴重,如圖5所示。

圖5 波形分析
選取一條錯誤幀使用【FFT分析功能】進行分析可以看到該錯誤幀信號上的頻域特性,其中在27KHz頻點上存在很強的能量,幅值甚至達到了1.38V,如圖6所示。我們知道CAN總線的顯隱性電平的壓差很小,1V左右的干擾很容易導致電平識別錯誤,出現錯誤幀。

圖6 FFT分析
這一干擾是否具有統計特性呢,使用【干擾統計功能】針對所有樣本數據做干擾頻點強度排序,可以發現干擾最強的頻點集中在27KHz附近,如圖7所示。因此在CAN網絡附近確實存在這樣一個干擾源。經過工程師們的排查發現,這一干擾頻率與開關電源的開關頻率最吻合,由于所有CAN節點未做隔離導致電源串擾,引發錯誤幀。

圖7 干擾統計
五、總結
使用致遠電子的CANScope分析儀為何能夠標本兼治地解決CAN網絡通訊故障呢?
這是因為CANScope總線綜合分析儀是一款綜合性的CAN總線開發與測試的專業工具,集海量存儲示波器、網絡分析儀、誤碼率分析儀、協議分析儀及可靠性測試工具于一身,并把各種儀器有機的整合和關聯;重新定義CAN總線的開發測試方法,可對CAN網絡通信正確性、可靠性、合理性進行多角度全方位的評估;幫助用戶快速定位故障節點,解決CAN總線應用的各種問題,是CAN總線開發測試的終極工具。
|