程耀林
(中南民族大學(xué)電子信息工程學(xué)院,武漢430074)
對于高清圖像、高清視頻應(yīng)用設(shè)備以及對測量帶寬和精度有一定要求的測量儀器而言,需要選擇有一定精度的高速ADC芯片來完成模擬信號的采樣.如果同時希望簡化PCB的設(shè)計,則使用TI公司的高速ADC芯片ADS5232是一個不錯的選擇.該芯片每個通道的最高采樣速率達到65MS/s,精度為12bit,將2個采樣通道集成在一個芯片內(nèi),而且提供內(nèi)部參考電壓[1],可以省去外部參考電壓產(chǎn)生電路,從而大大簡化了設(shè)計.高速數(shù)據(jù)采集需要高速控制,高速緩沖.CPU的串行處理機制決定了它不能實現(xiàn)高速控制,所以一般使用FPGA來控制,但更高的采樣速度FPGA也不能控制,只能使用專用芯片控制.而ADS5232的采樣速度決定了它使用FPGA來控制非常合適.
ADS5232的功能、信號和參數(shù)等詳細說明可參看其數(shù)據(jù)手冊[1],例如,其模擬電源和數(shù)字電源供電電壓都是3.3V.差分模擬輸入的波動范圍為1.5~2.0Vpp,DNL= ± 0.3LSB,TQFP-64 封裝.參考電壓可選內(nèi)部,也可選外部,使用內(nèi)部參考電壓時功耗371mW,使用外部參考電壓時功耗335mW,對于2路高速采樣的ADC芯片有此功耗并不高.
基于該芯片的高速采集電路系統(tǒng)設(shè)計如圖1所示.芯片的2路模擬信號輸入要求是差分信號,ADC前端模塊的功能是把外部的單端模擬信號轉(zhuǎn)化為符合芯片要求的差分信號,包括電壓的要求.ADS5232完成模數(shù)轉(zhuǎn)換,F(xiàn)PGA主要實現(xiàn)對ADS5232的控制和輸出數(shù)據(jù)的緩沖,同時實現(xiàn)對外部應(yīng)用電路的接口.ADS5232和FPGA都使用3.3V電源,可直接相連,不需要電平轉(zhuǎn)換電路.數(shù)據(jù)緩沖區(qū)可以使用FPGA片內(nèi)雙口RAM來配置一個FIFO實現(xiàn),如果要求緩沖區(qū)比較大,可以連接片外RAM來實現(xiàn),但增加了設(shè)計的難度.片外RAM有2種可以選擇,一種是SRAM,容量比較小,但接口比較簡單,易于實現(xiàn).另外一種是SDRAM,容量大,但接口比較復(fù)雜,實現(xiàn)難度大.使用片內(nèi)的RAM最方便,適合于對緩沖區(qū)要求不大的場合.外部應(yīng)用電路是指將模數(shù)轉(zhuǎn)換后的數(shù)據(jù)作為輸入的應(yīng)用電路,例如,示波器、圖像處理等模塊.本設(shè)計是一種實現(xiàn)高速采樣并提供數(shù)據(jù)緩沖和接口的應(yīng)用平臺,可以和各種高速數(shù)據(jù)處理電路(即外部應(yīng)用電路)進行可編程的連接.本文的設(shè)計只涉及ADC前端模塊、ADS5232模塊和FPGA模塊.
圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 System structure block diagram
在此系統(tǒng)設(shè)計中還要注意如下3個問題.
(1)同步設(shè)計.整個系統(tǒng)要采用同步設(shè)計,包括外部應(yīng)用電路在內(nèi),即所有模塊要使用一個時鐘源產(chǎn)生的時鐘.同步設(shè)計可以提高系統(tǒng)的穩(wěn)定性,避免數(shù)據(jù)丟失等錯誤[2].
(2)PCB設(shè)計.PCB設(shè)計要符合高速電路的設(shè)計要求.為了保證高速電路信號的質(zhì)量,要求使用4層版.高速PCB的設(shè)計要考慮的因素很多,其目的是盡量減少高速信號的干擾和寄生電容、電感的影響,例如時鐘線要盡量短,且兩邊都布地線,去耦電容要靠近電源引腳,且使用小封裝0603,高速信號線要避免走比較長的平行線等等[2].
(3)采集數(shù)據(jù)的處理.ADS5232是連續(xù)采樣,但FPGA內(nèi)部的緩沖區(qū)大小有限,而應(yīng)用電路的處理速度和具體應(yīng)用有關(guān).如果能夠?qū)崿F(xiàn)連續(xù)、實時處理,可以不需要緩沖區(qū),直接從ADS5232取數(shù).如果處理速度有限,不能連續(xù)、實時處理,則只能以一個緩沖區(qū)的數(shù)據(jù)大小(即存儲深度)為單位進行處理,例如示波器的波形顯示,一幅波形顯示的剛好是緩沖區(qū)的數(shù)據(jù),所以,緩沖區(qū)數(shù)據(jù)的刷新頻率決定了波形刷新的頻率.對緩沖區(qū)的安排需要考慮到ADS5232可以實現(xiàn)2路模擬信號的同步采樣.
ADC前端電路可以使用放大器或者變壓器來實現(xiàn),二者都可以把單端信號轉(zhuǎn)化為差分信號,并符合ADS5232對模擬輸入的要求(ADS5232只接受差分模擬信號的輸入).使用變壓器的設(shè)計如圖2所示,變壓器的匝數(shù)比N可根據(jù)實際情況進行配置,使輸出電壓符合INA+和INA-的電壓要求.使用放大器THS4503也可以實現(xiàn)ADC前端電路,其設(shè)計如圖3所示,其中,THS4503的電壓可以使用+5V和-5V.根據(jù)實際情況選擇使用變壓器或者放大器來實現(xiàn) ADC 前端電路[1,3,4].一般而言,變壓器不會引入噪音,而放大器會產(chǎn)生噪音.但如果要保留直流成分,則不能使用變壓器,只能使用放大器了.
圖2 使用變壓器構(gòu)成的ADC前端電路Fig.2 ADC front-end circuit constructed by transformer
圖3 使用放大器構(gòu)成的ADC前端電路Fig.3 ADC front-end circuit constructed by amplifier
ADS5232的輸入和前端電路相連,輸出和FPGA相連,如圖4所示.2個通道同步采樣,圖4只給出了一個通道的情況.
(1)FPGA實現(xiàn)的功能.虛線框代表FPGA,使用內(nèi)部的雙口RAM作為數(shù)據(jù)緩沖區(qū),可供片外應(yīng)用電路讀取.控制和接口模塊完成ADS5232的接口控制,產(chǎn)生雙口 RAM的寫地址 WADDR,寫使能WEN,對ADS5232的輸出進行采樣并按地址寫入雙口RAM中.片內(nèi)鎖相環(huán)對外部晶振輸入的時鐘進行倍頻和相位調(diào)整,產(chǎn)生滿足ADS5232需要的采樣時鐘CLK、雙口RAM的寫時鐘CLK和讀時鐘CLK0以及其他模塊需要的時鐘,讀時鐘應(yīng)該等于或者大于CLK.晶振的輸出時鐘是單端信號,考慮到鎖相環(huán)需要輸出高頻時鐘,所以要選用抖動小的晶振.數(shù)據(jù)處理及接口模塊完成對采樣數(shù)據(jù)的處理以及對外部應(yīng)用電路的接口控制,例如,產(chǎn)生雙口RAM的讀地址,讀使能.此外,還可以在FPGA內(nèi)部單獨新建其他模塊實現(xiàn)應(yīng)用電路所需的附加功能.FPGA可選擇 ALTERA公司 Cyclone II系列的EP2C8Q208C8,它有182個 I/O引腳,8256個 LE,20.25KB 的內(nèi)部 RAM,2 個鎖相環(huán) PLL[5].考慮到 2個通道同時采樣,所以一個雙口RAM的大小可以設(shè)置為5K×12bit比較合適.
(2)ADS5232實現(xiàn)的功能.將差分模擬信號轉(zhuǎn)化為數(shù)字信號D[11:0],同時產(chǎn)生數(shù)據(jù)有效指示信號DV、溢出指示OVR和輸出使能OE.DV=0時,D[11:0]有效.DV=1 時,D[11:0]無效,表示數(shù)據(jù)更新期.根據(jù)數(shù)據(jù)手冊提供的時序關(guān)系,應(yīng)使用時鐘CLK的上升沿對D[11:0]采樣,采樣的數(shù)據(jù)存入雙口RAM中.其VHDL代碼如下:
(3)控制信號的功能.除了上述DV、OVR、OE之外,其他信號的作用如下.
SEL:串口模式選擇,SEL=1時,串口模式有效.串口模式是通過串口對內(nèi)部寄存器進行設(shè)置,從而控制ADC的工作方式,需要設(shè)置串口通信.如果系統(tǒng)有CPU,則使用這種模式比較方便,但是在剛上電后需要產(chǎn)生一個SEL為0的低脈沖,以便對片內(nèi)的寄存器復(fù)位,否則寄存器的值就不確定,復(fù)位是使之等于缺省值.當(dāng)SEL=0時,禁止串口模式,此時串口關(guān)閉,串口引腳成為設(shè)置引腳,分別是OE、STPD、MSBI,這種模式屬于硬件配置模式.圖4所示的就是這種模式.非串口模式設(shè)置非常方便,是經(jīng)常采用的一種模式.
STPD:省電模式控制,為1時省電工作模式,為0時正常工作模式.
圖4 FPGA實現(xiàn)的緩沖、控制和接口Fig.4 Buffer,control and interface realized by FPGA
MSBI:輸出數(shù)據(jù)D[11:0]的編碼方式控制.為0時是SOB編碼,為1時是BTC編碼.這2種編碼只是符號位的規(guī)定不同.對BTC編碼,符號位為0表示正數(shù),為1表示負數(shù).SOB編碼剛好相反.INT:參考電壓選擇控制,為0是使用外部參考電壓,為1時使用內(nèi)部參考電壓.使用內(nèi)部產(chǎn)生的參考電壓時省去了外部參考電壓設(shè)計,可以減小PCB的面積,圖4就是使用內(nèi)部參考電壓的一種設(shè)計,可參考數(shù)據(jù)手冊中的 Figure 21[1].
WADDR:雙口RAM的寫地址,由控制模塊產(chǎn)生,初值設(shè)置為0,每當(dāng)時鐘CLK的下降沿到來時自動加1.當(dāng)加到最大地址時自動回到0.需要注意的是,雙口RAM的寫地址和讀地址不能同時相等,否則就會出現(xiàn)錯誤.
WEN:寫使能,其為1時可以向雙口RAM寫入數(shù)據(jù),其為0時不能寫入.根據(jù)緩沖區(qū)是否寫滿、數(shù)據(jù)是否讀完和采集的觸發(fā)條件是否滿足等來定義WEN的邏輯值.
使用FPGA來實現(xiàn)高速ADC的控制以及與應(yīng)用電路的接口是一種理想而實用的方案,本設(shè)計中使用的高速ADC芯片是ADS5232,其采樣速率最高為65MS/s,精度12bit,雙通道同步采樣,差分模擬輸入.FPGA不僅能實現(xiàn)高速控制、高速緩沖和高速接口,還可以擴展其他功能,例如,將2個采樣通道對同一個模擬信號進行交叉采樣,采樣時鐘相位差180°時,可以將采樣速率提高到 2倍,即到達130MS/s.相位差為180°的時鐘可以使用FPGA內(nèi)部的鎖相環(huán)實現(xiàn).ADC前端電路根據(jù)具體情況可以適當(dāng)修改,例如增加一定的信號調(diào)理電路,修改變壓器的匝數(shù)比N等.本設(shè)計提供了一種高速數(shù)據(jù)采集的參考電路和設(shè)計方法,具有一定范圍的實用性和普遍性,可以應(yīng)用于高清數(shù)字視頻采集、醫(yī)學(xué)圖像采集、測量儀表和通信基站等領(lǐng)域.
[1]Texas Instruments Inc.ADS5232 data sheet[EB/OL].(2006-03)[2010-05].http://www.ti.com/.
[2]程耀林,李享元,何湘竹.用于虛擬儀器的USB2.0接口高速數(shù)據(jù)采集卡的設(shè)計[J].計算機測量與控制,2011,19(5):1220-1222,1256.
[3]Texas Instruments Inc.ADS5232 EVM user’s guide[EB/OL].(2007-06)[2012-05].http://www.ti.com/.
[4]Texas Instruments Inc.THS4503 data sheet[EB/OL].(2002-03)[2012-10].http://www.ti.com/.
[5]Altera Corporation.Cyclone II Device Handbook,Volume1[EB/OL].(2005-03)[2010-07].http://www.altera.com.cn/.