CAN匯流排協議入門學習

2021-10-04 18:44:21 字數 2185 閱讀 5780

can 是 controller area network 的縮寫(以下稱為 can),是 iso *1 國際標準化的序列通訊協議。

在當前的汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統

被開發了出來。由於這些系統之間通訊所用的資料型別及對可靠性的要求不盡相同,由多條匯流排構成的情況很

多,線束的數量也隨之增加。為適應「減少線束的數量」、「通過多個 lan,進行大量資料的高速通訊」的需

要,1986 年德國電氣商博世公司開發出面向汽車的 can 通訊協議。此後,can 通過 iso11898 及 iso11519 進

行了標準化,現在在歐洲已是汽車網路的標準協議。現在,can 的高效能和可靠性已被認同,並被廣泛地應用於工業自動化、船舶、醫療裝置、工業裝置等方面。

can 控制器根據兩根線上的電位差來判斷匯流排電平。匯流排電平分為顯性電平和隱性電平,二者必居其一。發

送方通過使匯流排電平發生變化,將訊息傳送給接收方。

圖1 can 連線圖

三、can 的特點

can 協議具有以下特點。

(1) 多主控制

在匯流排空閒時,所有的單元都可開始傳送訊息(多主控制)。最先訪問匯流排的單元可獲得傳送權(csma/ca 方式 *1 )。多個單元同時開始傳送時,傳送高優先順序 id 訊息的單元可獲得傳送權。

(2) 訊息的傳送

在 can 協議中,所有的訊息都以固定的格式傳送。匯流排空閒時,所有與匯流排相連的單元都可以開始傳送新訊息。兩個以上的單元同時開始傳送訊息時,根據識別符號(identifier 以下稱為 id)決定優先順序。id 並不是表示傳送的目的位址,而是表示訪問匯流排的訊息的優先順序。兩個以上的單元同時開始傳送訊息時,對各訊息 id 的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先順序最高)的單元可繼續傳送訊息,仲裁失利的單元則立刻停止傳送而進行接收工作。

(3) 系統的柔軟性

與匯流排相連的單元沒有類似於「位址」的資訊。因此在匯流排上增加單元時,連線在匯流排上的其它單元的軟硬體及應用層都不需要改變。

(4) 通訊速度

根據整個網路的規模,可設定適合的通訊速度。在同一網路中,所有單元必須設定成統一的通訊速度。即使有乙個單元的通訊速度與其它的不一樣,此單元也會輸出錯誤訊號,妨礙整個網路的通訊。不同網路間則可以有不同的通訊速度。

(5) 遠端資料請求

可通過傳送「遙控幀」 請求其他單元傳送資料。

(6) 錯誤檢測功能·錯誤通知功能·錯誤恢復功能

所有的單元都可以檢測錯誤(錯誤檢測功能)。檢測出錯誤的單元會立即同時通知其他所有單元(錯誤通知功能)。正在傳送訊息的單元一旦檢測出錯誤,會強制結束當前的傳送。強制結束傳送的單元會不斷反覆地重新傳送此訊息直到成功傳送為止(錯誤恢復功能)。

(7) 故障封閉

can 可以判斷出錯誤的型別是匯流排上暫時的資料錯誤(如外部雜訊等)還是持續的資料錯誤(如單元內部故障、驅動器故障、斷線等)。由此功能,當匯流排上發生持續資料錯誤時,可將引起此故障的單元從匯流排上隔離出去。

(8) 連線

can 匯流排是可同時連線多個單元的匯流排。可連線的單元總數理論上是沒有限制的。但實際上可連線的單元數受匯流排上的時間延遲及電氣負載的限制。降低通訊速度,可連線的單元數增加;提高通訊速度,則可連線的單元數減少。

錯誤狀態的種類,單元始終處於 3 種狀態之一。

(1) 主動錯誤狀態

主動錯誤狀態是可以正常參加匯流排通訊的狀態。處於主動錯誤狀態的單元檢測出錯誤時,輸出主動錯誤標誌。

(2) 被動錯誤狀態

被動錯誤狀態是易引起錯誤的狀態。處於被動錯誤狀態的單元雖能參加匯流排通訊,但為不妨礙其它單元通訊,接收時不能積極地傳送錯誤通知。處於被動錯誤狀態的單元即使檢測出錯誤,而其它處於主動錯誤狀態的單元如果沒發現錯誤,整個匯流排也被認為是沒有錯誤的。處於被動錯誤狀態的單元檢測出錯誤時,輸出被動錯誤標誌。另外,處於被動錯誤狀態的單元在傳送結束後不能馬上再次開始傳送。在開始下次傳送前,在間隔幀期間內必須插入「延遲傳送」(8 個位的隱性位)。

(3) 匯流排關閉態

匯流排關閉態是不能參加匯流排上通訊的狀態。資訊的接收和傳送均被禁止。這些狀態依靠傳送錯誤計數和接收錯誤計數來管理,根據計數值決定進入何種狀態。錯誤狀態和計數值的關係如圖。

圖2 錯誤狀態和計數值

CAN匯流排協議

can control controller area network 是控制 器 區域網的簡稱 can是一種有效支援分布式控制或實時控制的序列通訊網路,最初由德國bosch公司80年代用於汽車內部測試和控制儀器之間的資料通訊。目前can 匯流排規範已被國際標準化組織iso制訂為國際標準iso118...

CAN匯流排協議

can control controller area network 是控制 器 區域網的簡稱 can是一種有效支援分布式控制或實時控制的序列通訊網路,最初由德國bosch公司80年代用於汽車內部測試和控制儀器之間的資料通訊。目前can 匯流排規範已被國際標準化組織iso制訂為國際標準iso118...

can匯流排協議(二)

can協議已經由iso標準化,有2個版本,如iso11898和iso11519 2,它們之間在資料鏈路層沒什麼不同,但是在物理層有些區別。1 關於iso11898 這個標準用於高速can通訊。開始的時候,資料鏈路層和物理層都在標準iso11898中規定,後來被拆分為iso11898 1 僅涉及資料鏈...