摘 要:簡單介紹了CAN總線的來源、現(xiàn)狀及存在的問題;針對CAN總線傳輸距離存在的問題提出了兩個解決方案,并進(jìn)行了實(shí)驗(yàn)和比較,試驗(yàn)結(jié)果證明本文的方法提高了傳輸距離的可靠性。
關(guān)鍵詞:現(xiàn)場總線、CAN總線、單片機(jī)
Two Solutions Deal With The Problem Of CAN Bus Transport Distance
Abstract:In this paper, the origin, actuality and problems still exist are introduced briefly. Two solutions are proposed to deal with the problem of CAN bus transport distance. Some experiments are carried out and the results are compared. The results demonstrate that the proposed method enhance the reliability the transport distance
Keywords:Field bus, CAN bus,chip microcomputer
1、 CAN總線簡介
1.1 CAN總線發(fā)展概況[1]
CAN網(wǎng)絡(luò)原本是德國Bosch公司為歐洲汽車市場所開發(fā)的,希望此項(xiàng)技術(shù)取代原本昂貴的汽車配線。CAN網(wǎng)絡(luò)具有反映可靠度高的特性,使用于實(shí)時(shí)處理的場合,例如汽車防鎖死系統(tǒng)、安全氣囊等。今天此項(xiàng)通訊協(xié)議已得到廣泛應(yīng)用,其特色不僅在汽車工業(yè),在工業(yè)控制的其他領(lǐng)域也發(fā)揮了其強(qiáng)大的能力。CAN 總線在國內(nèi)發(fā)展已經(jīng)二三十年了,很多關(guān)于CAN的產(chǎn)品也已經(jīng)開發(fā)和廣泛使用,如:變電廠、機(jī)場、污水處理廠等。
1.2 CAN總線存在的問題
盡管CAN總線有很多優(yōu)點(diǎn),但是下面兩點(diǎn)卻制約著其發(fā)展,即:CAN總線的瓶頸問題。
?。?) 傳輸距離最大只能達(dá)到10Km,而且并不是真正的可靠傳輸;
?。?) 節(jié)點(diǎn)數(shù)量最多只能有110個。
下面將針對CAN總線瓶頸問題(1)做詳細(xì)的討論。
2、 針對CAN總線傳輸距離問題提出的方案
2.1 CAN總線結(jié)構(gòu)[2]
CAN總線系統(tǒng)一般連接結(jié)構(gòu)如圖(以芯片82C250為例)所示,R=120Ω。(注:圖中僅畫出了一個智能設(shè)備,實(shí)際中可以最多達(dá)110個)
圖1 CAN總線系統(tǒng)結(jié)構(gòu)示意圖
CAN總線一般都是利用在環(huán)境比較惡劣,控制室與現(xiàn)場比較遠(yuǎn)的場合??偩€距離達(dá)到8Km以上時(shí),其單向線路電阻將達(dá)到100Ω,而兩端的終端電阻為120Ω(不考慮智能設(shè)備本身電阻,認(rèn)為其電阻為無限大)。其等效電路為圖2:
圖2 CAN總線電路等效圖
對于CAN接收器而言能夠識別的電壓要大于0.8V,一般為0.9V以上。
2.2 針對傳輸距離問題所作的嘗試方案
從上面的電路圖以及數(shù)據(jù)分析可以看出:在距離偏遠(yuǎn)時(shí),總線線電壓已經(jīng)處于臨界識別狀態(tài),其數(shù)據(jù)很難正常接收(已經(jīng)沒有可靠性可言)。為此我們嘗試采用以下幾個方案進(jìn)行了實(shí)驗(yàn)。
2.2.1 在線路中直接加兩個發(fā)送芯片
該方案就是在總線線路中直接加入兩個發(fā)送芯片(采用82C250為例)[3],并把發(fā)送芯片的管腳TXD和RXD對連。其連接電路如下:
圖3 發(fā)送芯片連接電路圖
整個電路看似很正常,把左邊的數(shù)據(jù)傳輸?shù)接疫?,右邊的?shù)據(jù)傳輸?shù)阶筮叄瑢?shí)際上此電路是無法使用的。此電路接入總線后,只要在總線上有一個顯性電平出現(xiàn),那么整個電路將永遠(yuǎn)呈現(xiàn)顯性電平。原因在于每個期間都有延遲(雖然是僅僅幾個ns延遲),假設(shè)從電路左邊收到一個顯性電平,經(jīng)過左右兩個82C250 芯片延遲Tns后傳輸?shù)接疫匔AN總線,另外82C250芯片本身具有同時(shí)發(fā)送、接收功能,那么右邊的82C250芯片同時(shí)把右邊CAN總線的顯性電平又傳送到左邊,這樣就形成了一個回路,使得總線永遠(yuǎn)處于顯性狀態(tài)。
2.2.2 加入邏輯控制電路進(jìn)行隔離
從上面可以看出,在發(fā)送數(shù)據(jù)時(shí)應(yīng)該防止數(shù)據(jù)重傳形成回路。為此我們做了如下規(guī)定:在有顯性電平時(shí)只能夠有一個方向傳輸(哪個方向先來顯性電平開通哪個方向,同時(shí)到來則選擇任一個方向開通);發(fā)送端顯性電平結(jié)束后,所有方向都停止T1時(shí)間(Tns
利用CPLD很容易實(shí)現(xiàn)上面的規(guī)定邏輯。利用此方案把該電路先連接在總線10Km處,并在10Km不遠(yuǎn)處連接一個接收設(shè)備,實(shí)驗(yàn)?zāi)軌蚪邮照?,并且其接收端總線電壓差為1.32V,是單連設(shè)備接收電壓差的1.55倍。
2.2.3 線路中間加入CAN卡中轉(zhuǎn)實(shí)現(xiàn)遠(yuǎn)距離數(shù)據(jù)傳輸(中繼器)
在距離達(dá)到10Km時(shí),其接收數(shù)據(jù)不正常的原因是由于總線電壓差值較小的緣故。為此,有的采用升壓和降壓電路是不現(xiàn)實(shí)的,因?yàn)槊總€接收器都得加入一個調(diào)理電路,造價(jià)很明顯就上去了。另外,即使升壓了,由于CAN總線按照仲裁發(fā)送決定了總要遇到方案二中提到的由于延遲總線形成閉合回路的問題。
為了達(dá)到遠(yuǎn)距離傳輸,可以在中間加入中繼器,相當(dāng)于把總線距離縮短了一倍。中繼器的結(jié)構(gòu)如下:
圖4 中繼器結(jié)構(gòu)示意圖
選擇使用兩個8031單片機(jī)目的在于能夠及時(shí)處理CAN總線上的數(shù)據(jù),使得設(shè)計(jì)也變得比較簡單,不需考慮CAN總線兩邊的數(shù)據(jù)發(fā)送沖突。只要每個單片機(jī)有1K的緩存就可以。
具體實(shí)現(xiàn)思路:單片機(jī)接收CAN總線數(shù)據(jù),把數(shù)據(jù)進(jìn)行緩存,在空閑階段把數(shù)據(jù)傳輸?shù)搅硪粋€單片機(jī)(兩者之間通過SPI協(xié)議實(shí)現(xiàn)通信),同時(shí)把從另一個單片機(jī)傳輸來的數(shù)據(jù)發(fā)送出去。
在實(shí)際的工程中我們是利用此方案實(shí)現(xiàn)遠(yuǎn)距離傳輸?shù)?,主要原因是可以滿足數(shù)據(jù)傳輸?shù)目煽啃裕么朔桨傅碾娐肺覀冞M(jìn)行過節(jié)點(diǎn)數(shù)達(dá)到100的測試,其性能正常、可靠,能夠滿足實(shí)際的需要。
3、 總結(jié)
本文的創(chuàng)新點(diǎn)提出了解決CAN總線傳輸遠(yuǎn)距離問題的可實(shí)施方案,第一個(加入邏輯電路)比較簡單,而且不用考慮數(shù)據(jù)存儲,僅僅是一個硬件實(shí)現(xiàn);而第二種(中繼器)要考慮數(shù)據(jù)存儲、判斷何時(shí)發(fā)送等情況,相對比較復(fù)雜,但可靠性要好些。兩個方案在承受負(fù)載方面能力差不多。
CAN總線技術(shù)作為一種新型的總線技術(shù)由于其具有良好的故障隔離能力、網(wǎng)絡(luò)的實(shí)時(shí)響應(yīng)能力以及CAN具有良好地傳輸防錯設(shè)計(jì)等,使其已經(jīng)成為現(xiàn)在最有前途的總線之一。#p#分頁標(biāo)題#e#
參考文獻(xiàn)
[1] 陽憲惠. 現(xiàn)場總線技術(shù)及其應(yīng)用. 北京: 清華大學(xué)出版社, 1999.
[2] 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì). 北京: 北京航空航天大學(xué)出版社, 1996.
[3] 郭湛,宋存義,李海 基于CAN總線的火電廠貯煤筒倉安全監(jiān)測系統(tǒng) 微計(jì)算機(jī)信息,2005.9(2)P5~7
作者簡介:范瑞霞(1951-),研究員,本科,畢業(yè)于北京理工大學(xué),主要研究方向:智能控制,計(jì)算機(jī)視覺;李位星(1976-),助工,碩士,畢業(yè)于北京理工大學(xué),主要研究方向:計(jì)算機(jī)控制,圖像處理。
通訊地址:北京理工大學(xué)自動控制系206教研室 郵編:100081
FAN Rui-xia LI We-ixing
轉(zhuǎn)載請注明出處。