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