目錄
?編輯
1. CAN 是什么?
2.? 總線拓撲圖
3. CAN 的特點
4. CAN 協議的基本概念
1. CAN 是什么?
CAN 是 Controller Area Network 的縮寫(以下稱為 CAN),是 ISO*1 國際標準化的串行通信協議。
????????在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由于這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應“減少線束的數量”、“通過多個 LAN,進行大量數據的高速通信”的需要,1986 年德國電氣商博世公司開發出面向汽車的 CAN 通信協議。此后,CAN 通過 ISO11898 及 ISO11519 進行了標準化,現在在歐洲已是汽車網絡的標準協議。
????????現在,CAN 的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等方面。
????????圖 1 是車載網絡的構想示意圖。CAN 等通信協議的開發,使多種 LAN 通過網關進行數據交換得以實現。
圖 1? 車載網絡構想
2.? 總線拓撲圖
????????CAN 控制器根據兩根線上的電位差來判斷總線電平。總線電平分為顯性電平和隱性電平,二者必居其一。發送方通過使總線電平發生變化,將消息發送給接收方。
圖 2 是 CAN 的連接示意圖
圖 2? CAN 連接圖
3. CAN 的特點
CAN 協議具有以下特點。
(1) 多主控制
????????在總線空閑時,所有的單元都可開始發送消息(多主控制)。
????????最先訪問總線的單元可獲得發送權(CSMA/CA 方式*1)。
????????多個單元同時開始發送時,發送高優先級 ID 消息的單元可獲得發送權。
(2) 消息的發送
????????在 CAN 協議中,所有的消息都以固定的格式發送。總線空閑時,所有與總線相連的單元都可以開始發送新消息。兩個以上的單元同時開始發送消息時,根據標識符(Identifier 以下稱為 ID)決定優先級。ID 并不是表示發送的目的地址,而是表示訪問總線的消息的優先級。兩個以上的單元同時開始發送消息時,對各消息 ID 的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先級最高)的單元可繼續發送消息,仲裁失利的單元則立刻停止發送而進行接收工作。
(3) 系統的柔軟性
????????與總線相連的單元沒有類似于“地址”的信息。因此在總線上增加單元時,連接在總線上的其它單元的軟硬件及應用層都不需要改變。
(4) 通信速度
????????根據整個網絡的規模,可設定適合的通信速度。
????????在同一網絡中,所有單元必須設定成統一的通信速度。即使有一個單元的通信速度與其它的不一樣,此單元也會輸出錯誤信號,妨礙整個網絡的通信。不同網絡間則可以有不同的通信速度。
(5) 遠程數據請求
????????可通過發送“遙控幀” 請求其他單元發送數據。
(6) 錯誤檢測功能·錯誤通知功能·錯誤恢復功能
????????所有的單元都可以檢測錯誤(錯誤檢測功能)。
????????檢測出錯誤的單元會立即同時通知其他所有單元(錯誤通知功能)。
????????正在發送消息的單元一旦檢測出錯誤,會強制結束當前的發送。強制結束發送的單元會不斷反復地重新發送此消息直到成功發送為止(錯誤恢復功能)。
(7) 故障封閉
????????CAN 可以判斷出錯誤的類型是總線上暫時的數據錯誤(如外部噪聲等)還是持續的數據錯誤(如單元內部故障、驅動器故障、斷線等)。由此功能,當總線上發生持續數據錯誤時,可將引起此故障的單元從總線上隔離出去。
(8) 連接
????????CAN 總線是可同時連接多個單元的總線。可連接的單元總數理論上是沒有限制的。但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加;提高通信速度,則可連接的單元數減少。
4. CAN 協議的基本概念
????????CAN 協議如圖3 所示涵蓋了 ISO 規定的 OSI*1 基本參照模型中的傳輸層、數據鏈路層及物理層。
????????CAN 協議中關于 ISO/OSI 基本參照模型中的傳輸層、數據鏈路層及物理層,具體有哪些定義如圖 4 所示。
圖3??ISO/OSI 基本參照模型