CAN協議學習(一)協議介紹

2022-05-04 20:54:07 字數 3459 閱讀 1619

can 是

controller area network

的縮寫(以下稱為

can),是

iso

國際標準化的序列通訊協議。

在當前的汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通訊所用的資料型別及對可靠性的要求不盡相同,由多條匯流排構成的情況很多,線束的數量也隨之增加。為適應「減少線束的數量」、「通過多個 lan

,進行大量資料的高速通訊」的需要,

1986

年德國電氣商博世公司開發出面向汽車的

can

通訊協議。此後,

can

通過 iso11898

及 iso11519

進行了標準化,現在在歐洲已是汽車網路的標準協議。

現在,can 的高效能和可靠性已被認同,並被廣泛地應用於工業自動化、船舶、醫療裝置、工業裝置等方面。

圖 1 是車載網路的構想示意圖。

can

等通訊協議的開發,使多種

lan

通過閘道器進行資料交換得以實現。

can控制器用於將欲收發的資訊(報文),轉換為符合can規範的

can幀,通過

can收發器,在

can-bus

上交換資訊。can收發器是can控制器和物理匯流排之間的介面,將

can控制器的邏輯電平轉換為

can匯流排的差分電平,在兩條有差分電壓的匯流排電纜上傳輸資料。拓撲結構如下。

當can節點需要傳送資料時,控制器把要傳送的二進位制編碼通過

can_tx

線傳送到收發器,然後有收發器把這個普通的邏輯電平轉化為差分訊號,通過差分線

can_high

和can_low

線輸出到

can匯流排網路。而通過收發器接收匯流排上的資料到控制器時,則是相反的過程,收發器把匯流排上收到的

can_high

及can_low

訊號轉化為普通的邏輯電平訊號,通過

can_rx

輸出到控制器中。

由於can匯流排協議的物理層只有

1對差分線,在乙個時刻只能表示乙個訊號,所以對通訊節點來說,

can通訊是半雙工的,收發資料需要分時進行。

舉例來說,例如某can收發器:

can_h-can_l < 0.5v 時候為隱性的,邏輯訊號表現為"邏輯

1"-

高電平。

can_h-can_l > 0.9v 時候為顯性的,邏輯訊號表現為"邏輯

0"-

低電平。

如下表:

個人理解,將rx和

tx上的數碼訊號轉化為

canh

和canl

兩根線上的高低電平的好處是能增強傳輸過程的容錯率。

can 協議採用簡化osi參考模型

,涵蓋了 iso 規定的

osi基本參照模型中的傳輸層、資料鏈路層及物理層,

osi參考模型如下表所示。其應用層協議由其他高層協議實現,比如

canopen

和devicenet

等等。can 協議中關於

iso/osi

基本參照模型中的傳輸層、資料鏈路層及物理層,具體有哪些定義下圖所示。

資料鏈路層分為 mac 子層和

llc

子層,mac

子層是

can

協議的核心部分。

資料鏈路層的功能是將物理層收到的訊號組織成有意義的訊息,並提供傳送錯誤控制等傳輸控制的流程。具體地說,就是訊息的幀化、仲裁、應答、錯誤的檢測或報告。資料鏈路層的功能通常在can 控制器的硬體中執行。

在物理層定義了訊號實際的傳送方式、位時序、位的編碼方式及同步的步驟。但具體地說,訊號電平、通訊速度、取樣點、驅動器和匯流排的電氣特性、聯結器的形態等均未定義。這些必須由使用者根據系統需求自行確定。

通訊是通過以下 5 種型別的幀進行的。

• 資料幀

• 遙控幀

• 錯誤幀

• 過載幀

• 幀間隔

另外,資料幀和遙控幀有標準格式和擴充套件格式兩種格式。標準格式有 11 個位的識別符號(

identifier:

以下稱

id),擴充套件格式有

29 個位的 id。

各種幀的用途如下表所示。

下面具體介紹資料幀格式,包括標準幀格式和拓展幀格式。

can 標準幀資訊為

11個位元組,包括兩部分:資訊和資料部分。前

3個位元組為資訊部分。

位元組1為幀資訊。第7位(

ff)表示幀格式,在標準幀中,ff=

0;第6位(

rtr)表示幀的型別,

rtr=0

表示為資料幀,

rtr=1

表示為遠端幀;

dlc表示在資料幀時實際的資料長度,範圍0-8。

位元組2、

3為報文識別碼,

11位有效。

位元組4~

1為資料幀的實際資料,遠端幀時無效。

can 擴充套件幀資訊為

13個位元組,包括兩部分,資訊和資料部分。前

5個位元組為資訊部分。

位元組1為幀資訊。第7位(

ff)表示幀格式,在擴充套件幀中,ff=

1;第6位(

rtr)表示幀的型別,

rtr=0

表示為資料幀,

rtr=1

表示為遠端幀;

dlc

表示在資料幀時實際的資料長度,範圍0-8。

位元組2~

5為報文識別碼,其高

29位有效。

位元組6~

13資料幀的實際資料,遠端幀時無效。

CAN協議學習(一)

1 在匯流排空閒時,所有單元都可以傳送訊息,兩個以上單元同時傳送訊息時,對各訊息的identifier進行逐位仲裁比較,仲裁獲勝的單元 具有較高優先順序 可繼續傳送訊息,仲裁失敗的單元停止傳送。2 訊息中沒有位址,訊息廣播到匯流排上,任何匯流排上的單元都可以接收訊息。在匯流排上增加單元,不會影響到其...

Diameter協議學習筆記一 協議介紹

一 摘要 diameter協議主要為應用程式提供認證 鑑權 計費框架,即aaa,並支援本地aaa和漫遊場景下的aaa。二 介紹 aaa協議 例如tacacs radius起初是為了提供ppp及終端接入,隨著internet及新的接入技術的發展,包括無線 dsl 移動ip,乙太網路由 網路訪問伺服器 ...

CAN匯流排協議入門學習

can 是 controller area network 的縮寫 以下稱為 can 是 iso 1 國際標準化的序列通訊協議。在當前的汽車產業中,出於對安全性 舒適性 方便性 低公害 低成本的要求,各種各樣的電子控制系統 被開發了出來。由於這些系統之間通訊所用的資料型別及對可靠性的要求不盡相同,由...