基于PCI9054的數據轉換模塊設計
通過(guò)設置其DMA控制器內部的寄存器即可實(shí)現兩總線(xiàn)之間的數據傳輸。PCI9054的DMA傳輸過(guò)程可由以下幾個(gè)步驟實(shí)現:
1)設置方式寄存器:設置DMA通道的傳輸方式,寄存器DMAMODE0或者DMAMODE1;
2)設置PCI地址寄存器:設置PCI總線(xiàn)側的地址空間起始地址;
3)設置LOCAL地址寄存器:設置LOCAL總線(xiàn)側的地址空間起始地址;
4)設置傳輸計數寄存器:以字節位單位設置每次DMA數據傳輸量;
5)設置描述寄存器:設置DMA傳輸的方向,0表示數據從PCI總線(xiàn)到Local總線(xiàn),1表示數據從Local總線(xiàn)到PCI總線(xiàn);
6)設置命令/狀態(tài)寄存器:?jiǎn)?dòng)或停止DMA操作。
當應用程序啟動(dòng)開(kāi)始模擬后,驅動(dòng)程序收到應用程序開(kāi)始模擬的命令后,同時(shí)填寫(xiě)PCI9054的門(mén)鈴寄存器(PCI端偏移地址:60H)產(chǎn)生LO-CAL端的中斷通知硬件接收DMA的數據,FPGA收到中斷后,清除中斷,同時(shí)判斷收到開(kāi)始模擬的命令。硬件準備好以后發(fā)中斷告訴主機已經(jīng)準備好,同時(shí)填寫(xiě)PCI9054的門(mén)鈴寄存器(PCI端偏移地址:64H)產(chǎn)生PCI端的中斷通知硬件已經(jīng)準備好,主機收到中斷后,清除中斷,填寫(xiě)啟動(dòng)DMA開(kāi)始寄存器,把計算機內存空間的數據通過(guò)PCI總線(xiàn)傳輸到PCI9054的LOCAL端,FPGA接收LOCAL端的數據存入數據緩沖區,同時(shí)由FPGA控制讀取緩沖區中的數據經(jīng)并串轉換用LVDS信號形式發(fā)送。當DMA結束后產(chǎn)生主機PCI中斷,主機收到中斷后清除中斷,并等待硬件準備好中斷來(lái)后清中斷填寫(xiě)下一個(gè)DMA開(kāi)始,直到模擬數據模擬完為止。本文引用地址:http://dyxdggzs.com/article/191304.htm
4 WDM驅動(dòng)程序設計
4.1 WDM驅動(dòng)程序簡(jiǎn)介
WDM驅動(dòng)程序是一種PnP驅動(dòng)程序,它同時(shí)還遵循電源管理協(xié)議,并能在Windows 98和Windows 2000間實(shí)現源代碼級兼容。WDM驅動(dòng)程序還細分為類(lèi)驅動(dòng)程序(class driver)和迷你驅動(dòng)程序(minidriver),類(lèi)驅動(dòng)程序管理屬于已定義類(lèi)的設備迷你驅動(dòng)程序向類(lèi)驅動(dòng)程序提供廠(chǎng)商專(zhuān)有的支持。在WDM驅動(dòng)程序模型中,每個(gè)硬件設備至少有兩個(gè)驅動(dòng)程序。其中一個(gè)驅動(dòng)程序稱(chēng)為功能(function)驅動(dòng)程序,了解使硬件工作的所有細節,負責初始化I/O操作,處理I/O操作完成時(shí)所帶來(lái)的中斷事件,為用戶(hù)提供一種設備適合的控制方式。另一個(gè)驅動(dòng)程序稱(chēng)為總線(xiàn)(bus)驅動(dòng)程序,它負責管理硬件與計算機的連接。例如,PCI總線(xiàn)驅動(dòng)程序檢測插入到PCI槽上的設備并確定設備的資源使用情況,它還能控制設備所在PCI槽的電流開(kāi)關(guān)。
4.2 驅動(dòng)程序開(kāi)發(fā)環(huán)境及設計
項目開(kāi)發(fā)中選擇的是Numega公司的Driverstudio驅動(dòng)程序開(kāi)發(fā)工具包,它是建立在Windows Driver Development Kit之上的驅動(dòng)程序開(kāi)發(fā)工具,包含了VtoolsD、DriverWorks、DriverNetWorks和SoftICE等開(kāi)發(fā)工具。DriverWorks用于開(kāi)發(fā)普通設備的WDM驅動(dòng)程序,SoftICE提供了強大的調試工具。在安裝Driverstudio之前,還需要安裝相應操作系統的DDK,如XPDDK和VC6.0工具。
在Driverstudio驅動(dòng)程序向導里可以輕易方便地建立起PCI9054的驅動(dòng)程序框架,而且Driverstudio還提供了PCI9054驅動(dòng)程序中大量類(lèi)函數的接口,降低了開(kāi)發(fā)難度,縮短了程序編寫(xiě)時(shí)間。調試程序可以使用SoftICE和Driver Moniter,極為方便查錯及優(yōu)化程序設計。
5 結束語(yǔ)
本文通過(guò)介紹PCI總線(xiàn)接口協(xié)議芯片PCI9054的性能、特點(diǎn),分析Windows的WDM驅動(dòng)程序的特點(diǎn),對所設計的數據轉換模塊結構進(jìn)行了詳細說(shuō)明,提出了雙SBAM結構數據緩存器的應用方案。應用結果表明,該設計可滿(mǎn)足數字視頻帶寬20 MHz以?xún)鹊母咚俅袛祿?INDS數據流)的轉換與傳輸,保證了硬件內存大容量讀取的高速、實(shí)時(shí)性。
評論