新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC18單片機的RS-485/CAN智能轉換器的設計

        PIC18單片機的RS-485/CAN智能轉換器的設計

        作者: 時間:2010-04-23 來源:網絡 收藏

        RS-485是一個電氣接口規范,它定義了一個基于單對平衡線的多點、雙向(半雙工)通信鏈路,只對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議,在當時看來是一種相對經濟具有相當高噪聲抑制相對高的傳輸速率傳輸距離遠和寬共模范圍的通信平臺,因此基于RS-485總線的通訊方法得到了廣泛的應用。
        由于RS-485總線本身存在的許多局限性,隨著科技的發展RS-485的總線效率低,系統的實時性差、通訊的可靠性低、后期維護成本高、網絡工程調試復雜、傳輸距離不理想、單總線可掛接的節點少、應用不靈活等缺點慢慢的暴露出來。雖歷經多次改進但均是治標不治本。
        CAN-bus是一種多主方式的串行通訊總線。具有較高的位速率,高抗電磁干擾性,而且能夠檢測出通信過程中發生的任何錯誤。當信號傳輸距離達到10 km 時CAN-bus仍可提供高達5 kb/s的數據傳輸速率。他在通信能力、可靠性、實時性、靈活性、易用性、傳輸距離、成本等方面有著明顯的優勢,從而成為了業界最有前途的現場總線之一。
        基于RS-485網絡在現場的廣泛應用,完全放棄RS-485網絡系統是不現實的。但可以考慮一種折衷的辦法,就是在保留現有RS-485系統硬件結構的基礎上給系統添加一個CAN-bus接口,就具有了現實的意義。他可以實現RS-485網絡與CAN網絡的互聯。系統原理框圖如圖1所示。

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



        2
        的原理框圖如圖2所示:

        在該設計中采用了帶CAN控制器的F258芯片,其特點如表1所示。與傳統的MCU再加上獨立的CAN控制器的設計方法相比,可以使設計大大簡化,同時也增加了系統的可靠性。

        表1 F258的性能參數 名稱 特性
        高性能RISC CPU 2MB的程序存儲器。4kB的數據RAM。16位寬指令,
        高達10 MIPS的執行速度。8×8單周期硬件乘法器
        豐富的外圍功能模塊 4個內部定時器,PWM/CCP模塊,USART模塊,
        10位8通道A/D。CAN 總線模塊,異步串行通信SPI方式,I2C模式

        特殊的特性 SLEEP方式,帶有片內RC振蕩器的監視定時器(WDT),
        可編程代碼保護功能,通過兩個引腳可進行在線串行編程(ICSP)

        FLASH 技術 低功耗,高速增強型FLASH 技術

        2.1 硬件電路設計
        硬件電路原理圖如圖3所示,包括MCU,總線驅動模塊,光電隔離,DC-DC隔離電源模塊等。

        RS485總線驅動模塊采用MAX487,MAX487工作于半雙工模式,內部包含一個發送器和一個接收器,在工作時需要通過使能端來控制“收”和“發”,將其使能端RE和DE連接到一起,然后接到PIC的RC4,在軟件中通過對RC4的置位和復位來控制MAX487的收和發。
        RS-485標準采用差分傳輸,本身已具有一定的抗干擾能力,在其傳輸通道的兩端分別加上一個6N137芯片,可以進一步增強轉換器的抗干擾能力。可以避免由傳輸問題而引起的死機現象。
        CAN總線驅動模塊采用PCA82C250,接口電路比較簡單。同樣也在其傳輸通道加上兩個高速光耦6N137,實現總線和轉換器的電氣隔離。
        在硬件設計中需要特別注意電源部分的設計,因為光耦隔離兩側必須采用獨立的電源供電,否則將不能起到隔離的作用。轉換器在現場應用的時候不是采用電池供電,而是采用現場CAN總線的電源來供電,而這個電源是不穩定的電源,而且存在很多干擾量,不能直接應用到轉換器當中,必須經過隔離,濾波以及穩壓處理。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿巴嘎旗| 保定市| 留坝县| 弋阳县| 旬邑县| 壤塘县| 永宁县| 奉化市| 镇雄县| 内丘县| 广安市| 浑源县| 榆树市| 商水县| 措美县| 房山区| 和龙市| 广东省| 黄平县| 额敏县| 彰化市| 庄浪县| 丽江市| 登封市| 尚志市| 甘肃省| 措勤县| 长岛县| 乌海市| 皋兰县| 南雄市| 平遥县| 隆安县| 达拉特旗| 武邑县| 连平县| 和林格尔县| 吉安市| 延边| 柳河县| 郸城县|