崔 煒,陳 磊
(長(zhǎng)春理工大學(xué) 電子信息工程學(xué)院,長(zhǎng)春 130022)
隨著目前各種信號(hào)處理系統(tǒng)對(duì)數(shù)據(jù)采集模塊的采集速度和采集精度的要求的提高,傳統(tǒng)的基于MCU或 DSP為主控器的數(shù)據(jù)采集系統(tǒng)已經(jīng)明顯不能滿足目前系統(tǒng)要求。伴隨著高速FPGA和高速AD芯片技術(shù)的發(fā)展,使用FPGA來設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)的優(yōu)勢(shì)越來越明顯。
FPGA的內(nèi)部延時(shí)非常小,控制邏輯均由硬件邏輯產(chǎn)生。在這種技術(shù)下,想要獲得高性能的采集系統(tǒng)是很容易的。本文采用SPARTAN-3 FPGA作為核心控制芯片,完成了對(duì)AD9211、AD9740和CY7C68001驅(qū)動(dòng)。通過最后的實(shí)驗(yàn)表明,系統(tǒng)的采樣率為300MHz,采樣精度為10-Bits,此時(shí)系統(tǒng)的精準(zhǔn)度和速度都能達(dá)到系統(tǒng)預(yù)設(shè)的要求。
基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的框圖如圖1所示,主要包括五部分:A/D采樣電路、D/A、USB接口電路、FPGA控制電路和外圍擴(kuò)展接口電路。
圖1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)中FPGA的主要工作是產(chǎn)生各個(gè)模塊的控制信號(hào)和驅(qū)動(dòng)時(shí)序,完成整個(gè)系統(tǒng)的邏輯控制和各模塊的驅(qū)動(dòng)。系統(tǒng)的外部輸入時(shí)鐘為60M,在FPGA內(nèi)由DCM經(jīng)行倍頻到300M作為系統(tǒng)的工作時(shí)鐘,驅(qū)動(dòng)系統(tǒng)的所以邏輯控制單元,并且作為A/D的采樣時(shí)鐘。
AD9211是ADI公司的10位高性能模數(shù)轉(zhuǎn)換器,具有低功耗、操作簡(jiǎn)單等優(yōu)點(diǎn),并且具有高達(dá)300MSPS的數(shù)據(jù)采樣率,其突出的動(dòng)態(tài)性能使其具有廣泛的應(yīng)用各種寬帶系統(tǒng)。
AD9211數(shù)據(jù)輸出為L(zhǎng)VDS接口模式并且支持二進(jìn)制補(bǔ)碼、二進(jìn)制偏移碼和格雷碼模式。用戶可以通過數(shù)據(jù)時(shí)鐘對(duì)輸出數(shù)據(jù)進(jìn)行同步,AD9211允許控制器通過一個(gè)SPI接口寫其內(nèi)部工作模式寄存器來設(shè)置其工作模式和數(shù)據(jù)輸出方式。
AD9740是一款10位低功耗的寬帶DAC,由于其低功耗的操作特性,被運(yùn)用在很多場(chǎng)合,當(dāng)其進(jìn)入低功耗模式下時(shí),功率損耗低至1 5 m W。其電壓輸出關(guān)系式為:
AD9740的硬件電路設(shè)計(jì)主要包括以下4個(gè)方面:外部電路設(shè)計(jì)、運(yùn)行時(shí)鐘模塊、數(shù)據(jù)輸出模塊和配置電路設(shè)計(jì)。
CY7C68001為一款USB接口驅(qū)動(dòng)芯片,有一個(gè)內(nèi)置的USB發(fā)生器和一個(gè)串口接口引擎(SIE),隨著命令譯碼器發(fā)送和接收USB數(shù)據(jù)。該控制器有4個(gè)可配置的端點(diǎn)共享4KB的FIFO最大彈性空間和吞吐量,并且支持控制端點(diǎn)0用于處理USB的設(shè)備請(qǐng)求。它有三個(gè)地址引腳和可選擇8-16位的數(shù)據(jù)命令總線和數(shù)據(jù)輸入或輸出[3]。
本次設(shè)計(jì)采用的核心控制器是XC3S400,這是Xilinx公司的一款高性能FPGA。它具有豐富的邏輯單元和I/O口來完成系統(tǒng)的數(shù)據(jù)采集和其它設(shè)備的連接,內(nèi)部還集成了大量的RAM存儲(chǔ)器來作為中間數(shù)據(jù)緩沖區(qū)。本次設(shè)計(jì)的主要時(shí)鐘模塊也是采用它內(nèi)部的DCM,通過PLL為系統(tǒng)的各個(gè)模塊提供時(shí)鐘。
模擬信號(hào)處理主要是通過信號(hào)放大和濾波模塊來調(diào)整信號(hào)的幅度等參數(shù)進(jìn)而滿足采樣電路的要求。我們也可以通過采樣后輸出信號(hào)的幅值來調(diào)整放大器的倍數(shù)。另外,外擴(kuò)接口是為系統(tǒng)擴(kuò)展預(yù)留的,能提高系統(tǒng)的靈活性,方便系統(tǒng)以后的更新?lián)Q代。
當(dāng)給系統(tǒng)供電時(shí),通過FPGA的SPI串行外設(shè)接口對(duì)A/D,D/A和USB這些外設(shè)模塊進(jìn)行復(fù)位和初始化,使它們工作在我們?cè)O(shè)定的模式下。AD9211的初始化時(shí)鐘如圖2所示。
圖2 SPI 時(shí)序原理圖
對(duì)AD9211初始化也是通過SPI模塊設(shè)置的,可以很方便的修改AD的工作模式,用Medelsim軟件仿真的SPI工作時(shí)鐘如圖3所示。
圖3 SPI仿真時(shí)序圖
該模塊在FPGA中的原理圖如4所示。
初始化完成后,當(dāng)給AD9211提供時(shí)鐘時(shí),數(shù)據(jù)開始輸出。數(shù)據(jù)的輸出速率由時(shí)鐘和輸出模式?jīng)Q定。AD9211有兩種數(shù)據(jù)輸出模式:?jiǎn)螖?shù)據(jù)模式和雙數(shù)據(jù)模式。它們兩種的時(shí)序原理圖如圖5和圖6所示。
圖4 SPI 模塊
圖5 單數(shù)據(jù)模式
圖6 雙數(shù)據(jù)模式
在這里根據(jù)兩種數(shù)據(jù)傳輸模式,我們?cè)O(shè)計(jì)了兩個(gè)模塊。在使用過程中根據(jù)具體的情況來選擇適當(dāng)?shù)臄?shù)據(jù)傳輸速率。驅(qū)動(dòng)時(shí)鐘是通過FPGA內(nèi)部的DCM頻率綜合器來產(chǎn)生的,當(dāng)DCM的鎖存信號(hào)為高電平時(shí),時(shí)鐘信號(hào)被鎖存,此時(shí)數(shù)據(jù)是有效的。圖7是用Modelsim仿真的不同時(shí)鐘輸出。
圖7 不同的時(shí)鐘輸出
AD9740驅(qū)動(dòng)設(shè)計(jì)主要包括時(shí)鐘產(chǎn)生模塊和數(shù)據(jù)寫時(shí)鐘模塊,它的時(shí)鐘也是由FPGA內(nèi)部的DCM提供。在時(shí)鐘的下降沿,F(xiàn)PGA寫數(shù)據(jù)導(dǎo)數(shù)據(jù)總線,在上升沿時(shí)刻,AD9740輸出模擬信號(hào)。
USB應(yīng)用程序包括三個(gè)部分,用狀態(tài)機(jī)來實(shí)現(xiàn)。它可以用來作為轉(zhuǎn)移命令接口,我們將采集來的數(shù)據(jù)進(jìn)行處理后通過它發(fā)送給PC機(jī)。這程序模塊主要包括三個(gè)部分:工作模式控制器、數(shù)據(jù)輸入輸出模塊和時(shí)序控制模塊。在Modelsim中用異步時(shí)序?qū)懨钸M(jìn)行了仿真,仿真時(shí)序如圖8所示。
圖8 異步命令寫時(shí)序
在這里就不一一討論其他的時(shí)序工作模式了。
在本次設(shè)計(jì)中,系統(tǒng)需要一個(gè)控制器來協(xié)調(diào)各模塊之間的工作時(shí)序。該控制器的主要工作就是根據(jù)實(shí)際環(huán)境來改變時(shí)鐘的工作模式使各個(gè)模塊工作在和諧狀態(tài),使系統(tǒng)在不同的工作環(huán)境下獲得最佳的工作條件。該控制器主要包括工作時(shí)鐘控制模塊和工作模式控制模塊。各模塊之間的連接如圖9所示。
圖9 各模塊之間的連接圖
對(duì)硬件電路進(jìn)行調(diào)試后,得到了AD9211的LVDS輸出眼圖,如圖10所示。從眼圖可以看出,當(dāng)系統(tǒng)采樣頻率達(dá)到300MHz/s時(shí)仍能可靠工作。
實(shí)驗(yàn)結(jié)果表明,系統(tǒng)實(shí)現(xiàn)了300MHz/s的采樣率,采樣精度為10-Bits,此時(shí)系統(tǒng)的精準(zhǔn)度和速度都能達(dá)到系統(tǒng)預(yù)設(shè)的要求。本文設(shè)計(jì)的高速率數(shù)據(jù)采集系統(tǒng)具有尺寸小、質(zhì)量輕、低功耗等優(yōu)點(diǎn),可廣泛的應(yīng)用于各種高速環(huán)境中。USB2.0接口確保數(shù)據(jù)能夠準(zhǔn)確高速的傳輸,滿足系統(tǒng)的實(shí)時(shí)要求。
圖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