1、什么是busoff?
BUSOFF,從字面意思可以看出,表示總線的關閉,此時ECU從總線脫離,既不能接收總線的報文,也不能向總線發送報文。
2、BUSOFF是如何產生的?
CAN總線上存在多種錯誤狀態,包括:位錯誤(Bit Check Error)、位填充錯誤(Bit Stuff Error)、CRC錯誤(CRC Error)、幀格式錯誤( Check Error)、應答錯誤(Acknowledgment Error)。
CAN模塊配有接收錯誤計數器(REC)及發送錯誤計數器(TEC);CAN錯誤存在三種狀態,即主動錯誤、被動錯誤、總線關閉;
1.當發送錯誤計數器和接收錯誤計數器值都小于128,為“主動錯誤”
2.當發送錯誤計數器或接收錯誤計數器值大于等于128,變為“被動錯誤”
3.當發送錯誤計數器大于等于256時,“總線關閉”。
因此:節點進入busoff狀態,一定是因為節點自身識別到自己發送錯誤,TEC大于255導致的。
3、BUSOFF恢復機制和故障碼記錄
1)恢復機制
11898-1規范中,規定:當節點busoff以后,至少要等待連續128個11 bit隱性位;
當有節點發生busoff時,為了不干擾同網段內的其他節點通信,故障節點不應過快地參與通信。先讓故障節點進行一個快恢復,這樣,因為偶發干擾導致的節點故障可以快速恢復,重新參與通信。如果故障節點經過了幾次快恢復,仍然沒有恢復正常通信,為了盡可能地降低對同網段其他節點的通信干擾,可以讓故障節點進入慢恢復,即:讓故障節點不要過快地加入總線,降低其對總線的干擾。
快恢復(L1)
恢復時間, <=100ms
恢復次數,5~10次不等
慢恢復(L2)
恢復間隔, [200ms, 1s]
恢復次數, 不限
2)DTC使能條件
成熟條件:恢復N次不能成功之后,記錄DTC
Bus Off產生后,不再記錄通信丟失類DTC
3、哪些因素會導致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總線信號干擾導致
5、BUSOFF發生后如何處理?
BUSOFF故障發生后,一般可以重啟CAN控制器或是重新上電;
當發生CAN總線關閉時,我們可以檢查Bus Off寄存器的值,對CAN控制器的驅動及相關寄存器進行初始化操作。
審核編輯:劉清
-
收發器
+關注
關注
10文章
3399瀏覽量
105869 -
CAN總線
+關注
關注
145文章
1936瀏覽量
130633 -
計數器
+關注
關注
32文章
2254瀏覽量
94366 -
CRC效驗
+關注
關注
0文章
30瀏覽量
1093 -
終端電阻
+關注
關注
1文章
92瀏覽量
11775
原文標題:CAN總線busoff原理介紹
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論