用87C196NT單片機實現(xiàn)CAN總線通信
CAN(Controller Area Network)即控制器局域網(wǎng),主要用于各種設(shè)備監(jiān)測及控制的一種現(xiàn)場總線。CAN總線最初是由德國Bosch公司為汽車的監(jiān)測、控制系統(tǒng)而設(shè)計的。CAN總線具有獨特的設(shè)計思想,良好的功能特性和極高的可靠性,現(xiàn)場抗干擾能力強。具體來講,CAN總線具有如下特點:
*結(jié)構(gòu)簡單,只有2根線與外部相連,且內(nèi)部含有錯誤探測和管理模塊。
*通信方式靈活。可以多主方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其它節(jié)點發(fā)送信息,而不分主從。
*可以點對點、點對多點及全局廣播方式發(fā)送和接收數(shù)據(jù)。
*網(wǎng)絡(luò)上的節(jié)點信息可分成不同的優(yōu)先級,可以滿足不同的實時要求。
*CAN總線通信格式采用短幀格式,每幀字節(jié)數(shù)最多為8個,可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時,8個字節(jié)也不會占用總線時間過長,從而保證了通信的實時性。[next]
*采用非破壞性總線仲裁技術(shù)。當(dāng)2個節(jié)點同時向總線上發(fā)送數(shù)據(jù)時,優(yōu)先級低的節(jié)點主動停止數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù)。這大大地節(jié)省了總線仲裁沖突時間,在網(wǎng)絡(luò)負載很重的情況下也不會出現(xiàn)網(wǎng)絡(luò)癱瘓。
*直接通信距離最大可達10km(速率5kb/s以下),最高通信速率可達1Mb/s(此時距離最長為40m);節(jié)點數(shù)可達110個,通信介質(zhì)可以是雙絞線、網(wǎng)軸電纜或光導(dǎo)纖維。
*CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等多項工作。
*CAN總線采用CRC檢驗并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。
CAN總線的以上特點,為工業(yè)控制系統(tǒng)中高可靠性的數(shù)據(jù)傳送提供了一種新的解決方案。其在國外工業(yè)測控領(lǐng)域已經(jīng)有了廣泛的應(yīng)用,現(xiàn)國內(nèi)的許多工業(yè)控制領(lǐng)域也開始使用基于CAN的現(xiàn)場總線。CAN總線已成為最有發(fā)展前途的4種現(xiàn)場總線之一。
評論