CAN匯流排出現錯誤幀時,為什麼要區分「錯誤主動」節點和「錯誤

2021-03-28 19:37:51 字數 5938 閱讀 4668

1樓:最紳士的痞子灬

1、主動錯誤狀態——(通常說的正常狀態也應該包含在內)處於該狀態的節點可以不受任何限制地傳送報文和主動錯誤幀(由顯性位構成)。

2、被動錯誤狀態——處於被動錯誤狀態的節點可以傳送報文和被動錯誤幀(由隱性位構成)。

3、匯流排關閉狀態——處於匯流排關閉狀態的節點暫時不能參與匯流排通訊。

4、這一狀態下,既無法傳送報文,也無法接收報文。只有傳送器能夠進入匯流排關閉狀態。——就需要進行錯誤處理了。

can匯流排協議當中的錯誤(錯誤主動)幀和過載幀怎麼區別

2樓:匿名使用者

有相關詳細講解。錯誤主動就是自己檢測到錯誤了,發到匯流排上告知匯流排錯誤,一般是匯流排硬體原因產生的。而過載幀一般是由於沒及時的收取資料產生的,是軟體問題。

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

3樓:瓊彭

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

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

4樓:

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

一、正確接收報文:

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匯流排出現錯誤幀時,為什麼要區分「錯誤主動」節點和「錯誤認可」節點?有什麼意思?

5樓:匿名使用者

問題2:乙個檢測到出錯狀態的「錯誤啟用」節點通過發出乙個活動錯誤標誌來對出錯結果進行通報。這種出錯標誌的形式違反了位填充規則,也破壞了固定的位場形式。

結果,所有其他節點也檢測到乙個出錯狀態,都各自送出乙個人出錯標誌,所以在匯流排上實際檢測到的顯性位序列是由多個節點各自發出的不同出錯標誌疊加而成的。該序列的總長度最少為六位,最多為12位。

6樓:匿名使用者

1.等待下一次匯流排空閒

2.因為每個節點都要發,可能有一定延遲

3.每個節點都會檢測到,並且跟著傳送錯誤標誌

7樓:匿名使用者

這個問題原本可以回答你的,可惜前不久看的。忘得差不多了。

1對於錯誤認可和錯誤主動這兩個傢伙,你最好看看英文是怎麼寫的。這樣有利於你理解。

2從你問的問題,可以看出你是個搞學問的人,認真啊。其實老大,你問的這些個問題只有設計can晶元的人才需要深刻理解。如果你是搞應用的,大可不必追的太認真。

3這個按我的理解是不知道的。應該是這個節點自己知道,然後把自己關閉了。以免影響其他的節點。

因為can的節點都是平等,發出資訊採用廣播的方式。也就是一廣播大家都知道了,大家根據收到的資訊作出反應(這個節點的程式裡可以操作)。傳送的資訊根據優先順序,由匯流排進行仲裁不至於大家衝突。

can匯流排的錯誤處理

8樓:半生電影

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

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

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

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

9樓:愛刷

在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匯流排的狀態

10樓:勝利之

can匯流排狀態有三種:

1、主動錯誤狀態——(通常說的正常狀態也應該包含在內)處於該狀態的節點可以不受任何限制地傳送報文和主動錯誤幀(由顯性位構成)。

2、被動錯誤狀態——處於被動錯誤狀態的節點可以傳送報文和被動錯誤幀(由隱性位構成)。

3、匯流排關閉狀態——處於匯流排關閉狀態的節點暫時不能參與匯流排通訊。這一狀態下,既無法傳送報文,也無法接收報文。只有傳送器能夠進入匯流排關閉狀態。——就需要進行錯誤處理了。

轉換和傳送計數器、接收計數器的值相關,轉換關係參見下圖:

can匯流排上的錯誤幀要如何排查?

11樓:咩咩羊

對於can匯流排上的錯誤幀,普通的can裝置(例如usbcan)是無法獲取

到的,必須使用專用的can匯流排分析儀才能獲取到,然後做分析。我手頭上有一台叫canscope的can匯流排分析儀可以直接獲取到can匯流排上的錯誤幀資料和波形,如下圖:

12樓:天會變得更藍

錯誤主動就是自己檢測到錯誤了,發到匯流排上告知匯流排錯誤,一般是匯流排硬體原因產生的。而過載幀一般是由於沒及時的收取資料產生的,是軟體問題。

追問我的意思是如果我收到了一串訊號,發現是乙個6位的顯性電平,怎麼判斷它是主動錯誤幀還是過載幀?

回答這個是由can控制器自行判定的,你要獲知結果的話,可以檢視can控制器的錯誤暫存器的資訊。

追問也就是說對匯流排的傳輸部分來說,兩者是一樣的?

回答不一樣的,乙個是硬體本身的原因,如匯流排阻抗不匹配,環節干擾因素造成的;另外乙個是軟體自己的缺陷造成的,沒及時的取出已經在緩衝區內的資料,而新的資料又來了,這樣就會造成過載。

can匯流排 格式錯誤與位錯誤的區別

13樓:雪v歌

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

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

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

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

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

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

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

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

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

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

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

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

CAN匯流排出現錯誤幀時,為什麼要區分「錯誤主動」節點和「錯誤

問題2 乙個檢測到出錯狀態的 錯誤啟用 節點通過發出乙個活動錯誤標誌來對出錯結果進行通報。這種出錯標誌的形式違反了位填充規則,也破壞了固定的位場形式。結果,所有其他節點也檢測到乙個出錯狀態,都各自送出乙個人出錯標誌,所以在匯流排上實際檢測到的顯性位序列是由多個節點各自發出的不同出錯標誌疊加而成的。該...

CAN匯流排通訊為什麼不能在高負載率下執行

在can通訊中來,使用某個固定波特率的情況自下bai 匯流排的通訊流量就將是一du個固定值,比如使zhi用1mbps的波特率,則該匯流排dao上100 負載率就是1秒的時間內可傳輸1mbit的資料。當匯流排的平均利用率達到70 以上時,匯流排的通訊將有可能出現擁堵的現象,極端情況下將有可能造成錯誤幀...

這個excel公式為什麼出現錯誤

也真有你的!居然會寫這麼長的公式。最好是把係數錄入到固定單元格裡,這樣公式就簡單多啦 若是不行,就把公式改簡單點 sumproduct c3 af3 60 20.5 sumproduct y3 af3 60 77 試一試看看吧 不知道目的是什麼,但公式中有幾處是重複使用了。這種公式不能這樣寫,又長又...