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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 一種高速實時數(shù)據(jù)采集系統(tǒng)的設(shè)計方案

          一種高速實時數(shù)據(jù)采集系統(tǒng)的設(shè)計方案

          作者: 時間:2016-10-22 來源:網(wǎng)絡(luò) 收藏

          0 引言

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

          目前USB 已廣泛應(yīng)用于,現(xiàn)階段使用較多的是 規(guī)范。隨著測試測量要求的不斷提高, 已逐漸難以滿足要求。新的USB3.0 規(guī)范很好的解決了 中存在的一些局限,非常適用于現(xiàn)代測試測量系統(tǒng)。

          1 USB 2.0 的性能與局限

          通用串行總線USB(Universal Serial Bus)是目前應(yīng)用極為廣泛的一種系統(tǒng)總線,大量應(yīng)用在測試測量領(lǐng)域。目前應(yīng)用最廣泛的是USB2.0 標(biāo)準(zhǔn),具有最高480Mbps 的通信速率。但同時USB2.0 標(biāo)準(zhǔn)也存在著以下不足:

          1) 半雙工通信

          USB2.0 采用半雙工通信,同一時間只能有一個方向的數(shù)據(jù)傳輸,在需要雙向高速數(shù)據(jù)傳輸?shù)膱龊贤y以滿足要求。

          2) 需要主機調(diào)度

          USB2.0 標(biāo)準(zhǔn)在傳輸調(diào)度上采用主從結(jié)構(gòu),需要計算機首先發(fā)起IN Token 或OUT Token,USB 設(shè)備才能進行數(shù)據(jù)傳輸,一次數(shù)據(jù)傳輸完成后,又必須等待下一個Token,大大制約了數(shù)據(jù)傳輸?shù)膶崟r性。

          3) 通信速率相比于競爭對手不高

          USB 的競爭對手有1394 和eSATA 等,較新的1394b 標(biāo)準(zhǔn)數(shù)據(jù)傳輸速度達到了800Mbps,幾乎比USB2.0 HS 高一倍。而eSATA的數(shù)據(jù)傳輸速度更高。

          2 USB 3.0 SS(SuperSpeed)標(biāo)準(zhǔn)簡介

          為了加強USB 的性能和競爭力,USB 聯(lián)盟推出了新的USB 3.0SS(SuperSpeed)標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)使用兩條差分鏈路實現(xiàn)了全雙工通訊,速率達到了5.0Gps,不但高于1394b 標(biāo)準(zhǔn),與eSATA 相比也同樣具有競爭力。

          USB3.0 在2.0 的基礎(chǔ)上新增加了2 對差分鏈路,專門用于傳送SS 差分信號。主機側(cè)接口的機械特性和USB 2.0 兼容,而設(shè)備側(cè)使用了新的接口形式,以容納新增的兩對差分信號線。USB2.0 接口的B 型連接器可以插入USB 3.0 的設(shè)備端,此時設(shè)備工作于USB 2.0 模式下;但USB 3.0 的B 型連接器無法插入USB 2.0的設(shè)備端。

          除此以外,USB 3.0 的總線供電能力達到1A,使其可以用于移動硬盤等耗電量較大的設(shè)備,而不必另外配備外接電源。

          3 CYUSB3014 芯片介紹

          CYUSB3014 是USB 業(yè)界的領(lǐng)頭羊Cypress 公司出品的USB3.0 控制器,該款控制器集成了200MHz 的ARM9 控制器、512K 字節(jié)的RAM和USB 3.0物理層,具有可編程的100MHz GPIF II接口。

          圖1 是該芯片的邏輯框圖。該芯片可用于數(shù)字?jǐn)z像機、數(shù)據(jù)采集、測試測量設(shè)備等多個領(lǐng)域。

          CYUSB3014芯片邏輯框圖

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

          本系統(tǒng)中,使用了一片AD6644 作數(shù)據(jù)轉(zhuǎn)換。這是AnalogDevice 公司生產(chǎn)的14 位高速ADC,最高采樣速率達到40Msps.

          整個系統(tǒng)的功能框圖如圖2 所示。

          系統(tǒng)的功能框圖

          圖中,傳感器將外部信號變換為電信號;放大濾波部分將傳感器輸出的微弱電信號進行放大、濾波處理,以去除外部干擾;AD6644 在FPGA 的控制下對放大濾波后的信號進行采集和轉(zhuǎn)換;FPGA 讀取AD 輸出,并按照CYUSB3014 的GPIF II 接口規(guī)范將該數(shù)據(jù)寫入芯片內(nèi)部的FIFO.此外,F(xiàn)PGA 還可以根據(jù)當(dāng)前信號特性調(diào)整放大濾波電路參數(shù),以獲取更優(yōu)的信噪比。 5 GPIF II 接口與FPGA 程序設(shè)計

          在整個硬件系統(tǒng)中,F(xiàn)PGA 與CYUSB3014 之間的數(shù)據(jù)傳輸速度是決定整個系統(tǒng)性能的關(guān)鍵。Cypress 在GPIF 的基礎(chǔ)上設(shè)計 了可編程GPIF-II 接口,該接口可工作于主控或從屬方式,支持32 位數(shù)據(jù)總線,接口頻率最高可達100MHz,有異步和同步兩種時序。在本系統(tǒng)中,為了達到更高的數(shù)據(jù)傳送效率,根據(jù)GPIF-II 接口時序,編寫了相應(yīng)的FPGA 程序,實現(xiàn)了在FPGA 和CYUSB3014之間的高速數(shù)據(jù)傳輸。實測結(jié)果表明,F(xiàn)PGA 和CYUSB3014 之間的數(shù)據(jù)傳輸速度最高達到了200Mbytes/s,完全滿足本系統(tǒng)要求。下文是數(shù)據(jù)傳輸狀態(tài)機的部分代碼:

          數(shù)據(jù)傳輸狀態(tài)機的部分代碼

          6 USB 固件設(shè)計

          CYUSB3014 集成了一片ARM9 核心的處理器,完成USB 初始化、枚舉、數(shù)據(jù)傳輸管理等工作。固件開發(fā)使用開源的gcc 編譯器和Eclipse 集成開發(fā)環(huán)境,下面是用于管理數(shù)據(jù)傳輸?shù)牟糠执a:

          用于管理數(shù)據(jù)傳輸?shù)牟糠执a

          7 上位機驅(qū)動和軟件設(shè)計

          Cypress 提供了基于WDF 的驅(qū)動程序模塊,WDF(WindowsDriver Foundation)是microsoft 推行的驅(qū)動開發(fā)框架,用來替代之前的WDM 框架。WDF 框架對WDM 進行了封裝和繼承,與WDM相比,WDF 框架的驅(qū)動開發(fā)更簡單方便,尤其是簡化了電源管理和PNP(Plug and play)方面的工作量。根據(jù)該系統(tǒng)的實際需要,對驅(qū)動代碼進行了修改并編寫了應(yīng)用程序,能夠穩(wěn)定可靠地采集數(shù)據(jù),表明該系統(tǒng)滿足了預(yù)期的設(shè)計要求。

          8 結(jié)語

          本文的高速實時的設(shè)計方案,首先對傳感器輸出信號進行放大濾波處理,然后將其轉(zhuǎn)換為數(shù)字信號。實踐證明,USB 3.0 在USB 2.0 的基礎(chǔ)上大大提高了數(shù)據(jù)傳輸速率,實時性也有很好的增強,能夠滿足高速實時數(shù)據(jù)采集的要求,在數(shù)據(jù)采集和測試測量領(lǐng)域必將大顯身手。



          評論


          相關(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); })();