CAN是Controller Area Network的縮寫,即“局域網(wǎng)控制器”的意思,,可以歸屬于工業(yè)現(xiàn)場(chǎng)總線的范疇,,通常稱為CAN BUS,即CAN總線,,是目前國(guó)際上應(yīng)用最為廣泛的開放式現(xiàn)場(chǎng)總線之一,。
CAN總線最早用在汽車電子領(lǐng)域,世界上一些著名的汽車制造廠商都采用CAN總線來實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信,。由于CAN總線在數(shù)據(jù)通信方面表現(xiàn)出來的高可靠性,、實(shí)時(shí)性和靈活性,其應(yīng)用領(lǐng)域已經(jīng)成汽車電子領(lǐng)域擴(kuò)展到自動(dòng)控制,、航空航天,、航海、工業(yè)控制,、醫(yī)療器械,、安全防護(hù)等領(lǐng)域。
CAN總線規(guī)范從CAN1.2規(guī)范發(fā)展為兼容CAN1.2規(guī)范的CAN2.0規(guī)范(CAN2.0A為標(biāo)準(zhǔn)格式,,CAN2.0B為擴(kuò)展格式),,目前應(yīng)用的CAN器件大多符合CAN2.0規(guī)范。
?CAN總線發(fā)展史
1986年,,Bosch在SAE(汽車工程人員協(xié)會(huì))大會(huì)上提出CAN總線概念,;
1987年,,Intel推出第一片CAN控制芯片82526,隨后Philips半導(dǎo)體也推出82C200,;
1993年,,CAN的國(guó)際標(biāo)準(zhǔn)ISO11898/ISO11519公布。ISO11898為高速應(yīng)用,,ISO11519為低速應(yīng)用,;
1994年開始有了國(guó)際CAN學(xué)術(shù)年會(huì)ICC。同年,,美國(guó)汽車工程師協(xié)會(huì)以CAN為基礎(chǔ)制定了SAEJ1939標(biāo)準(zhǔn),,用于卡車和巴士控制和通信網(wǎng)絡(luò)。
?CAN總線特點(diǎn)
1).可以多主方式工作,,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,,而不分主從,通信方式靈活,。
2).網(wǎng)絡(luò)上的節(jié)點(diǎn)可分成不同的優(yōu)先級(jí),,可以滿足不同的實(shí)時(shí)要求。
3).采用非破壞性位仲裁總線結(jié)構(gòu)機(jī)制,,當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上傳送信息時(shí),,優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳送數(shù)據(jù),。
4).可以點(diǎn)對(duì)點(diǎn),,一點(diǎn)對(duì)多點(diǎn)及全局廣播幾種傳送方式接收數(shù)據(jù)。
5).直接通信距離最遠(yuǎn)可達(dá)10km(速率4Kbps以下),。
6).通信速率最高可達(dá)1MB/s(此時(shí)距離最長(zhǎng)40m),。
使用非屏蔽雙絞線傳輸時(shí),傳輸速率與傳輸距離的關(guān)系如下圖所示,。
7).節(jié)點(diǎn)數(shù)最多可達(dá)110個(gè),。
8).采用短幀結(jié)構(gòu),每一幀的有效字節(jié)數(shù)為8個(gè),。
9).每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,,數(shù)據(jù)錯(cuò)誤率極低。
10).通信介質(zhì)可采用雙絞線,,同軸電纜和光纖,,一般采用廉價(jià)的雙絞線即可。
11).節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,,具有自動(dòng)關(guān)閉總線的功能,,切斷它與總線的聯(lián)系,以使總線上的其他操作不受影響。
?CAN總線的仲裁
CAN總線采用CSMA/CD(Carrier Sense Multiple Access with collision Detect,,載波監(jiān)測(cè)多路訪問/沖突檢測(cè))技術(shù),?!拜d波監(jiān)測(cè)”的意思是指在總線上的每個(gè)節(jié)點(diǎn)在發(fā)送信息報(bào)文前都必須監(jiān)測(cè)到總線上有一段時(shí)間的空閑狀態(tài),。“多路訪問”的意思是一旦此空閑狀態(tài)被監(jiān)測(cè)到,,那么每個(gè)節(jié)點(diǎn)都有均等的機(jī)會(huì)來發(fā)送報(bào)文,。“沖突檢測(cè)”是指在兩個(gè)節(jié)點(diǎn)同時(shí)發(fā)送信息時(shí),,節(jié)點(diǎn)本身首先會(huì)檢測(cè)到出現(xiàn)沖突,,然后采取相應(yīng)的措施來解決這一沖突情況。此時(shí)優(yōu)先級(jí)高的報(bào)文先發(fā)送,,低優(yōu)先級(jí)的報(bào)文發(fā)送會(huì)暫停,。這就是CAN總線的仲裁,仲裁過程是不會(huì)對(duì)報(bào)文產(chǎn)生破壞的,。
CAN總線上每個(gè)設(shè)備都有一個(gè)11位的ID信息,,各設(shè)備的優(yōu)先級(jí)是根據(jù)其ID來確定的,ID的序號(hào)越小,,其優(yōu)先級(jí)越高,。下圖為CAN總線上傳輸?shù)臄?shù)據(jù)幀格式,從圖上可知,,傳輸開始標(biāo)識(shí)符SOF后面緊跟的就是11位標(biāo)識(shí)ID,,CAN總線就是據(jù)此進(jìn)行仲裁工作的。
?CAN總線的拓?fù)浣Y(jié)構(gòu)
CAN總線的拓?fù)浣Y(jié)構(gòu)如下,,CAN hub是用于多分支擴(kuò)展用的,,可以省去。CAN總線和分支的末端都需要垮接一個(gè)120歐姆的電阻來終結(jié),,防止信號(hào)反射,。
?CAN總線的邏輯電平
CAN總線具有兩種邏輯狀態(tài),隱性和顯性,。隱性狀態(tài)下,,VCAN_H和VCAN_L都被固定為平均電壓電平,兩者之間的電壓差為0,;顯性狀態(tài)下,,VCAN_H和VCAN_L的電平分別為3.5V和1.5V,兩者差分電壓大于2V,,如下圖所示,。
?常用CAN總線芯片
CAN芯片有CAN控制器和CAN收發(fā)器,在實(shí)際電路中,這兩種芯片需要配合起來應(yīng)用,。
常用CAN控制器芯片有:P87C591,,XAC37,SJA1000,;
常用CAN收發(fā)器芯片有:PCA82C250,,PCA82C251,PCA82C252,,TJA1040,,TJA1041,TJA1050,,TJA1053,,TJA1054。