CAN是Controller Area Network 的縮寫(如下稱爲CAN),是ISO國際標準化的串行通訊協議。在汽車產業中,出於對安全性、溫馨性、方便性、低公害、低成本的要求,各類各樣的電子控制系統被開發了出來。因爲這些系統之間通訊所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的狀況不少,線束的數量也隨之增長。爲適應"減小線束的數量"、"經過多個LAN進行大量數據的高速通訊"的須要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通訊協議。此後CAN 經過ISO11898 及ISO11519 進行了標準化,在歐洲已經是汽車網絡的標準協議。數組
CAN 的高性能和可靠性已被認同,並被普遍地應用於工業自動化、船舶、醫療設備、工業設備等方面。現場總線是當今自動化領域技術發展的熱點之一,被譽爲自動化領域的計算機局域網。它的出現爲分佈式控制系統實現各節點之間實時、可靠的數據通訊提供了強有力的技術支持。安全
CAN總線是德國BOSCH公司從80年代初爲解決現代汽車中衆多的控制與測試儀器之間的數據交換而開發的一種串行數據通訊協議。它是一種多主總線,通訊介質能夠是雙絞線、同軸電纜或光導纖維,通訊速率最高可達1Mbps。網絡
CAN總線通訊接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對通訊數據的成幀處理,包括位填充、數據塊編碼、循環冗餘檢驗、優先級判別等項工做。異步
CAN協議的一個最大特色是廢除了傳統的站地址編碼,而代之以對通訊數據塊進行編碼。採用這種方法的優勢可以使網絡內的節點個數在理論上不受限制,數據塊的標識符可由11位或29位二進制數組成,所以能夠定義2或2個以上不一樣的數據塊,這種按數據塊編碼的方式,還可以使不一樣的節點同時接收到相同的數據,這一點在分佈式控制系統中很是有用。數據段長度最多爲8個字節,可知足一般工業領域中控制命令、工做狀態及測試數據的通常要求。同時,8個字節不會佔用總線時間過長,從而保證了通訊的實時性。CAN協議採用CRC檢驗並可提供相應的錯誤處理功能,保證了數據通訊的可靠性。CAN卓越的特性、極高的可靠性和獨特的設計,特別適合工業過程監控設備的互連,所以,愈來愈受到工業界的重視,並已公認爲最有前途的現場總線之一。分佈式
CAN總線採用了多主競爭式總線結構,具備多主站運行和分散仲裁的串行總線以及廣播通訊的特色。CAN總線上任意節點可在任意時刻主動地向網絡上其它節點發送信息而不分主次,所以可在各節點之間實現自由通訊。CAN總線協議已被國際標準化組織認證,技術比較成熟,控制的芯片已經商品化,性價比高,特別適用於分佈式測控系統之間的數據通信。CAN總線插卡能夠任意插在PC AT XT兼容機上,方便地構成分佈式監控系統。oop
只有2根線與外部相連,而且內部集成了錯誤探測和管理模塊。性能
CAN總線特色:測試
(1) 數據通訊沒有主從之分,任意一個節點能夠向任何其餘(一個或多個)節點發起數據通訊,靠各個節點信息優先級前後順序來決定通訊次序,高優先級節點信息在134μs通訊。大數據
(2) 多個節點同時發起通訊時,優先級低的避讓優先級高的,不會對通訊線路形成擁塞; (3) 通訊距離最遠可達10KM(速率低於5Kbps)速率可達到1Mbps(通訊距離小於40M)。(4) CAN總線傳輸介質能夠是雙絞線,同軸電纜。CAN總線適用於大數據量短距離通訊或者長距離小數據量,實時性要求比較高,多主多從或者各個節點平等的現場中使用。編碼
國際標準化組織ISO對通訊系統的詳細劃分如圖31所示
圖31 ISO國際標準化組織對通訊系統的劃分
CAN總線規範定義了ISO模型中的物理層和數據鏈路層。
在SylixOS在應用層和數據鏈路層中間還加了一層系統層,上層應用經過調用操做系統提供的相應的接口實現對底層數據鏈路層的操做和控制。
圖32 CAN總線協議層框圖
一些國際組織定義了應用層,如CIA組織的CANopen、ODVA組織的DeviceNet等,也有一些用戶根據需求自行設計應用層。
CAN總線有ISO11898和ISO11519兩個通訊標準,此兩個標準中差分電平的特性不相同如圖4-3所示。
圖43 ISO11898和ISO11519標準
ISO11898和ISO11519-2的CAN_H和CAN_L的電平值是不同的(注:通過CAN控制器出來的信號是TTL 電頻(RX和TX),RX 或TX 的TTL電平通過CAN收發器之後出來的是CAN_H和CAN_L的差分信號)。如今用的大多數器件採用的都是ISO11898協議。
爲什麼CAN要採起差分信號傳輸數據?
雙絞線上傳輸差分信號,共振干擾使信號線上產生相同幅度和相位的該擾脈衝如圖44所示。
圖44CAN總線傳輸時CAN_H和CAN_L電平信號圖
線路受到共模信號干擾後,信號差值不變,信號依然正確傳輸。
CAN總線採用的是異步串行通訊的方式沒有時鐘線,按照約定的頻率採樣數據如圖15所示。
圖55異步串行通訊採樣介紹
採用同步採樣會帶來一些,因爲沒有時鐘線,信號的接收者內部定時採集數據,因爲系統時鐘的誤差,或者波特率的誤差會產生數據的讀取錯誤如圖56所示。
圖56波特率採樣誤差
CAN總線是如何進行同步的呢?如圖57所示。
圖57CAN信號同步
CAN總線以信號跳變沿做爲同步時刻,有效的把累計偏差限制在兩個跳變沿之間。
可是這樣作任然有一個問題,就是在長時間連續高電平或者低電平中後仍然會有較大的累計偏差,仍然會有數據出錯的狀況。
CAN總線的設計者們也考慮到了這種狀況如圖58所示。
圖58 CAN同步機制
在連續的5個相同的位以後插入一個相位,產生一個跳變沿,再結合上面以信號跳變沿做爲同步時刻,有效消除了累計偏差保證了CAN總線數據的可靠性(注:填充的這個相位是硬件上自動完成無需軟件設計完成)
《項目驅動--CAN-BUS現場總線基礎教程----周立功,黃曉清》。
《現場總線技術及其應用第二版–清華大學出版社》。