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 國際標準化的序列通訊協議。在當前的汽車產業中,出於對安全性 舒適性 方便性 低公害 低成本的要求,各種各樣的電子控制系統 被開發了出來。由於這些系統之間通訊所用的資料型別及對可靠性的要求不盡相同,由...