CAN總線定義:
CAN(Control Area Network)屬于現(xiàn)場總線的范疇,是一種高性能、高可靠性、易于開發(fā)和低成本的串行總線。
CAN是由德國Bosch公司在1986年為汽車監(jiān)測和控制而設計的。由于其高性能、高可靠性、實時性等優(yōu)點,隨后也廣泛用于工業(yè)自動化、多種控制設備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等多種領域,其在每個領域的廣泛使用促進了標準化的進程。
1991年9月PHILIPS SEMICONDUCTORS制訂并發(fā)布了CAN技術(shù)規(guī)范V2.0,該技術(shù)規(guī)范包括A和B兩部分。2.0A曾在CAN技術(shù)規(guī)范1.2中定義的CAN報文格式,提供11位地址;而2.0B給出了標準和擴展的兩種報文格式,提供29位地址。此后ISO在1993年11月也正式發(fā)布了CAN的國際標準ISO11898。其中ISO11898-1定義了CAN數(shù)據(jù)鏈路層;ISO11898-2定義了非容錯CAN物理層;ISO11898-3定義了11898-3的容錯物理層。CAN總線協(xié)議只定義了物理層和數(shù)據(jù)鏈路層,要將CAN總線應用于實際的工程項目和產(chǎn)品開發(fā)中必須制定上層應用協(xié)議。目前汽車上應用的協(xié)議有:ISO15675(傳輸層協(xié)議)、ISO14229(應用層協(xié)議)等。
CAN總線的特點
1、 多主控制方式。在總線空閑時,所有單元都可往總線上發(fā)送消息(多主控制)。最先訪問總線的單元可獲得發(fā)送權(quán)(采用CSMA/CA方式)。當多個單元同時發(fā)送時,CANID小的節(jié)點獲得發(fā)送權(quán)。
2、 非破壞性總線仲裁技術(shù)。當總線發(fā)生沖突時,高優(yōu)先級報文可以不受影響的進行傳輸,保證高優(yōu)先級的實時性要求;而低優(yōu)先級的報文退出傳輸。
3、 高可靠性。每幀都有位填充,CRC校驗等多種錯誤檢測,保證了極低的錯誤率;發(fā)送期間丟失仲裁或者由于錯誤而破壞了的數(shù)據(jù)幀可自動重發(fā)(這一點由CAN控制器自己重發(fā),無需人為重新裝載發(fā)送數(shù)據(jù))。
4、 自動關閉總線。CAN控制器可以檢測和判斷總線上的錯誤類型,是短暫的數(shù)據(jù)錯誤(如外部噪聲),還是持續(xù)數(shù)據(jù)錯誤(如單元內(nèi)部故障、驅(qū)動器故障、短路故障等)。當錯誤為持續(xù)性故障時,CAN控制器可自動關閉,脫離總線,以免影響總線上的其他節(jié)點正常通信。
CAN總線拓撲圖
CAN控制器根據(jù)兩根線上的電位差來判斷總線電平??偩€電平分為顯性和隱性電平,二者必居其一。發(fā)送方通過使總線電平變化,將消息發(fā)送給接收方。下圖1是一個CAN總線連接示意圖。
下圖1由兩個CAN網(wǎng)絡組成,其中一個網(wǎng)絡通信速率為500K,另外一個為125K。每個CAN網(wǎng)絡由CANH和CANL兩根線組成,各個節(jié)點(ABS、SAS、ETM、ECM)分別連接在CANH和CAHL上。在每個CAN網(wǎng)絡的頭尾分別連接了兩個終端電阻,終端電阻的大小為120歐姆。
下圖1左邊陰影部分是某個節(jié)點的內(nèi)部電路模塊,包含CPU、CAN控制器(CAN Controller,一般單片機都集成了CAN控制器模塊)以及CAN收發(fā)器(CAN transceiver)。其中CPU負責將需要發(fā)送的數(shù)據(jù)傳遞給CAN控制器,以及接收從CAN控制器中解析的數(shù)據(jù);CAN控制器將Rx腳的二進制的0/1轉(zhuǎn)換為具體的報文,然后將報文傳遞給CPU,以及將CPU需要發(fā)送的報文轉(zhuǎn)換為二進制0/1,然后通過Tx腳傳遞給CAN收發(fā)器。CAN控制器的主要功能是電平轉(zhuǎn)換,將CANH和CANL上的電平轉(zhuǎn)換為Rx腳上的0/1,將Tx腳上的0/1在CANH和CANL進行轉(zhuǎn)換。
圖1
信號電平
高速CAN,定義 當CANH 和 CANL 電壓相同(CANH = CANL = 2.5V)時為邏輯“1”,CANH和CANL 電壓相差 2V(CANH = 3.5V, CANL = 1.5V) 時為邏輯“0”。高速CAN收發(fā)器在共模電壓范圍內(nèi)(-12V ~ 12V),將CANH和CANL電壓相差大于 0.9V 解釋為顯性狀態(tài)(Dominant),而將CANH和CANL電壓相差小于 0.5V 解釋為為隱性狀態(tài)(Recessive)。
CAN總線采用不歸零碼位填充技術(shù),也就是說CAN總線上的信號有兩種不同的信號狀態(tài),分別是顯性的(Dominant)邏輯0和隱形的(recessive)邏輯1,信號每一次傳輸完后不需要返回到邏輯0(顯性)的電平。
CAN信號傳輸
圖2 a
發(fā)送過程: CAN控制器將CPU傳來的報文轉(zhuǎn)換為邏輯電平(即邏輯0-顯性電平或者邏輯1-隱性電平)通過Tx腳傳遞給CAN收發(fā)器。CAN收發(fā)器接收邏輯電平之后,再將其轉(zhuǎn)換為差分電平輸出到CAN總線上。
圖2 b
接收過程: CAN收發(fā)器將CAN_H 和 CAN_L 線上傳來的差分電平轉(zhuǎn)換為邏輯電平輸出到CAN控制器的Rx腳,CAN控制器再把該邏輯電平轉(zhuǎn)化為相應報文發(fā)送到CPU上。
圖2 c
責任編輯人:CC
評論
查看更多