歡迎您光臨本站 登入註冊首頁

概述

1引言   RS-485是一個電氣介面規範,它定義了一個基於單對平衡線的多點、雙向(半雙工)通信鏈路,只對介面的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用……

1 引言
    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智能轉換器的設計就具有了現實的意義。他可以實現RS-485網路與CAN網路的互聯。系統原理框圖如圖1所示。
 

2 轉換器設計
轉換器設計的原理框圖如圖2所示:
 
    在該設計中採用了帶CAN控制器的PIC18F258晶元,其特點如表1所示。與傳統的MCU再加上獨立的CAN控制器的設計方法相比,可以使設計大大簡化,同時也增加了系統的可靠性。

表1 PIC18F258單片機的性能參數
名稱 特性
高性能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匯流排的電源來供電,而這個電源是不穩定的電源,而且存在很多干擾量,不能直接應用到轉換器當中,必須經過隔離,濾波以及穩壓處理。
    在轉換器中所需電源均為+5 V 的直流電源,共需要3個獨立的+5 V電源,分別為MCU 的電源VCC1,CAN介面晶元一側所用電源VCC2。RS-485介面晶元一側所用電源VCC3。因此可以考慮使用1個輸入3個輸出的DC/DC模塊,實際當中沒有找到現成的3輸出的DC/DC模塊。因此設計中採用金昇陽公司的B系列和D系列的DC/DC 模塊, 一輸入兩輸出的D050505N-1 W ,再加上一個單輸出的B0505D-1 W。DC/DC兩側的電感和電容構成濾波和穩壓電路,其大小值均為典型值。最後構成如下圖所示的轉換器的電源模塊。
 
    另外,3組電源不能共地。GND1,GND2,GND3必須相互獨立。否則光耦不能起到隔離的作用。

2.2 軟體設計
    軟體設計通過Microchip的開發工具Mplab用彙編語言編製,主要包括初始化程序,CAN接收中斷服務程序,USART接收中斷服務程序,主程序。應用層通信協議轉換程序等。
    初始化程序用於設置CAN模塊的通信波特率,工作方式,接收郵箱和發送郵箱,對應的接收過濾器和接收屏蔽器,以及發送的優先順序等。其流程圖如圖5所示。
 
圖5 初始化程序
     CAN接收中斷服務程序主要用來接收CAN 匯流排傳輸過來的數據幀,並進行幀校驗,如果出錯則要求重發,若數據幀正確接收,則將完整的數據幀存入到提前開闢的環形緩衝器中,為後面的數據處理和協議轉換做好準備。其流程簡圖如圖6所示。
 
圖6 CAN接收中斷服務程序
    USART接收中斷服務程序主要用於接收來自RS-485匯流排的串列數據。並將完整的數據幀傳送到另外一個環形緩衝器。其流程圖和設計思想與CAN 接收中斷程序類似,不再例舉。
    協議轉換程序需要參照現場RS-485系統原有的協議,然後由用戶通過配套軟體對通信幀的格式進行相應的設置。進行配置時PC 機必須通過RS-485介面訪問RS-485/CAN智能轉換器,通常PC機的RS-232介面必須使用RS-232/RS-485轉換器。設置成功后,就可以實現RS-485與CAN通信幀格式的相互轉換。
    主程序部分比較簡單。主要為調用初始化程序,掃描發送緩衝器是否為空,不空則在空閑時根據其優先順序將CAN通信幀或RS-485串列通信幀發送出去。然後不斷掃描,等待中斷的產生。

3 結語
    利用RS-485/CAN 智能轉換器,實現了RS-485網路與CAN網路的互連,而且智能轉換器的通信波特率可調,工作模式可以控制,對於不同協議的RS-485網路,只需通過軟體對轉換器進行相應的初始化設置即可,而不必對硬體進行改動。可以滿足絕大多數場合的使用要求。但是這種利用RS-485/CAN智能轉換器實現RS-485網路和CAN網路互連的方案只是一種過渡性的方案,互連后整個系統的性能要受限於RS-485網路,不能充分體現CAN系統的優越性。該方案僅適合新系統與舊系統並存,整體性能要求不太高,新舊系統運行機制差別不大的地方。


[admin via 研發互助社區 ] 基於PIC18單片機的RS-485/CAN智能轉換器的設計已經有3955次圍觀

http://cocdig.com/docs/show-post-42233.html