CAN匯流排之CAN的基本概念

2021-08-15 21:36:35 字數 954 閱讀 4481

一、can匯流排電平的顯性和隱性

can包括can_h和can_l兩條線,使用的是差分訊號,在**的時候,兩條線的電壓相同,壓差為0。當壓差超過一定的閾值的時候,匯流排的狀態就變為顯性,假設在匯流排上掛了2個器件1,2.器件1將匯流排設為顯性,而同時器件2將匯流排設為**。最終匯流排的狀態會呈現為顯性。所以當匯流排上的所有器件都為**時,匯流排的狀態才為**。如果有乙個器件為顯性,則匯流排為顯性。can匯流排的仲裁也是按照這個原理,當匯流排狀態與自身狀態不一致時會進入監聽狀態。

二、can匯流排仲裁

當匯流排上的幾個器件同時傳送資料的時候,can匯流排必須決定哪個器件可以傳送,而其他的器件必須等待。衝突裁決是can協議最重要的乙個特性,也是can匯流排做的最漂亮的地方,用很小的成本就解決了這個問題。

匯流排上的每乙個can器件都會有乙個唯一的id。id的大小決定了器件的優先順序。id越小優先順序越高。如果幾個器件同時傳送資料,id小的優先傳送。以下圖為例,匯流排上有a,b,c三個器件。a首先傳送資料。當匯流排上有器件傳送資料時,其他器件只能處於監聽模式,所以b,c雖然有傳送資料的需求但是只能等待a傳送結束。當a傳送結束之後,b,c同時傳送,但是b的id更小,b優先傳送。b傳送結束之後c才可以傳送;

詳細的總裁過程為:

can匯流排控制器在傳送資料的同時監控匯流排電平,如果電平不同,則停止傳送並做其他處理。如果該位位於仲裁段,則退出匯流排競爭;如果位於其他段,則產生錯誤事件。(來自部落格

幀id越小,優先順序越高。由於資料幀的rtr位為顯性電平,遠端幀為隱性電平,所以幀格式和幀id相同的情況下,資料幀優先於遠端幀;由於標準幀的ide位為顯性電平,擴充套件幀的ide位為**電平,對於前11位id相同的標準幀和擴充套件幀,標準幀優先順序比擴充套件幀高。

CAN匯流排之CAN的報文格式

來自部落格 一 幀can協議的報文傳輸主要由下面的4種幀來實現 資料幀 從傳送端攜帶資料到接收端。遠端幀 匯流排單元發出遠端幀,請求傳送具有同一識別符的資料幀。錯誤幀 任何單元檢測到一匯流排錯誤就發出錯誤幀。過載幀 過載幀用以在先行的和後續的資料幀 或遠端幀 之間提供一附加的延時。同時幀間空間用來間...

CAN筆記(4) 協議基本概念

can 協議涵蓋了 iso 規定的 osi 1 基本參照模型中的傳輸層 資料鏈路層及物理層 層數iso osi 基本參照模型 各層定義的主要專案 7 層應用層 由實際應用程式提供可利用的服務 6 層表示層 進行資料表現形式的轉換,如 文字設定 資料壓縮 加密等的控制 5 層會話層 為建立會話式的通訊...

CAN匯流排協議 CAN訊息之「報文型別」

can有四種不同的報文型別 資料幀 遠端幀 錯誤指示幀和超載幀。1 資料幀 can協議有兩種資料幀型別 標準can和擴充套件can 見上文 乙個資料幀中包括7個主要的域 幀起始域 標誌資料幀的開始,由乙個顯性位組成。仲裁域 內容由標示符和遠端傳輸請求位 rtr 組成,rtr用以表明此資訊幀是資料幀還...