當一條CAN匯流排上接上超過5臺裝置之後,在第5臺CAN裝置之

2021-04-25 09:31:13 字數 3004 閱讀 5735

1樓:廣州致遠電子

可能是匯流排上的節點電路設計中的電容值過大,或者tvs管加的過多,電容太大導致的。你仔細檢查一下。

2樓:匿名使用者

你可以看一下是不是你的每一個節點都接了120歐姆匹配電阻,如果都接了就會出現這種問題,因為匯流排上的電阻並聯的太多了就會變得很小。標準協議只是在can匯流排的首尾兩端加匹配電阻。

關於can匯流排的一些問題

3樓:嵌入式設計師

1.標準格式資料幀包括:

1位幀起始位,11位id位+1irq位,8個控制位,8位元組的資料位,2位元組的crc校驗位,7個終止位(記得不一定全面)

同時有碼流控制功能,即位填充功能。當出現4個相同電平的位時,會在中間插入1個不同的位。

碼流填充區域包括從起始位一直到資料位結束。

具體細節可以參見《現場匯流排can原理與應用》一書,北京航空航天大學出版社。

2.11位識別符號與遮蔽暫存器和**暫存器組成了can匯流排的濾波模式。

3.初始化匯流排定時暫存器,控制暫存器,輸出暫存器,中斷暫存器。

4.遮蔽暫存器全部為0xff,使濾波位「無關」

5. 高8位為9,即為0000_1001,code0= 0000_1001 mask0 = 1111_0110 (二進位制表示)

6. 這個我以前算過,《現場匯流排can原理與應用》一書中有詳細介紹,現在書沒有在手邊,印象裡是

btr0 = 0x43;

btr1 = 0x1c;

can匯流排的錯誤處理

4樓:半生電影

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

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

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

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

5樓:愛刷

在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匯流排中,假如兩條報文的識別符號是一樣的,此時這兩個報文的優先順序該如何抉擇

優先順序是由幀id決定的,既然是一樣的幀id,優先順序必然是一樣,如果同時出現在匯流排上,需要仲裁那就是節點都有可能優先傳送。同時傳送,id一樣,那他們在仲裁id時肯定都能傳送成功的,只有等到有資料位不相同時,發資料1的會檢測到傳送電平跟期望電平不一樣,發生錯誤,等待匯流排空閒時重新傳送,傳送資料0...

在農村家裡養了2條土狗,過年找人殺了一條,當年貨吃。這樣的爸爸是否殘忍?還是在農村很正常

您好!您父親殺狗當年貨吃,不能算是殘忍。如果殺一條狗就算殘忍,那麼那些屠夫,一年到頭宰豬殺牛殺羊豈不罪該萬死?在農村家裡養了2條土狗,過年找人殺了一條,當年貨吃。這樣的爸爸是否殘忍?還是在農村殺土狗吃很正常 最好別殺的 你說喂的也挺有感情的 這個是很正常的,雖然說狗,狗是人類的好朋友,但是。吃狗肉又...

一條網線可以當兩條網線用分接兩臺電腦嗎?一水晶頭

完全可以,因為我們日常的上網只需要四根線就可以支援tcp ip協議,關鍵是要 回注意這四個線所在的位 一條網線du可zhi以當兩條網線用分接兩臺電腦dao。版 方法 步驟 1 先了解一下路由器,權交換機接,mode,網絡卡的rj45介面。注意看有些裝置上只有四個金屬接觸。排序是1 2 3 6的接觸點...