CAN,全稱為“Controller Area Network”,即控制器局域網,是國際上應用最廣泛的現場總線之一。最初,CAN被設計作為汽車環境中的微控制器通訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網絡。比如:發動機管理系統、變速箱控制器、儀表裝備、電子主干系統中,均嵌入CAN控制裝置。
一個由CAN 總線構成的單一網絡中,理論上可以掛接無數個節點。實際應用中,節點數目受網絡硬件的電氣特性所限制。CAN 可提供高達1Mbit/s的數據傳輸速率,這使實時控制變得非常容易。另外,硬件的錯誤檢定特性也增強了CAN的抗電磁干擾能力。
CAN總線技術原理
CAN總線使用串行數據傳輸方式,可以1Mb/s的速率在40m的雙絞線上運行,也可以使用光纜連接,而且在這種總線上總線協議支持多主控制器。CAN與I2C總線的許多細節很類似,但也有一些明顯的區別。
當CAN總線上的一個節點(站)發送數據時,它以報文形式廣播給網絡中所有節點。對每個節點來說,無論數據是否是發給自己的,都對其進行接收。
每組報文開頭的11位字符為標識符,定義了報文的優先級,這種報文格式稱為面向內容的編址方案。在同一系統中標識符是唯一的,不可能有兩個站發送具有相同標識符的報文。當幾個站同時競爭總線讀取時,這種配置十分重要。
當一個站要向其它站發送數據時,該站的CPU將要發送的數據和自己的標識符傳送給本站的CAN芯片,并處于準備狀態;當它收到總線分配時,轉為發送報文狀 態。
CAN芯片將數據根據協議組織成一定的報文格式發出,這時網上的其它站處于接收狀態。每個處于接收狀態的站對接收到的報文進行檢測,判斷這些報文是否是發給自己的,以確定是否接收它。
由于CAN總線是一種面向內容的編址方案,因此很容易建立高水準的控制系統并靈活地進行配置。我們可以很容易地在CAN總線中加進一些新站而無需在硬件或 軟件上進行修改。
當所提供的新站是純數據接收設備時,數據傳輸協議不要求獨立的部分有物理目的地址。它允許分布過程同步化,即總線上控制器需要測量數據時,可由網上獲得,而無須每個控制器都有自己獨立的傳感器。
CAN支持四類信息幀類型
1、數據幀
CAN協議有兩種數據幀類型標準2.0A和標準2.0B。兩者本質的不同在于ID的長度不同。在2.0A類型中,ID的長度為l l位;在2.0B類型中ID為29位。一個信息震中包括7個主要的域:幀起始域——標志數據幀的開始,由一個顯性位組成。
仲裁域——內容由標示符和遠程傳輸請求位(RTR)組成,RTR用以表明此信息幀是數據幀還是不包含任何數據的遠地請求幀。當2.0A的數據幀和2.0B的數據幀必須在同一條總線上傳輸時,首先判斷其優先權,如果ID相同,則非擴展數據幀的優先權高于擴展數據幀。
控制域——r0、r1是保留位,作為擴展位,DLC表示一幀中數據字節的數目。數據域——包含0~8字節的數據。
校驗域——檢驗位錯用的循環冗余校驗域,共15位。應答域——包括應答位和應答分隔符。正確接收到有效報文的接收站在應答期間將總線值為顯性電平。幀結束——由七位隱性電平組成。
2、遠程幀
遠程幀接受數據的節點可通過發遠程幀請求源節點發送數據。它由6個域組成:幀起始、仲裁域、控制域、校驗域、應答域、幀結束。
3、錯誤指示幀
錯誤指示幀由錯誤標志和錯誤分界兩個域組成。接收節點發現總線上的報文有誤時,將自動發出“活動錯誤標志”其他節點檢測到活動錯誤標志后發送“錯誤認可標志”。
4、超載幀
超載幀由超載標志和超載分隔符組成。超載幀只能在一個幀結束后開始。當接收方接收下一幀之前,需要過多的時間處理當前的數據,或在幀問空隙域檢測到顯性電平時,則導致發送超載幀。
5、幀間空隙
幀間空隙位于數據幀和遠地幀與前面的信息幀之間,由幀間空隙和總線空閑狀態組成。幀間空隙是必要的,在此期間, CAN不進行新的幀發送,為的是CAN控制器在下次信息傳遞前有時間進行內部處理操作。當總線空閑時CAN控制器方可發送數據。
CAN總線的發展歷程
在 1980 年的早些時候,Bosch 公司的工程師就開始論證當時的串行總線用于客車系統的可行性。因為沒有一種現成的網絡方案能夠完全滿足汽車工程師們的要求,于是,在 1983 年初,Uwe Kiencke ?開始研究一種新的串行總線。
新總線的主要方向是增加新功能、減少電氣連接線 ,使其能夠用于產品。來自 Mercedes-Benz ?的工程師較早制定了總線的狀態說明,而 Intel 也準備作為半導體生產的主要廠商。
1986 年 2 月,CAN 誕生了。在底特律的汽車工程協會大會上,由 Bosch 公司研究的新總線系統被稱為“汽車串行控制器局域網” 。Uwe Kiencke、 Siegfried Dais ?和 Martin Litschel 分別介紹了這種多主網絡方案。
此方案基于非破壞性的仲裁機制,能夠確保高優先級報文的無延遲傳輸。并且,不需要在總線上設置主控制器。此外,CAN 之父——上述幾位教授和 Bosch 公司的 Wolfgang Borst、Wolfgang Botzenhard、Otto Karl、Helmut Schelling、Jan Unruh ?已經實現了數種在 CAN 中的錯誤檢測機制。
該錯誤檢測也包括自動斷開故障節點功能,以確保能繼續進行剩余節點之間的通訊。傳輸的報文并非根據報文發送器/接收器的節點地址識別,而是根據報文的內容識別。同時,用于識別報文的標識符也規定了該報文在系統中的優先級。
當關于這種革新的通訊方案的大部分文字內容制定之后,于 1987 年中期,Intel 提前計劃 2 個月交付了首枚 CAN 控制器:82526,這是 CAN 方案首次通過硬件實現。僅僅用了四年的時間,設想就變成了現實。
不久之后,Philips ?半導體推出了 82C200。這兩枚最先的 CAN 控制器在驗收濾波和報文控制方面有許多不同。一方面,由Intel主推的FullCAN比由Philips主推的BasicCAN占用較少的CPU載荷;另一方面, FullCAN器件所能接收的報文數目相對受到限制,BasicCAN 控制器僅需較少的硅晶體。
今天的 CAN 控制器中,“孫子”輩們在同一模塊中的驗收濾波和報文控制方面仍有相當的不同,制造出 BasicCAN 和 FullCAN 兩大陣營。
標準化與一致性。
盡管當初研究 CAN 的起點是應用于客車系統,但 CAN 的第一個市場應用卻來自于其他領域。特別是在北歐,CAN 早已得到非常普遍的應用。在荷蘭,電梯廠商 Kone 使用 CAN ?總線。
瑞士工程辦公室 Kvaser已建議將 CAN 應用至一些紡織機械廠(Lindauer Dornier 和 Sulzer),并由他們提供機器的通訊協議。這一領域中,在 Lars-Berno Fredriksson 的領導下,公司建立了“CAN 紡織機械用戶集團”。
到 1989 年,他們已研究出通訊原理,并于 1990 年早期幫助建立“CAN Kingdom”開發環境。盡管 CAN Kingdom 并不是一種基于 OSI 參考模型的應用層,但它被認為是基于 CAN 的高層協議的原型。
在荷蘭,Philips 醫療系統決定使用 CAN 構成 X 光機的內部網絡,成為 CAN 的工業用戶。大多數 CAN 的先行者使用單片電路的方法,通訊功能、網絡管理、應用代碼組合在同一個軟件之中。即使一些用戶有較多的標準模塊可供利用,但面對所有的解決方案,他們也一定存在著缺陷。
在 1990 年的早些時候,開始籌劃成立一個用戶組織,從而將不同的解決方案標準化。
J1939,這也是一個基于 CAN 的應用子協議,由 SAE 的 Truck and Bus 協會制定。J1939是一個非模塊化的方案,簡單易學,但靈活性很差。當然,生產 CAN 模塊集成器件的 15 家半導體廠商主要聚焦于汽車工業。
從 1990 年中期起,Infineon公司和 Motorola 公司已向歐洲的客車廠商提供了大量的 CAN 控制器。從 1990 年后期起,遠東的半導體廠商也開始提供 CAN 控制器。1994 年,NEC ?推出了CAN 芯片 72005。
從 1992 年起,Mercedes-Benz開始在他們的高級客車中使用 CAN 技術。第一步使用電子控制器通過 CAN 對發動機進行管理;第二步使用控制器接收人們的操作信號。這就使用了 2 個物理上獨立的CAN 總線系統,它們通過網關連接。其他的客車廠商也紛紛趕來斯圖加特學習,在他們的客車上也使用 2套 CAN 總線系統。
盡管 CAN 協議已經有很長的歷史,但它仍處在改進之中。一個由數家公司組成的 ISO任務組織定義了一種時間觸發 CAN 報文傳輸的協議。現在,CAN 在全球市場上仍然處于起始點,汽車廠商將會在他們所生產汽車的串行部件上使用 CAN。
另外,大量潛在的新應用(例如:娛樂)正在呈現——不僅可用于汽車,也可用于家庭消費。同時,結合高層協議應用的特殊保安系統對 CAN 的需求也正在穩健增長。德國專業委員會 BIA 和德國安全標準權威 TüV ?已經對一些基于 CAN 的保安系統進行了認證。
CAN總線的分層結構
CAN遵從OSI模型,按照OSI基準模型,CAN結構劃分為兩層:數據鏈路層和物理層,如下圖所示。
按照IEEE 802.2和802.3 標準,數據鏈路層又劃分為:
1、邏輯鏈路控制(LLC-Logic Link Control)。
2、媒體訪問控制(MAC-Medium Access Control)。
物理層又劃分為:
1、物理信令(PLS-Physical Signalling)。
2、物理媒體附屬裝置(PMA-Physical Medium Attachment)。
3、媒體相關接口(MDI-Medium Dependent Interface)。
MAC子層運行借助稱之為“故障界定實體(FCE)”的管理實體進行監控。故障界定是使判別短暫干擾和永久性故障成為可能的一種自檢機制。物理層可借助檢測和管理物理媒體故障實體進行監控(例如總線短路或中斷,總線故障管理)。
LLC和MAC兩個同等的協議實體通過交換幀或協議數據單元(PDU-Protocol Data Unit)和(N)-用戶數據組成,為傳送一個NPDU,(N-1)層實體必須通過(N-1)服務訪問點(SAP-Service Access Point)[(N-1)-SAP].NPDU借助于(N-1)層服務數據單元(SDU-Service Data U nit)[(N-1)-SDU]傳至(N-1)層,其服務功能允許NPDU的傳送。
SDU是接口數據,對其識別預先在(N)層實體間進行,亦即,它表示邏輯數據單元由服務進行傳送。CAN協議的數據鏈層既不提供分配一個SDU至多個PDU,也不提供分配多個SDU至一個PDU的方法,亦即,NPDU直接由相應的NSDU和層指定控制信息N-PCI構成。
CAN總線的特點
CAN具有十分優越的特點,使人們樂于選擇。這些優越的特點包括:
1、多主控制
當總線空閑時,連接到總線上的所有單元都可以啟動發送信息,這就是所謂的多主控制的概念。
先占有總線的設備獲得在總線上進行發送信息的資格。這就是所謂的CSMA/CR(Carrier Sense MultipleAccess/Collosion Avoidance)方法
如果多個設備同時開始發送信息,那么發送最高優先級ID消息的設備獲得發送資格。
2、信息的發送
在CAN協議中,所有發送的信息要滿足預先定義的格式。當總線沒有被占用的時候,連接在總線上的任何設備都能起動新信息的傳輸,如果兩個或更多個設備在同時刻啟動信息的傳輸,通過ID來決定優先級。ID并不是指明信息發送的目的地,而是指示信息的優先級。
如果2個或者更多的設備在同一時刻啟動信息的傳輸,在總線上按照信息所包含的ID的每一位來競爭,贏得競爭的設備(也就是具有最高優先級的信息)能夠繼續發送,而失敗者則立刻停止發送并進入接收操作。因為總線上同一時刻只可能有一個發送者,而其它均處于接收狀態,所以,并不需要在底層協議中定義地址的概念。
3、系統的靈活性
連接到總線上的單元并沒有類似地址這樣的標識,所以,添加或去除一個設備,無需改變軟件和硬件,或其它設備的應用層軟件。
4、通信速度
可以設置任何通訊速度,以適應網絡規模。
對一個網絡,所有單元必須有相同的通訊速度,如果不同,就會產生錯誤,并妨礙網絡通訊,然而,不同網絡間可以有不同的通訊速度。
5、遠程數據請求
可以通過發送“遙控幀”,請求其他單元發送數據。
6、錯誤檢測、錯誤通知、錯誤恢復功能
所有單元均可以檢測出錯誤(錯誤檢測功能)。檢測到錯誤的單元立刻同時通知其它所有的單元(錯誤通知功能)。如果一個單元發送信息時檢測到一個錯誤,它會強制終止信息傳輸,并通知其它所有設備發生了錯誤,然后它會重傳直到信息正常傳輸出去(錯誤恢復功能)。
7、錯誤隔離
在CAN總線上有兩種類型的錯誤:暫時性的錯誤(總線上的數據由于受到噪聲的影響而暫時出錯);持續性的錯誤(由于設備內部出錯(如驅動器壞了、連接有問題等)而導致的)。CAN能夠區別這兩種類型,一方面降低常出錯單元的通訊優先級以阻止對其它正常設備的影響,另一方面,如果是一種持續性的錯誤,將這個設備從總線上隔離開。
8、連接
CAN總線允許多個設備同時連接到總線上且在邏輯上沒有數目上的限制。然而由于延遲和負載能力的限制,實際可連接得設備還是有限制的,可以通過降低通訊速度來增加連接的設備個數。相反,如果連接的設備少,通訊的速度可以增加。
CAN與其它通信方案的比較
CAN總線與其它通信網的不同之處在于:
一是報文傳送中不包含目標地址,它是以全網廣播為基礎。各接收站根據報文中反映數據性質的標識符過濾報文,該收的收下,不該收的丟棄。其好處是可在線上網下網、即插即用和多站接收;
二是特別強化了對數據安全性的關注,滿足控制系統及其它較高數據要求的系統需求。
在實踐中,有兩種重要的總線分配方法:按時間表分配和按需要分配。在第一種方法中,不管每個節點是否申請總線,都對每個節點按最大期間分配。由此,總線可被分配給每個站并且是唯一的站,而不論其是立即進行總線存取或在一特定時間進行總線存取。
這將保證在總線存取時有明確的總線分配。在第二種方法中,總線按傳送數據的基本要求分配給一個站,總線系統按站希望的傳送分配。因此,當多個站同時請求總線存取時,總線將終止所有站的請求,這時將不會有任何一個站獲得總線分配。為了分配總線,多于一個總線存取是必要的。
CAN實現總線分配的方法,可保證當不同的站申請總線存取時,明確地進行總線分配。這種位仲裁的方法可以解決當兩個站同時發送數據時產生的碰撞問題。不同于Ethernet網絡的消息仲裁,CAN的非破壞性解決總線存取沖突的方法,確保在不傳送有用消息時總線不被占用。
甚至當總線在重負載情況下,以消息內容為優先的總線存取也被證明是一種有效的系統。雖然總線的傳輸能力不足,所有未解決的傳輸請求都按重要性順序來處理。在CSMA/CD這樣的網絡中,如Ethernet,系統往往由于過載而崩潰,而這種情況在CAN中不會發生。
CAN總線的應用
CAN總線在組網和通信功能上的優點以及其高性價比據定了它在許多領域有廣闊的應用前景和發展潛力。這些應用有些共同之處:CAN實際就是在現場起一個總線拓撲的計算機局域網的作用。
不管在什么場合,它負擔的是任一節點之間的實時通信,但是它具備結構簡單、高速、抗干擾、可靠、價位低等優勢。CAN總線最初是為汽車的電子控制系統而設計的,目前在歐洲生產的汽車中CAN的應用已非常普遍,不僅如此,這項技術已推廣到火車、輪船等交通工具中。
汽車制造中的應用
應用CAN總線,可以減少車身布線,進一步節省了成本,由于采用總線技術,模塊之間的信號傳遞僅需要兩條信號線。布線局部化,車上除掉總線外其他所有橫貫車身的線都不再需要了,節省了布線成本。
CAN總線系統數據穩定可靠,CAN總線具有線間干擾小、抗干擾能力強的特點。CAN總線專為汽車量身定做,充分考慮到了汽車上惡劣工作環境,比如點火線圈點火時產生的強大的反充電壓,電渦流緩沖器切斷時產生的浪涌電流及汽車發動機倉100℃左右的高溫。
隨著安全性能日益受到重視,安全氣囊也將逐漸增多,以前是在駕駛員前面安裝一個,今后側面與后座都會安裝安全氣囊,這些氣囊通過傳感器感受碰撞信號,通過CAN總線將傳感器信號傳送到一個中央處理器內,控制各安全氣囊的啟動彈出動作。
同時,先進的防盜設計也正基于CAN總線網絡技術。首先,確認鑰匙合法性的校驗信息通過CAN網絡進行傳遞,改進了加密算法,其校驗的信息比以往的防盜系統更豐富;其次,車鑰匙、防盜控制器和發動機控制器相互儲存對方信息,而且在校驗碼中攙雜隨機碼,無法進行破譯,從而提高防盜系統的安全性。而這些功能的實現無一不借助CAN總線來完成,CAN總線成為汽車智能化控制的“定海神針”。
在現代轎車的設計中,CAN已經成為必須采用的裝置。奔馳、寶馬、大眾、沃爾沃、雷諾等汽車都采用了CAN作為控制器聯網的手段。據報道,中國首輛CAN網絡系統混合動力轎車已在奇瑞公司試裝成功,并進行了初步試運行。
在上海大眾的帕薩特和POLO汽車上也開始引入了CAN總線技術。但總的來說,目前CAN總線技術在我國汽車工業中的應用尚處于試驗和起步階段,絕大部分的汽車還沒有采用汽車總線設計。國內在技術、設計和應用上進行網絡總線的“深造”勢在必行。
大型儀器設備中的應用
大型儀器設備是一種參照一定步驟對多種信息采集、處理、控制、輸出等操作的復雜系統。過去這類儀器設備的電子系統往往是在結構和成本方面占據相當大的部分,而且可靠性不高。采用CAN總線技術后,在這方面有了明顯改觀。
以醫療設備為例,病理分布式監控系統分別由中央控制式的中央監控單元和現場采集單元。現場采集單元對醫院各室診斷測量儀器進行數據、圖像的實時采集,同時完成數據統計、存貯;中央監控單元可以定期或不定期地從現場采集單元獲取數據并完成圖像監測、數據統計、報表、打印及數據庫管理。
中央監控單元和現場采集單元之間通過CAN總線連接在一起,在這個網絡中,中央監控單元處于主控位置,而現場采集單元可以隨時響應中央監控單元的命令。其現場采集單元由單片機8C552及采集、存儲、顯示、遙控和通信模塊組成,每個現場采集單元可與10個測量儀器相接。
Can總線是針對測控領域設計的,所以一次傳輸的報文量很小,一次報文量最大能夠承載的數據上限為8字節,這種小數據量的傳輸一方面能夠使得低優先級事務的傳輸,另一方面也非常符合測控需求。針對can總線技術的諸多優點,非常適合應用于大型儀器系統模塊化之間的互相通信,采用模塊化組網的方式構建大型儀器系統。
工業控制中的應用
隨著計算機技術、通信技術和控制技術的發展,傳統的工業控制領域正經歷著一場前所未有的變革,而工業控制的網絡化,更拓展了工業控制領域的發展空間,帶來新的發展機遇。在廣泛的工業領域,CAN總線可作為現場設備級的通信總線,而且與其他的總線相比,具有很高的可靠性和性能價格比。這將是CAN技術開發應用的一個主要的方向。
例如,瑞士一家公司開發的軸控制系統ACS-E就帶有CAN接口。該系統可作為工業控制網絡中的一個從站,用于控制機床、機器人等。一方面通過CAN總線上上位機通信,另一方面可通過CAN總線對數字式伺服電機進行控制。通過CAN總線最多可連接6臺數字式伺服電機。
目前CAN總線技術在工程機械上的應用越來越普遍。國際上一些著名的工程機械大公司如CAT、VOLVO、利勃、海爾等都在自己的產品上廣泛采用CAN總線技術,大大提高了整機的可靠性、可檢測和可維修性,同時提高了智能化水平。而在國內,CAN總線控制系統也開始在工程汽車的控制系統中廣泛應用,在工程機械行業中也正在逐步推廣應用。
智能家庭和生活小區管理中的應用
小區智能化是一個綜合性系統工程,要從其功能、性能、成本、擴充能力及現代相關技術的應用等多方面來考慮。基于這樣的需求,采用CAN技術所設計的家庭智能管理系統比較適合用于多表遠傳、防盜、防火、防可燃氣體泄漏、緊急救援、家電控制等方面。
CAN總線是小區管理系統的一部分,負責將家庭中的一些數據和信號收集起來,并送到小區管理中心處理,CAN總線上的節點是每戶的家庭控制器、小區的三表抄收系統和報警監測系統,每戶的家庭控制系統可通過總線發送報警信號,定期向自動抄表系統發送三表數據,并接收小區管理系統的通告信息,如欠費通知、火警警報等。
該系統充分利用CAN技術的特點和優勢,構成住宅小區智能化檢測系統,系統集多表集抄、防盜報警、水電控制、緊急求助、煤氣泄漏報警、火災報警和供電監控子系統等功能,并提供遠程通訊服務。
機器人網絡互聯中的應用
制造車間底層設備自動化,近幾年仍是我國開展新技術研究和新技術應用工程及產品開發的主要領域,其市場需求不斷增大且越發活躍,競爭也日益激烈。伴隨著工業機器人的產業化,目前機器人系統的應用大多要求采用機器人生產方式,這就要求多臺機器人能通過網絡進行互聯。
隨之而來的是,在實際生產過程中,這種連網的多機器人系統的調度、維護工作也變得尤為重要。制造車間底層電氣裝置聯網是近幾年內技術發展的重點。
其電器裝置包括有:運動控制器、基于微處理器的傳感器、專用設備控制器等底層設備;在這些裝置所構成的網絡上另有車間級管理機、監控機或生產單元控制器等非底層裝置。結合實際情況和要求,將機器人控制器視為運動控制器。
把CAN總線技術充分應用于現有的控制器當中,將可開發出高性能的多機器人生產線系統。利用現有的控制技術,結合CAN技術和通信技術,通過對現有的機器人控制器進行硬件改進和軟件開發,并相應地開發出上位機監控軟件,從而實現多臺機器人的網絡互聯。
最終實現基于CAN網絡的機器人生產線集成系統。這樣做的好處很多,例如實現單根電纜串接全部設備,節省安裝維護開銷;提高實時性,信息可共享;提高多控制器系統的檢測、診斷和控制性能;通過離線的任務調度、作業的下載以及錯誤監控等技術,把一部分人從機器人工作的現場徹底脫離出來。
CAN總線的數據通信具有突出的可靠性、實時性和靈活性。由于其良好的性能及獨特的設計,CAN總線越來越受到人們的重視,它在汽車領域上的應用是最廣泛的。世界上一些著名的汽車制造廠商大都采用了CAN總線來實現汽車內部控制系統與各檢測和執行機構間的數據通信。
同時,由于CAN總線本身的特點,其應用范圍目前已不再局限于汽車行業,而向自動控制、航空航天、航海、過程工業、機械工業、紡織機械、農用機械、機器人、數控機床、醫療器械及傳感器等領域發展。CAN已經形成國際標準,并已被公認為幾種最有前途的現場總線之一。?
編輯:黃飛
?
評論
查看更多