国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PC104Plus的超短波監(jiān)測系統(tǒng)數(shù)據(jù)采集平臺設(shè)計

2010-07-12 12:29:56鐘子發(fā)葉春逢
電子測試 2010年4期
關(guān)鍵詞:驅(qū)動程序緩沖區(qū)時序

康 凱,鐘子發(fā),葉春逢,胡 磊

(電子工程學(xué)院,安徽 合肥 230037)

0 引言

超短波電磁環(huán)境的復(fù)雜性和現(xiàn)場環(huán)境的多樣性,對超短波頻譜監(jiān)測接收機中數(shù)據(jù)采集系統(tǒng)的硬件和軟件設(shè)計提出了更高的要求:小型化與便攜,較高抗振動沖擊的能力,兼容性和散熱性好,高可靠性和可維護性等。PC104Plus總線以針孔堆疊方式組成,具有結(jié)構(gòu)緊湊、抗震性好等優(yōu)點,可以工作在惡劣的工作環(huán)境下,與PCI標(biāo)準(zhǔn)兼容,數(shù)據(jù)傳輸速率高(132Mb/s),可滿足大部分高速數(shù)據(jù)傳輸應(yīng)用需求。本文介紹了基于CPLD芯片和PCI總線控制芯片搭建的高速數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計和軟件設(shè)計[1],該系統(tǒng)的數(shù)據(jù)采集部分采用模塊化設(shè)計,可靈活配置具有不同采樣速率和采樣位數(shù)的采集卡。

1 系統(tǒng)硬件設(shè)計

基于PC104Plus的雙通道數(shù)據(jù)采集系統(tǒng)由PCI接口模塊和數(shù)據(jù)采集模塊組成[2],其多速率不僅體現(xiàn)在上位機程序可以方便地以軟件方式設(shè)置采樣率,同時由于采用了模塊化設(shè)計,本系統(tǒng)的采集部分可靈活根據(jù)實際應(yīng)用選配,如以AD9240(10MHz、14Bits)為核心的采集模塊、以AD9244(65MHz、14Bits)為核心的采集模塊等,各模塊與PCI接口模塊以自定義接口互連。

本系統(tǒng)的主要工作原理是:首先,用戶發(fā)起采集命令,雙AD通道開始采集數(shù)據(jù),CPLD根據(jù)上位機程序的設(shè)置來控制數(shù)據(jù)采集的長度、采樣頻率等參數(shù)。采集的數(shù)據(jù)由FIFO(IDT72V293)緩沖,當(dāng)采集的數(shù)據(jù)達到用戶設(shè)置的要求時觸發(fā)PCI9054的#LINT從而產(chǎn)生一個Local中斷,告訴CPU數(shù)據(jù)已經(jīng)準(zhǔn)備好,驅(qū)動程序處理此中斷并利用事件通知和測試程序通信,測試程序開始以IO方式讀FIFO;或者,啟動DMA傳輸,數(shù)據(jù)以DMA方式從FIFO傳至內(nèi)存。當(dāng)采用DMA方式轉(zhuǎn)移數(shù)據(jù)時,驅(qū)動程序需處理DMA完成中斷并利用事件通知測試程序進而完成指定數(shù)據(jù)搬移和處理。值得注意的是,在硬件設(shè)計過程中,PCI9054的Local端時鐘與CPLD邏輯控制時鐘以及FIFO的讀時鐘三者的同步問題需要妥善處理。本系統(tǒng)中通過零延遲高速時鐘分路器(CY2308)完成了這一工作(見圖2)。

2 邏輯控制設(shè)計

CPLD芯片是FIFO和PC104Plus總線之間能夠正常進行數(shù)據(jù)傳輸?shù)臉屑~。為了配合本地總線接口電路實現(xiàn)與PC104Plus總線的高速數(shù)據(jù)傳輸,一個穩(wěn)定性好、效率高的時序邏輯設(shè)計是很重要的。本系統(tǒng)基于EPM3128,采用Verilog HDL語言設(shè)計時序邏輯實現(xiàn)了FIFO和采集模塊的控制以及FIFO和PCI總線橋接器PCI9054之間的普通傳輸和高速DMA傳輸[3]。為了保證輸入在確定的狀態(tài)下有效,并保證在輸入穩(wěn)定時使用信號進行邏輯判斷,從而避免綜合器在編譯形成電路后狀態(tài)機在實際運行過程中產(chǎn)生誤動作。本設(shè)計給主要的輸入信號加上了門控使能(該門控信號由狀態(tài)向量譯碼得到),這樣便只有在使能信號有效時才會有可用輸入,而不會出現(xiàn)不確定情況。本文基于開發(fā)環(huán)境Quartus II 4.2設(shè)計的時序邏輯主要包括Local端狀態(tài)機與FIFO和采集模塊的控制[4](見圖3)。

圖1 系統(tǒng)硬結(jié)結(jié)構(gòu)

圖2 同相時鐘分發(fā)電路

圖3 PCI9054的本地端邏輯狀態(tài)轉(zhuǎn)換圖

圖3 所示的狀態(tài)機經(jīng)實際檢驗,可以滿足PCI9054從模式單周期讀寫、從模式突發(fā)讀、從模式DMA讀三種時序要求(見圖4、圖5、圖6),運行穩(wěn)定[5]。其中,單周期讀寫適合少量數(shù)據(jù)傳輸,通過PCI接口發(fā)命令讀寫CPLD內(nèi)的數(shù)據(jù)采集傳輸控制寄存器是通過從模式下單周期讀寫實現(xiàn)的;從模式突發(fā)讀和從模式DMA讀適合大量數(shù)據(jù)傳輸,將FIFO內(nèi)數(shù)據(jù)搬移至主機內(nèi)存是通過從模式下突發(fā)讀和DMA讀實現(xiàn)的。

另外,配合CPLD內(nèi)的時序邏輯,PCI9054的配置芯片(93LC56)內(nèi)必須進行合理的設(shè)置才能完整地實現(xiàn)系統(tǒng)功能,同時這也是驅(qū)動程序設(shè)計和應(yīng)用程序設(shè)計的重要參考。本文利用PLX公司提供的專用在線燒寫軟件PLXMon完成了這一工作。其中所包含的空間映射信息見表1。

圖4 從模式單周期讀時序仿真圖

圖5 從模式單周期寫時序仿真圖

圖6 從模式DMA讀時序及FIFO控制邏輯仿真圖

表1 PCI9054的本地端空間映射

3 WDM設(shè)備驅(qū)動程序設(shè)計

PC104Plus數(shù)據(jù)采集處理系統(tǒng)的一個關(guān)鍵問題是設(shè)備驅(qū)動程序的開發(fā)。設(shè)備驅(qū)動程序提供連接到PC104Plus板卡的軟件接口文件擴展名為.SYS的動態(tài)鏈接庫。Win2000是32位的多任務(wù)非實時操作系統(tǒng),對整個系統(tǒng)底層的操作和用戶與硬件打交道的權(quán)力被屏蔽,必須通過操作系統(tǒng)統(tǒng)一管理設(shè)備驅(qū)動程序和其他內(nèi)核訪問來實現(xiàn)應(yīng)用軟件對硬件的訪問[6]。 在Win2000中,設(shè)備驅(qū)動程序必須根據(jù)Windows驅(qū)動程序模型(WDM)設(shè)計,它不是單獨存在的,而是相關(guān)操作系統(tǒng)的一部分。因此定制與實際硬件相匹配的設(shè)備驅(qū)動程序是本系統(tǒng)能夠正常工作的前提。選用Numega公司的DriverWorks來開發(fā)運行在Win2000下的WDM模式PCI設(shè)備驅(qū)動程序。該開發(fā)環(huán)境將WDM驅(qū)動程序編寫所需的對內(nèi)核及對硬件的訪問封裝成類,結(jié)合DriverWizard極大地簡化了驅(qū)動程序開發(fā)的難度。本設(shè)計中主要涉及3個方面的問題:中斷處理、普通讀寫和DMA傳輸[7]。

⑴中斷處理。中斷處理需要聲明并在PnP啟動例程中初始化KInterrupt和KDeferredCall類實例,還需要聲明中斷服務(wù)例程和延遲過程調(diào)用例程。當(dāng)創(chuàng)建驅(qū)動程序框架時,若有中斷資源,這些都是自動生成的。需要更改的地方是:在中斷服務(wù)例程中判斷是否是自己的設(shè)備產(chǎn)生的中斷并設(shè)置相應(yīng)的中斷標(biāo)志,在延遲過程調(diào)用例程中根據(jù)中斷標(biāo)志觸發(fā)不同的事件,實現(xiàn)與應(yīng)用程序的通信。

⑵普通讀寫。普通讀寫過程的關(guān)鍵是驅(qū)動程序如何獲得應(yīng)用程序的緩沖區(qū)。Win2000為驅(qū)動程序訪問用戶模式數(shù)據(jù)緩沖區(qū)提供了三種方法:Buffered方式、Direct方式和Neither方式。在此次開發(fā)中,我們使用的是Direct方式,I/O管理器把用戶輸入緩沖區(qū)數(shù)據(jù)復(fù)制到一個系統(tǒng)緩沖區(qū),驅(qū)動程序可以用KIrp::IoctlBUffer訪問這個緩沖區(qū)。輸出緩沖區(qū)被類KMemory對象映射,驅(qū)動程序可以用KIrp::Mdl訪問這個緩沖區(qū)。設(shè)計過程中要注意硬件對應(yīng)的存儲空間映射情況,處理好PCI配置空間大小和偏移量的問題。

⑶DMA傳輸。本文開發(fā)使用的是BlockDMA方式,本地端中斷導(dǎo)致應(yīng)用程序調(diào)用驅(qū)動程序開始DMA傳輸,應(yīng)用程序無限等待事件的觸發(fā),在驅(qū)動程序中讀完數(shù)據(jù)后觸發(fā)事件。事件觸發(fā)后,應(yīng)用程序開始從驅(qū)動程序中讀取DMA傳輸?shù)慕Y(jié)果。驅(qū)動設(shè)計的關(guān)鍵有:DMA適配器、內(nèi)存空間等資源的添加和申請,DMA寄存器的設(shè)置和DMA啟動。

本采集系統(tǒng)的驅(qū)動程序在PC104平臺上的安裝結(jié)果如圖7所示。

圖7 采集系統(tǒng)的設(shè)備驅(qū)動程序安裝結(jié)果

4 性能驗證

為評估本平臺性能,本文構(gòu)建了基于對話框的測試主程序,該程序運用多線程技術(shù),用戶界面線程通過消息泵機制處理用戶輸入及Windows的消息和事件,工作者線程用于完成采集數(shù)據(jù)的搬移和運算,其主流程見圖8。由于該測試平臺是一個基于PC的非實時的同步系統(tǒng),不像可編程邏輯器件適合于對序列有嚴(yán)格定時的采樣數(shù)據(jù)實時處理,只能通過中斷來保持一定的同步。當(dāng)采樣率很高時,要對采樣序列做逐樣點運算,并保持嚴(yán)格同步是很困難的。因而,我們只能在中斷的基本同步下進行高效率的數(shù)據(jù)成塊處理,從而保證較好的信號統(tǒng)計特性。這就要求測試程序、驅(qū)動、可編程邏輯之間必須有一個好的時序匹配,主要是控制好中斷的開關(guān)與采樣數(shù)據(jù)讀寫的關(guān)系。如,采用IO方式讀數(shù)據(jù)時,驅(qū)動程序在中斷服務(wù)例程中要禁止中斷/*m_MemoryRange0_ForBase0.outd(INTCSR,0x0);*/,m_hEventSiganl事件激發(fā)且測試程序完成了數(shù)據(jù)搬移和處理后則應(yīng)打開PCI中斷和LINT#中斷/*g_pPCI9054AppDlg->writeBar0(0x68,0x900); */; 采用DMA方式讀數(shù)據(jù)時,則應(yīng)交替地打開LINT#中斷和DMA完成中斷以保證一幀數(shù)據(jù)的完整。DMA方式讀數(shù)據(jù)時中斷交替打開的具體過程為:m_hEventSiganl事件激發(fā)后允許PCI中斷和DMA通道中斷并啟動DMA傳輸/*g_pPCI9054AppDlg->writeBar0(0x68,0x40100); */,m_hEventDma事 件激發(fā)且測試程序完成了數(shù)據(jù)搬移和處理后對應(yīng)地打開中斷PCI中斷和LINT#中斷,如此往復(fù)。

圖8 主程序流程圖

工程上,SINAD和ENOB是反映采集系統(tǒng)性能的主要指標(biāo),為了評價采集系統(tǒng)的性能,我們基于Agilent E4438c產(chǎn)生輸入頻率滿足公式1(為了避免頻譜泄漏)的滿量程高純度信號,依據(jù)FFT法按照公式2和公式3得出了本文所計論的兩種采集卡的主要性能指標(biāo)[8],指標(biāo)計算結(jié)果與器件手冊給出的參考值之間的比較見表2。實測波形見圖9和圖10。

表2 采集模塊測試結(jié)果

圖9 3906KHz、2048點FFT時頻譜(9240采集模塊)

圖10 15625KHz、512點FFT時頻譜(9244采集模塊)

5 結(jié)束語

基于以上分析,并以此雙信道多速率采集平臺為基礎(chǔ),我們構(gòu)建了30~3000MHz超短波頻譜監(jiān)測接收機,用于對超短波信號進行實時快速的全景搜索和分析測量,以掌握整個超短波信號的狀態(tài)分布與動態(tài)變化情況。實測系統(tǒng)的等效掃頻速率為700MHz/s,其寬帶信號處理通道可以達到3.2kHz的頻譜分辯率,窄帶信號數(shù)據(jù)處理通道, 以25kHz帶寬為例, 可以達到1.6kHz的頻率分辨率,對于需要監(jiān)測并進行高分辨率譜分析的信號,經(jīng)過進一步抽取壓縮窄帶信號帶寬并配合相關(guān)數(shù)字信號處理算法,可以達到最小0.9kHz的頻率分辨率。實測系統(tǒng)同時還可在數(shù)據(jù)庫的支持下進行實時的信號識別,性能良好。作為一種通用的數(shù)據(jù)采集系統(tǒng),本系統(tǒng)也適用于其他需要多速率中頻數(shù)據(jù)采集的應(yīng)用。

[1]王帥,鄧思穎,劉釗.變參差工作雷達數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用, 2007(10): 49-51.

[2]王偉.基于PCI總線的中頻數(shù)字化接收機實現(xiàn)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué), 2006.

[3]康凱.基于總線的DSP高速數(shù)據(jù)采集處理系統(tǒng)[D].哈爾濱:哈爾濱工程大學(xué), 2006.

[4]薛林.高速PCI數(shù)據(jù)采集卡的設(shè)計與實現(xiàn)[D].南京:南京理工大學(xué), 2006.

[5]劉樂光,王升輝,李進.基于SOPC的1553B-PCI橋接通信模塊設(shè)計[J].電子技術(shù)應(yīng)用, 2009(7): 20-23.

[6]武安河,邰銘,于洪濤.WDM設(shè)備驅(qū)動程序開發(fā)[M].北京:電子工業(yè)出版社, 2003.

[7]陳妮,全英匯,邢孟道.基于FPGA的FLASH存儲板的CPCI接口設(shè)計[J].火控雷達技術(shù), 2008, 37(1):108-111.

[8]田坤,龔曉峰,任占民.ADC 的動態(tài)性能對軟件無線電接收機性能的影響[J].現(xiàn)代電子技術(shù), 2008(15):71-73.

猜你喜歡
驅(qū)動程序緩沖區(qū)時序
嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
基于時序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識別研究
基于Sentinel-2時序NDVI的麥冬識別研究
一種毫米波放大器時序直流電源的設(shè)計
電子制作(2016年15期)2017-01-15 13:39:08
關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
DPBUS時序及其設(shè)定方法
河南科技(2014年15期)2014-02-27 14:12:36
地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計與實現(xiàn)
電視技術(shù)(2012年1期)2012-06-06 08:13:58
驅(qū)動程序更新與推薦
驅(qū)動程序更新與推薦
宁明县| 新龙县| 绥德县| 本溪市| 宁安市| 岢岚县| 南溪县| 永年县| 龙岩市| 丰县| 乡城县| 永宁县| 仙桃市| 渭南市| 阿拉尔市| 齐齐哈尔市| 邵阳市| 屯门区| 喀喇沁旗| 南平市| 溧阳市| 古浪县| 错那县| 衡南县| 昆山市| 泸水县| 永修县| 西畴县| 介休市| 旺苍县| 体育| 民县| 阳城县| 潮州市| 四川省| 龙井市| 边坝县| 漾濞| 镇赉县| 中超| 从江县|