基于CPCI總線的數(shù)據(jù)采集卡及其驅(qū)動程序設(shè)計_第1頁
基于CPCI總線的數(shù)據(jù)采集卡及其驅(qū)動程序設(shè)計_第2頁
基于CPCI總線的數(shù)據(jù)采集卡及其驅(qū)動程序設(shè)計_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于CPCI總線的數(shù)據(jù)采集卡及其驅(qū)動程序設(shè)計         08-05-02 15:03:00     作者:周玉恒 師奕兵 王    編輯:studa0714摘  要  介紹了一種基于CPCI總線的高速數(shù)據(jù)采集卡硬件及其WDM驅(qū)動程序設(shè)計方法,詳細說明了計算機通過驅(qū)動程序與數(shù)據(jù)采集卡硬件進行高速數(shù)據(jù)交換的方法,利用DriverWorks完成了滿足高速數(shù)據(jù)傳輸要求的WDM驅(qū)動程序設(shè)計,實現(xiàn)了數(shù)據(jù)采集卡與主機內(nèi)存之間

2、數(shù)據(jù)傳輸?shù)腄MA方法。     關(guān)鍵詞  數(shù)據(jù)采集;WDM ;CPCI;DriverWorks;DMA 1  引言    CPCI總線機械特性上有VME總線的堅固特性,在數(shù)據(jù)傳輸方面采取與PCI一致的傳輸方法。高速數(shù)據(jù)采集系統(tǒng)中,總線數(shù)據(jù)傳輸能力要求強,數(shù)據(jù)采集系統(tǒng)采用CPCI總線,極大提高了數(shù)據(jù)采集卡的數(shù)據(jù)傳輸能力。為了充分發(fā)揮CPCI總線數(shù)據(jù)傳輸快、高可靠的優(yōu)勢,要解決好基于CPCI總線的數(shù)據(jù)采集卡與計算機主機之間的通信問題。Windows2000操作系統(tǒng)對CPCI總線提供良好的支持,該操作系統(tǒng)下,驅(qū)

3、動程序的編寫基于一種新的驅(qū)動模型WDM(Windows Driver Model),WDM為Windows98/2000/XP操作系統(tǒng)的設(shè)備驅(qū)動程序的設(shè)計提供了統(tǒng)一的框架。本文介紹的基于CPCI總線的高速數(shù)據(jù)采集卡用于某數(shù)字化儀(Digitizer)中,借助用DriverWorks開發(fā)的WDM設(shè)備驅(qū)動程序,用戶應(yīng)用程序和數(shù)據(jù)采集卡之間相互通信,實現(xiàn)主機命令的即時傳送和板卡采集數(shù)據(jù)的高速傳輸。2  硬件系統(tǒng)設(shè)計    針對不同的應(yīng)用要求,CPCI接口卡設(shè)計采用的設(shè)計方案,一是使用PCI專用接口芯片與FPGA相結(jié)合的方案,專用接口芯片完成從PCI總線到本地用

4、戶總線的轉(zhuǎn)接;FPGA靈活的轉(zhuǎn)換邏輯時序,以適應(yīng)不同的外設(shè)時序要求;二是采用可編程邏輯器件實現(xiàn)通用PCI總線接口,很多生產(chǎn)可編程邏輯器件的廠商都提供經(jīng)過嚴格測試的PCI接口功能模塊,由用戶進行簡單的組合設(shè)計即可??紤]到開發(fā)周期,本CPCI數(shù)據(jù)采集卡采用前一種設(shè)計方法,用PCI專用接口芯片實現(xiàn)。系統(tǒng)硬件組成如圖1所示。    本數(shù)據(jù)采集卡PCI接口芯片選用PLX公司的PCI9054, PCI9054提供兩個獨立的可編程DMA控制器,有兩個DMA通道,每個通道均支持Block(塊傳輸)和Scatter/Gather(散/集傳輸)的DMA方式,PCI總線端支持32位/3

5、3MHz;本地端可編程實現(xiàn)8、16、32位數(shù)據(jù)寬度,傳輸速率最高可達到132M字節(jié)/秒。本地總線端時鐘最高可達50MHz,支持復(fù)用(J模式)和非復(fù)用的32位地址/數(shù)據(jù)(C模式)。PCI9054工作方式有:直接主模式,直接從模式和DMA模式。直接主模式由本地處理器訪問PCI總線上的I/O接口和計算機內(nèi)存資源,本地處理器發(fā)起數(shù)據(jù)的傳輸。直接從模式指PCI總線作為主控設(shè)備發(fā)起對本地總線資源的訪問,包括對本地處理器的控制和對本地內(nèi)存的訪問。DMA模式支持PCI總線與本地總線之間的突發(fā)傳輸。PCI9054實現(xiàn)了PCI總線到局部端總線的轉(zhuǎn)接,用該芯片做設(shè)計時,不必對PCI規(guī)范作全面深入理解,方便用戶在設(shè)計

6、時專注于具體功能的實現(xiàn)。    本設(shè)計中PCI9054設(shè)置為非復(fù)用的32位地址/數(shù)據(jù),即C模式,采用直接從模式和DMA方式分別傳輸主機命令和數(shù)據(jù)采集卡采集到的數(shù)據(jù);可編程邏輯器件FPGA里邊配置一個FIFO作為緩沖器,當(dāng)主機向數(shù)據(jù)采集卡發(fā)送命令時,F(xiàn)IFO作為命令數(shù)據(jù)的緩沖器,命令數(shù)據(jù)發(fā)送完畢,引起DSP的一個中斷,DSP從FIFO里讀出命令數(shù)據(jù),對命令解析,完成實際的硬件操作;當(dāng)主機要讀取數(shù)據(jù)采集卡采集到的數(shù)據(jù)時,DSP對SRAM中數(shù)據(jù)作預(yù)處理,上傳到FPGA里邊配置的FIFO中,這時FIFO作為數(shù)據(jù)采集卡上傳數(shù)據(jù)的緩沖器,當(dāng)FIFO數(shù)據(jù)滿時,引起PCI中斷,通

7、知上層應(yīng)用程序讀取數(shù)據(jù)。EEPROM中存放設(shè)備號,廠商號以及本地總線的基地址空間,I/O空間,中斷控制信號等信息,初始化時,系統(tǒng)將EEPROM配置參數(shù)裝入PCI配置寄存器,并根據(jù)本地總線對內(nèi)存,I/O端口和中斷的需求統(tǒng)一劃分,自動分配系統(tǒng)資源。3 數(shù)據(jù)采集卡WDM驅(qū)動程序設(shè)計3.1  WDM模型(Windows Driver Model)簡述    WDM模型(Windows Driver Model) 是微軟公司為Windows98和Windows2000的驅(qū)動程序設(shè)計的一種架構(gòu),在WDM驅(qū)動程序模型中,每個硬件設(shè)備至少有兩個驅(qū)動程序。其中一個為功能驅(qū)

8、動程序,它了解硬件工作的所有細節(jié),負責(zé)初始化I/O操作,處理I/O操作完成時所帶來的中斷事件,為用戶提供與設(shè)備相適合的控制方式;另一個驅(qū)動程序為總線驅(qū)動程序,它負責(zé)管理硬件與計算機的連接,總線驅(qū)動程序由操作系統(tǒng)提供。Window2000 系統(tǒng)結(jié)構(gòu)圖如圖2所示,應(yīng)用程序調(diào)用Windows子系統(tǒng)Win32 API,這個調(diào)用由系統(tǒng)服務(wù)接口作用到I/ O 管理器,I/ O 管理器進行必要的參數(shù)匹配和操作安全性檢查,然后由這個請求構(gòu)造出合適的IRP(I/O Request Package) 。IRP是DDK定義的一個數(shù)據(jù)結(jié)構(gòu),具有豐富的成員,對于單層驅(qū)動程序,直接接受并執(zhí)行這個請求包,完成對硬件的操作,

9、從而完成I/ O請求工作,并將執(zhí)行的結(jié)果通過I/ O 管理器返回應(yīng)用程序;對于多層驅(qū)動則將驅(qū)動程序分成若干層,每層驅(qū)動再把I/ O 請求劃分成更簡單的請求,以傳給更下層的驅(qū)動執(zhí)行。圖2   Windows2000 系統(tǒng)結(jié)構(gòu) 3.2  驅(qū)動程序設(shè)計實現(xiàn)    該數(shù)據(jù)采集卡驅(qū)動程序完成以下功能:應(yīng)用程序控制數(shù)據(jù)采集卡工作方式,向數(shù)據(jù)采集卡工作方式緩沖器發(fā)送工作方式控制字;應(yīng)用程序查詢數(shù)據(jù)采集卡工作狀態(tài),從數(shù)據(jù)采集卡工作狀緩沖器讀取工作狀態(tài)字;為了使應(yīng)用程序能實時處理數(shù)據(jù)采集卡上采集到的數(shù)據(jù),SRAM與主機內(nèi)存之間要實現(xiàn)DMA方式的數(shù)據(jù)傳輸。    采用VC+DDK+Driverworks進行驅(qū)動程序開發(fā),Driverworks為驅(qū)動程序開發(fā)提供向?qū)?,可以方便的建立一個驅(qū)動程序框架。下面分別說明控制命令和DMA方式傳輸數(shù)據(jù)的實現(xiàn)方法。    1)主機發(fā)送數(shù)據(jù)采集卡控制命令實現(xiàn)    Driverworks利用KMemoryRange和KIoRange實現(xiàn)內(nèi)存和I/O映射空間的讀寫,通過配置EEPROM,將PCI9054的Base2空間設(shè)定為一個內(nèi)存映射空間,局部端FPGA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論