基于數字中頻接收機總線驅動開發的研究
0 引言
CFL-03 型風溫廓線雷達數字中頻接收機主要完成中頻模擬信號的模數轉換、數字下變頻、數字濾波等處理,最終生成數字I、Q 信號,通過PCI9054 總線以DMA方式送到工控機內存中,由信號處理軟件進行時域積累、脈壓、去直流、加窗、FFT 變換,形成多譜勒功率譜密度分布數據,再進行譜積累、譜估計等處理。
1 PCI9054 芯片簡介
PCI9054 是由美國PLX 公司生產的先進的PCI I/O 加速器,采用了先進的PLX 數據流水線結構技術,符合PCI 本地總線規范2.2 版;針對不同的處理器及局部總線特性,有M、C、J 三種模式可選;配有可選的串行E2PROM 接口,本地總線時鐘可與PCI 時鐘異步。PCI9054 內部有6 種可編程的FIFO,以實現零等待突發傳輸及本地總線與PCI 總線之間的異步操作;支持主模式、從模式、DMA 傳輸方式,被廣泛應用于嵌入式系統中,是目前主控設備PCI 橋接器的主流芯片。
2 環境搭建
開發工具由Visual C++ 6.0、Windows XP DDK 和Compuware DriverStudio 3.1 組成。首先,按照Visual C++ 6.0、Windows XP DDK、Compuware DriverStudio 3.1 的順序安裝這三個軟件。其次,DriverStudio 安裝之后,在Visual C++6.0 編成工具欄中自動添加了一個菜單DriverStudio.然后,在Visual C++ 6.0 中打開DriverWorkssource 目錄下的VdwLibs.
dsw,之后選擇DriverStudio工具欄的DDK Build Setting,設置DDK 所在的目錄,例如D :WINDDK2600.最后,選擇Batch Build 菜單,點擊Rebuild All,創建自己的庫文件。否則編譯WDM 程序時,將出現編譯錯誤。
3 PCI 驅動程序的創建
創建一個PCI 驅動程序框架的一般順序是:點擊開始→程序→ Compuware DriverStudio → develop → driver wizards.
在彈出一個選擇驅動程序工程類型的界面后,即可選擇第一個DriverWorks project.接下來便可按照圖1 所示的步驟選擇默認。
創建驅動程序框架時,需要聲明所需的資源,如存儲器空間和I/O 空間,中斷和DMA 等。其方法可按圖2 所示的步驟均選擇默認,直到結束。
這樣,通過上述步驟就生成了一個工作區和兩個工程,兩個工程分別是驅動程序和WIN32 控制臺的應用程序,可用于測試。框架程序生成后,還需要進行修改,以實現本項目修改時,首先應配置E2PROM 的值,因為PC19054 的初始化是根據其配置E2PROM中的值來進行的;其次,本項目采用DMA方式傳輸。DMA 傳輸指無需CPU 的控制,在2 個存儲區進行直接的數據傳輸。此外,還需要重寫DMA 啟動函數DMAStart(),設置每次DMA 傳輸所需的PCI 地址( 主機物理內存地址)、本地地址、傳輸大小、傳輸方向等,并置DMA 啟動位。這樣,每次數據捕獲滿而中斷到來,要啟動DMA 傳輸時,只需調用DMAStart() 函數即可。下面重點介紹DMA 程序的執行過程:
(1)插入PCI 卡,總線驅動掃描到新硬件,硬件安裝向導提示安裝,導入INF 文件。由I/O 管理器打開sys 文件,執行DriverEntry 例程,然后執行AddDevice 例程。
cvt相關文章:cvt原理
評論