<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設計應用 > 實時數(shù)據(jù)采集與存儲系統(tǒng)的實現(xiàn)方法

          實時數(shù)據(jù)采集與存儲系統(tǒng)的實現(xiàn)方法

          作者: 時間:2012-02-16 來源:網(wǎng)絡 收藏

          1 引言

            隨著信息科學的飛速發(fā)展,和存儲技術(shù)已經(jīng)是數(shù)字信號處理中非常重要的環(huán)節(jié),將決定整個系統(tǒng)的性能。它廣泛應用于雷達,通信,遙測遙感等領域。它己經(jīng)成為人們獲得外界信息的重要手段。基于總線的,由于可靠且易于實現(xiàn)、經(jīng)濟等優(yōu)點,得到了廣泛的應用。但當數(shù)據(jù)傳輸率很高時,保持高速數(shù)據(jù)存儲過程的可靠性、實時性將會成為一個比較棘手的問題。為此一些廠商提供了雙總線技術(shù)、64位/66MHzPCI總線系統(tǒng)來解決這問題。但這些技術(shù)較為昂貴,且忽略了現(xiàn)有的硬件設備。經(jīng)過實驗與探索,我們選用ADLINK公司的PCI-7300A_RevB超高速數(shù)字I/O卡,利用現(xiàn)有的單(32位/33MHz)PCI總線的計算機系統(tǒng)構(gòu)成低成本的硬件平臺,并利用自己開發(fā)的軟件系統(tǒng),最終實現(xiàn)了高速(45Mbytes/sec)持續(xù)的于存儲。

            2 硬件組成及注意事項

            為了利用現(xiàn)有的硬件設備,降低成本;我們采用ADLINK公司出品的PCI-7300A_RevB超高速數(shù)字I/O卡作為數(shù)據(jù)采集部分。該卡的主要特性如下:

            ·32位數(shù)字I/O通道

            ·32位PCI總線

            ·通過觸發(fā)信號控制數(shù)據(jù)采集操作的開始。

            ·100針SCSI型連接器

            ·分散/聚攏方式的DMA

            ·最高傳輸速率80Mbytes/sec

            要實現(xiàn)實時高速的數(shù)據(jù)存儲,使用的一般的硬盤是不行的。所以我們選用希捷公司出品的型號為ST3146707LC的SCSI硬盤,該硬盤的容量是146GB,能滿足記錄大量數(shù)據(jù)的需要,其轉(zhuǎn)速為10Krpm。相應的SCSI硬盤控制器,選用Adaptec公司出品的型號為Adaptec19160的Ultra160-SCSI硬盤控制器。

            在搭建硬件平臺的過程中有些問題是必須注意的,否則系統(tǒng)不能正常工作。首先,PCI-7300A_RevB卡雖然采用分散/聚攏方式的DMA,但它對CPU資源的占用率是非常高的。經(jīng)過實驗證明,要保證整個數(shù)據(jù)采集與正常工作,只能使用奔四1.7G以上的計算機系統(tǒng)。其次,Windows系統(tǒng)允許多個設備共享一個中斷請求號(IRQ)。為了保證存儲過程的實時性,必須確保SCSI硬盤控制器和PCI-7300A_RevB卡使用不同的IRQ。可以在主板BIOS里把Pnp(即插即用)/PCI設備的IRQ進行手動配置。最后Windows2000ServicePack2(SP2)及早期版本不支持大于137GB容量的硬盤。須要先安裝ServicePack3,再在注冊表(HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAtapiParameters)里添加一個REG_DWORD類型的參數(shù)EnableBigLba,并把值設成0x1。這樣146GB的硬盤才能工作正常。

            3 軟件設計

            軟件設計直接決定硬件是否能正常工作,以及能否充分發(fā)揮硬件的性能。

            3.1 PCIS-DASK及雙緩沖區(qū)模式的工作原理

            PCIS-DASK是ADLINK公司為自己的產(chǎn)品提供的驅(qū)動程序包,提供了專門用于實現(xiàn)高速數(shù)據(jù)采集的連續(xù)多緩沖區(qū)操作的一組API函數(shù)。通過這組API函數(shù),我們可以按照雙緩沖區(qū)的原理,非常方便地實現(xiàn)對數(shù)據(jù)的實時、高速、連續(xù)的采集與存儲。

            雙緩沖區(qū)模式,在工程上稱為“乒乓”緩沖區(qū)模式。跟常用的單緩沖區(qū)模式相比雙緩沖區(qū)模式的優(yōu)點是,它可以使用較小容量的內(nèi)存,不間斷地緩沖幾乎無限量的數(shù)據(jù)(輸入與輸出端需協(xié)同工作)。這種緩沖區(qū)模式的工作原理是:在內(nèi)存里開辟兩塊容量相等的緩沖區(qū)(以下將分別它們稱為第一緩沖區(qū)和第二緩沖區(qū))作為連續(xù)數(shù)據(jù)輸入的緩沖區(qū)。工作開始時,數(shù)據(jù)采集卡首先將數(shù)據(jù)寫入第一緩沖區(qū)中,在數(shù)據(jù)采集卡開始把數(shù)據(jù)寫入第二緩沖區(qū)的同時,用戶程序可以根據(jù)自身需要取出第一緩沖區(qū)中的數(shù)據(jù)做特定的處理。當?shù)诙彌_區(qū)被寫滿后,數(shù)據(jù)采集卡回到第一緩沖區(qū)的起始處,以覆蓋舊數(shù)據(jù)的方式,把新數(shù)據(jù)寫入第一緩沖區(qū)中;與此同時用戶程序取出第二緩沖區(qū)中的數(shù)據(jù)。整個數(shù)據(jù)采集處理過程可以如此不斷地循環(huán)進行下去。

            3.2 板卡驅(qū)動設置及注意的問題

            對板卡驅(qū)動的深刻理解是編寫好數(shù)據(jù)采集于存儲程序的前提。在連續(xù)數(shù)據(jù)輸入模式下,板卡驅(qū)動程序需要在系統(tǒng)內(nèi)存里開辟一塊緩沖區(qū)做為二級緩存,用戶可以設置該緩沖區(qū)的大小。方法是:從菜單開始/程序/PCI-DASK/NuDAQPCIconfigurationUtility打開DASK2000DeviceDriverConfiguration對話框,從CardType組合框中選擇Pci7300A_RevB項,在DI欄輸入你想要開辟的緩沖區(qū)容量,點擊OK按鈕完成設置。需要注意的是板卡驅(qū)動設置的緩沖區(qū)(簡稱驅(qū)動緩沖區(qū))容量與用戶程序開辟的緩沖區(qū)(用戶緩沖區(qū))容量存在著一定關(guān)系。經(jīng)過我們多次實驗,得出驅(qū)動緩沖區(qū)容量大約是用戶緩沖區(qū)的3倍;因此,當驅(qū)動緩沖區(qū)過小,而用戶緩沖區(qū)較大時,會出現(xiàn)錯誤。

            過小,而用戶緩沖區(qū)較大時,會出現(xiàn)錯誤。

            3.3 VisualC++開發(fā)環(huán)境的設置

            為了使用PCIS-DASK提供的實現(xiàn)連

          c++相關(guān)文章:c++教程



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();