摘要: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)往往會(huì)危害到整個(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)電平臺(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)的電磁場干擾后易發(fā)生此類錯(cuò)誤,如變頻器,、逆變器,、電機(jī)等功率器件。此時(shí),,我們亦可配合FFT分析工具分析干擾頻點(diǎn),,以此定位到干擾源并屏蔽它,如圖4,。
圖3幀結(jié)束波形臺(tái)階
圖4FFT分析干擾頻點(diǎn)
圖5錯(cuò)誤幀波形邊沿出現(xiàn)抖動(dòng),,此錯(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ù)洹?/p>
圖5長分支導(dǎo)致邊沿抖動(dòng)
圖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)重故障不會(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總線故障定位方法,,從便捷、成本,、高效方面考慮,,筆者優(yōu)先推薦方法三。此外,,CAN集線器也兼顧中繼器,、信號(hào)放大器的作用,把多個(gè)節(jié)點(diǎn)拆分到不同獨(dú)立的CAN總線上能消除負(fù)載集中,,有效減小總線故障的發(fā)生,。若您有更好的CAN總線故障排查方法可在文章下方留言,與廣大工程師交流分享,。
圖8 CANHub-AS8應(yīng)用實(shí)例