<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 針對CAN總線(xiàn)傳輸距離問(wèn)題提出的方案

針對CAN總線(xiàn)傳輸距離問(wèn)題提出的方案

作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò ) 收藏

1.1 所作的嘗試

本文引用地址:http://dyxdggzs.com/article/148565.htm

從上面的電路圖以及數據分析可以看出:在偏遠時(shí),線(xiàn)電壓已經(jīng)處于臨界識別狀態(tài),其數據很難正常接收(已經(jīng)沒(méi)有可靠性可言)。為此我們嘗試采用以下幾個(gè)進(jìn)行了實(shí)驗。

1.1.1 在線(xiàn)路中直接加兩個(gè)發(fā)送芯片

就是在線(xiàn)路中直接加入兩個(gè)發(fā)送芯片(采用82C250為例)[3],并把發(fā)送芯片的管腳TXD和RXD對連。其連接電路如下:

圖1 發(fā)送芯片連接電路圖

整個(gè)電路看似很正常,把左邊的數據到右邊,右邊的數據到左邊,實(shí)際上此電路是無(wú)法使用的。此電路接入后,只要在總線(xiàn)上有一個(gè)顯性電平出現,那么整個(gè)電路將永遠呈現顯性電平。原因在于每個(gè)期間都有延遲(雖然是僅僅幾個(gè)ns延遲),假設從電路左邊收到一個(gè)顯性電平,經(jīng)過(guò)左右兩個(gè)82C250芯片延遲Tns后傳輸到右邊總線(xiàn),另外82C250芯片本身具有同時(shí)發(fā)送、接收功能,那么右邊的82C250芯片同時(shí)把右邊總線(xiàn)的顯性電平又傳送到左邊,這樣就形成了一個(gè)回路,使得總線(xiàn)永遠處于顯性狀態(tài)。

1.1.2 加入邏輯控制電路進(jìn)行隔離

從上面可以看出,在發(fā)送數據時(shí)應該防止數據重傳形成回路。為此我們做了如下規定:在有顯性電平時(shí)只能夠有一個(gè)方向傳輸(哪個(gè)方向先來(lái)顯性電平開(kāi)通哪個(gè)方向,同時(shí)到來(lái)則選擇任一個(gè)方向開(kāi)通);發(fā)送端顯性電平結束后,所有方向都停止T1時(shí)間(Tns

利用CPLD很容易實(shí)現上面的規定邏輯。利用此方案把該電路先連接在總線(xiàn)10Km處,并在10Km不遠處連接一個(gè)接收設備,實(shí)驗能夠接收正常,并且其接收端總線(xiàn)電壓差為1.32V,是單連設備接收電壓差的1.55倍。

1.1.3 線(xiàn)路中間加入卡中轉實(shí)現遠數據傳輸(中繼器)

在距離達到10Km時(shí),其接收數據不正常的原因是由于總線(xiàn)電壓差值較小的緣故。為此,有的采用升壓和降壓電路是不現實(shí)的,因為每個(gè)接收器都得加入一個(gè)調理電路,造價(jià)很明顯就上去了。另外,即使升壓了,由于CAN總線(xiàn)按照仲裁發(fā)送決定了總要遇到方案二中提到的由于延遲總線(xiàn)形成閉合回路的。

為了達到遠距離傳輸,可以在中間加入中繼器,相當于把總線(xiàn)距離縮短了一倍。中繼器的結構如下:

圖2 中繼器結構示意圖

選擇使用兩個(gè)8031單片機目的在于能夠及時(shí)處理CAN總線(xiàn)上的數據,使得設計也變得比較簡(jiǎn)單,不需考慮CAN總線(xiàn)兩邊的數據發(fā)送沖突。只要每個(gè)單片機有1K的緩存就可以。

具體實(shí)現思路:?jiǎn)纹瑱C接收CAN總線(xiàn)數據,把數據進(jìn)行緩存,在空閑階段把數據傳輸到另一個(gè)單片機(兩者之間通過(guò)SPI協(xié)議實(shí)現通信),同時(shí)把從另一個(gè)單片機傳輸來(lái)的數據發(fā)送出去。

1.2CAN總線(xiàn)結構[2]

CAN總線(xiàn)系統一般連接結構如圖(以芯片82C250為例)所示,R=120Ω。(注:圖中僅畫(huà)出了一個(gè)智能設備,實(shí)際中可以最多達110個(gè))

圖3 CAN總線(xiàn)系統結構示意圖

CAN總線(xiàn)一般都是利用在環(huán)境比較惡劣,控制室與現場(chǎng)比較遠的場(chǎng)合??偩€(xiàn)距離達到8Km以上時(shí),其單向線(xiàn)路電阻將達到100Ω,而兩端的終端電阻為120Ω(不考慮智能設備本身電阻,認為其電阻為無(wú)限大)。其等效電路為圖2:

圖4 CAN總線(xiàn)電路等效圖

對于CAN接收器而言能夠識別的電壓要大于0.8V,一般為0.9V以上。

在實(shí)際的工程中我們是利用此方案實(shí)現遠距離傳輸的,主要原因是可以滿(mǎn)足數據傳輸的可靠性,利用此方案的電路我們進(jìn)行過(guò)節點(diǎn)數達到100的測試,其性能正常、可靠,能夠滿(mǎn)足實(shí)際的需要。

CAN總線(xiàn)技術(shù)作為一種新型的總線(xiàn)技術(shù)由于其具有良好的故障隔離能力、網(wǎng)絡(luò )的實(shí)時(shí)響應能力以及CAN具有良好地傳輸防錯設計等,使其已經(jīng)成為現在最有前途的總線(xiàn)之一。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>