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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于USB接口的實用型數據采集卡設計

          基于USB接口的實用型數據采集卡設計

          作者: 時間:2010-01-11 來源:網絡 收藏

          2.2 高速模數轉換模塊的設計


          圖3 AD9059管腳及基本連接

          高速的核心是高速模數轉換器,它直接影響了整個的性能指標,所以選擇合適的高速模數轉換器是至關重要的。

          本文采用的高速模數轉換器是AD公司生產的AD9059, AD9059是8位單片雙通道模數轉換器,主要有兩個跟蹤/保持電路(T/H)、2個模數轉換器(ADCa, ADCb)和一個2.5V的基準電源等組成,具有高速、高性能、低功耗及易使用等特性,60MSPS的編碼速率和120MHz的最大功率模擬帶寬使其在多路數據采樣系統中表現出優(yōu)秀的動態(tài)性能。大部分情況下,AD9059僅需要一個單極性的5V電源和一個編碼時鐘即能正常工作。編碼時鐘提供與TTL/CMOS兼容的邏輯數據輸出,并控制兩個模數轉換通道同時對數據進行采樣。如長時間不需要采集數據,可啟動體眠模式使總功耗小于12MW。AD9059的管腳和基本連接如圖3所示。管腳AINA, AINB為雙通道模擬輸入;VREF為參考電壓,一般可以采用內部2.5V的參考電壓。理論上模擬電壓的輸入范圍與參考電壓有關,Vrange (p-p)=VREF/2.5, Vmidscale=VREF。PWRDN為掉電功能選擇,當 PWRDN為邏輯高電平時,AD9059處于掉電模式,這時,所有的邏輯輸出變?yōu)楦咦钁B(tài),VD為+5V模擬供電電壓,VDD為邏輯輸出供電電壓,D0A-D7A和D0B-D7B為雙通道數據輸出,ENCODE為編碼時鐘,最大采樣時鐘為60MHZ, ADC在時鐘的上升沿開始采樣。經過A/D轉換后的數據直接傳送到FX2的數據線上。ADC的時鐘及控制信號等由CPLD提供。

          2.3 CPLD的選擇與設計

          在本設計中,所有的數字電路部分,全部是在CPLD內實現的。在本設計中采用了Lattice公司的ISP1032這塊芯片,所用的EDA軟件是Lattice公司的ispEXPERT system,編程語言為ABEL語言和電路原理圖。

          在用CPLD進行數字系統的設計一般采用由頂到下,由粗到細,逐步求精的原則,最頂層的設計是指系統的整體要求,最底層的設計是具體的邏輯電路的實現。經過在實踐中檢驗,在高速中,用CPLD來實現數字邏輯電路功能,可以使高速數據采集卡工作穩(wěn)定,各方面性能良好。

          通用串行總線(Universal Serial Bus,簡稱)是1995年康柏、微軟、IBM,DEC等公司為了解決傳統總線的不足推廣的一種新型串行通信標準。該總線具有安裝方便、高帶寬、易擴展等優(yōu)點,已經逐漸成為現代數據傳輸的發(fā)展趨勢。在本文中采用的是具備通信功能的單片機的芯片,Cypress公司的EZ-USB FX2。

          3 系統軟體設計

          3.1 USB設備驅動程序


          圖4 USB驅動程序體系結構



          關鍵詞: USB 接口 數據采集卡

          評論


          相關推薦

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