新聞中心

CAN總線錯誤幀分析

作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
1、CAN錯誤檢測(Error Detection)
CAN網(wǎng)絡(luò)具有嚴(yán)格的錯誤診斷功能,該功能已固化在硅片之中,一旦錯誤被檢測,正在傳送的數(shù)據(jù)幀將會立即停止而待總線空閑時再次重發(fā)直至發(fā)送成功,該過程并不需要CPU的干涉除非錯誤累計該發(fā)送器退隱(Bus Off)。CAN控制器可檢測如下五種錯誤:
√ 位錯誤(Bit Check Error)
發(fā)送器在發(fā)送比特流的同時也對發(fā)出的比特流采樣回收,若送出的bit與所期待的bit不合,則會檢測到一個Bit Check Error;


√ 位填充錯誤(Bit Stuff Error)
在需要執(zhí)行位編碼規(guī)則的位流序列中檢測到第6個連續(xù)的極性相同的位序流時,則檢測到一個Bit Stuff Error;

√ CRC 錯誤(CRC Error)
發(fā)送端送出的CRC序列由發(fā)送器算出,接收器執(zhí)行同樣的CRC算法,若計算結(jié)果與接收到的CRC序列不符,一個CRC Error被檢測到,由發(fā)送端送出;

√ 幀格式錯誤(Frame Check Error)
當(dāng)一個固定形式的位場含非法位,則檢測到一個Frame Check Error(接收端檢測到幀結(jié)束最后一位為顯性時幀錯誤忽略);


√ 應(yīng)答錯誤(Acknowledgment Error)
ACK SLOT采樣為隱性,則檢測到一個Acknowledgement Error;


2、CAN錯誤界定(Error Confinement)

本文引用地址:http://m.butianyuan.cn/article/201612/330445.htm
CAN控制器內(nèi)置兩個錯誤計數(shù)器:Receive Error Counter及Tranmit Error Counter(錯誤計數(shù)器的計數(shù)規(guī)則后附)。當(dāng)某個計數(shù)器的當(dāng)前值達(dá)到128時,CAN控制器將進(jìn)入“Error Passive Mode”,此時該節(jié)點仍然參與CAN通訊,檢測到錯誤時只能發(fā)送“Error Passive Flag”,且錯誤幀發(fā)送完畢重啟下一個發(fā)送之前有8bits位時的掛起狀態(tài);當(dāng)Tranmit Error Counter當(dāng)前值為255接著又一個錯誤被檢測到時,CAN控制器將進(jìn)入“Bus Off Mode”,此時該節(jié)點與總線完全脫離,整個癱瘓;計數(shù)器當(dāng)前值均小于128時,CAN控制器被標(biāo)識為“Error Active Mode”,CAN節(jié)點可正常通訊并檢測到錯誤時發(fā)送“Error Active Flag”。這三種狀態(tài)之間關(guān)系為:


關(guān)鍵詞: CAN總線錯誤

評論


技術(shù)專區(qū)

關(guān)閉