新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 采用VC++程序的FPGA重配置設計方案

        采用VC++程序的FPGA重配置設計方案

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


        Windows XP操作系統中的驅動開發主要是基于Win32模式驅動,即基于WDM(Win32 Driver Model)。在WDM驅動模型中,每個硬件設備至少有兩個驅動:總線驅動程序和功能驅動程序。其中總線驅動程序由Windows提供,需要考慮的是負責實現PCI設備邏輯功能的功能驅動程序。所以,驅動程序分為以動態鏈接庫形式的儀器驅動程序和以WDM格式的底層的接口驅動程序。前者用于實現對目標硬件的操作,即下載數據流對;后者則可實現資源分配、接口管理及數據的控制傳輸。

        3 數據分析

        中的應用軟件所要下載的配置數據流是由硬件者根據需求提供的,是以二進制形式存儲的.rpd文件。可以根據不同的來選擇不同的外圍存儲芯片(如EPCS1,EPCS16),從而生成不同大小的配置數據流。由于軟件中,每次下發的數據一定,所以,由數據流的大小就能決定循環發送數據的次數。

        由于硬件設計者提供的.rod文件中的數據并不是原始的配置數據,而是所要配置的數據經過反轉生成的新的配置數據流,所以,要先將.rpd中的數據反轉處理后再發送給硬件。通過用戶界面可以二進制的形式打開.rod文件并讀數,將配置數據流以單字節的形式暫存在一數組中,然后對數據進行反轉處理。數組中每個單字節數據的反轉過程為:unsigned char strl=DE,反轉后為strl=7B,定義無符號char型變量bi(i為小于8的整數),可由下面的轉換完成:



        由此可以得到:strl=7B。對反轉處理生成的單字節數據經過組合處理后,最終便可得到對進行配置所需要的數據流。

        4 儀器驅動函數的設計

        根據硬件設計,儀器驅動需將配置數據以長整型的形式發送,即32位。因為配置數據的長度為16位,所以發送數據時,每次要傳兩個數,高16位和低16位分別放一個數。當應用程序打開.rpd文件時,應將其中配置數據流保存在數組ww[f]中,而反轉處理后得到的數據依然放在數組ww[f]中并覆蓋原來的數據,然后根據公式(1)進行組合處理,以得到最終要發送的32位數據并保存在長整型數組comdata[f]中。數組comdata[j]中的每個數據實際上包含兩個配置數據,第一個數放在高16位,第二個數放在低16位,依次類推。確定好數據后,便可以調用動態連接庫中的發送數據函數并發送給硬件。

        comdata[j]=(ww[i]24)O(ww[i+1]16)O(ww[i+2]8)Oww[i+3](1)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吉木乃县| 梅州市| 开平市| 嫩江县| 额尔古纳市| 富蕴县| 横山县| 乳山市| 博白县| 高淳县| 宜阳县| 青河县| 中宁县| 平遥县| 鄂伦春自治旗| 陈巴尔虎旗| 兰溪市| 阜阳市| 平湖市| 青浦区| 修水县| 平阳县| 西青区| 师宗县| 湛江市| 保德县| 乌苏市| 滨州市| 二连浩特市| 澄城县| 农安县| 庆阳市| 大余县| 淳化县| 将乐县| 汤阴县| 大埔区| 德惠市| 宁都县| 石首市| 北海市|