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