《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于高速USB接口模塊的數(shù)據(jù)采集系統(tǒng)
基于高速USB接口模塊的數(shù)據(jù)采集系統(tǒng)
摘要: 工程師在設(shè)計(jì)基于PC的數(shù)據(jù)采集系統(tǒng)時(shí)都認(rèn)為,要想獲得比較好的性能,都需要使用PCI總線。其實(shí)并不是這樣,隨著USB通信技術(shù)的不斷發(fā)展,USB總線的傳輸速度和可靠性都在逐步提升。對(duì)于廣范應(yīng)用的USB2.0,其最快速度能夠達(dá)到480 Mb/s。就算其中一些中斷或者協(xié)議占用一部分帶寬,高于80 Mb/s的速度也是很容易實(shí)現(xiàn)的。而USB3.0協(xié)議下的理論速度可以達(dá)到USB2.0的10倍左右。另外,相比于PCI卡,USB接口對(duì)系統(tǒng)的開(kāi)發(fā)與升級(jí)更加方便。
Abstract:
Key words :

  引言

  工程師在設(shè)計(jì)基于PC的數(shù)據(jù)采集系統(tǒng)時(shí)都認(rèn)為,要想獲得比較好的性能,都需要使用PCI總線。其實(shí)并不是這樣,隨著USB通信技術(shù)的不斷發(fā)展,USB總線的傳輸速度和可靠性都在逐步提升。對(duì)于廣范應(yīng)用的USB2.0,其最快速度能夠達(dá)到480 Mb/s。就算其中一些中斷或者協(xié)議占用一部分帶寬,高于80 Mb/s的速度也是很容易實(shí)現(xiàn)的。而USB3.0協(xié)議下的理論速度可以達(dá)到USB2.0的10倍左右。另外,相比于PCI卡,USB接口對(duì)系統(tǒng)的開(kāi)發(fā)與升級(jí)更加方便。

  QuickUSB[1]是基于CY7C68013A[2]開(kāi)發(fā)的一款針對(duì)USB2.0的高速USB模塊。Bitwise公司為這款模塊提供嵌入EEPROM的底層程序,同時(shí)還在PC端提供了相應(yīng)的LabVIEW和C語(yǔ)言的API底層程序,這為系統(tǒng)的開(kāi)發(fā)提供了很大的便利。本文設(shè)計(jì)的系統(tǒng)[3]就是基于這個(gè)原理。

  1  硬件電路設(shè)計(jì)

  系統(tǒng)的核心硬件是FPGA、ADS803E、CY7C68013A以及Bitwise公司的內(nèi)嵌底層程序的EEPROM。

  圖1是FPGA的配置電路。CY7C68013A可以通過(guò)PS模式來(lái)配置FPGA,而不需要其他的下載器。系統(tǒng)選擇的FPGA型號(hào)是EP2C50F484,為了使用PS模式下載,需要分別設(shè)置MSEL0=1,MSEL1=0,MSEL2=0。注意配置端口需要增加上拉電阻來(lái)保證其正常工作。

圖1  FPGA的配置電路

  系統(tǒng)選擇ADS803E作為ADC轉(zhuǎn)換電路,ADS803E的轉(zhuǎn)換速度可以達(dá)到5 MHz,而且其引腳與同類型的10 MHz的ADS804以及20 MHz的ADS805兼容。圖2是系統(tǒng)ADC轉(zhuǎn)換電路。

  對(duì)于ADS803E的輸入信號(hào)首先要經(jīng)過(guò)一級(jí)運(yùn)放跟隨,目的是為了將輸入信號(hào)控制在其測(cè)量范圍之內(nèi)。ADS803E的測(cè)量范圍可以通過(guò)改變圖中電阻R1與R2的值來(lái)實(shí)現(xiàn),其量程范圍為0~2×R1+R2R1。ADS803E的輸出要在6個(gè)時(shí)鐘之后才會(huì)有效,也就是說(shuō)其數(shù)字輸出對(duì)于模擬輸入存在6個(gè)時(shí)鐘的延時(shí)。同時(shí),為了減小系統(tǒng)的功耗,在不需要進(jìn)行ADC轉(zhuǎn)換的時(shí)候,可以通過(guò)FPGA將ADS803E的時(shí)鐘停止。

圖2  ADC轉(zhuǎn)換電路

關(guān)鍵字: 高速USB接口 數(shù)據(jù)采集

 

圖3  CY7C68013A原理圖

  CY7C68013A原理圖設(shè)計(jì)如圖3所示。其中包括9根地址線(GPIF_ADR0~8),16根數(shù)據(jù)線(PPB0~7、PPD0~7),以及相應(yīng)的控制線。

  FPGA與CY7C68013A連接軟件界面如圖4所示。配合CY7C68013A設(shè)計(jì)編寫(xiě)的相應(yīng)讀寫(xiě)控制時(shí)序,能夠與PC端進(jìn)行通信,同時(shí)根據(jù)獲得的控制命令來(lái)對(duì)ADC進(jìn)行操作,并將獲得的數(shù)據(jù)從FIFO中讀取出來(lái),傳遞到PC端。

圖4  FPGA與CY7C68013A連接軟件界面

  2  控制軟件設(shè)計(jì)

  數(shù)據(jù)采集系統(tǒng)的流程略--編者注。系統(tǒng)所有的初始化配置都是寫(xiě)在一個(gè)TXT文件中,程序開(kāi)始運(yùn)行時(shí)會(huì)根據(jù)設(shè)置好的路徑讀取該文件,并初始化所有配置信息。該軟件采用了讀取PC環(huán)境變量的方法來(lái)增強(qiáng)軟件系統(tǒng)的可移植性。需要將該軟件系統(tǒng)從一臺(tái)PC轉(zhuǎn)移到另外一臺(tái)PC時(shí),只需更改一下環(huán)境變量的定義。FPGA通過(guò)CY7C68013A從PC端接收數(shù)據(jù)和控制命令,將其轉(zhuǎn)化為存儲(chǔ)器讀寫(xiě)、A/D轉(zhuǎn)換、前端電子學(xué)控制等命令,并最終將測(cè)量數(shù)據(jù)傳遞給PC。

  3  測(cè)試結(jié)果

  測(cè)試結(jié)果如圖5所示,利用直流電源作為測(cè)試源對(duì)數(shù)據(jù)采集系統(tǒng)進(jìn)行性能測(cè)試。分別測(cè)試OUT+和OUT-為0~1.2 V和-1.2~0 V的變化,然后從PC端得到ADC的轉(zhuǎn)換結(jié)果。圖中橫坐標(biāo)是|OUT+|與|OUT-|的和,縱坐標(biāo)是與模擬電壓相對(duì)應(yīng)的ADC數(shù)值。通過(guò)對(duì)圖中數(shù)據(jù)的擬合,得到模擬信號(hào)和數(shù)字信號(hào)的線性關(guān)系y=357.144+2.223x。這就意味著每m V電壓對(duì)應(yīng)2.2的數(shù)字輸出,也可以表示為每1個(gè)數(shù)字值對(duì)應(yīng)0.45 mV的模擬電壓。直線在Y軸上的截距被稱為基值,一般為300~400個(gè)ADC計(jì)數(shù)。

  圖5  數(shù)據(jù)采集系統(tǒng)的線性測(cè)試

  4  結(jié)語(yǔ)

  基于QuickUSB的數(shù)據(jù)采集系統(tǒng)可以實(shí)現(xiàn)數(shù)據(jù)的快速采集與存儲(chǔ),并且在體積、功耗方面都有明顯的優(yōu)勢(shì)。系統(tǒng)目前已經(jīng)應(yīng)用到很多實(shí)驗(yàn)當(dāng)中[6](如PEBS實(shí)驗(yàn)),都取得了很好的測(cè)試效果。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。