詳解基于CAN總線的汽車儀表系統(tǒng)設(shè)計―CAN總線原理分析
控制器局域網(wǎng)CAN
本文引用地址:http://www.ex-cimer.com/article/201808/386765.htm控制器局域網(wǎng)CAN(CAN一 ControllerAreaNetwork)為串行通訊協(xié)議,屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),能有效地支持具有很高安全等級的分布實時控制。CAN的應(yīng)用范圍很廣,從高速的網(wǎng)絡(luò)到低價位的多路接線都可以使用CAN。控制器局域網(wǎng)采用雙線串行通信方式工作。具有強有力的檢錯功能,可在高噪聲干擾環(huán)境中使用,具有優(yōu)先權(quán)和仲裁功能、多個單片微機可通過CAN的控制器掛到CAN總線上,形成多主機局部控制網(wǎng)。CAN 的最初設(shè)計目標是取代汽車中過多的硬件連接控制電路,但由于它的優(yōu)良性能,現(xiàn)在除了汽車外,它已在工業(yè)自動化、各種控制設(shè)備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等各領(lǐng)域得到了廣泛的應(yīng)用[20]。1993年n月150正式頒布了道路交通運載工具一數(shù)字信息交換一高速通信控制器局域網(wǎng)CAN國際標準 15011898,為控制器局域網(wǎng)標準化、規(guī)范化的推廣鋪平了道路。
2.2.1 CAN技術(shù)規(guī)范
CAN是德國Bosch公司在20世紀80年代初為解決現(xiàn)代汽車中眾多的控制模塊與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線,是一種多主站總線通信系統(tǒng)。通信介質(zhì)可以是雙絞線、同軸電纜或光導纖維,其通信速率可達IMbPs,最大通信距離可達5000m。在CAN總線通信控制器中集成了以N協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括零位的插入/刪除、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作〔22]。在汽車電子行業(yè)里,使用CAN連接發(fā)動機控制單元、自動變速箱控制單元ABS系統(tǒng)等等,其傳輸速度可達 1Mbit/s。同時,可以將CAN安裝在卡車本體的電子控制系統(tǒng)里,諸如車燈組、電氣車窗等等,用以代替接線配線裝置。制定技術(shù)規(guī)范的目的是為了在任何兩個以N儀器之間建立兼容性??墒?,兼容性有不同的方面,比如電氣特性和數(shù)據(jù)轉(zhuǎn)換的解釋。為了達到設(shè)計透明度以及實現(xiàn)靈活性,根據(jù)150/051參考模型,CAN被細分為以下不同的層次 :
1、CAN對象層 (the objeet layer)
2、eAN傳輸層 (the transfer layer)
3、物理層
對象層和傳輸層包括所有150/051模型定義的數(shù)據(jù)鏈路層的服務(wù)和功能,即邏輯鏈路控制子層(LLC)和媒體訪問控制子層(MAC),對象層的作用包括:
1、查找被發(fā)送的報文;
2、確定由實際要使用的傳輸層接收哪一個報文;
3、為應(yīng)用層相應(yīng)的硬件提供接口。
傳輸層的作用主要是傳送規(guī)則,也就是控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯誤檢測、出錯標定、故障界定。總線上什么時候開始發(fā)送新報文及什么時候開始接收報文,均在傳輸層里確定。位定時的一些普通功能也可以看作是傳輸層的一部分,,理所當然,傳輸層的修改是受到限制的。物理層的作用是在不同的節(jié)點之間根據(jù)所有電氣屬性進行位信息的實際傳輸。在同一網(wǎng)絡(luò)內(nèi),物理層對于所有的節(jié)點必須是相同的。
2.2.2 CAN的基本概念
下面對CAN協(xié)議的媒體訪問控制子層(傳輸層)的一些專業(yè)術(shù)語和特征作說明CAN協(xié)議的媒體訪問控制子層(傳輸層)的一些專業(yè)術(shù)語和特征作(Message):
1、總線上的報文以不同報文格式發(fā)送,但長度受到限制??偩€空閑時,任何一個網(wǎng)絡(luò)上的節(jié)點都可以發(fā)送報文。
2、信息路由 (InformationRouting):在CAN網(wǎng)絡(luò)中,節(jié)點不使用任何關(guān)于系統(tǒng)配置的報文比如站地址,由接收節(jié)點根據(jù)報文本身特征判斷是否接受這幀信息。因此系統(tǒng)擴展時,不用對應(yīng)用層以及任何節(jié)點軟件和硬件作任何改變,可以直接在CAN網(wǎng)絡(luò)中增加節(jié)點。
3、標識符(Identifier):要傳送的報文有特征標識符(是數(shù)據(jù)幀和遠程幀的一個域),它給出的不是目標節(jié)點地址,而是這個報文本身的特征。信息以廣播方式在網(wǎng)絡(luò)上發(fā)送,所有節(jié)點都可以接收到。節(jié)點通過標識符判定是否接受接收到的這幀信息。
4、數(shù)據(jù)一致性:應(yīng)確保報文在CAN網(wǎng)絡(luò)里同時被所有節(jié)點接收或同時不接收。這是配合錯誤處理和再同步功能實現(xiàn)的。
5、位速率:不同的CAN系統(tǒng)速度不同,但在一個給定的系統(tǒng)里,位速率是唯一的,并且固定的。
6、優(yōu)先權(quán):由發(fā)送數(shù)據(jù)的報文中的標識符決定報文占用總線的優(yōu)先權(quán)。標識符越小,優(yōu)先權(quán)越高。
7、遠程數(shù)據(jù)請求 (RemoteDataRequest):通過發(fā)送遠程幀,需要數(shù)據(jù)的節(jié)點請求另一節(jié)點發(fā)送相應(yīng)的數(shù)據(jù)?;貞?yīng)節(jié)點傳送的數(shù)據(jù)幀與請求數(shù)據(jù)的遠程幀由相同的標識符命名。
8、仲裁(Arbitration):只要總線空閑,任何節(jié)點都可以向總線發(fā)送報文。如果有兩個或兩個以上的節(jié)點同時發(fā)送報文,就會引起總線訪問沖突。通過使用標識符的逐位仲裁一一載波偵聽多路訪問/沖突檢測(CSMA/CD,Ca仃 lersenseMultipleAccesswitheollisionDeteet)—的無損仲裁方式就可以解決這個lb]題。
9、錯誤檢測與可靠性:為了保證發(fā)送的報文正確可靠,CAN采用發(fā)送濫聽的位錯誤檢測、幀數(shù)據(jù)的循環(huán)冗余碼CRC校驗、位填充技術(shù)、幀格式校驗和應(yīng)答檢測等五種錯誤檢測方法。這些措施使CAN具有識別全部的全局錯誤、發(fā)送端的局部錯誤、一幀信息中的5個以上隨機錯誤、報文中長度小于巧的突發(fā)
性錯誤和報文中任一奇數(shù)個錯誤,使報文錯誤漏報率小于 4.7x10
10、故障界定(ConfinemenO:CAN節(jié)點能區(qū)分瞬時擾動引起的故障和永久性故障。故障節(jié)點會被關(guān)閉。
11、同步:CAN節(jié)點之間采用串行線連接,數(shù)據(jù)和同步信號都由這個通道承擔。信息發(fā)送有起始同步信號,傳送過程中接收節(jié)點進行再同步。
12、總線狀態(tài):e胡總線上用“顯性(dominant)”和“隱性(reeessive)”兩個互補的邏輯值表示“0”和“1”,“顯性”對應(yīng)邏輯 “0”,“隱性”對應(yīng)邏輯“1”,“顯性”狀態(tài)和“隱性”狀態(tài)線與為“顯性”狀態(tài),所以當在總線上出現(xiàn)兩個節(jié)點同時分別發(fā)送“0”和“1”時,其結(jié)果是總線數(shù)值為顯性“O”。CAN總線采用二進制不歸零伽Rz)編碼方式,所以總線上不是“0”,就是“1”。其具體代表值與電壓的關(guān)系如圖2一1所示:
評論