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

    EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA和MCU的CAN-VME總線轉換設計

    基于FPGA和MCU的CAN-VME總線轉換設計

    作者: 時間:2012-02-08 來源:網絡 收藏

    2 轉換系統的軟件設計
    2.1 軟件設計思路
    構建8個雙口RAM,8路CAN控制器通過這8個雙口RAM與上位VME主機進行數據通信,RAM口分別映射到VME主機內存地址和
    存儲器空間中。系統數據傳輸采用中斷主機(VME主機)和主機中斷兩種方式,前者通過觸發主機外部中斷實現,由雙口RAM里面的中斷控制來決定的,在觸發中斷后,提示主機讀取CAN控制器接收到的數據以及CAN控制器的工作狀態。主機中斷MCU方式是通過MCU的外部中斷管腳實現的,是由主機寫入雙口RAM的控制字實現的。觸發該中斷后,MCU就從主機接收要發送的報文,并發送到相應的CAN節點上,并配合主機配置CAN控制器的控制模式。中斷流程如圖4,圖5所示。

    本文引用地址:http://www.czjhyjcfj.com/article/190789.htm

    c.jpg d.jpg


    2.2 的軟件設計
    在該系統中,數據都由VME主機控制,所以構造雙口RAM(或者8個區域即可),使VME主機和MCU在RAM中完成數據傳輸。即主機要發送
    的數據放入RAM中等待MCU提取,同時MCU發送的數據放入RAM中等待VME主機提取。
    2.3 CAN節點軟件設計
    CAN節點軟件是本系統的重點,它包括CAN控制器初始化、報文發送和報文接收3個部分。
    初始化主要完成設置工作方式、接收方式、屏蔽寄存器、驗收代碼寄存器、波特率和中斷寄存器,并且要在復位模式下進行初始化。初始化流程如圖6所示。

    e.jpg


    報文發送就是將代發的數據按照CAN協議的數據格式,組成一幀一幀的報文,送入SJA1000的發送緩沖區,觸發SJA1000發送即可;報文接收同理。
    2.4 MCU轉換程序設計
    微控制器程序設計的主要目的是以最快的速度響應中斷請求,完成兩種總線數據的轉換和傳輸。編程時采用模塊化思想,每個模塊完成一定的功能。編程采用Keil公司的Keil μVision3編程工具,設計分為:初始化系統、使能中斷、查詢總線,隨時準備響應MCU中斷主機(VME主機)和主機中斷MCU兩種中斷觸發,并且完成VME總線和CAN總線之間的重組和交換,及時將轉換后的信息相應地傳送給VME主機或者發送到CAN節點上。流程如圖7所示。

    f.jpg



    3 測試分析
    測試過程由VME總線端和CAN總線端互相發送數據包。其中,測試了5組由VME總線發送到CAN總線的數據包;5組由CAN總線發送到VME總線的數據包,記錄如表1所示。由表1測試結果所示,該系統中CAN總線節點都設置在1 Mb/s的速率下,系統可以準確地接受和發送數據包。系統正確率之所以會隨通信速度的提高而提高,主要原因在于系統在不同的通信速度時,數據包發送頻率、發送的最小延時間隔都不相同。如果需要進一步的提升數據發送的正確率,需要系統在硬件設計和PCB板制作上分別努力,才能保證盡可能小的干擾,盡可能大的提高系統的穩定性和抗干擾性。

    4 結語
    該系統充分利用了VME總線和CAN總線的優點,在FPGA和MCU的基礎上實現相應的電路的連接和軟件的設計,成功地完成兩種不同總線之間的轉換,擴展了兩種總線的應用范圍。


    上一頁 1 2 下一頁

    關鍵詞: CAN-VME FPGA MCU 總線

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 抚州市| 洛隆县| 庆城县| 都匀市| 阿拉善右旗| 阿坝县| 晋州市| 漠河县| 嘉祥县| 永定县| 绥德县| 勃利县| 那坡县| 大港区| 三门峡市| 南漳县| 长阳| 隆尧县| 招远市| 威海市| 临澧县| 江北区| 泰州市| 彩票| 肇州县| 东兴市| 武山县| 高雄县| 什邡市| 武川县| 珲春市| 沾益县| 颍上县| 莱州市| 巫溪县| 咸丰县| 响水县| 达日县| 谷城县| 沾化县| 顺平县|