【導讀】CAN總線故障的原因多種多樣,如節點發送周期異常、節點掉線甚至整條總線被拖垮。以下介紹3種方法,可幫助大家快速實現CAN總線故障定位。
總線故障
一個故障節點或者隱患節點往往會危害到整個產品的安全,如新能源車的控制總線中,故障節點導致儀表盤數據更新滯后、顯示錯誤導致司機判斷錯誤引發道路安全事故。
圖1:總線故障案例
故障定位方法
方法一:將CAN節點一個一個往總線上接,每接一個節點后觀察、測試總線通信狀況。該方法相信是絕大多數現場應用工程師都有嘗試,往往可以零成本揪出問題節點。以上方法雖然非常簡單,但弊端也很多。其一,當總線節點過多或者總線布線復雜時往往使工程師抓狂;其二,假如故障原因是各節點容抗、阻抗控制不好導致的,往往多個節點的累積效應才導致問題出現,因此最后一個掛上去且總線出問題的節點不可避免要“背鍋”。
圖2:節點依次接入總線
方法二:根據特征電平判斷錯誤原因。從波形上對通信錯誤的診斷往往是最直接、高效的,但這依賴豐富的現場經驗,筆者此處列舉幾個CAN波形案例供參考。
圖3錯誤幀是在幀結束位置出現電平臺階。此錯誤由主動錯誤標志+錯誤標志疊加而成,二次抬高的是 6 個連續顯性電平,因某節點錯誤后全局通知,各節點錯誤標志疊加造成的。通常,當節點受較強的電磁場干擾后易發生此類錯誤,如變頻器、逆變器、電機等功率器件。此時,我們亦可配合FFT分析工具分析干擾頻點,以此定位到干擾源并屏蔽它,如圖4。
圖3:幀結束波形臺階
圖4:FFT分析干擾頻點
圖5錯誤幀波形邊沿出現抖動,此錯誤一般是長分支導致。在一字型總線網絡拓撲布線完整且兩端各匹配120歐終端電阻情況下,為了再將遠端新節點接入網絡使用一根較長通信線直接接入CAN網絡,此節點將帶來長分支問題。一般地,長分支仍需要做阻抗匹配,更好的方式是從兩端延長通信線接上該節點,仍“手挽手”保持一字型網絡拓撲。
圖5:長分支導致邊沿抖動
圖6波特率異常(位寬度從2us突然變成1.6us),導致位錯誤引起錯誤幀。位寬的不穩定是波特率不穩定導致的,最有可能的原因是晶振問題,建議更換晶振測試。
圖6:波特率偏差引起錯誤幀
方法三:使用CAN轉換器或接口類產品輔助排查。簡單的故障排查一般我們采用USBCAN卡解決,通過抓取總線上的報文分析故障節點。極端情況下,一個故障節點往往能直接拖垮一個總線,總線上將無任何數據,此時怎么通過抓取報文解決問題呢?通過一個多路的CAN集線器能解決以上問題。CAN集線器的每個CAN接口都是一個獨立的CAN節點,一路CAN的嚴重故障不會導致所有節點不能進行數據收發,此時不能正常發出數據的節點可判定為故障節點。
圖7:CANHUB提供8路獨立CAN網絡
總結
以上內容為工程師呈現幾種常用的CAN總線故障定位方法,從便捷、成本、高效方面考慮,筆者優先推薦方法三。此外,CAN集線器也兼顧中繼器、信號放大器的作用,把多個節點拆分到不同獨立的CAN總線上能消除負載集中,有效減小總線故障的發生。若您有更好的CAN總線故障排查方法可在文章下方留言,與廣大工程師交流分享。
圖8:CANHub-AS8應用實例
來源:ZLG致遠電子 ,作者:AE