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

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 基于PCI總線的數(shù)據(jù)采集卡的設計與實現(xiàn)

          基于PCI總線的數(shù)據(jù)采集卡的設計與實現(xiàn)

          作者: 時間:2013-07-23 來源:網(wǎng)絡 收藏

          2 過程的實現(xiàn)
          2.1 動態(tài)鏈接庫的設計
          LabVIEW軟件本身提供了對端口的操作函數(shù),可以對外設的端口進行讀寫,而其他對外設的實時控制則需要通過DLL技術來實現(xiàn)。
          在本系統(tǒng)中,自行應用硬件芯片設計了卡,要實現(xiàn)系統(tǒng)中的各個硬件與計算機之間的通信,必須設計相應的動態(tài)鏈接庫。DLL庫的設計在這里主要包括:設備初始化;確定設備名;創(chuàng)建設備句柄;獲取通道信息;等待客戶軟件信息。
          2.2 過程
          先對數(shù)據(jù)采集卡有關的采樣參數(shù)設置;采樣開始,多路開關對采樣通道進行一次掃描,每個通道采樣一個點;接著開始A/D轉換,轉換后的數(shù)字信號存到數(shù)據(jù)緩存區(qū)中。重復上述過程直到采集到了所需的采樣次數(shù),全部數(shù)據(jù)順序存儲到緩存區(qū)中,需要時從數(shù)據(jù)采集卡的緩存中讀取數(shù)據(jù)到計算機的內存中進行處理。采集流程如圖5所示。

          本文引用地址:http://www.ex-cimer.com/article/192773.htm

          d.jpg


          2.3 LabviEW中的動態(tài)鏈接庫調用
          在LabVIEW的編程狀態(tài)下,打開Function Palette工具箱中“調用動態(tài)鏈接庫功能”,將數(shù)據(jù)采集卡驅動程序轉化為一個圖標/連接器,然后在框圖程序中就可以調用該模塊,通過在其輸入端設置相應的參數(shù),在程序運行時,驅動模塊啟動數(shù)據(jù)采集卡的工作,并將采集數(shù)據(jù)返回。圖6為動態(tài)鏈接庫調用的一個例子。

          e.jpg


          圖6中CLF節(jié)點I/O數(shù)據(jù)類型決定于外輸入,采集通道數(shù)輸入控件“channel”、采集次數(shù)輸入控件“times”均為32位無符號長整形,對0~5V電壓經(jīng)采集后的輸出為雙精度浮點型離散的數(shù)值,先送入緩存器中存儲待用。

          4 結論
          本文采用硬件芯片設計的數(shù)據(jù)采集系統(tǒng),在本地的晶振頻率為20MHz時,能穩(wěn)定地達到160Mb/s的采集速率;晶振頻率為40MHz時,能穩(wěn)定的達到200Mb/s的采集速率。
          將虛擬儀器技術與各種物理信號的采集、分析及結果顯示結合起來為新型儀器的開發(fā)提供了一個很好的方向。將先進的儀器開發(fā)軟件LabVIEW與普通數(shù)據(jù)采集系統(tǒng)很好地結合起來又將使虛擬儀器技術在各個領域得到更廣泛的應用。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(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); })();