CAN通訊錯誤,CAN匯流排的錯誤處理

2021-03-04 08:10:18 字數 4802 閱讀 3862

1樓:非州尛白臉

在can初始化中,開啟了錯誤報警中斷使能和匯流排錯誤中斷使能,當錯誤計數器(傳送錯誤計數器和接收錯誤計數器中的任何乙個)計數值超過96時,說明匯流排被嚴重干擾,產生錯誤報警中斷;當傳送錯誤計數器值超過255時,節點進入匯流排關閉狀態,can控制器將設定復位模式位為1(當前)並產生乙個錯誤報警和匯流排錯誤中斷。錯誤報警中斷處理是清零所有錯誤計數器的值,維持can的運轉,但這樣做存在侷限性:清零錯誤計數器只是將錯誤計數器簡單的清零,不能從根本上消除錯誤**;由於錯誤報警中斷產生的條件為錯誤計數器的值超過96,而匯流排關閉中斷產生的條件為傳送錯誤計數器的值超過255,因此,傳送錯誤計數器引起的錯誤報警中斷可以遮蔽掉匯流排錯誤中斷。

系統可能由於總響應錯誤報警中斷導致系統不能產生匯流排關閉,使can匯流排一直處於不穩定狀態。

為了避免這種情況,只開啟匯流排錯誤中斷使能,這樣,在匯流排發生嚴重錯誤的情況下,可馬上產生匯流排錯誤中斷,使錯誤得到及時處理。匯流排錯誤中斷的處理是復位該節點,重新初始化can控制器,這樣可以消除錯誤,給節點乙個很好的初態。由於can匯流排兩條傳輸線之間的誤接觸,也易造成can匯流排關閉,使節點無法工作,在主程式中查詢狀態暫存器中當前can匯流排狀態,及時復位該節點,使節點正常工作。

同時,為了更方便直觀地檢視can匯流排的工作狀態,設計了乙個指示燈,當匯流排正常地收發資訊時,指示燈閃爍,一旦can匯流排關閉,節點不參與匯流排活動,指示燈不再閃爍(此時指示燈長亮或長滅),當匯流排錯誤不能通過復位該節點解決時,可以通過檢視指示燈的狀態(長亮或長滅),及時地對不工作的節點進行修理維護。

can匯流排的錯誤處理

2樓:半生電影

屬於是鏈路層功能,此功能由can控制器決定,圖為can控制介紹圖,其中詳細介紹與錯誤處理有關的部分:位流處理器、位邏輯控制、錯誤管理邏輯。

位流處理器(bsp)是乙個控制傳送緩衝器、接收fifo和can匯流排之間資料流的程式裝置,它還執行匯流排上的錯誤檢測、仲載、匯流排填充和錯誤處理。

位時序邏輯(btl)監視序列的can匯流排和位時序,它在資訊開頭「弱勢支配」的匯流排傳輸時,同步can匯流排位流(硬同步),接收報文時再次同步下一次傳送(軟同步)。

錯誤管理邏輯(eml)負責限制傳輸層模組的錯誤,它接收來自位流處理器的出錯報告,然後把有關錯誤統計告訴位流處理器和介面管理邏輯(iml)。

3樓:愛刷

在can匯流排中存在5種錯誤型別,它們互相並不排斥,下面簡單介紹一下它們的區別、產生的原因及處理方法。

位錯誤:向匯流排送出一位的某個節點同時也在監視匯流排,當監視到匯流排位的電平和送出的電平不同時,則在該位時刻檢測到乙個位錯誤。但是在仲裁區的填充位流期間或應答間隙送出隱性位而檢測到顯性位時,不認為是錯誤位。

送出認可錯誤標註的傳送器,在檢測到顯性位時也不認為是錯誤位。

填充錯誤:在使用位填充方法進行編碼的報文中,出現了第6個連續相同的位電平時,將檢 測出乙個填充錯誤。

crc錯誤:crc序列是由傳送器crc計算的結果組成的。接收器以和傳送器相同的方法計算crc。如果計算的結果和接收到的crc序列不同,則檢測出乙個crc錯誤。

形式錯誤: 當固定形式的位區中出現乙個或多個非法位時,則檢測到乙個形式錯誤。

應答錯誤:在應答間隙,傳送器未檢測到顯性位時,則由它檢測出乙個應答錯誤。

檢測到出錯條件的節點通過傳送錯誤標誌進行標定。當任何節點檢測出位錯誤、填充錯誤、形式錯誤或應答錯誤時,由該節點在下一位開始傳送出錯誤標誌。

當檢測到crc錯誤時。出錯標誌在應答界定符後面那一位開始傳送.除非其他出錯條件的錯誤標誌已經開始傳送。

在can匯流排中,任何乙個單元可能處於下列3種故障狀態之一:錯誤啟用狀態(erroractive)、錯誤認可狀態(error passitive)和匯流排關閉狀態(bus off)。

錯誤啟用單元可以照常參和匯流排通訊,並且當檢測到錯誤時,送出乙個活動錯誤標誌。錯誤 認可節點可參和匯流排通訊,但是不允許送出活動錯誤標誌。當其檢測到錯誤時,只能送出認可錯 誤標誌,並且傳送後仍為錯誤認可狀態,直到下一次傳送初始化。

匯流排關閉狀態不允許單元對總 線有任何影響。

為了界定故障,在每個匯流排單元中都設有2個計數:傳送出錯計數和接收出錯計數。這些 計數按照下列規則進行。

(1)接收器檢查出錯誤時,接收器錯誤計數器加1,除非所有檢測錯誤是傳送活動錯誤標誌或超載標誌期間的位錯誤。

(2)接收器在送出錯誤標誌後的第一位檢查出顯性位時,錯誤計數器加8。

(3)傳送器送出乙個錯誤標誌時,傳送器錯誤計數器加8。有兩種情況例外:其一是如果發 送器為錯誤認可,由於未檢測到顯性位應答或檢測到應答錯誤,並且在送出其認可錯誤標誌時,未檢測到顯性位;另外一種情況是如果仲裁器件產生填充錯誤,傳送器送出乙個隱性位錯誤標誌,而檢測到的是顯性位。

除以上兩種情況外,傳送器錯誤計數器計數不改變。

(4)傳送器送出乙個活動錯誤標誌或超載標誌時,檢測到位錯誤,則傳送器錯誤計數器加8。

(5)在送出活動錯誤標誌、認可錯誤標誌或超載錯誤標誌後,任何節點都最多允許連續7個顯性位。在檢測到第11個連續顯性位後,或緊隨認可錯誤標誌檢測到第8個連續的顯性位,以及附加的8個連續的顯性位的每個序列後,每個傳送器的傳送錯誤計數都加8,並且每個接收器的接收錯誤計數也加8。

(6)報文成功傳送後,傳送錯誤計數減1,除非計數值已經為0。

(7)報文成功傳送後,如果接收錯誤計數處於1~197之間,則其值減1;如果接收錯誤計數為0,則仍保持為0;如果大於127,則將其值記為119~127之間的某個數值。

(8)當傳送錯誤計數等於或大於128,或接收錯誤汁數等於或大於128時,節點進入錯誤認,可狀態,節點送出乙個活動錯誤標誌。

(9)當傳送錯誤計數器大於或等於256時,節點進入匯流排關閉狀態。

(1o)當傳送錯誤計數和接收錯誤計數均小於或等於127時,錯誤認可節點再次變為錯誤啟用節點。

(11)在檢測到匯流排上11個連續的隱性位傳送128次後,匯流排關閉節點將變為2個錯誤計數器均為0的錯誤啟用節點。

(12)當錯誤計數器數值大於96時,說明匯流排被嚴重干擾。

如果系統啟動期間僅有1個節點掛在匯流排上,此節點發出報文後,將得不到應答,檢查出錯誤並重複該報文,此時該節點可以變為錯誤認可節點,但不會因此關閉匯流排。

can匯流排有哪幾種形成的網路故障

4樓:

某一節點失效,導致以下節點不能上網。

線纜連線混亂,很不慎會連線到別交換機,會導致環路等等情況發生。

5樓:約定

在can匯流排中存在5種錯誤型別,它們互相並不排斥,下面簡單介紹一下它們的區別、產生的原因及處理方法。

位錯誤:向匯流排送出一位的某個節點同時也在監視匯流排,當監視到匯流排位的電平和送出的電平不同時,則在該位時刻檢測到乙個位錯誤。但是在仲裁區的填充位流期間或應答間隙送出隱性位而檢測到顯性位時,不認為是錯誤位。

送出認可錯誤標註的傳送器,在檢測到顯性位時也不認為是錯誤位。

填充錯誤:在使用位填充方法進行編碼的報文中,出現了第6個連續相同的位電平時,將檢 測出乙個填充錯誤。

crc錯誤:crc序列是由傳送器crc計算的結果組成的。接收器以和傳送器相同的方法計算crc。如果計算的結果和接收到的crc序列不同,則檢測出乙個crc錯誤。

形式錯誤: 當固定形式的位區中出現乙個或多個非法位時,則檢測到乙個形式錯誤。

應答錯誤:在應答間隙,傳送器未檢測到顯性位時,則由它檢測出乙個應答錯誤。

檢測到出錯條件的節點通過傳送錯誤標誌進行標定。當任何節點檢測出位錯誤、填充錯誤、形式錯誤或應答錯誤時,由該節點在下一位開始傳送出錯誤標誌。

當檢測到crc錯誤時。出錯標誌在應答界定符後面那一位開始傳送.除非其他出錯條件的錯誤標誌已經開始傳送。

在can匯流排中,任何乙個單元可能處於下列3種故障狀態之一:錯誤啟用狀態(erroractive)、錯誤認可狀態(error passitive)和匯流排關閉狀態(bus off)。

錯誤啟用單元可以照常參和匯流排通訊,並且當檢測到錯誤時,送出乙個活動錯誤標誌。錯誤 認可節點可參和匯流排通訊,但是不允許送出活動錯誤標誌。當其檢測到錯誤時,只能送出認可錯 誤標誌,並且傳送後仍為錯誤認可狀態,直到下一次傳送初始化。

匯流排關閉狀態不允許單元對總 線有任何影響。

6樓:

環型最容易,只要其中的乙個節點出了問題,整個網路就完了。

can匯流排上錯誤幀很多怎麼辦?

7樓:瓊彭

首先要定位錯誤幀是哪個節點產生的,看一下波形,觀察是如何產生的錯誤幀。最好是用專門的儀器,我們用zlg致遠電子的canscope,可以定位和觀察錯誤幀波形,並帶有一系列的測試功能來分析故障問題,排除干擾。

can匯流排檢測到錯誤(收到錯誤幀),恢復時間要多長?

8樓:

首先,要明確你要的應答是什麼,是正確接收某個報文,還是某個節點向另一節點請求報文

一、正確接收報文:

can報文包含乙個id場的部分,每個報文在匯流排上廣播,節點收到報文後比較id,如果是該節點應該接受的報文id,該節點則完成接受;

二、請求報文:

can報文內在id場前有乙個1bit長度遠端幀場,0表示為普通幀,1表示為遠端幀,當a節點希望b節點向它傳送某個報文時,a節點向匯流排廣播遠端幀,遠端幀無資料場,匯流排上節點同樣也是比較報文的id場,當b節點比對id場發現該遠端幀是向它請求時,b節點傳送該遠端幀請求的幀,a通過第一點中的方法接受收

ps:can匯流排報文的crc校驗場後面會有乙個ack應答場,傳送報文的節點發出的ack(1bit)為「1」,正確應答的節點(報文資料校驗通過正確)會將匯流排上的這個ack位電平拉成「0」,表示正確應答。

若a節點廣播報文後,發現該報文的ack始終為「1」,則其收發器將從快取中自動重發該幀,直到有節點正確接受ack為「0」或者a節點離線

希望對你有幫助,還有不完整或不理解的可以追加提問或者m我

CAN匯流排的錯誤處理CAN匯流排上的錯誤幀要如何排查

屬於是鏈路層功能,此功能由can控制器決定,圖為can控制介紹圖,其中詳細介紹與錯誤處理有關的部分 位流處理器 位邏輯控制 錯誤管理邏輯。位流處理器 bsp 是乙個控制傳送緩衝器 接收fifo和can匯流排之間資料流的程式裝置,它還執行匯流排上的錯誤檢測 仲載 匯流排填充和錯誤處理。位時序邏輯 bt...

CAN匯流排的仲裁機制,CAN匯流排的有關仲裁機制,具體問題在問題補充中,求大俠

如果can匯流排上的多個節點同時向匯流排上傳送資料時,多個資料就會在匯流排上出現 撞車 的現象,這就像生活中很多人在一起討論問題,如果幾個人同時講話,就會亂套,此時需要進行仲裁,決定哪個人先講,哪個人後講。can匯流排的有關仲裁機制,具體問題在問題補充中,求大俠 30 1,討論誰更間接的,實際的仲裁...

關於CAN匯流排的一些問題,關於can匯流排的一些問題

1.標準格式資料幀包括 1位幀起始位,11位id位 1irq位,8個控制位,8位元組的資料位,2位元組的crc校驗位,7個終止位 記得不一定全面 同時有碼流控制功能,即位填充功能。當出現4個相同電平的位時,會在中間插入1個不同的位。碼流填充區域包括從起始位一直到資料位結束。具體細節可以參見 現場匯流...