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