1 引言
CAN(Controller Area network,控制器局域網(wǎng)) 總線屬現(xiàn)場(chǎng)總線的一種,由于它具有高性能、高可靠性、高性?xún)r(jià)比、連接方便、實(shí)時(shí)性好及其獨(dú)特的設(shè)計(jì)等突出優(yōu)點(diǎn)而被應(yīng)用于許多工業(yè)部門(mén),目前已成為比較流行的一種現(xiàn)場(chǎng)總線,廣泛應(yīng)用于控制系統(tǒng)中的各檢測(cè)和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。
我們?cè)诰C合保護(hù)器的設(shè)計(jì)中,通常都是采用485總線,通訊也采用命令、響應(yīng)方式。主機(jī)發(fā)出查詢(xún)信號(hào),各測(cè)量模塊與主機(jī)通訊,報(bào)告各自數(shù)據(jù)及狀態(tài)。但在應(yīng)用現(xiàn)場(chǎng)中,通訊模塊太多,這樣就會(huì)使主機(jī)十分繁忙,數(shù)據(jù)就有可能不能及時(shí)得到響應(yīng)命令;并且一旦有一個(gè)模塊出現(xiàn)異常,就會(huì)影響到整個(gè)系統(tǒng),考慮到實(shí)時(shí)性和安全性,我們將CAN總線用到了綜合保護(hù)器上。
2 CAN總線特點(diǎn)及協(xié)議
CAN總線最初是由德國(guó)奔馳公司在80年代初為解決現(xiàn)代汽車(chē)中眾多的傳感器和執(zhí)行裝置之間的數(shù)據(jù)通信而開(kāi)發(fā)的一種先進(jìn)的串行通訊協(xié)議目的是通過(guò)較少的信號(hào)線,將汽車(chē)上的各種電子設(shè)備將汽車(chē)上的各種電子設(shè)備通過(guò)網(wǎng)絡(luò)連接起來(lái),并提高數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)目煽啃浴?
2.1 CAN總線有特點(diǎn)
(1) CAN總線通訊速率為1Mbps/40m和5kbps/10km,節(jié)點(diǎn)可達(dá)110個(gè),傳輸介質(zhì)為雙絞線和電纜;
(2) CAN總線采用非破壞性仲裁技術(shù),將節(jié)點(diǎn)信息分為不同的優(yōu)先級(jí),可滿(mǎn)足不同的實(shí)時(shí)性要求;
(3) 當(dāng)節(jié)點(diǎn)出現(xiàn)錯(cuò)誤嚴(yán)重時(shí),具有自動(dòng)關(guān)閉總線的功能,切斷它與總線的聯(lián)系,可使總線上其它操作不受影響;
(4) CAN可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng),且無(wú)主從機(jī)之分,每個(gè)節(jié)點(diǎn)均可在任何時(shí)刻主動(dòng)向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息,可采用點(diǎn)對(duì)點(diǎn),一點(diǎn)對(duì)多點(diǎn)及全局廣播幾種方式傳送數(shù)據(jù);
(5) CAN總線文報(bào)采用短幀結(jié)構(gòu),每幀信息都有CRC校驗(yàn)以及其他檢錯(cuò)措施,使數(shù)據(jù)出錯(cuò)率低,可靠性極高;
(6) CAN 總線的成本低。
2.2 CAN總線協(xié)議
對(duì)通訊數(shù)據(jù)進(jìn)行編碼(取消了傳統(tǒng)的對(duì)站地址編碼),數(shù)據(jù)塊標(biāo)識(shí)符可由11位(CAN2.0A)或29位(CAN2.0B)二進(jìn)制組成,最多可211或219個(gè)數(shù)據(jù)塊,從而使網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)在理論上不受限制,這種按數(shù)據(jù)塊編碼的方式還可使不同的節(jié)點(diǎn)同時(shí)接受相同的數(shù)據(jù),這樣給分步式控制系統(tǒng)中實(shí)現(xiàn)模塊間的數(shù)據(jù)和控制信息共享帶來(lái)了極大方便。CAN 總線通訊接口集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通訊數(shù)據(jù)的成幀處理(包括位填充,數(shù)據(jù)塊校驗(yàn),循環(huán)冗余校驗(yàn),優(yōu)先級(jí)判別等)。
3 系統(tǒng)硬件電路設(shè)計(jì)
系統(tǒng)中主要由上位機(jī)和控制器以及相應(yīng)的保護(hù)電路構(gòu)成,還有接到PC機(jī)內(nèi)部的CAN接口卡,若干個(gè)CAN網(wǎng)絡(luò)接點(diǎn)。綜合保護(hù)器上的若干個(gè)測(cè)量模塊(如開(kāi)關(guān)量輸入輸出模塊EDA9050,計(jì)數(shù)測(cè)頻模塊EDA9081,繼電器輸出模塊EDA9060等)可以掛接到總線上,獨(dú)立地與上位機(jī)通訊。CAN總線系統(tǒng)結(jié)構(gòu)框圖如圖1所示:
圖1 CAN總線系統(tǒng)結(jié)構(gòu)框圖
綜合?;テ魇瞧蛴诿旱V系統(tǒng)的,考慮到應(yīng)用環(huán)境的惡劣性,我們?cè)谛酒x擇中,選用PCA82C250做CAN收發(fā)器,此芯片能提供向總線差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接收能力,能增大通信距離,提高系統(tǒng)瞬間抗干擾能力,保護(hù)總線,降低射頻干擾等。主控制芯片選用AT89C51,CAN控制器選用具有訪問(wèn)優(yōu)先權(quán)的獨(dú)立控制芯片SJA1000,同時(shí)在SJA1000和PCA82C250間加上高速隔離芯片6N137來(lái)提高系統(tǒng)抗干擾能力。CAN節(jié)點(diǎn)模塊結(jié)構(gòu)電路如圖2所示:
圖2 CAN節(jié)點(diǎn)模塊結(jié)構(gòu)電路
4 通訊軟件設(shè)計(jì)
控制軟件的合理設(shè)計(jì)是模塊實(shí)時(shí)、有效地完成數(shù)據(jù)采集及通信任務(wù)的關(guān)鍵,主要包括系統(tǒng)初始化、CAN信息處理、數(shù)據(jù)采集及處理等功能模塊。系統(tǒng)開(kāi)放一個(gè)定時(shí)中斷,定時(shí)時(shí)間對(duì)應(yīng)上位機(jī)發(fā)送來(lái)的采樣周期。CAN報(bào)文的接收主要有2種方式:中斷和查詢(xún)方式。為提高系統(tǒng)的實(shí)時(shí)性,同時(shí)也保證接收緩沖器不出現(xiàn)數(shù)據(jù)溢出現(xiàn)象,模塊中采用中斷接收方式。CAN報(bào)文發(fā)送采用查詢(xún)方式,即當(dāng)需要發(fā)送數(shù)據(jù)時(shí),將預(yù)先組織好的數(shù)據(jù)幀按字節(jié)寫(xiě)入SJA1000的發(fā)送緩沖寄存器中。
系統(tǒng)初始化包括對(duì)各寄存器初始化,而實(shí)際上主要是對(duì)SJA1000的初始化,在復(fù)位模式下完成初始化:設(shè)置工作方式、接收濾波方式、接收屏蔽寄存器AMR和接收代碼ACR、波特率參數(shù)和中斷允許寄存器等。SJA1000控制器初始化如圖3所示:
圖3 SJA1000控制器初始化
5 結(jié)束語(yǔ)
采用CAN總線的綜合保護(hù)器已運(yùn)用到西山煤礦,性能良好,與以往的485總線綜合保護(hù)器相比,有明顯的優(yōu)越性:上位機(jī)處理事件更及時(shí)、單個(gè)模塊不能影響到整個(gè)系統(tǒng)、抗干擾性能提高,因此,有很好的推廣價(jià)值。
參考文獻(xiàn)
[1] 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì). 北京:北京航空航天大學(xué)出版社,1996
[2] 鄔寬明. 現(xiàn)場(chǎng)總線技術(shù)應(yīng)用選編(上). 北京:北京航空航天大學(xué)出版社,2003
[3] 饒運(yùn)濤等. 現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù). 北京:北京航空航天大學(xué)出版社,2002
作者簡(jiǎn)介
熊珍凱(1979-) 男 在讀碩士 研究方向:計(jì)算機(jī)測(cè)量與控制。
任作新(1938-) 男 教授 研究方向:計(jì)算機(jī)測(cè)量與控制。