李玉峰,韓曉紅 ,劉 洋,朱興洪
(1.東南大學(xué)移動(dòng)通信國(guó)家重點(diǎn)實(shí)驗(yàn)室,南京 210096;2.沈陽(yáng)航空航天大學(xué)電子信息工程學(xué)院,沈陽(yáng) 110136;3.北京方天長(zhǎng)久科技有限公司,北京 100085)
在無(wú)線通信、醫(yī)療成像和雷達(dá)系統(tǒng)等新興應(yīng)用中,常常需要對(duì)高速信號(hào)進(jìn)行采集與處理,且在很多領(lǐng)域?qū)?shù)據(jù)采集與處理系統(tǒng)的精度要求還非常高[1]。因此,設(shè)計(jì)一個(gè)好的高速高精度采集系統(tǒng)尤為重要。鑒于此種情況,本設(shè)計(jì)采用ADI 公司的高速A/D和Altera 公司的Stratix Ⅲ器件作為數(shù)據(jù)采集和處理的主體,詳細(xì)論述了各模塊的設(shè)計(jì)思路與實(shí)現(xiàn)方法。
數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)主要由4 部分組成:前端信號(hào)調(diào)理模塊、16 bit 的AD9262 轉(zhuǎn)換模塊、FPGA 控制模塊及上位機(jī)(如圖1所示)。其中心控制單元為ALTERA 的Stratix ⅢEP3SL150F1152C4N,它控制數(shù)據(jù)采集系統(tǒng)的轉(zhuǎn)換、存儲(chǔ)、讀取等過(guò)程。
圖1 數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn)框圖
前端信號(hào)調(diào)理電路由變壓器(WBC-1TLB)和1.8 V 的直流偏置電路組成。通過(guò)變壓器將單端信號(hào)轉(zhuǎn)換為差分信號(hào)送入AD 的差分輸入端,以減少A/D 轉(zhuǎn)換結(jié)果的偶次諧波,提高信噪比(SNR);直流偏置電路為AD9262 的模擬輸入端提供1.8 V 偏置電壓。當(dāng)輸入信號(hào)頻率很高,ADC 的輸入端不能容忍太顯著的附加噪聲,而變壓器是無(wú)源的且為交流耦合,所引入的噪聲可以忽略不計(jì),從而減少了進(jìn)入ADC 的雜波分量[2]。實(shí)現(xiàn)前端信號(hào)調(diào)理的電路如圖2所示,其中J1為SMA 連接器,WBC1-1TLB為變壓器,AD1_A_VINp和AD1_A_VINn為兩路差分輸出端,與AD9262 的VIN+A和VIN-A 相連,為AD9262 提供差分輸入信號(hào)。
圖2 前端信號(hào)調(diào)理電路圖
AD9262 是一款雙通道、16 bit 高速模數(shù)轉(zhuǎn)換器,提供2.5 MHz/5 MHz/10 MHz 3種不同帶寬選擇,用戶可自定義輸出數(shù)據(jù)速率:30 Msample/s至160 Msample/s,采用1.8 V模擬電源和1.8 V至3.3 V 數(shù)字電源工作,功耗為600 mW。
AD9262 的組成框圖如圖3,主要由Σ-Δ 調(diào)制器(環(huán)路濾波器+ADC 電路)、抽取濾波器、采樣速率轉(zhuǎn)換器組成[3]。它采用連續(xù)時(shí)間Σ-Δ 架構(gòu),該架構(gòu)獨(dú)有的集成功能與特性可大大簡(jiǎn)化其使用性能,主要體現(xiàn)在以下幾點(diǎn):
(1)32倍過(guò)采樣五階連續(xù)時(shí)間環(huán)路濾波器可顯著衰減帶外信號(hào)和混疊,因而輸入端無(wú)需外部濾波器并降低或者省去對(duì)抗混疊濾波器的要求。
(2)外部時(shí)鐘輸入或集成的整數(shù)N 分頻鎖相環(huán)方便的為過(guò)采樣Σ-Δ 調(diào)制器提供所需的640 MHz內(nèi)部時(shí)鐘。
(3)片內(nèi)抽取濾波器和采樣速率轉(zhuǎn)換器可將調(diào)制器速率從640 Msample/s 降至用戶定義的輸出數(shù)據(jù)速率(30 Msample/s~160 Msample/s),實(shí)現(xiàn)更高效直接的接口。
圖3 AD9262 的組成框圖
FPGA 設(shè)計(jì)采用自頂向下的方法,模塊設(shè)計(jì)采用Verilog 語(yǔ)言編寫。分別完成AD9262 配置模塊、FIFO 狀態(tài)控制模塊、中斷產(chǎn)生模塊及數(shù)據(jù)輸出模塊代碼的編寫,并進(jìn)行編譯后由JTAG 線下載到FPGA芯片中進(jìn)行驗(yàn)證。
1.3.1 FPGA模塊控制流程
當(dāng)上位機(jī)啟動(dòng)數(shù)據(jù)采集后,F(xiàn)PGA 通過(guò)SPI 接口對(duì)AD9262 芯片進(jìn)行配置;AD9262為16 bit 的雙通道模數(shù)轉(zhuǎn)換器,把兩路輸出經(jīng)過(guò)拼接后變?yōu)?2 bit,并在FIFO 的寫入時(shí)鐘驅(qū)動(dòng)下寫入32 bit 數(shù)字輸出信號(hào);當(dāng)FIFO 存儲(chǔ)達(dá)到滿狀態(tài)時(shí),F(xiàn)PGA 產(chǎn)生一個(gè)低電平的外部中斷請(qǐng)求信號(hào),上位機(jī)響應(yīng)中斷后通過(guò)CPCI 總線讀取FIFO 中的數(shù)據(jù);當(dāng)FPGA 收到FIFO 輸出空(Empty)信號(hào)后,再次通過(guò)CPCI 總線向上位機(jī)產(chǎn)生中斷請(qǐng)求信號(hào),響應(yīng)中斷后上位機(jī)查詢中斷源,若檢測(cè)到FIFO為空信號(hào)后,上位機(jī)停止通過(guò)總線讀取AD轉(zhuǎn)換后的結(jié)果,完成一次采集任務(wù)[4-6]。當(dāng)一次采集完成后,上位機(jī)寫入FPGA 復(fù)位信號(hào),這樣FPGA 內(nèi)部停止對(duì)AD9262 配置從而中止AD 轉(zhuǎn)換過(guò)程,以上描述的控制過(guò)程用流程圖表示為圖4。
圖4 FPGA模塊控制流程圖
1.3.2 FPGA 對(duì)AD9262 的配置
AD9262 芯片參數(shù)是FPGA 通過(guò)SPI 接口配置其內(nèi)部寄存器實(shí)現(xiàn)的,主要完成對(duì)Σ-Δ 調(diào)制器所需的640 MHz 時(shí)鐘及ADC 數(shù)字輸出速率的配置。
ADC 芯片采用SPI 總線對(duì)芯片進(jìn)行配置,SPI(Serial Peripheral Interface),串行外圍設(shè)備接口,是一種高速、全雙工、同步的通信總線,在芯片的管腳上只占用3 根線,由串行時(shí)鐘(SCLK)、串行數(shù)據(jù)輸入/輸出(SDIO)、芯片選擇(CSB)3個(gè)引腳組成。
指令周期為傳輸?shù)那?6 bit,包括R/ˉW、W1W0、A12-A0,傳輸?shù)暮? bit 表示往寄存器中寫入的值。R/ˉW 是讀/寫指示位(指令周期完成后,進(jìn)行讀寫操作),當(dāng)該位為高時(shí),表示讀取指令,為低時(shí),表示寫入指令;W1W0 表示要為讀出和寫入的字節(jié)數(shù);其余13 bit(A12-A0)表示數(shù)據(jù)的起始地址,如果數(shù)據(jù)不止一個(gè)字節(jié),則會(huì)使用順序?qū)ぶ?,從指定地址開(kāi)始,根據(jù)模式設(shè)置而遞增或遞減。SPI 總線接口時(shí)序圖如圖5所示。
圖5 SPI 總線接口時(shí)序圖
由對(duì)AD9262 及SPI 接口的介紹,給出了AD9262 寄存器的配置方法[3]:
(1)向CLK±管腳引入?yún)⒖紩r(shí)鐘(由板上晶振提供)。
(2)配置鎖相環(huán)倍乘因子,設(shè)置寄存器0x0A[5 ∶0]的值。
(3)使能AD9262 內(nèi)部Σ-Δ 調(diào)制器的鎖相環(huán),設(shè)置寄存器0x09[2]=04。
(4)使能鎖相環(huán)帶寬選擇,設(shè)置寄存器0x0A[6]=1(設(shè)置帶寬為5 MHz)。
(5)初始化采樣速率轉(zhuǎn)換器(SRC),設(shè)置寄存器0x101[5 ∶0]=0。
(6)配置采樣速率轉(zhuǎn)換器(SRC)到用戶自定義的數(shù)據(jù)輸出速率值,設(shè)置寄存器0x101[5 ∶0]的值。該配置過(guò)程在QuanrtusⅡ平臺(tái)下用Verilog 語(yǔ)言[7-8]實(shí)現(xiàn)。
FIFO 是一種先進(jìn)先出的存儲(chǔ)器件,當(dāng)寫使能(WEN)為低時(shí),在寫時(shí)鐘(WCLK)的上升沿將數(shù)據(jù)寫入;當(dāng)讀使能(REN)為低時(shí),在讀時(shí)鐘(RCLK)的上升沿將數(shù)據(jù)讀出。由于FIFO 中沒(méi)有地址指針,可在讀、寫過(guò)程中用相應(yīng)的狀態(tài)標(biāo)志位來(lái)置位以指示FIFO 的狀態(tài),空標(biāo)志(Empty)置位將禁止讀操作,滿標(biāo)志(Full)置位將禁止寫操作。
本設(shè)計(jì)中的FIFO 是通過(guò)配置FPGA 內(nèi)部的Block RAM 資源,在Altera QuartusⅡ環(huán)境的IP 核生成器中實(shí)現(xiàn)的。將FIFO 的寫時(shí)鐘WCLK 直接與AD 時(shí)鐘(本設(shè)計(jì)采用40 MHz)相連,可使FIFO 同步將AD采樣數(shù)據(jù)寫入。由于AD9262 的兩路16 bit 輸出經(jīng)拼接后為32 bit 數(shù),且每次采樣點(diǎn)數(shù)預(yù)設(shè)為4 096點(diǎn),故該FIFO 的存儲(chǔ)空間設(shè)置為4 096×32 bit。
高速數(shù)據(jù)采集系統(tǒng)的動(dòng)態(tài)指標(biāo)描述的是AD 器件采樣和重現(xiàn)時(shí)序變化信號(hào)的能力,關(guān)注交流條件下的性能表現(xiàn)。主要有信噪比(SNR)、無(wú)雜散動(dòng)態(tài)范圍(SFDR)、有效位數(shù)(ENOB)、信噪失真比(SINAD)等[9]。
評(píng)估ADC 動(dòng)態(tài)性能的主要參數(shù)定義如下:
(1)信噪比(SNR)
式(1)中Asignal為滿幅度正弦模擬輸入信號(hào)的均方根值,Anoise為所有噪聲源之和的。
(2)信噪失真比(SINAD)
式(2)中Aharmonic為各次諧波(除直流外)的頻率分量的均方根之和。
(3)有效比特位數(shù)(ENOB)
(4)無(wú)雜散動(dòng)態(tài)范圍(SFDR)
式(4)中AF_IN為輸入信號(hào)基波分量的均方根值,AHD_MAX為采樣波形頻譜中最大失真諧波分量或最大雜散信號(hào)的均方根值。
目前較為先進(jìn)的測(cè)試方法是利用FFT 變換分析信號(hào)頻譜并求得信噪比及有效位數(shù),該方法具有全數(shù)字、可編程、精確度高等優(yōu)勢(shì)。該方法是將滿量程正弦信號(hào)送到被測(cè)ADC 中,將轉(zhuǎn)換后的數(shù)字碼輸出到上位機(jī),對(duì)輸出數(shù)據(jù)實(shí)施FFT 運(yùn)算,經(jīng)加工計(jì)算可得到SNR、SINAD、ENOB、SFDR 等動(dòng)態(tài)參數(shù)[10-11]。本設(shè)計(jì)中采用的測(cè)試方法如下:
(1)利用安捷倫E4428C 信號(hào)發(fā)生器分別產(chǎn)生1.2 MHz、2.4 MHz和4.2 MHz 的單一頻率正弦波輸入到被測(cè)ADC 中,這里采用40 MHz 的采樣頻率,滿足奈奎斯特定理的要求。
(2)輸入的模擬信號(hào)經(jīng)前述高速數(shù)據(jù)采集系統(tǒng)的處理后,由上位機(jī)發(fā)指令讀出FIFO 中的數(shù)字輸出,并送入Matlab 7.0 平臺(tái)進(jìn)行FFT 運(yùn)算。
(3)根據(jù)FFT 結(jié)果取基頻及其兩旁適當(dāng)頻率點(diǎn)對(duì)應(yīng)的幅值,求均方根值作為信號(hào)有效值,則其余頻率點(diǎn)對(duì)應(yīng)幅值的均方根值作為噪聲的有效值,包括量化噪聲、諧波噪聲及FFT 的舍入誤差(當(dāng)為非相干采樣時(shí),存在頻譜泄露要選取適當(dāng)?shù)拇昂瘮?shù)來(lái)抑制,本設(shè)計(jì)中采用4 096點(diǎn)的漢寧窗)。
(4)根據(jù)基頻、采樣頻率以及采樣點(diǎn)數(shù)N(4096點(diǎn))計(jì)算出信號(hào)的諧波量,求出諧波分量對(duì)應(yīng)幅度的有效值。由所求信號(hào)有效值、噪聲有效值以及諧波分量有效值,由定義式可以求得各個(gè)動(dòng)態(tài)參數(shù)值。以下給出了2.4 MHz 信號(hào)對(duì)應(yīng)頻譜圖[12](如圖6)及AD9262 手冊(cè)數(shù)據(jù)(見(jiàn)表1)、實(shí)驗(yàn)數(shù)據(jù)(見(jiàn)表2)。
圖6 2.4 MHz 輸入信號(hào)頻譜圖
表1 AD9262 手冊(cè)中各頻率點(diǎn)對(duì)應(yīng)的動(dòng)態(tài)參數(shù)
表2 實(shí)驗(yàn)中各頻率點(diǎn)對(duì)應(yīng)的動(dòng)態(tài)參數(shù)
對(duì)比兩表中實(shí)驗(yàn)數(shù)據(jù),可以看出實(shí)驗(yàn)所得數(shù)據(jù)與手冊(cè)給出數(shù)據(jù)基本一致,說(shuō)明該系統(tǒng)設(shè)計(jì)使ADC能夠達(dá)到較高的精度,從而也驗(yàn)證了該高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)的合理性。
本文介紹了高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)思路與實(shí)現(xiàn)方法,重點(diǎn)討論了FPGA 對(duì)采集模塊和存儲(chǔ)模塊的控制,并通過(guò)FFT 算法對(duì)ADC 動(dòng)態(tài)參數(shù)進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果表明該設(shè)計(jì)數(shù)據(jù)傳輸速率及精度均達(dá)到了設(shè)計(jì)要求,驗(yàn)證了設(shè)計(jì)的合理性。
[1]吳濤,袁嗣杰,侯孝民.基于AD9430 的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].裝備指揮技術(shù)學(xué)院測(cè)量控制系測(cè)控中心,2004(23):1-4.
[2]Rob Reeder.The front end Design of ADC Coupling Transformer front Meter,AN-935 Application Notes[Z].Analog Devices Inc,2007.1-3.
[3]Analog Devices Inc.AD9262 16-Bit Dual Continuous Time Sigma-Delt-a A/D Convert Data Sheet[EB/OL].http://www.analg.com/static/imported-files/data sheets/AD9262.pdf.2010:1-25.
[4]邵磊,倪明.基于FPGA 的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)電子科技集團(tuán)公司第三十二研究所,2011,37(19):1-3.
[5]Meyer-Baese,著.數(shù)字信號(hào)處理的FPGA 實(shí)現(xiàn)[M].劉凌,胡永生,譯.北京:清華大學(xué)出版社,2003:193-201.
[6]龍騰.超高速數(shù)據(jù)采集系統(tǒng)的原理與應(yīng)用[J].北京理工大學(xué)學(xué)報(bào),1995,15(2):1-3.
[7]夏宇聞.Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2009:140-175,181-188.
[8]王金明.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].4 版.北京:北京電子工業(yè)版社,2011:30-44,102-110.
[9]駱麗娜,楊萬(wàn)全.高速ADC 的性能參數(shù)與測(cè)試方法[J].四川大學(xué):電子信息學(xué)院,2007,5(1):1-3.
[10]Dusan A.Analysis of the Residual Spectrum in ADC Dynamic Testing[J].IEEE Trans Instrum.Meas.,2009,58(3):506-511.
[11]蔣和倫.高速模/數(shù)轉(zhuǎn)換器常規(guī)參數(shù)的動(dòng)態(tài)測(cè)試[J].微電子學(xué),2003,33(3):184-189.
[12]陳懷琛.數(shù)字信號(hào)處理教程-MATLAB 釋義與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2004:44-87.