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