李 東,崔文超,郭瑞民,董賀偉
(中國計量科學(xué)研究院環(huán)境計量中心,北京 100029)
數(shù)據(jù)采集系統(tǒng)是信息處理系統(tǒng)的重要組成部分[1],其通常由模數(shù)轉(zhuǎn)換器(analog to digital converter,ADC)和控制芯片組成。ADC決定了采樣率和分辨率,控制芯片為ADC提供驅(qū)動時鐘并接收ADC的采集數(shù)據(jù)。傳統(tǒng)數(shù)據(jù)采集系統(tǒng)多采用單片機或數(shù)字信號處理芯片(digital signal processing,DSP)作為控制芯片[2-3]。單片機或DSP芯片提供的時鐘速率較低,限制了ADC的采集上限。除此之外,采用單片機或DSP芯片進行數(shù)據(jù)采集,成本較高。近年來,現(xiàn)場可編程邏輯門陣列(field programmable gate array,F(xiàn)PGA)芯片由于其內(nèi)部邏輯電路獨特的可編程性,有效降低了研發(fā)成本,被廣泛用作數(shù)據(jù)采集的控制芯片[4-6]。FPGA片上資源不受固化模塊的占用,可被各個功能模塊調(diào)用,靈活性高。
本文設(shè)計了一種基于FPGA的高速模擬信號觸發(fā)采集系統(tǒng),其電路部分主要由2片A/D芯片、1個FPGA芯片和1個USB通信芯片組成。研究中,通過時序設(shè)計控制2片A/D交替工作,并將采集數(shù)據(jù)存儲到DDR2中,采集結(jié)束后由USB通信芯片傳輸?shù)接嬎銠C(PC)。該采集系統(tǒng)分辨率為12位,采樣率最高達到130 Msps,可應(yīng)用在μs量級、0~5 V瞬時電壓信號的采集。
本文研究的數(shù)據(jù)采集系統(tǒng)電路原理圖如圖1所示,主要包括模擬信號調(diào)理電路、A/D轉(zhuǎn)換電路、FPGA控制模塊、USB通信電路和延時觸發(fā)電路。
圖1 數(shù)據(jù)采集系統(tǒng)電路原理圖
模擬信號調(diào)理電路主要由運放AD8065和比例放大偏置電路組成,將0~5 V的輸入電壓轉(zhuǎn)換為1~3 V電壓,以滿足A/D輸入端的輸入范圍。模數(shù)轉(zhuǎn)換電路主要包括2個模數(shù)轉(zhuǎn)換器AD9226,其分辨率為12位。在65 MHz時鐘的驅(qū)動下,2個AD9226交替進行信號采集,并將數(shù)據(jù)通過12位并行數(shù)據(jù)線輸出給FPGA芯片。
FPGA控制電路由FPGA芯片(型號:EP4CE15F23C8)、DDR2芯片和Flash芯片構(gòu)成。研究中,通過對FPGA芯片進行編程,設(shè)計FPGA內(nèi)部邏輯控制電路。DDR2芯片(型號:MT47H64M16)和Flash芯片(型號:M25P64)作為儲存芯片與FPGA相應(yīng)管腳連接。其中,DDR2芯片有1 G的儲存量,用于臨時存儲采集的數(shù)據(jù)。Flash芯片用來存儲編寫的控制程序,確保FPGA芯片啟動時,能夠正常加載芯片代碼,完成FPGA內(nèi)部控制電路的設(shè)計。
USB通信電路主要由USB芯片構(gòu)成,并與FPGA相應(yīng)管腳相連。通過外接USB接口,實現(xiàn)FPGA與計算機的通信。圖1中,延時觸發(fā)輸出電路通過緩沖器和電平轉(zhuǎn)換芯片與FPGA的3.3 V電壓輸出管腳相連,其末端輸出1.7 V電壓信號用于控制觸發(fā)信號的輸入輸出。
FPGA程序功能圖如圖2所示,主要包括鎖相環(huán)(phase locked loop,PLL)模塊、AD讀取模塊、觸發(fā)模塊、USB通信模塊、控制模塊和DDR2模塊。首先,編寫FPGA程序,并對編寫的程序進行聯(lián)合仿真。
進行程序設(shè)計時,采用外部晶振產(chǎn)生50 MHz信號作為系統(tǒng)時鐘,輸入到PLL模塊。PLL主要功能是產(chǎn)生系統(tǒng)所需的3類時鐘信號,頻率分別為130 MHz、50 MHz和65 MHz。其中130 MHz信號用作USB模塊及DDR2模塊的寫入信號源,50 MHz信號為DDR2模塊的工作信號源,65 MHz信號提供給2個AD9226芯片。
AD讀取模塊劃分為3個子模塊:信號-節(jié)拍模塊、信號-位寬轉(zhuǎn)換模塊和觸發(fā)模塊。在130 MHz時鐘信號驅(qū)動下,信號-節(jié)拍模塊將兩路AD交替采集的電壓信號組合為一路電壓信號,數(shù)據(jù)位寬為12位[7-8]。程序設(shè)計時,通過信號-位寬模塊將該12位數(shù)據(jù)拓展為32位數(shù)據(jù),并輸出給觸發(fā)模塊,其中低12位為有效數(shù)字。在觸發(fā)模塊中,采集的電壓信號與設(shè)定的閾值電壓相比較,若大于閾值電壓,觸發(fā)模塊則輸出低電平延時使能信號;若小于閾值電壓,觸發(fā)模塊保持高電平輸出。本研究中,設(shè)定的閾值電壓和觸發(fā)延時時間分別為1.5 V和1 ms。
DDR2模塊由先入先出(first input fist out,F(xiàn)IFO)控制模塊和DDR2控制模塊構(gòu)成[9-10]。其中,DDR2控制模塊用來響應(yīng)FIFO控制模塊發(fā)出的數(shù)據(jù)寫讀請求,并控制DDR2芯片數(shù)據(jù)的讀寫。DDR2芯片的工作頻率為166.7 MHz,PLL輸出給DDR2模塊的時鐘為130 MHz,兩者速率不匹配。本文采用FIFO控制模塊作為信號緩沖池,將需要寫入、讀出DDR2的數(shù)據(jù)儲存在FIFO中,實現(xiàn)外部數(shù)據(jù)與DDR2芯片數(shù)據(jù)讀寫速率的匹配。本研究中,在FIFO控制模塊中建立了一個數(shù)據(jù)寬度為32位,深度為1024的寫FIFO和讀FIFO。
USB通信模塊用于FPGA芯片與USB芯片(型號:CY7C68013A)之間的通信,接收來自USB芯片的指令,并傳輸從DDR2中讀取的數(shù)據(jù)[11-12]。控制模塊是整個系統(tǒng)的核心,用于向每個模塊發(fā)出工作指令、控制數(shù)據(jù)流的方向以及響應(yīng)PC的控制指令??刂颇K的輸入信號包括時鐘信號,復(fù)位信號,啟動信號和觸發(fā)信號。
采集時序如圖3所示,讀取時鐘為130 MHz,AD的工作時鐘為65 MHz。如圖3所示,2個AD9226工作在相位完全相反的時鐘源下,接收數(shù)據(jù)的相位也完全相反。在130 MHz信號-節(jié)拍模塊的驅(qū)動下,2列65 MHz的數(shù)據(jù)等效為1列時鐘為130 MHz的數(shù)據(jù)。
圖3 等效時鐘時序圖
數(shù)據(jù)采集系統(tǒng)的工作流程如圖4所示,主要包括模塊初始化部分、觸發(fā)信號產(chǎn)生部分、DDR2數(shù)據(jù)寫入/讀出部分和USB芯片到PC的數(shù)據(jù)上傳部分。
圖4 采集系統(tǒng)的工作流程
數(shù)據(jù)采集過程由圖2所示的控制模塊控制運行,首先進行系統(tǒng)初始化,并在PC端檢索USB設(shè)備。接著使控制模塊的復(fù)位信號置低,開始信號置高,使控制模塊處于待觸發(fā)狀態(tài)。此時,記錄使能信號和輸出使能信號均為低電平。當采集的電壓信號高于設(shè)置的閾值電壓時,觸發(fā)使能信號變?yōu)楦唠娖?,記錄使能信號置為高電平,但輸出使能信號依舊在設(shè)定的延遲時間內(nèi)保持為低電平。在130 MHz時鐘的驅(qū)動下,控制模塊將2個65 Msps的AD9226數(shù)模轉(zhuǎn)換器采集的數(shù)據(jù)交叉寫入DDR2芯片,完成觸發(fā)采集過程。當設(shè)定的延遲時間結(jié)束后,記錄使能信號置為低電平,輸出使能信號置為高電平,且保持另一長度的延遲時間。
在觸發(fā)延遲信號與記錄使能信號為高電平時,控制模塊發(fā)出寫指令,將采集的數(shù)據(jù)寫入DDR2芯片。等觸發(fā)延遲信號與輸出使能信號為高電平時,控制模塊發(fā)出讀指令,讀出DDR2中的數(shù)據(jù),并向USB芯片發(fā)出寫指令,將讀出的數(shù)據(jù)寫入USB芯片,上傳到PC??刂颇K進入待觸發(fā)狀態(tài),等待新一輪的數(shù)據(jù)采集過程。
本研究中,記錄使能信號為高電平,同時輸出使能信號為低電平的延遲時間為50 μs。記錄使能信號為低電平,同時輸出使能信號為高電平的延遲時間為500 μs,以確保DDR2的寫入時間和讀出時間之和小于觸發(fā)模塊的觸發(fā)延遲時間。
為了測試該采集系統(tǒng)的性能,采用信號發(fā)生器產(chǎn)生標準信號,同時利用示波器和該采集系統(tǒng)對標準信號進行采集并進行對比。信號發(fā)生器(型號:Agilent,33500B)生成的標準正弦信號頻率分別為50 kHz、100 kHz、500 kHz和1 MHz,幅值為4 V。示波器(型號:Agilent,DSO5054A)的采樣率為4 GS/s。本文設(shè)計采集裝置的采樣率為130 Msps,采集結(jié)果如圖5所示,其中連續(xù)直線代表示波器采集的信號,點線為采集裝置采集的正弦波信號。由圖5可以看到,兩者采集的波形完全重合,且采集的信號電壓值與實際信號電壓值一致性較好。
(a)50 kHz
在光腔衰蕩光譜(CRDS)技術(shù)相關(guān)研究中[13-15],需要利用采集卡收集從衰蕩光腔透射的成指數(shù)衰減的光信號。以往的CRDS裝置數(shù)據(jù)采樣率低,大多數(shù)在10 Msps以內(nèi)。為了進一步評價本論文設(shè)計的采集卡性能,采用信號發(fā)生器產(chǎn)生標準衰蕩信號,通過比對采集卡和示波器的采集結(jié)果,驗證該裝置在CRDS裝置中的應(yīng)用潛力。
研究中,信號發(fā)生器產(chǎn)生時間長度為10 μs的標準衰蕩信號,示波器的采樣率為4 GS/s,本文設(shè)計采集裝置的采樣率為130 Msps。結(jié)果如圖6所示,其中連續(xù)直線為示波器采集的信號,點線為采集卡采集的信號,兩者完全重合。采用指數(shù)衰減函數(shù)分別對采集卡和示波器采集的數(shù)據(jù)進行擬合,所得的衰蕩時間分別為1.609 9 μs和1.596 6 μs,兩者相差約0.83%,可用于CRDS研究中的衰蕩信號采集。
圖6 指數(shù)衰減信號
本文設(shè)計了一種基于FPGA芯片的高速數(shù)據(jù)采集系統(tǒng)。系統(tǒng)硬件包括模擬信號調(diào)理電路、模數(shù)轉(zhuǎn)換電路、FPGA控制模塊、USB通信電路和延時觸發(fā)電路。編寫的FPGA內(nèi)部程序包括鎖相環(huán)模塊、AD讀取模塊、觸發(fā)模塊、USB通信模塊、控制模塊和DDR2模塊。采用等效時鐘原理,控制2片采樣率為65 Msps的數(shù)模轉(zhuǎn)換器交替工作,實現(xiàn)了130 Msps的采樣率。利用該系統(tǒng)采集50 kHz~1 MHz的正弦信號和時間長度為10 μs的衰蕩信號,采集結(jié)果與示波器一致。本文設(shè)計的采集系統(tǒng),可用于CRDS裝置中的衰蕩信號采集。