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