CAN總線原理介紹
CAN總線最早用在汽車電子領(lǐng)域,世界上一些著名的汽車制造廠商都采用CAN總線來(lái)實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。由于CAN總線在數(shù)據(jù)通信方面表現(xiàn)出來(lái)的高可靠性、實(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年開(kāi)始有了國(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è)多路訪問(wèn)/沖突檢測(cè))技術(shù)。“載波監(jiān)測(cè)”的意思是指在總線上的每個(gè)節(jié)點(diǎn)在發(fā)送信息報(bào)文前都必須監(jiān)測(cè)到總線上有一段時(shí)間的空閑狀態(tài)。“多路訪問(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總線的仲裁,仲裁過(guò)程是不會(huì)對(duì)報(bào)文產(chǎn)生破壞的。
CAN總線上每個(gè)設(shè)備都有一個(gè)11位的ID信息,各設(shè)備的優(yōu)先級(jí)是根據(jù)其ID來(lái)確定的,ID的序號(hào)越小,其優(yōu)先級(jí)越高。下圖為CAN總線上傳輸?shù)臄?shù)據(jù)幀格式,從圖上可知,傳輸開(kāi)始標(biāo)識(shí)符SOF后面緊跟的就是11位標(biāo)識(shí)ID,CAN總線就是據(jù)此進(jìn)行仲裁工作的。
?CAN總線的拓?fù)浣Y(jié)構(gòu)
CAN總線的拓?fù)?/strong>結(jié)構(gòu)如下,CAN hub是用于多分支擴(kuò)展用的,可以省去。CAN總線和分支的末端都需要垮接一個(gè)120歐姆的電阻來(lái)終結(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í)際電路中,這兩種芯片需要配合起來(lái)應(yīng)用。
常用CAN控制器芯片有:P87C591,XAC37,SJA1000;
常用CAN收發(fā)器芯片有:PCA82C250,PCA82C251,PCA82C252,TJA1040,TJA1041,TJA1050,TJA1053,TJA1054。
評(píng)論