崔 煒,陳 磊
(長春理工大學 電子信息工程學院,長春 130022)
隨著目前各種信號處理系統(tǒng)對數(shù)據(jù)采集模塊的采集速度和采集精度的要求的提高,傳統(tǒng)的基于MCU或 DSP為主控器的數(shù)據(jù)采集系統(tǒng)已經(jīng)明顯不能滿足目前系統(tǒng)要求。伴隨著高速FPGA和高速AD芯片技術(shù)的發(fā)展,使用FPGA來設(shè)計數(shù)據(jù)采集系統(tǒng)的優(yōu)勢越來越明顯。
FPGA的內(nèi)部延時非常小,控制邏輯均由硬件邏輯產(chǎn)生。在這種技術(shù)下,想要獲得高性能的采集系統(tǒng)是很容易的。本文采用SPARTAN-3 FPGA作為核心控制芯片,完成了對AD9211、AD9740和CY7C68001驅(qū)動。通過最后的實驗表明,系統(tǒng)的采樣率為300MHz,采樣精度為10-Bits,此時系統(tǒng)的精準度和速度都能達到系統(tǒng)預(yù)設(shè)的要求。
基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的框圖如圖1所示,主要包括五部分:A/D采樣電路、D/A、USB接口電路、FPGA控制電路和外圍擴展接口電路。

圖1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)中FPGA的主要工作是產(chǎn)生各個模塊的控制信號和驅(qū)動時序,完成整個系統(tǒng)的邏輯控制和各模塊的驅(qū)動。系統(tǒng)的外部輸入時鐘為60M,在FPGA內(nèi)由DCM經(jīng)行倍頻到300M作為系統(tǒng)的工作時鐘,驅(qū)動系統(tǒng)的所以邏輯控制單元,并且作為A/D的采樣時鐘。
AD9211是ADI公司的10位高性能模數(shù)轉(zhuǎn)換器,具有低功耗、操作簡單等優(yōu)點,并且具有高達300MSPS的數(shù)據(jù)采樣率,其突出的動態(tài)性能使其具有廣泛的應(yīng)用各種寬帶系統(tǒng)。
AD9211數(shù)據(jù)輸出為LVDS接口模式并且支持二進制補碼、二進制偏移碼和格雷碼模式。用戶可以通過數(shù)據(jù)時鐘對輸出數(shù)據(jù)進行同步,AD9211允許控制器通過一個SPI接口寫其內(nèi)部工作模式寄存器來設(shè)置其工作模式和數(shù)據(jù)輸出方式。
AD9740是一款10位低功耗的寬帶DAC,由于其低功耗的操作特性,被運用在很多場合,當其進入低功耗模式下時,功率損耗低至1 5 m W。其電壓輸出關(guān)系式為:

AD9740的硬件電路設(shè)計主要包括以下4個方面:外部電路設(shè)計、運行時鐘模塊、數(shù)據(jù)輸出模塊和配置電路設(shè)計。
CY7C68001為一款USB接口驅(qū)動芯片,有一個內(nèi)置的USB發(fā)生器和一個串口接口引擎(SIE),隨著命令譯碼器發(fā)送和接收USB數(shù)據(jù)。該控制器有4個可配置的端點共享4KB的FIFO最大彈性空間和吞吐量,并且支持控制端點0用于處理USB的設(shè)備請求。它有三個地址引腳和可選擇8-16位的數(shù)據(jù)命令總線和數(shù)據(jù)輸入或輸出[3]。
本次設(shè)計采用的核心控制器是XC3S400,這是Xilinx公司的一款高性能FPGA。它具有豐富的邏輯單元和I/O口來完成系統(tǒng)的數(shù)據(jù)采集和其它設(shè)備的連接,內(nèi)部還集成了大量的RAM存儲器來作為中間數(shù)據(jù)緩沖區(qū)。本次設(shè)計的主要時鐘模塊也是采用它內(nèi)部的DCM,通過PLL為系統(tǒng)的各個模塊提供時鐘。
模擬信號處理主要是通過信號放大和濾波模塊來調(diào)整信號的幅度等參數(shù)進而滿足采樣電路的要求。我們也可以通過采樣后輸出信號的幅值來調(diào)整放大器的倍數(shù)。另外,外擴接口是為系統(tǒng)擴展預(yù)留的,能提高系統(tǒng)的靈活性,方便系統(tǒng)以后的更新?lián)Q代。
當給系統(tǒng)供電時,通過FPGA的SPI串行外設(shè)接口對A/D,D/A和USB這些外設(shè)模塊進行復(fù)位和初始化,使它們工作在我們設(shè)定的模式下。AD9211的初始化時鐘如圖2所示。

圖2 SPI 時序原理圖
對AD9211初始化也是通過SPI模塊設(shè)置的,可以很方便的修改AD的工作模式,用Medelsim軟件仿真的SPI工作時鐘如圖3所示。

圖3 SPI仿真時序圖
該模塊在FPGA中的原理圖如4所示。
初始化完成后,當給AD9211提供時鐘時,數(shù)據(jù)開始輸出。數(shù)據(jù)的輸出速率由時鐘和輸出模式?jīng)Q定。AD9211有兩種數(shù)據(jù)輸出模式:單數(shù)據(jù)模式和雙數(shù)據(jù)模式。它們兩種的時序原理圖如圖5和圖6所示。

圖4 SPI 模塊

圖5 單數(shù)據(jù)模式

圖6 雙數(shù)據(jù)模式
在這里根據(jù)兩種數(shù)據(jù)傳輸模式,我們設(shè)計了兩個模塊。在使用過程中根據(jù)具體的情況來選擇適當?shù)臄?shù)據(jù)傳輸速率。驅(qū)動時鐘是通過FPGA內(nèi)部的DCM頻率綜合器來產(chǎn)生的,當DCM的鎖存信號為高電平時,時鐘信號被鎖存,此時數(shù)據(jù)是有效的。圖7是用Modelsim仿真的不同時鐘輸出。

圖7 不同的時鐘輸出
AD9740驅(qū)動設(shè)計主要包括時鐘產(chǎn)生模塊和數(shù)據(jù)寫時鐘模塊,它的時鐘也是由FPGA內(nèi)部的DCM提供。在時鐘的下降沿,F(xiàn)PGA寫數(shù)據(jù)導(dǎo)數(shù)據(jù)總線,在上升沿時刻,AD9740輸出模擬信號。
USB應(yīng)用程序包括三個部分,用狀態(tài)機來實現(xiàn)。它可以用來作為轉(zhuǎn)移命令接口,我們將采集來的數(shù)據(jù)進行處理后通過它發(fā)送給PC機。這程序模塊主要包括三個部分:工作模式控制器、數(shù)據(jù)輸入輸出模塊和時序控制模塊。在Modelsim中用異步時序?qū)懨钸M行了仿真,仿真時序如圖8所示。

圖8 異步命令寫時序
在這里就不一一討論其他的時序工作模式了。
在本次設(shè)計中,系統(tǒng)需要一個控制器來協(xié)調(diào)各模塊之間的工作時序。該控制器的主要工作就是根據(jù)實際環(huán)境來改變時鐘的工作模式使各個模塊工作在和諧狀態(tài),使系統(tǒng)在不同的工作環(huán)境下獲得最佳的工作條件。該控制器主要包括工作時鐘控制模塊和工作模式控制模塊。各模塊之間的連接如圖9所示。

圖9 各模塊之間的連接圖
對硬件電路進行調(diào)試后,得到了AD9211的LVDS輸出眼圖,如圖10所示。從眼圖可以看出,當系統(tǒng)采樣頻率達到300MHz/s時仍能可靠工作。
實驗結(jié)果表明,系統(tǒng)實現(xiàn)了300MHz/s的采樣率,采樣精度為10-Bits,此時系統(tǒng)的精準度和速度都能達到系統(tǒng)預(yù)設(shè)的要求。本文設(shè)計的高速率數(shù)據(jù)采集系統(tǒng)具有尺寸小、質(zhì)量輕、低功耗等優(yōu)點,可廣泛的應(yīng)用于各種高速環(huán)境中。USB2.0接口確保數(shù)據(jù)能夠準確高速的傳輸,滿足系統(tǒng)的實時要求。

圖10 LVDS輸出眼圖
[1] Analog Devices.AD9211 Complete Data sheet.www.analog.com
[2] Analog Devices.AD9740 Complete Data Sheet.www.analog.com
[3] CY7C68001 Complete Data Sheet.http://www.cypress.com
[4] Xilinx.XC3S400 FPGA:Complete Data Sheet.www.xilinx.com
[5] Rajsuman R.System on a Chip Design and Test [M]. Artech House,2000.
[6] Sforza F,Battu L,Brunelli M.A Design for Verification Methodology.2nd International Symposium on Quality of Elect ronic Design,San Jose,2001.
[7] Kliman GB,et al.Met hods of Motor Current Signature Analysis[J].Elect.Mach.power Syst ,Sept.1992,20,5:4632474.
[8] Thomson W T,et al.On Line Current Monitoring and Application of a Finite Element Method to Predict the Level of Static air Gap Eccentricity in three Phase Induction Motors[J]. IEEE Transactions on Energy Conversion,December 1998,13