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