基于PIC單片機(jī)的CAN總線擴(kuò)展技術(shù)
0 引 言
CAN總線是一種串行多主站局域網(wǎng)總線,被廣泛應(yīng)用于汽車控制系統(tǒng)、自動(dòng)控制、樓宇自動(dòng)化、醫(yī)學(xué)設(shè)備等各個(gè)領(lǐng)域。其傳輸距離遠(yuǎn),最遠(yuǎn)可達(dá)10 km,傳輸速率高,最高可達(dá)1 Mb/s,容錯(cuò)性能好,可靠性能高。但是由于CAN驅(qū)動(dòng)器的驅(qū)動(dòng)能力有限,CAN總線能夠驅(qū)動(dòng)的節(jié)點(diǎn)數(shù)有限,一般在100個(gè)左右,同時(shí)會(huì)隨著傳輸距離的增加,最高傳輸速率會(huì)下降,如果距離過長會(huì)引起信號(hào)丟失、反射等故障。在實(shí)驗(yàn)室條件下測(cè)得在5 Kb/s的通信速率下最遠(yuǎn)通信距離能達(dá)到10 km;在18 Kb/s的通信速率下最遠(yuǎn)通信距離只能達(dá)到2 km;而在42 b/s的通信速率下,最遠(yuǎn)通信距離只能達(dá)到1 km。測(cè)試條件:線纜采用線徑為0.75 mm2的屏蔽雙絞線,線纜為盤裝,室內(nèi)測(cè)試。在實(shí)驗(yàn)中,發(fā)現(xiàn)隨著隨著通信距離的增加,通信速率迅速下降,而CAN總線的驅(qū)動(dòng)節(jié)點(diǎn)數(shù)量也次第下降。而在通信距離遠(yuǎn),通信節(jié)點(diǎn)多的大空間場(chǎng)所,比如礦井、電力監(jiān)控等系統(tǒng)需要CAN總線來傳輸數(shù)據(jù)和監(jiān)控信息的場(chǎng)所,CAN總線不能滿足要求。
如果要實(shí)現(xiàn)通信距離遠(yuǎn)、通信速率高、總線節(jié)點(diǎn)數(shù)量多CAN總線系統(tǒng),實(shí)現(xiàn)CAN總線的擴(kuò)展,就需要一個(gè)CAN網(wǎng)關(guān)進(jìn)行橋接,把CAN總線劃分為幾個(gè)子網(wǎng),增加CAN總線通信節(jié)點(diǎn),延長CAN總線的傳輸距離,提高CAN總線的傳輸速率。在研究基于PIC單片機(jī)的CAN網(wǎng)關(guān)設(shè)計(jì)和擴(kuò)展的CAN總線網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
1 CAN網(wǎng)關(guān)總體設(shè)計(jì)及總線拓?fù)浣Y(jié)構(gòu)
1.1 CAN網(wǎng)關(guān)總體設(shè)計(jì)
CAN網(wǎng)關(guān)作為一種轉(zhuǎn)發(fā)設(shè)備,連接在兩個(gè)不同的CAN網(wǎng)絡(luò)中,能夠?qū)崟r(shí)接收來自兩個(gè)子網(wǎng)中的信息,根據(jù)需要篩選或者無條件地把接收到的信息轉(zhuǎn)發(fā)到另外一個(gè)網(wǎng)絡(luò)中。CAN總線層次結(jié)構(gòu)分為物理層、數(shù)據(jù)鏈路層和應(yīng)用層,工作于ISO/OSI參考模式下。CAN網(wǎng)關(guān)在物理層和數(shù)據(jù)鏈路層完成兩個(gè)CAN網(wǎng)的連接。CAN網(wǎng)關(guān)結(jié)構(gòu)圖如圖1所示。
CAN網(wǎng)關(guān)可以作為透明網(wǎng)關(guān)和源路由網(wǎng)關(guān)。透明網(wǎng)關(guān)完全按照接收到的幀格式轉(zhuǎn)發(fā),不改變幀結(jié)構(gòu),對(duì)于用戶,網(wǎng)關(guān)相當(dāng)于透明的。而源路由網(wǎng)關(guān)由用戶提供路由信息,網(wǎng)關(guān)按照路由信息對(duì)消息進(jìn)行過濾和有選擇性的轉(zhuǎn)發(fā)。
1.2 CAN總線網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
帶有網(wǎng)關(guān)的CAN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖2所示。在這個(gè)網(wǎng)路中,PC機(jī)為主節(jié)點(diǎn),而CAN節(jié)點(diǎn)作為從節(jié)點(diǎn)。在網(wǎng)絡(luò)的頂層,由PC機(jī)和網(wǎng)關(guān)構(gòu)成一個(gè)主網(wǎng),在這個(gè)主網(wǎng)中PC機(jī)和CAN網(wǎng)關(guān)作為CAN節(jié)點(diǎn),總線驅(qū)動(dòng)器驅(qū)動(dòng)能力可以帶100個(gè)cAN節(jié)點(diǎn)左右。主網(wǎng)中的CAN網(wǎng)關(guān)再作為下一個(gè)子網(wǎng)中的主節(jié)點(diǎn),而其他CAN網(wǎng)關(guān)或是CAN節(jié)點(diǎn)作為從節(jié)點(diǎn),構(gòu)成一個(gè)子網(wǎng)。這樣通過CAN網(wǎng)關(guān)可以逐環(huán)把網(wǎng)絡(luò)擴(kuò)展下去,直到最底層的CAN節(jié)點(diǎn)。而在應(yīng)用層上,用戶可以把網(wǎng)關(guān)配置成透明網(wǎng)關(guān)或是源路由網(wǎng)光。透明網(wǎng)關(guān)不影響網(wǎng)絡(luò)結(jié)構(gòu),CAN拓展網(wǎng)絡(luò)形成一個(gè)多節(jié)點(diǎn),遠(yuǎn)距離的網(wǎng)絡(luò)。源路由網(wǎng)關(guān)對(duì)消息具有過濾性,根據(jù)用戶的配置信息把CAN網(wǎng)絡(luò)在應(yīng)用層上劃分為幾個(gè)小網(wǎng)。
這樣,解決了節(jié)點(diǎn)容量、通信距離、通信速率的問題。
評(píng)論