在工業(yè)現(xiàn)場的煤安監(jiān)控網(wǎng)絡(luò)中,CAN總線通信常因復(fù)雜環(huán)境出現(xiàn)數(shù)據(jù)丟失問題。本文以一起煤安監(jiān)控網(wǎng)絡(luò)中CAN總線數(shù)據(jù)丟失的故障排查案例,簡述了排查過程和解決方法,為工業(yè)現(xiàn)場CAN通信故障提供了參考。
? 現(xiàn)場通訊故障描述
用戶現(xiàn)場為一煤安監(jiān)控網(wǎng)絡(luò),節(jié)點包括一個主站設(shè)備、兩個分站設(shè)備,主站設(shè)備對分站設(shè)備進(jìn)行輪詢式數(shù)據(jù)查詢。故障出現(xiàn)時發(fā)現(xiàn)分站上傳的數(shù)據(jù)出現(xiàn)缺失現(xiàn)象。致遠(yuǎn)電子工程師將專業(yè)工具——CANScope分析儀接入故障網(wǎng)絡(luò)捕獲數(shù)據(jù),然后進(jìn)行分析。
圖1 CANScope總線綜合分析儀
? 對故障通訊網(wǎng)絡(luò)快速體檢
監(jiān)控系統(tǒng)上電工作后,記錄一段時間數(shù)據(jù),通過【報文幀統(tǒng)計功能】分析,此次測試樣本為135個幀,成功報文119個,正確率為88.15%。錯誤幀類型主要包括CRC定界符錯誤、幀結(jié)束錯誤、應(yīng)答定界符錯誤、數(shù)據(jù)場填充錯誤。使用CANScope分析儀捕獲到網(wǎng)絡(luò)中的錯誤數(shù)據(jù),如圖2所示。
圖2 報文幀統(tǒng)計結(jié)果
? 數(shù)據(jù)丟失分析
用戶程序采取輪詢的方式查詢分站數(shù)據(jù),存在固有的數(shù)據(jù)周期,通過【流量分析功能】發(fā)現(xiàn),未丟數(shù)據(jù)的周期中,包含7條有效報文,如圖3所示。
圖3 未丟數(shù)據(jù)周期丟數(shù)據(jù)的周期中出現(xiàn)了紅色的錯誤幀,如圖4所示。有效報文數(shù)量=周期報文總數(shù)-錯誤幀數(shù)量。正常模式下CAN總線中出現(xiàn)錯誤幀后底層會實現(xiàn)自動重發(fā),保證報文不會因為錯誤幀而丟失,然而在本網(wǎng)絡(luò)中這一機制未能實現(xiàn)。通過檢查軟件,發(fā)現(xiàn)軟件工程師在CAN控制器初始化代碼中禁用了重發(fā)功能,導(dǎo)致錯誤幀不能重發(fā)。
圖4 丟數(shù)據(jù)周期
? 錯誤幀分析
通過修改代碼解決了數(shù)據(jù)重發(fā)的問題,但是網(wǎng)絡(luò)中偶爾冒出的錯誤幀仍然是工程師的一塊心病,錯誤重發(fā)機制的使能僅僅是治標(biāo)不治本,那么究竟是什么原因?qū)е翪AN網(wǎng)絡(luò)中出現(xiàn)錯誤幀呢?需要對型號質(zhì)量進(jìn)行分析,這里用到了CANScope的信號質(zhì)量分析功能。通過觀察錯誤幀的波形,發(fā)現(xiàn)CAN信號上存在很嚴(yán)重的共模干擾,使得CAN_H和CAN_L上的單線波形畸變嚴(yán)重,如圖5所示。
圖5 波形分析選取一條錯誤幀使用【FFT分析功能】進(jìn)行分析可以看到該錯誤幀信號上的頻域特性,其中在27KHz頻點上存在很強的能量,幅值甚至達(dá)到了1.38V,如圖6所示。CAN總線的顯隱性電平的壓差很小,1V左右的干擾很容易導(dǎo)致電平識別錯誤,從而出現(xiàn)錯誤幀。
圖6 FFT分析這一干擾是否具有統(tǒng)計特性呢?使用【干擾統(tǒng)計功能】針對所有樣本數(shù)據(jù)做干擾頻點強度排序,發(fā)現(xiàn)干擾最強的頻點集中在27KHz附近,如圖7所示。因此判斷在CAN網(wǎng)絡(luò)附近應(yīng)該存在這樣一個干擾源。后經(jīng)過仔細(xì)排查,發(fā)現(xiàn)這一干擾頻率與開關(guān)電源的開關(guān)頻率最吻合,由于所有CAN節(jié)點未做隔離導(dǎo)致電源串?dāng)_,引發(fā)錯誤幀。更換電源后故障消失,問題解決。
圖7 干擾統(tǒng)計