新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 針對CAN總線傳輸距離問題的兩種解決方案

        針對CAN總線傳輸距離問題的兩種解決方案

        作者: 時間:2009-09-28 來源:網絡 收藏
        2.2.1在線路中直接加兩個發送芯片

        本文引用地址:http://www.104case.com/article/188585.htm

          該就是在線路中直接加入兩個發送芯片(采用82C250為例),并把發送芯片的管腳TXD和RXD對連。其連接電路如下:


        圖3發送芯片連接電路圖

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

          2.2.2加入邏輯控制電路進行隔離

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

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

          2.2.3線路中間加入卡中轉實現遠距離數據傳輸(中繼器)

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

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

         
        圖4中繼器結構示意圖

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

          具體實現思路:單片機接收CAN總線數據,把數據進行緩存,在空閑階段把數據傳輸到另一個單片機(兩者之間通過SPI協議實現通信),同時把從另一個單片機傳輸來的數據發送出去。

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

        3、總結

          本文的創新點提出了解決CAN總線傳輸遠距離問題的可實施方案,第一個(加入邏輯電路)比較簡單,而且不用考慮數據存儲,僅僅是一個硬件實現;而第二種(中繼器)要考慮數據存儲、判斷何時發送等情況,相對比較復雜,但可靠性要好些。兩個方案在承受負載方面能力差不多。

          CAN總線技術作為一種新型的總線技術由于其具有良好的故障隔離能力、網絡的實時響應能力以及CAN具有良好地傳輸防錯設計等,使其已經成為現在最有前途的總線之一。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 独山县| 夹江县| 江西省| 佛教| 巨鹿县| 体育| 德庆县| 奈曼旗| 日土县| 德兴市| 伊吾县| 娄烦县| 乐陵市| 保康县| 美姑县| 平利县| 阿合奇县| 体育| 芦山县| 安仁县| 舞阳县| 保靖县| 蚌埠市| 克什克腾旗| 安平县| 秦安县| 广丰县| 天祝| 绥宁县| 安泽县| 萨嘎县| 鄄城县| 高雄市| 泌阳县| 阿克陶县| 深水埗区| 常州市| 建始县| 罗平县| 弥勒县| 赤城县|