• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術 > 設計應用 > 基于PIC18單片機的CAN RS485轉換器的設計

    基于PIC18單片機的CAN RS485轉換器的設計

    作者: 時間:2012-04-14 來源:網絡 收藏

    基于 的設計

    RS-485總線以雙絞線為物理介質,工作在半雙工的通信狀態下,即同一時刻總線上只能有一個節點成為主節點而處于發送狀態,其它所有節點必須處于接收狀態。如果同一時刻有兩個以上的節點處于發送狀態,將導致所有發送方的數據發送失敗,即總線沖突。

    為了避免這種總線沖突問題,RS-485總線必須具備:

    ①以工作模式來說,一般的RS-485總線工作在主從模式下;

    ②從通信節點來講,RS-485總線上的節點必須具備可以將自己的驅動器切換到高阻態的功能。

    以上是為適應RS-485總線的特殊之處而采用的措施,這樣同時也帶來了一些不足。首先,這種總線工作方式在很多對實時性、可靠性要求高的工業控制場合有較大的局限性;其次,對驅動器實行的“發送態—高阻態”切換以及切換延遲等功能要求會使編程變得復雜。同時在上電瞬間、CPU損壞或者程序跑飛的情況下,還需要考慮復雜的故障保護等問題,否則將容易引起總線故障。

    控制器局域網-bus (Controller Area Network)是國際上應用最廣泛的現場總線之一。最初-bus被設計作為汽車環境中的微控制器通訊,意在車載各電子控制裝置ECU之間交換信息,從而形成汽車電子控制網絡。如今,作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式,CAN-bus已被廣泛應用到各個自動化控制系統中。而且它在通信能力、可靠性、實時性、靈活性、易用性、傳輸距離等方面較RS-485總線有著明顯的優勢,因而用CAN總線取代RS-485總線將是大勢所趨。

    基于RS-485網絡在現場的廣泛應用,目前完全放棄RS-485網絡系統是不現實的。但可以考慮一種折衷的辦法.就是在系統保留現有RS-485系統硬件結構的基礎上添加一個CAN-bus接口,本設計的CAN485智能就具有這樣的現實意義。它可以實現RS-485網絡與CAN網絡的互聯,其系統原理框圖如圖1所示。



    1 CAN-485原理

    圖2所示是一種CAN-485智能轉換器的原理框圖,本設計采用F258為核心,該自帶CAN收發接口,因此可簡化硬件設計,提高運行效率。F258的主要特征如下:

    ◇通過ISO CAN標準測試;

    ◇執行CAN協議:CAN1.2 CAN2.0ACAN2.0B;

    ◇標準和擴展數據模式;

    ◇0-8位數據長度;

    ◇可編程速率高達1 Mbps;

    ◇2個數據接收緩沖器;

    ◇6個完全接收濾波器,2個對應高優先權緩沖器,4個對應低優先權緩沖器;

    ◇2個完全接收掩碼器;

    ◇3個具有優先權的發送緩沖器。



    由于單片機的輸出電流比較弱,難以驅動光電隔離器,為保險起見,信號輸入光耦前要經過74HC573鎖存;同樣為了增加信號驅動能力,經過隔離的信號要再次經過74HC573鎖存。

    2 軟件設計

    系統的軟件設計主要包括初始化程序、CAN接收中斷服務程序、USART接收中斷服務程序、主程序及應用層通信協議轉換程序等。

    初始化程序用于設置CAN模塊的通信波特率、工作方式、發送的優先級、接收郵箱和發送郵箱及對應的接收過濾器和接收屏蔽器等。其初始化程序流程圖如圖3所示。



    CAN接收中斷服務程序主要用來接收CAN總線傳輸過來的數據幀,并對其進行幀校驗,如果出錯則要求重發,若數據幀正確接收,則將完整的數據幀存人到提前開辟的環形緩沖器中,為后面的數據處理和協議轉換做好準備。其CAN接收中斷服務程序流程圖如圖4所示。



    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結束語

    利用CAN485智能轉換器可實現RS-485網絡與CAN網絡的互連,且智能轉換器的通信波特率可調,工作模式也可控制,對于不同協議的RS-485網絡,只需通過軟件對轉換器進行相應的初始化設置,而不必對硬件進行改動,因此可以滿足絕大多數場合的使用要求。但是該方案不能充分體現CAN系統的優越性,僅適合新系統與舊系統并存、整體性能要求不太高的場所。因此,用CAN總線取代RS-485總線將是大勢所趨。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 海原县| 虞城县| 尉犁县| 内乡县| 卢氏县| 长泰县| 内黄县| 长垣县| 信宜市| 武定县| 和政县| 昆山市| 芷江| 富川| 定兴县| 马边| 泽普县| 鲁山县| 奇台县| 黄梅县| 广河县| 博兴县| 佛坪县| 来凤县| 饶平县| 中牟县| 旬阳县| 海门市| 六盘水市| 台湾省| 大邑县| 寿光市| 泉州市| 叶城县| 大邑县| 丰台区| 玛多县| 高平市| 泸定县| 邳州市| 神木县|