CAN匯流排簡明易懂教程(三)

2021-09-24 21:55:54 字數 2621 閱讀 6766

2023年02月28日 21:42:53 長弓的堅持 閱讀數 5188

二、遠端幀

通過傳送遠端幀,匯流排的節點發出遠端幀,請求以前傳送給它資料幀的節點再傳送一遍。具體傳送哪個資料幀,由遠端幀的識別符號決定。

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

與資料幀相反,遠端幀的rtr位是「隱性」的。它沒有資料場,資料長度**dlc的數值是不受制約的(可以標註為容許範圍0~8裡的任何數值),此數值是相應於資料幀的資料長度**。遠端幀結構如圖所示:

遠端幀結構

三、錯誤幀

錯誤幀由兩個不同的場組成,第乙個場是不同節點提供的錯誤標誌(error flag)的疊加,第二個場是錯誤界定符。

為了能正確地終止錯誤幀,「錯誤認可」的節點要求匯流排至少有長度為3個位時間的匯流排空閒。因此,匯流排的載荷不應為100%。錯誤幀結構如圖:

錯誤幀結構(圖中統一起見出錯幀改為錯誤幀)

(1) 錯誤標誌,有兩種形式的錯誤標誌:啟用錯誤標誌 和 認可錯誤標誌

「啟用錯誤」標誌由6個連續的「顯性」位組成;

「認可錯誤」標誌由6個連續的「隱性」的位組成,除非被其他節點的「顯性」位重寫。

(2) 錯誤界定符,錯誤界定符包括8個「隱性」的位。

錯誤標誌傳送了以後,每乙個節點就傳送乙個「隱性」的位,並一直監視匯流排直到檢測出乙個「隱性」的位為止,然後就開始傳送其餘7個「隱性」位。

四、過載幀

過載幀(overload frame)包括兩個位場:過載標誌 和 過載界定符,其結構如圖:

過載幀結構圖

有三種過載的情況會引發過載標誌的傳送:

接收器的內部情況,需要延遲下乙個資料幀和遠端幀。

在間歇(intermission)的第1和第2位元組檢測到乙個「顯性」位。

這裡有個間歇的概念。我們可以講講。間歇屬於幀間空間的一部分。它包含三個隱性位。間歇期間,所有的站不允許傳送資料幀或遠端幀。它唯一要做的就是標示乙個過載條件。

如果can節點在錯誤界定符或過載界定符的第8位(最後一位)取樣到乙個顯性位,節點會傳送乙個過載幀。該幀不是錯誤幀,錯誤計數器不會增加。

(1)過載標誌(overload flag)

過載標誌由6個「顯性」的位組成。過載標誌的所有形式和「啟用錯誤」標誌的一樣。

(2)過載界定符(overload delimiter)

過載界定符包括8個「隱性」的位。

五、幀間空間

資料幀(或遠端幀)與先行幀的隔離是通過幀間空間實現的,無論此先行幀型別如何(資料幀、遠端幀、錯誤幀、過載幀)。

幀間空間包括間歇、匯流排空閒的位場。如果「錯誤認可」的節點已作為前一報文的傳送器,則其幀間空間除了間歇、匯流排空閒外,還包括稱作「掛起傳送」(暫停傳送)(suspend transmission)的位場。

對於不是「錯誤認可」的節點,或作為前一報文的接收器的節點,其幀間空間如圖:

非 「錯誤認可」幀間空間

對於作為前一報文傳送器的「錯誤認可」的節點,其幀間空間如圖:

「錯誤啟用」幀間空間

(1)匯流排空閒(bus idle)

匯流排空閒的時間是任意的。只要匯流排被認定為空閒,任何等待傳送報文的節點就會訪問匯流排。在傳送其他報文期間,有報文被掛起,對於這樣的報文,其傳送起始於間歇之後的第乙個位。

匯流排上檢測到的「顯性」的位可被解釋為幀的起始。

(2)掛起傳送(suspend transmission)

「錯誤認可」的節點傳送報文後,節點就在下一報文開始傳送之前或匯流排空閒之前發出8個「隱性」的位跟隨在間歇的後面。

如果與此同時另一節點開始傳送報文(由另一節點引起),則此節點就作為這個報文的接收器。

最後用腦圖總結:

再來幾張實物圖:

can匯流排接收晶元

can匯流排控制器晶元

標準資料幀波形捕獲

擴充套件資料幀波形捕獲

CAN匯流排簡明易懂教程 一

先看看工作原理 當 can 匯流排上的乙個節點 站 傳送資料時,它以報文的形式廣播給網路中所有節點,對每個節點來說,無論資料是否是發給自己的,都對其接收。每組報文開頭的11 位字元為識別符號,定義了報文的優先順序,這種報文格式成為面向內容的編制方案。同一系統中識別符號是唯一的,不可能有兩個站傳送具有...

CAN匯流排簡明易懂教程(二)

我們先研究資料幀吧。一,資料幀由 7 個不同位場組成 幀起始 仲裁場 控制場 資料場 crc場 應答場 幀結尾 這裡的位場,就是不同位的組合,這名字起的很爛,讓人看了感覺很抽象。我們來看看這些個不同的位場吧。一開始是一位幀起始,也叫sof。它用顯性位表示,也就是0 它告訴我們,兩個線上有電壓差了,也...

CAN匯流排簡明易懂教程(二)

2018年02月28日 21 36 55 長弓的堅持 閱讀數 4225 我們先研究資料幀吧。一,資料幀由 7 個不同位場組成 幀起始 仲裁場 控制場 資料場 crc場 應答場 幀結尾 這裡的位場,就是不同位的組合,這名字起的很爛,讓人看了感覺很抽象。我們來看看這些個不同的位場吧。一開始是一位幀起始,...