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

          新聞中心

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

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

          作者: 時間:2012-02-16 來源:網(wǎng)絡 收藏
          續(xù)多緩沖區(qū)操作的API函數(shù),以及初始化板卡、設置板卡工作方式的API函數(shù);需要VisualC++連接PCI-DASK提供的動態(tài)連接庫(Pci-dask.lib)。具體方法是:打開工程,從菜單Project/Setting…打開ProjectSetting對話框,切換到Link選項卡,在Object/librarymodules攔中添加Pci-dask.lib,點擊OK按鈕完成設置。最后在工程中加入頭文件Dask.h.。

          3.4 多線程的實時數(shù)據(jù)存儲軟件設計

            在要求高速、實時和連續(xù)采集和存儲的情況下,一方面要求系統(tǒng)不間斷地進行,同時還要進行數(shù)據(jù)實時地存儲,否則將會丟失數(shù)據(jù),造成數(shù)據(jù)不完整。為了解決這個問題,我們在軟件實現(xiàn)中,引入了Windows的多任務處理技術(multitasking)。在程序里創(chuàng)建兩個工作線程分別完成和數(shù)據(jù)存儲工作。緩沖方式采用上面所說雙緩沖區(qū)模式,當線程(SampleThreadProc)把采集到的數(shù)據(jù)寫入第一緩沖區(qū)時,數(shù)據(jù)存儲線程(StorageThreadProc)把第二緩沖區(qū)的數(shù)據(jù)存入SCSI硬盤;當數(shù)據(jù)采集線程把數(shù)據(jù)寫入第二緩沖區(qū)時,數(shù)據(jù)存儲線程把第一緩沖區(qū)的數(shù)據(jù)存入SCSI硬盤;如此循環(huán)。另外通過實際實驗測試Adaptec19160Ultra160-SCSI硬盤控制器,配合希捷公司出品的ST3146707LCSCSI硬盤,持續(xù)寫入速率能達到80Mbytes/sec。遠大于45Mbytes/sec的采集速率。所以當數(shù)據(jù)采集線程寫滿其中一個緩沖區(qū)之前,數(shù)據(jù)存儲線程已經(jīng)把另一個緩沖區(qū)里的數(shù)據(jù)存儲入SCSI硬盤。所以這種方法能保證數(shù)據(jù)的實時性、完整性和連續(xù)性。其程序流程圖如圖1。

            

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

            3.5 軟件實現(xiàn)

            由于篇幅所限,下面僅給出程序中核心的代碼:

            

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

            

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

          4 性能評估

            為了驗證該系統(tǒng)的性能,我們對其所能達到的采集和存儲速率、以及數(shù)據(jù)正確率進行了測試和分析。

            在測試中我們使用了自己設計的數(shù)據(jù)源,它能以任意速率發(fā)送32位的線性數(shù)字信號。另外編寫了一個數(shù)據(jù)檢測程序,可給出存儲的數(shù)據(jù)的正確率和顯示數(shù)據(jù)錯誤的地方。經(jīng)過長時間的測試,得到結果是:數(shù)據(jù)源發(fā)送速率為45Mbytes/sec時,存儲的數(shù)據(jù)能達到100%的正確率。當數(shù)據(jù)源發(fā)送速率為50Mbytes/sec時,數(shù)據(jù)有錯誤。

            經(jīng)分析原因出在數(shù)據(jù)采集過程,當有很多位發(fā)生進位時(如FFFFFFFF→00000000)采集卡不能正確地采樣數(shù)據(jù)。實際上經(jīng)過特殊處理后,這樣的數(shù)據(jù)還是可以使用的。

            計算機32位/33MHzPCI總線帶寬典型的輸出數(shù)據(jù)吞吐量為100Mbytes/sec,輸入數(shù)據(jù)吞吐量為120Mbytes/sec,而系統(tǒng)中其他的PCI設備也需要占用一定的帶寬,并且數(shù)據(jù)采集和存儲過程都要占用PCI總線帶寬;因此,45Mbytes/sec(100%正確率)的采集和存儲速率已經(jīng)接近系統(tǒng)和硬件的極限。

            5 結語

            本文介紹的實現(xiàn)方法易于實現(xiàn),且充分挖掘了硬件的性能,可滿足對數(shù)據(jù)采集與實時存儲速率要求較高(≤45Mbytes/sec)的應用。由于使用的硬件平臺是普通的奔四級PC機,所以開發(fā)成本較低。另外文中對實現(xiàn)過程中應注意的問題作了詳細說明并給出核心編程部分,使讀者很容易在較短時間內(nèi)開發(fā)出滿足自己需要的系統(tǒng)。

          c++相關文章:c++教程



          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();