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

2021-03-19 18:21:55 字數 5380 閱讀 3600

1樓:匿名使用者

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

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

2樓:咩咩羊

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

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

3樓:天會變得更藍

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

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

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

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

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

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

4樓:瓊彭

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

can匯流排出現錯誤幀時,為什麼要區分「錯誤主動」節點和「錯誤認可」節點?有什麼意思?

5樓:匿名使用者

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

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

6樓:匿名使用者

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

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

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

7樓:匿名使用者

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

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

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

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

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

can匯流排協議的協議內容

8樓:赤丶果果

can匯流排的物理層是將ecu連線至匯流排的驅動電路。ecu的總數將受限於匯流排上的電氣負荷。物理層定義了物理資料在匯流排上各節點間的傳輸過程,主要是連線介質、線路電氣特性、資料的編碼/解碼、位定時和同步的實施標準。

bosch can基本上沒有對物理層進行定義,但基於can的iso標準對物理層進行了定義。設計一個can系統時,物理層具有很大的選擇餘地,但必須保證can協議中**訪問層非破壞性位仲裁的要求,即出現匯流排競爭時,具有較高優先權的報文獲取匯流排競爭的原則,所以要求物理層必須支援can匯流排中隱性位和顯性位的狀態特徵。在沒有傳送顯性位時,匯流排處於隱性狀態,空閒時,匯流排處於隱性狀態;當有一個或多個節點傳送顯性位,顯性位覆蓋隱性位,使匯流排處於顯性狀態。

在此基礎上,物理層主要取決於傳輸速度的要求。從物理結構上看,can節點的構成如圖7-8所示。在can中,物理層從結構上可分為三層:

分別是物理訊號層(physical layer signaling,pls)、物理介質附件(physical mediaattachment,pma)層和介質從屬介面(media dependent:inter-face,mdi)層。其中pls連同資料鏈路層功能由can控制器完成,pma層功能由can收發器完成,mdi層定義了電纜和聯結器的特性。

目前也有支援can的微處理器內部整合了can控制器和收發器電路,如mc68hc908gzl6。pma和mdi兩層有很多不同的國際或國家或行業標準,也可自行定義,比較流行的是isoll898定義的高速can傳送/接收器標準。 在報文傳輸時,不同的幀具有不同的傳輸結構,下面將分別介紹四種傳輸幀的結構,只有嚴格按照該結構進行幀的傳輸,才能被節點正確接收和傳送。

(1)資料幀由七種不同的位域(bit field)組成:幀起始(start of )、仲裁域(arbitration field)、控制域(control field)、資料域(datafield)、crc域(crc field)、應答域(ack field)和幀結尾(end of )。資料域的長度可以為0~8個位元組。

1)幀起始(sof):幀起始(sof)標誌著資料幀和遠端幀的起始,僅由一個「顯性」位組成。在can的同步規則中,當匯流排空閒時(處於隱性狀態),才允許站點開始傳送(訊號)。

所有的站點必須同步於首先開始傳送報文的站點的幀起始前沿(該方式稱為「硬同步」)。

2)仲裁域:仲裁域由識別符號和rtr位組成,標準幀格式與擴充套件幀格式的仲裁域格式不同。標準格式裡,仲裁域由1l位識別符號和rtr位組成。

識別符號位有id28~idl8。擴充套件幀格式裡,仲裁域包括29位識別符號、srr位、ide(identifier extension,標誌符擴充套件)位、rtr位。其識別符號有id28~ido。

為了區別標準幀格式和擴充套件幀格式,canl.0~1.2版本協議的保留位r1現表示為ide位。ide位為顯性,表示資料幀為標準格式;ide位為隱性,表示資料幀為擴充套件幀格式。在擴充套件幀中,替代遠端請求(substitute remote request,srr)位為隱性。

仲裁域傳輸順序為從最高位到最低位,其中最高7位不能全為零。rtr的全稱為「遠端傳送請求(remote tran**issionrequest)」。rtr位在資料幀裡必須為「顯性」,而在遠端幀裡必須為「隱性」。

它是區別資料幀和遠端幀的標誌。

3)控制域:控制域由6位組成,包括2個保留位(r0、r1同於can匯流排協議擴充套件)及4位資料長度碼,允許的資料長度值為0~8位元組。

4)資料域:傳送緩衝區中的資料按照長度**指示長度傳送。對於接收的資料,同樣如此。它可為0~8位元組,每個位元組包含8位,首先傳送的是msb(最高位)。

5)crc校驗碼域:它由crc域(15位)及crc邊界符(一個隱性位)組成。crc計算中,被除的多項式包括幀的起始域、仲裁域、控制域、資料域及15位為0的解除填充的位流給定。

此多項式被下列多項式x15+x14+x10+x8+x7+x4+x3+1除(係數按模2計算),相除的餘數即為發至匯流排的crc序列。傳送時,crc序列的最高有效位被首先傳送/接收。之所以選用這種幀校驗方式,是由於這種crc校驗碼對於少於127位的幀是最佳的。

6)應答域:應答域由傳送方發出的兩個(應答間隙及應答界定)隱性位組成,所有接收到正確的crc序列的節點將在傳送節點的應答間隙上將傳送的這一隱性位改寫為顯性位。因此,傳送節點將一直監視匯流排訊號已確認網路中至少一個節點正確地接收到所發資訊。

應答界定符是應答域中第二個隱性位,由此可見,應答間隙兩邊有兩個隱性位:crc域和應答界定位。

7)幀結束域:每一個資料幀或遠端幀均由一串七個隱性位的幀結束域結尾。這樣,接收節點可以正確檢測到一個幀的傳輸結束。

(2)錯誤幀錯誤幀由兩個不同的域組成:第一個域是來自控制器的錯誤標誌;第二個域為錯誤分界符。

1)錯誤標誌:有兩種形式的錯誤標誌。

①啟用(active)錯誤標誌。它由6個連續顯性位組成。

②認可(passive)錯誤標誌。它由6個連續隱性位組成。

它可由其他can匯流排協議控制器的顯性位改寫。

2)錯誤界定:錯誤界定符由8個隱性位組成。傳送了錯誤標誌以後,每一站就傳送一個隱性位,並一直監視匯流排直到檢測出1個隱性位為止,然後就開始傳送其餘7個隱性位。

(3)遠端幀: 遠端幀也有標準格式和擴充套件格式,而且都由6個不同的位域組成:幀起始、仲裁域、控制域、crc域、應答域、幀結尾。

與資料幀相比,遠端幀的rtr位為隱性,沒有資料域,資料長度編碼域可以是0~8個位元組的任何值,這個值是遠端幀請求傳送的資料幀的資料域長度。當具有相同仲裁域的資料幀和遠端幀同時傳送時,由於資料幀的rtr位為顯性,所以資料幀獲得優先。傳送遠端幀的節點可以直接接收資料。

(4)過載幀 過載幀由兩個區域組成:過載標識域及過載界定符域。下述三種狀態將導致過載幀傳送:

1)接收方在接收一幀之前需要過多的時間處理當前的資料(接收尚未準備好);

2)在幀空隙域檢測到顯性位訊號;

3)如果can節點在錯誤界定符或過載界定符的第8位取樣到一個顯性位節點會傳送一個過載幀。

can匯流排出現錯誤幀時,為什麼要區分「錯誤主動」節點和「錯誤認可」節點?有什麼意思?

9樓:最紳士的痞子灬

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

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

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

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

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

10樓:

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

一、正確接收報文:

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匯流排中被動錯誤和主動錯誤的區別是什麼

1.主動報錯站點 只要檢查到錯誤,它立即 主動地 發出錯標識。所謂 出錯標識 它本身版就是一個 錯誤的 權位序列 連續的6個顯性位,不滿足can協議的 最多5個連續的同性位 要求 目的是 主動地 告訴大家 即使你們沒有發現 剛才我已發現 的錯誤,現在我 以身作則 出錯啦 你們該看到這個錯誤了吧 2....

EIB匯流排和CAN匯流排的通訊機制有什麼相同點和不同點

你這個問題只有專門研究現場匯流排協議的才能幫你,就應用來講跨度太大 eib現在的knx主要應用在智慧家居和樓宇自控上,而can我看了看介紹基本屬於工控的範疇,而且是汽車製造。can匯流排訊號採用不歸零位編碼 帶位填充 資料以雙線間差分電壓表示。當隱性的時候 注意表徵為1 can h can l 2....

CAN匯流排裡邊的報文過濾功能是什麼

識別符號就是確定報文傳送優先順序的,can匯流排是一種序列匯流排,匯流排上一次只能傳輸一則報文資訊,如果同時有多個節點需要在匯流排上傳送報文,通過識別符號決定哪個先傳送。兩個can裝置,其中一個設定了過濾模式,另一個傳送id不匹配的報文,請 can匯流排id是包含在報文幀中的.1 主要用作can匯流...