1、什么是busoff?
BUSOFF,從字面意思可以看出,表示總線的關(guān)閉,此時ECU從總線脫離,既不能接收總線的報文,也不能向總線發(fā)送報文。
2、BUSOFF是如何產(chǎn)生的?
CAN總線上存在多種錯誤狀態(tài),包括:位錯誤(Bit Check Error)、位填充錯誤(Bit Stuff Error)、CRC錯誤(CRC Error)、幀格式錯誤( Check Error)、應(yīng)答錯誤(Acknowledgment Error)。
CAN模塊配有接收錯誤計數(shù)器(REC)及發(fā)送錯誤計數(shù)器(TEC);CAN錯誤存在三種狀態(tài),即主動錯誤、被動錯誤、總線關(guān)閉;
1.當(dāng)發(fā)送錯誤計數(shù)器和接收錯誤計數(shù)器值都小于128,為“主動錯誤”
2.當(dāng)發(fā)送錯誤計數(shù)器或接收錯誤計數(shù)器值大于等于128,變?yōu)椤氨粍渝e誤”
3.當(dāng)發(fā)送錯誤計數(shù)器大于等于256時,“總線關(guān)閉”。
因此:節(jié)點進(jìn)入busoff狀態(tài),一定是因為節(jié)點自身識別到自己發(fā)送錯誤,TEC大于255導(dǎo)致的。
3、BUSOFF恢復(fù)機制和故障碼記錄
1)恢復(fù)機制
11898-1規(guī)范中,規(guī)定:當(dāng)節(jié)點busoff以后,至少要等待連續(xù)128個11 bit隱性位;
當(dāng)有節(jié)點發(fā)生busoff時,為了不干擾同網(wǎng)段內(nèi)的其他節(jié)點通信,故障節(jié)點不應(yīng)過快地參與通信。先讓故障節(jié)點進(jìn)行一個快恢復(fù),這樣,因為偶發(fā)干擾導(dǎo)致的節(jié)點故障可以快速恢復(fù),重新參與通信。如果故障節(jié)點經(jīng)過了幾次快恢復(fù),仍然沒有恢復(fù)正常通信,為了盡可能地降低對同網(wǎng)段其他節(jié)點的通信干擾,可以讓故障節(jié)點進(jìn)入慢恢復(fù),即:讓故障節(jié)點不要過快地加入總線,降低其對總線的干擾。
快恢復(fù)(L1)
恢復(fù)時間, <=100ms
恢復(fù)次數(shù),5~10次不等
慢恢復(fù)(L2)
恢復(fù)間隔, [200ms, 1s]
恢復(fù)次數(shù), 不限
2)DTC使能條件
成熟條件:恢復(fù)N次不能成功之后,記錄DTC
Bus Off產(chǎn)生后,不再記錄通信丟失類DTC
3、哪些因素會導(dǎo)致BUSOFF?
引起錯誤的原因主要包括:
1)CAN_H開路、
2)CAN_L開路
3)CAN_H對CAN_L短路/開路、
4) CAN_L對VBAT短路
5) CAN_H對GND短路
6) CAN_L對GND短路
7)終端電阻開路
9)CAN總線信號干擾導(dǎo)致
5、BUSOFF發(fā)生后如何處理?
BUSOFF故障發(fā)生后,一般可以重啟CAN控制器或是重新上電;
當(dāng)發(fā)生CAN總線關(guān)閉時,我們可以檢查Bus Off寄存器的值,對CAN控制器的驅(qū)動及相關(guān)寄存器進(jìn)行初始化操作。
審核編輯:劉清
-
收發(fā)器
+關(guān)注
關(guān)注
10文章
3478瀏覽量
106286 -
CAN總線
+關(guān)注
關(guān)注
145文章
1956瀏覽量
131145 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2276瀏覽量
95070 -
CRC效驗
+關(guān)注
關(guān)注
0文章
30瀏覽量
1163 -
終端電阻
+關(guān)注
關(guān)注
1文章
95瀏覽量
11882
原文標(biāo)題:CAN總線busoff原理介紹
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
CAN控制器總線錯誤分析之CAN節(jié)點BusOff恢復(fù)過程分析與測試
![CAN控制器總線錯誤分析之CAN節(jié)點<b class='flag-5'>BusOff</b><b class='flag-5'>恢復(fù)</b>過程分析與測試](https://file.elecfans.com/web1/M00/C3/52/o4YBAF8o3aeAaMrwAACj8njOo5o307.png)
將TC397的MCMCAN模塊的canh和canl短接到GND,MCMCAN模塊進(jìn)入到bus off狀態(tài)后無法繼續(xù)正常發(fā)送的原因?
請問TC275造busoff故障后的狀態(tài)標(biāo)志位是哪個?
TC275由于錯誤幀太多了,導(dǎo)致進(jìn)入busoff狀態(tài)怎么解決?
STM32G0B1 CAN的自動重發(fā)間隔是多長時間?
spc560p怎么使用中止機制
怎樣對CAN節(jié)點的Busoff恢復(fù)時間進(jìn)行準(zhǔn)確測量?
ti280025 CAN通信
S32K118在高負(fù)載時Busoff中斷丟失的原因?
一種嵌入式Linux系統(tǒng)多重備份與恢復(fù)機制
基于基本回路的MPLS網(wǎng)絡(luò)重路由故障恢復(fù)機制
基于硬件的密鑰安全備份和恢復(fù)機制
經(jīng)驗分享:節(jié)點BusOff恢復(fù)過程分析與測試
![經(jīng)驗分享:節(jié)點<b class='flag-5'>BusOff</b><b class='flag-5'>恢復(fù)</b>過程分析與測試](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CanSM模塊如何處理Busoff等問題呢
![CanSM模塊如何處理<b class='flag-5'>Busoff</b>等問題呢](https://file.elecfans.com/web2/M00/66/5A/pYYBAGMMjnqAFn0fAACQljR28BU098.png)
評論