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