[摘要] 本文介紹了CAN現場總線的起源及發展,詳細分析了CAN總線的網絡層次結構、CAN總線的特點及性能。CAN總線具有良好的發展前景。
[關鍵詞] 現場總線CAN網絡層次結構
一、引言
現場總線技術已成為當今工業自動化技術發展的熱點。CAN(Controller Area Network)即控制器局域網,是國際上應用最廣泛的現場總線之一。CAN是一種多主方式的串行數據通訊總線,基本設計規范要求,有高的位速率,高抗電磁干擾性而且能夠檢測出產生的任何錯誤,當信號傳輸距離達到10Km時,CAN仍可提供高達50Kbps的數據傳輸速率。作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式CAN已被廣泛應用到各個自動化控制領域,例如在汽車工業、航空工業、工業控制、自動控制、智能大廈、電力系統、安全防護等各領域。
二、起源
20世紀80年代初期,由于歐洲汽車工業發展發展的需要,最先由德國Bosch公司提出CAN總線方案以解決汽車控制裝置間的通信問題。當時,由于消費者對于汽車功能的要求越來越多,而這些功能的實現大多是基于電子操作的,這就使得電子裝置之間的通訊越來越復雜,同時意味著需要更多的連接信號線。提出CAN總線的最初動機就是為了解決現代汽車中龐大的電子控制裝置之間的通訊,減少不斷增加的信號線。于是,他們設計了一個單一的網絡總線,所有的外圍器件可以被掛接在該總線上。Bosch公司于1986年正式公布了這一總線,且命名為CAN總線。1987年Intel公司生產出了首枚CAN控制器(82526)。不久,Philips公司也推出了CAN控制器82C200。1993年CAN成為國際標準ISO11898(高速應用)和ISO11519(低速應用)。
為促進CAN以及CAN協議的發展,1992在歐洲成立了國際用戶和廠商協會(CAN in Automation,簡稱CiA),在德國Erlangen注冊,CiA總部位于Erlangen。CiA提供服務包括:發布CAN的各類技術規范,免費下載CAN文獻資料,提供CANopen規范DeviceNet規范;發布CAN產品數據庫,CANopen產品指南;提供CANopen驗證工具執行CANopen認證測試;開發CAN規范并發布為CiA標準。
根據CiA組織統計,截止到2002年底,約有500多家公司加入了這個協會,協作開發和支持各類CAN高層協議;生產CAN控制器(獨立或內嵌)廠家,包括世界上主要半導體生產廠家在內,已有20多家,CAN控制器產品的品種已達110多種,CAN控制器的數量已達210,000,000枚。CAN接口已經被公認為微控制器(Microcontroller)的標準串行接口,應用在各種分布式內嵌系統。該協會已經為全球應用CAN技術的權威。
三、CAN的結構與技術特點
1.CAN總線定義的網絡層次
CAN通訊協議,主要描述設備之間的信息傳遞方式。OSI開放系統互連參考模型將網絡協議分為7層,由上至下分別為:應用層、表示層、會話層、傳輸層、網絡層、鏈路層和物理層。根據ISO/OSI開放系統互連參考模型,為了滿足現場設備間通信的實時性要求,CAN規范只在數據鏈路層和物理層上進行了定義,如圖1 所示。
在數據鏈路層,CAN定義了邏輯鏈路控制子層(LLC)部分和完整的媒體訪問控制子層(MAC)。邏輯鏈路控制子層(LLC)的作用范圍包括:為遠程數據請求以及數據傳輸提供服務,確定由實際要使用的LLC子層接收哪一個報文,為恢復管理和過載通知提供手段。在這里,定義對象處理還有很大的自由度。MAC子層的作用主要是傳送規則,也就是控制幀結構、執行仲裁、錯誤檢測、出錯標定、故障界定。總線上什么時候開始發送新報文及什么時候開始接收報文,均在MAC子層里確定。位定時的一些普通功能也可以看作是MAC子層的一部分。理所當然,MAC子層的修改是受到限制的。
MAC子層是CAN協議的核心。它把接收到的報文提供給LLC子層,并接收來自LLC子層的報文。
物理層的作用是在不同節點之間根據所有的電氣屬性進行位的實際傳輸。同一網絡的物理層,對于所有的節點當然是相同的。盡管如此,在選擇物理層方面還是很自由的。CAN協議規范,在物理層只定義了信號是如何實際地傳輸的,包括對位時間、位編碼、同步的解釋。CAN規范沒有定義物理層的驅動器/接收器特性,以便允許根據它們的應用,對發送媒體和信號電平進行優化。
圖1 CAN 2.0B定義的網絡層次結構
2.CAN總線技術特點
目前,除了有大量可用的低成本的CAN接口器件之外,CAN之所以在世界范圍內得到廣泛認可是由于它具有如下的突出的特點。
多主方式及面向事件的信息傳輸:只要總線空閑總線系統中的任何一個節點都可發送信息,所以,任何一個節點均可以與其它的節點交換信息。這一特點非常重要,因為正是它才使面向事件的信息傳輸成為可能。
幀結構:CAN總線的數據幀由7部分組成:幀起始、仲裁場、控制場、數據場、CRC場、應答場、幀尾。其中幀起始由一個單獨的“顯性”位(bit)組成,仲裁場由29bit組成(早期版本為11bit),控制場由6bit構成,數據場由0至8byte的數據組成,不能多于8字節,CRC場由16bit組成,應答場由2bit構成,幀尾由7bit(“隱性”)組成。
每個幀都具有一定的優先權,幀的優先權是由幀的仲裁場(又稱為幀標識,用ID表示)決定的。
非破壞性仲裁(CSMA/CD)方式:與普通的Ethernet不同,CAN總線訪問仲裁是基于非破壞性的總線爭用仲裁(Non Destructive bitwise Arbitration)方案。當總線空閑時,線路表現為“閑置”電平(recessive level),此時任何站均可發送報文,任何節點都可以開始發送信息幀,這樣就可能導致兩個以上的節點同時開始訪問總線,如圖2所示。CAN的物理層具有如下特性:只有當所有的節點都寫入從屬位(1,recessive level),網絡上才是1,只要有一個節點寫入決定位(0, dominant level),網絡上就是0,也就是說,決定位覆蓋從屬位;CAN總線上的任何一個節點寫總線的同時也在讀總線。為了防止破壞另一個節點的發送幀,一個節點在發送幀標識和RTR位的過程中一直在監控總線,一旦檢測到發送隱性位得到一個顯性位,則表明有比自己優先權高的節點在使用總線,節點自動轉入監聽狀態,檢驗是否是自己需要的數據。優先權高的信息幀不會被破壞而是繼續傳輸。這種仲裁原則保證了最高優先權的信息幀在任何時間都可優先發送,同時充分的利用了總線的帶寬。
對于優先權最高的可能最長的信息幀,其時間延遲為130位的時間。對于其它高優先權的信息幀,其最大的確定延時時間由較高層次的總線協議決定。由于CAN 總線采用了這種總線仲裁機制其總線利用率很高。
圖2 非破壞性總線爭用仲裁原則
短信息幀:每一幀中只包括0~8字節的有效數據。這一長度幾乎滿足任何實時應用。如果必須傳送多于8個字節的信息塊,那么就需要使用更高層次的信息分段協議。從另一個方面來說,較短的CAN信息幀保證了高優先權信息幀的短延時。這也有利于在電磁干擾較強環境下的數據傳輸,因為,信息幀越短不被干擾的幾率越高。
強檢錯、糾錯和故障處理功能:可靠的錯誤檢測和錯誤處理機制,節點在錯誤嚴重的情況下自動關閉脫離總線,以確保能繼續進行剩余節點之間的通信。發送的信息遭到破壞之后可自動重發。
信息傳輸方式:CAN使用信息生產者--使用者方式傳輸信息。這與Ethernet的Client/Server模式不同,傳輸的報文并非根據報文發送器/接收器的節點地址識別(幾乎其它的總線都是如此),CAN的報文僅用信息標識ID來指示功能信息、優先級信息,總線上的所有節點可根據報文的ID決定接收或屏蔽該報文。可時間同步的多點接收,提高了總線的利用率。
高速數據傳輸速率:CAN總線數據傳輸速率可達1Mbits/s。
遠距離數據傳輸:當數據傳輸速率為50Kbps時傳輸距離可達10Km。
四、基于CAN的較高層協議
CAN規范只定義了用于通信的核心部分,沒有定義應用層,物理層的定義也不完全。這為其應用提供了較大的靈活性(不過,這也可能成為它的一大缺點)。CAN規范沒有定義物理層的驅動器/接收器特性。這便于用戶根據具體的應用需求對發送媒體和信號電平進行優化。可根據
具體應用環境,用戶自行定義CAN的應用層。這便于用戶設計適合于特殊領域應用方案。
由于CAN的諸多優點,基于CAN的應用有很多。為了滿足不同的應用領域和不同用戶的需求,已開發出了很多基于CAN的協議,目前已發展成為工業標準的高層協議有:CAL/CANOpen、DeviecNet、SDS等。CAL/CANOpen最早是由Philip醫療系統開發的,由CiA認可、支持和維護的。它是一種不依賴于應用的應用層協議,已廣泛應用于機械制造、鐵路、車輛、船舶、制藥和食品加工等領域。CANOpen是CAL(CAN Application Layer)的一個子集,所以,CANopen的設備都可以用在指定應用的CAL系統。DeviceNet是由美國Wockwell的A-B公司開發的開放式網絡標準,屬于設備級(包括傳感器和執行機構)網絡總線,現已成為IEC標準(IEC62026),并由ODVA(Open DeviceNet Vendor’s Association)支持、維護,廣泛應用于工業控制和制造業領域等。SDS(Smart Distribution Systems)是由Honeywell Micro Switch開發的,現由Smart Society支持、維護,多應用于智能化樓宇。
CAN總線技術正在日新月異的發展,在工業應用領域使用越來越廣泛,具有很好的發展前景。