詳解基于CAN總線的汽車儀表系統(tǒng)設(shè)計(jì)—CAN總線原理分析
控制器局域網(wǎng)CAN
控制器局域網(wǎng)CAN(CAN一 ControllerAreaNetwork)為串行通訊協(xié)議,屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),能有效地支持具有很高安全等級的分布實(shí)時控制。CAN的應(yīng)用范圍很廣,從高速的網(wǎng)絡(luò)到低價位的多路接線都可以使用CAN??刂破骶钟蚓W(wǎng)采用雙線串行通信方式工作。具有強(qiáng)有力的檢錯功能,可在高噪聲干擾環(huán)境中使用,具有優(yōu)先權(quán)和仲裁功能、多個單片微機(jī)可通過CAN的控制器掛到CAN總線上,形成多主機(jī)局部控制網(wǎng)。CAN 的最初設(shè)計(jì)目標(biāo)是取代汽車中過多的硬件連接控制電路,但由于它的優(yōu)良性能,現(xiàn)在除了汽車外,它已在工業(yè)自動化、各種控制設(shè)備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等各領(lǐng)域得到了廣泛的應(yīng)用[20]。1993年n月150正式頒布了道路交通運(yùn)載工具一數(shù)字信息交換一高速通信控制器局域網(wǎng)CAN國際標(biāo)準(zhǔn) 15011898,為控制器局域網(wǎng)標(biāo)準(zhǔn)化、規(guī)范化的推廣鋪平了道路。
2.2.1 CAN技術(shù)規(guī)范
CAN是德國Bosch公司在20世紀(jì)80年代初為解決現(xiàn)代汽車中眾多的控制模塊與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線,是一種多主站總線通信系統(tǒng)。通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,其通信速率可達(dá)IMbPs,最大通信距離可達(dá)5000m。在CAN總線通信控制器中集成了以N協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括零位的插入/刪除、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級判別等項(xiàng)工作〔22]。在汽車電子行業(yè)里,使用CAN連接發(fā)動機(jī)控制單元、自動變速箱控制單元ABS系統(tǒng)等等,其傳輸速度可達(dá) 1Mbit/s。同時,可以將CAN安裝在卡車本體的電子控制系統(tǒng)里,諸如車燈組、電氣車窗等等,用以代替接線配線裝置。制定技術(shù)規(guī)范的目的是為了在任何兩個以N儀器之間建立兼容性??墒牵嫒菪杂胁煌姆矫?,比如電氣特性和數(shù)據(jù)轉(zhuǎn)換的解釋。為了達(dá)到設(shè)計(jì)透明度以及實(shí)現(xiàn)靈活性,根據(jù)150/051參考模型,CAN被細(xì)分為以下不同的層次 :
1、CAN對象層 (the objeet layer)
2、eAN傳輸層 (the transfer layer)
3、物理層
對象層和傳輸層包括所有150/051模型定義的數(shù)據(jù)鏈路層的服務(wù)和功能,即邏輯鏈路控制子層(LLC)和媒體訪問控制子層(MAC),對象層的作用包括:
1、查找被發(fā)送的報文;
2、確定由實(shí)際要使用的傳輸層接收哪一個報文;
3、為應(yīng)用層相應(yīng)的硬件提供接口。
傳輸層的作用主要是傳送規(guī)則,也就是控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯誤檢測、出錯標(biāo)定、故障界定??偩€上什么時候開始發(fā)送新報文及什么時候開始接收報文,均在傳輸層里確定。位定時的一些普通功能也可以看作是傳輸層的一部分,,理所當(dāng)然,傳輸層的修改是受到限制的。物理層的作用是在不同的節(jié)點(diǎn)之間根據(jù)所有電氣屬性進(jìn)行位信息的實(shí)際傳輸。在同一網(wǎng)絡(luò)內(nèi),物理層對于所有的節(jié)點(diǎn)必須是相同的。
2.2.2 CAN的基本概念
下面對CAN協(xié)議的媒體訪問控制子層(傳輸層)的一些專業(yè)術(shù)語和特征作說明CAN協(xié)議的媒體訪問控制子層(傳輸層)的一些專業(yè)術(shù)語和特征作(Message):
1、總線上的報文以不同報文格式發(fā)送,但長度受到限制??偩€空閑時,任何一個網(wǎng)絡(luò)上的節(jié)點(diǎn)都可以發(fā)送報文。
2、信息路由 (InformationRouting):在CAN網(wǎng)絡(luò)中,節(jié)點(diǎn)不使用任何關(guān)于系統(tǒng)配置的報文比如站地址,由接收節(jié)點(diǎn)根據(jù)報文本身特征判斷是否接受這幀信息。因此系統(tǒng)擴(kuò)展時,不用對應(yīng)用層以及任何節(jié)點(diǎn)軟件和硬件作任何改變,可以直接在CAN網(wǎng)絡(luò)中增加節(jié)點(diǎn)。
3、標(biāo)識符(Identifier):要傳送的報文有特征標(biāo)識符(是數(shù)據(jù)幀和遠(yuǎn)程幀的一個域),它給出的不是目標(biāo)節(jié)點(diǎn)地址,而是這個報文本身的特征。信息以廣播方式在網(wǎng)絡(luò)上發(fā)送,所有節(jié)點(diǎn)都可以接收到。節(jié)點(diǎn)通過標(biāo)識符判定是否接受接收到的這幀信息。
4、數(shù)據(jù)一致性:應(yīng)確保報文在CAN網(wǎng)絡(luò)里同時被所有節(jié)點(diǎn)接收或同時不接收。這是配合錯誤處理和再同步功能實(shí)現(xiàn)的。
5、位速率:不同的CAN系統(tǒng)速度不同,但在一個給定的系統(tǒng)里,位速率是唯一的,并且固定的。
6、優(yōu)先權(quán):由發(fā)送數(shù)據(jù)的報文中的標(biāo)識符決定報文占用總線的優(yōu)先權(quán)。標(biāo)識符越小,優(yōu)先權(quán)越高。
7、遠(yuǎn)程數(shù)據(jù)請求 (RemoteDataRequest):通過發(fā)送遠(yuǎn)程幀,需要數(shù)據(jù)的節(jié)點(diǎn)請求另一節(jié)點(diǎn)發(fā)送相應(yīng)的數(shù)據(jù)?;貞?yīng)節(jié)點(diǎn)傳送的數(shù)據(jù)幀與請求數(shù)據(jù)的遠(yuǎn)程幀由相同的標(biāo)識符命名。
8、仲裁(Arbitration):只要總線空閑,任何節(jié)點(diǎn)都可以向總線發(fā)送報文。如果有兩個或兩個以上的節(jié)點(diǎn)同時發(fā)送報文,就會引起總線訪問沖突。通過使用標(biāo)識符的逐位仲裁一一載波偵聽多路訪問/沖突檢測(CSMA/CD,Ca仃 lersenseMultipleAccesswitheollisionDeteet)—的無損仲裁方式就可以解決這個lb]題。
9、錯誤檢測與可靠性:為了保證發(fā)送的報文正確可靠,CAN采用發(fā)送濫聽的位錯誤檢測、幀數(shù)據(jù)的循環(huán)冗余碼CRC校驗(yàn)、位填充技術(shù)、幀格式校驗(yàn)和應(yīng)答檢測等五種錯誤檢測方法。這些措施使CAN具有識別全部的全局錯誤、發(fā)送端的局部錯誤、一幀信息中的5個以上隨機(jī)錯誤、報文中長度小于巧的突發(fā)
性錯誤和報文中任一奇數(shù)個錯誤,使報文錯誤漏報率小于 4.7x10
10、故障界定(ConfinemenO:CAN節(jié)點(diǎn)能區(qū)分瞬時擾動引起的故障和永久性故障。故障節(jié)點(diǎn)會被關(guān)閉。
11、同步:CAN節(jié)點(diǎn)之間采用串行線連接,數(shù)據(jù)和同步信號都由這個通道承擔(dān)。信息發(fā)送有起始同步信號,傳送過程中接收節(jié)點(diǎn)進(jìn)行再同步。
12、總線狀態(tài):e胡總線上用“顯性(dominant)”和“隱性(reeessive)”兩個互補(bǔ)的邏輯值表示“0”和“1”,“顯性”對應(yīng)邏輯 “0”,“隱性”對應(yīng)邏輯“1”,“顯性”狀態(tài)和“隱性”狀態(tài)線與為“顯性”狀態(tài),所以當(dāng)在總線上出現(xiàn)兩個節(jié)點(diǎn)同時分別發(fā)送“0”和“1”時,其結(jié)果是總線數(shù)值為顯性“O”。CAN總線采用二進(jìn)制不歸零伽Rz)編碼方式,所以總線上不是“0”,就是“1”。其具體代表值與電壓的關(guān)系如圖2一1所示:
13、應(yīng)答:接收節(jié)點(diǎn)對正確接收的報文給出應(yīng)答,對不一致報文進(jìn)行標(biāo)記。
14、位流編碼:一幀報文中,起始域、仲裁域、控制域、數(shù)據(jù)域和CRC域的二進(jìn)制位流通過位填充方式編碼。當(dāng)連續(xù)出現(xiàn)5個相同極性位時,自動插入一個補(bǔ)碼;報文中其他域不使用位流編碼,錯誤幀和過載幀也不使用。
2.2.3 CAN總線的技術(shù)特點(diǎn)
隨著通信技術(shù)的發(fā)展,CAN總線己廣泛應(yīng)用于各行各業(yè)的工業(yè)現(xiàn)場,根據(jù)不同的需要或以主從方式,或多主方式工作,鑒于其極高的可靠性和獨(dú)特的設(shè)計(jì)以及高速率,傳輸距離較長的特點(diǎn),特別適合工業(yè)現(xiàn)場監(jiān)控設(shè)備的互聯(lián)。CAN協(xié)議的一個最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對數(shù)據(jù)塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)是可使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個數(shù)在理論上不受限制,數(shù)據(jù)塊的標(biāo)識碼可由H位(以N技術(shù)規(guī)范2.以)或29位(CAN技術(shù)規(guī)范2.0B)二進(jìn)制數(shù)組成,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點(diǎn)同時接收到相同的數(shù)據(jù),這一點(diǎn)在分布式控制系統(tǒng)中非常有用。概括起來,它具有如下特點(diǎn)
1、CAN的通信介質(zhì)可為雙絞線、同軸電纜或光纖,選擇靈活。
2、CAN的直接通信距離最遠(yuǎn)可達(dá)IOkm(速率SKbp、以下),通信速率最高可達(dá)IMbpS(此時通信距離最長為40m)。
3、CAN為多主從工作方式,網(wǎng)絡(luò)上任意一節(jié)點(diǎn)均可在任意時刻主動地向網(wǎng)絡(luò)上其他接點(diǎn)發(fā)送信息,而不分主從,通信方式靈活,且無需站地址等節(jié)點(diǎn)信息,利用這一特性可方便地構(gòu)成多機(jī)備份系統(tǒng)。
4、網(wǎng)絡(luò)上的節(jié)點(diǎn)信息可分成不同的優(yōu)先級,可以滿足不同的實(shí)時要求,高優(yōu)先級的數(shù)據(jù)最多可在 134ps內(nèi)得到傳輸。
5、CAN采用非破壞性總線仲裁技術(shù),當(dāng)多個節(jié)點(diǎn)同時向總線發(fā)送信息時,優(yōu)先級較低的節(jié)點(diǎn)會主動退出發(fā)送,而高優(yōu)先級的節(jié)點(diǎn)可以不受影響地繼續(xù)傳送數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時間,尤其是在網(wǎng)絡(luò)負(fù)載很重的情況下也不會出現(xiàn)網(wǎng)絡(luò)癱瘓情況(而以太網(wǎng)則可能)。
6、CAN只需通過報文濾波即可實(shí)現(xiàn)點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳播接收數(shù)據(jù),無需專門的“調(diào)度”
7、CAN上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動電路,目前可達(dá)110個,報文標(biāo)識符可達(dá)2030種 (CAN2.OA),而擴(kuò)展標(biāo)準(zhǔn)(CAN2.OB)的報文標(biāo)識符幾乎不受限制。
8、CAN采用短幀結(jié)構(gòu),傳輸時間短,受干擾概率低,具有極好的檢錯效果。
9、以N的每幀信息都有CRC校驗(yàn)及其他校驗(yàn)措施,保證了數(shù)據(jù)出錯率極低。
10、以CAN總線上的節(jié)點(diǎn)在錯誤嚴(yán)重的情況下,具有自動關(guān)閉總線的功能,退出網(wǎng)絡(luò)通訊,保證總線上其它節(jié)點(diǎn)的操作不受影響。
11、CAN還具有借助接收濾波的多地址幀傳送、遠(yuǎn)程數(shù)據(jù)請求、配置靈活性、全系統(tǒng)數(shù)據(jù)相容性、錯誤檢測和出錯信令的功能。
12、CAN在發(fā)送期間若丟失仲裁或由于出錯而遭破壞的幀可自動重發(fā)送,而且可以進(jìn)行暫時錯誤和永久性故障節(jié)點(diǎn)的判別以及故障節(jié)點(diǎn)的自動脫離。CAN的信號傳輸采用短幀結(jié)構(gòu),數(shù)據(jù)段長度最多為8個字節(jié),每一幀的有效字節(jié)數(shù)為8個,可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時,8個字節(jié)不會占用總線時間過長,傳輸?shù)臅r間短,從而保證了通信的實(shí)時性。受干擾的概率低,每幀信息均有CRC校驗(yàn)和其他檢錯措施,通信誤碼率極低。CAN協(xié)議采用CRC檢驗(yàn)并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。以N節(jié)點(diǎn)在錯誤嚴(yán)重的情況下,具有自動關(guān)閉總線的功能,這時故障節(jié)點(diǎn)與總線脫離,使其他節(jié)點(diǎn)的通信不受影響。CAN的這些卓越特性以及極高的可靠性和獨(dú)特的設(shè)計(jì),特別適合工業(yè)過程監(jiān)控設(shè)備的互聯(lián),并己被公認(rèn)為最有前途的現(xiàn)場總線之一。
2.2.4 CAN的分層結(jié)構(gòu)
CAN遵從051模型,按照051基準(zhǔn)模型,CAN結(jié)構(gòu)劃分為兩層:數(shù)據(jù)鏈路層和物理層,其中數(shù)據(jù)鏈路層包括邏輯鏈路層LLC和媒體訪問控制層MAC。如圖2一2所示1]。
2.2.4CAN總線的分層結(jié)構(gòu)
CAN遵從051模型,按照051基準(zhǔn)模型,CAN結(jié)構(gòu)劃分為兩層:數(shù)據(jù)鏈路層和物理層,其中數(shù)據(jù)鏈路層包括邏輯鏈路層LLC和媒體訪問控制層MAC。如圖2一2所示123]。
LLC子層的主要功能是:為數(shù)據(jù)傳送和遠(yuǎn)程數(shù)據(jù)請求提供服務(wù),確認(rèn)由LLC子層接收的報文己被接收,并為恢復(fù)管理和通知超載提供信息。MAC子層的功能主要是傳送規(guī)則,亦即控制幀的結(jié)構(gòu)、執(zhí)行仲裁、錯誤檢測、出錯標(biāo)定和故障界定。物理層的功能是有關(guān)全部電氣特性在不同節(jié)點(diǎn)間的實(shí)際傳送。CAN技術(shù)規(guī)范 2.OB定義了數(shù)據(jù)鏈路中的MAC子層和LLC子層的一部分,并描述與 CAN有關(guān)的外層。物理層定義了信號怎樣進(jìn)行發(fā)送,因而,涉及位定時、位編碼元和同步的描述。在這部分技術(shù)規(guī)范中,未定義物理層中的驅(qū)動器/接收器特性,以便允許根據(jù)具體應(yīng)用,對發(fā)送媒體和信號電平進(jìn)行優(yōu)化。MAC子層是CAN協(xié)議的核心,它描述由LLC子層接收到的報文和對LLC子層發(fā)送的認(rèn)可報文。 MAC子層可響應(yīng)報文幀、仲裁、應(yīng)答、錯誤檢測標(biāo)定。MAC子層由稱為故障界定的一個管理實(shí)時監(jiān)控,它具有識別永久故障或短暫擾動的自檢機(jī)制。LLC子層的主要功能是報文濾波、超載通知和恢復(fù)管理。、從物理結(jié)構(gòu)上看,一個CAN節(jié)點(diǎn)的構(gòu)成如圖2一3所示。在CAN網(wǎng)絡(luò)中,物理層從結(jié)構(gòu)上可分為三層:分別是物理信號層(P璐, PhysicalSignaling),物理介質(zhì)附件層(pMA, physiealMediaAitachment)和介質(zhì)接口層(MDI,MediaD叩endentInteiface)。其中PLS層連同數(shù)據(jù)鏈路層功能由CAN控制器完成,PMA層功能由CAN收發(fā)器完成,MDI層定義了電纜和連接器的特性。目前也有支持 CAN的微控制器內(nèi)部集成了CAN控制器和收發(fā)器電路。PMA和MDI兩層有很多不同的國際或國家或行業(yè)標(biāo)準(zhǔn),也可自行定義,比較流行的是 15011898定義的高速CAN發(fā)送/接收器標(biāo)準(zhǔn)。