CAN總線離線(Bus-Off)與錯誤計數(shù)器溢出,本質是CAN控制器的自我保護機制:節(jié)點檢測到錯誤時,發(fā)送錯誤計數(shù)器(TEC)或接收錯誤計數(shù)器(REC)會遞增,一旦超過閾值,節(jié)點會主動斷開總線連接,避免故障影響整個網(wǎng)絡。錯誤計數(shù)器溢出的原因,可從硬件和軟件兩層排查。
一、硬件與物理層問題
1.波特率不匹配:總線上所有節(jié)點波特率(含采樣點)需嚴格一致,微小偏差會導致采樣錯誤,使TEC持續(xù)累加直至離線。
2.總線拓撲與終端電阻錯誤:需采用直線型拓撲,兩端各放置120歐姆終端電阻;星型拓撲、電阻缺失或位置錯誤,會導致信號反射、振鈴及位錯誤。
3.信號干擾與物理故障:強電磁干擾、CAN_H與CAN_L短路、線纜過長或接觸不良,會直接引發(fā)CRC校驗、填充位或ACK應答錯誤,觸發(fā)計數(shù)器遞增。
二、軟件與協(xié)議層問題
1.發(fā)送頻率過高:無節(jié)制循環(huán)發(fā)送、缺乏有效退避/重試策略,會導致總線繁忙或錯誤時反復重試,TEC快速攀升。
2.錯誤恢復策略不當:進入被動錯誤狀態(tài)后未主動介入(如暫停發(fā)送、記錄日志),或未及時處理/清除中斷標志,會導致TEC突破255觸發(fā)離線。
3.CAN控制器配置錯誤:模式(如靜默模式)、濾波器或時鐘分頻器配置不當,會引發(fā)異常計數(shù)。
以上就是英銳恩單片機開發(fā)工程師分享的為什么單片機CAN總線離線原因排查。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、32位單片機。