辛鳳艷 孫曉曄
1.河北省科學(xué)院應(yīng)用數(shù)學(xué)研究所,石家莊 050081;2.石家莊開(kāi)發(fā)區(qū)冀科雙實(shí)科技有限公司
基于FPGA的AD轉(zhuǎn)換控制器設(shè)計(jì)
辛鳳艷1孫曉曄2
1.河北省科學(xué)院應(yīng)用數(shù)學(xué)研究所,石家莊 050081;2.石家莊開(kāi)發(fā)區(qū)冀科雙實(shí)科技有限公司
采用FPGA 器件EP1C12實(shí)現(xiàn)了對(duì)A/D轉(zhuǎn)換芯片AD7822的實(shí)時(shí)采樣控制,并將采集的數(shù)據(jù)暫存到SRAM中以備后續(xù)處理。整個(gè)設(shè)計(jì)在QuartusⅡ環(huán)境下,采用Verilog HDL語(yǔ)言描述,給出了硬件電路連接、硬件內(nèi)部邏輯設(shè)計(jì)以及測(cè)試波形,可用于模擬信號(hào)的高速實(shí)時(shí)采集。
FPGA;Verilog HDL;A/D 轉(zhuǎn)換;采樣控制
FPGA;Verilog HDL;A/D convertion;Sampling control
隨著現(xiàn)代電子技術(shù)的應(yīng)用和發(fā)展,越來(lái)越多的電子應(yīng)用由模擬系統(tǒng)向數(shù)字系統(tǒng)轉(zhuǎn)變,而A/D轉(zhuǎn)換器作為模擬系統(tǒng)和數(shù)字系統(tǒng)的界面,承擔(dān)著將模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)的任務(wù),在一些多路信號(hào)采集系統(tǒng)和實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)中,A/D轉(zhuǎn)換的多路擴(kuò)展、高精度、低成本、實(shí)時(shí)性顯得越來(lái)越重要。在一般的信號(hào)采集系統(tǒng)中,往往由單片機(jī)對(duì)A/D轉(zhuǎn)換器進(jìn)行控制,增加了CPU的負(fù)擔(dān),降低了CPU的工作效率,大大影響信號(hào)采集的實(shí)時(shí)性。
FPGA的高集成度和高速的特性,使之相對(duì)于單片機(jī),更適合于對(duì)A/D轉(zhuǎn)換的高速控制,而且還可以把采樣數(shù)據(jù)實(shí)時(shí)存儲(chǔ)?;诖?,設(shè)計(jì)了一種基于FPGA的A/D轉(zhuǎn)換控制器,利用 FPGA 直接控制AD7822芯片對(duì)模擬信號(hào)進(jìn)行采樣,采集速度可達(dá)1MB/s,然后將轉(zhuǎn)換好的8位二進(jìn)制數(shù)據(jù)迅速存儲(chǔ)到SRAM中,從而提高了采樣的實(shí)時(shí)性、減輕了主CPU的運(yùn)行負(fù)擔(dān)。
AD7822是Analog Devices公司推出的一種8-bit A/D轉(zhuǎn)換器。單極性輸入,采樣分辨率8Bit,并行輸出;內(nèi)含取樣保持電路,以及可選擇使用內(nèi)部或外部參考電壓源,具有轉(zhuǎn)換后自動(dòng)Power-Down的模式,電流消耗可降低至5μA以下。轉(zhuǎn)換時(shí)間最大為420ns,SNR可達(dá)48dB,INL及DNL都在±0.75 LSB以墻??蓱?yīng)用在數(shù)據(jù)采樣、DSP系統(tǒng)及移動(dòng)通信等場(chǎng)合。
1.1 AD7822的引腳功能VIN1:模擬信號(hào)輸入端;Vref:參考電壓輸入輸出端,可使用片上參考電壓,也可外接參考電壓;
CS:片選端,低電平有效;
DB0-DB7:并行數(shù)據(jù)輸出端,一般處于高阻態(tài),當(dāng)RD和CS變低有效時(shí),數(shù)據(jù)才被放到數(shù)據(jù)總線上;
CONVST:邏輯輸入信號(hào),在該信號(hào)的下降沿(至少保持20ns低電平)啟動(dòng)8-bit模數(shù)轉(zhuǎn)換,進(jìn)入hold模式,轉(zhuǎn)換開(kāi)始后120ns再次進(jìn)入track模式。轉(zhuǎn)換結(jié)束時(shí)檢測(cè)CONVST信號(hào)的狀態(tài),若為低,則芯片將power down。
EOC:邏輯輸出。該信號(hào)表明轉(zhuǎn)換什么時(shí)候完成,可在轉(zhuǎn)換完成時(shí)用于微控制器的中斷信號(hào)或?qū)?shù)據(jù)鎖存到門陣列。
PD:邏輯輸入,將該信號(hào)拉低可使AD7822處于Power-Down模式,當(dāng)PD變成高電平時(shí)ADC上電。
RD:邏輯輸入信號(hào),該信號(hào)用于使輸出緩沖器退出高阻狀態(tài),并驅(qū)動(dòng)數(shù)據(jù)到數(shù)據(jù)總線上。只有RD和CS都為邏輯低時(shí)數(shù)據(jù)總線方可使用。
VDD:電源輸入端,3V+10%或5V+10%;AGND:模擬地;
DGND:數(shù)字地。
1.2 AD7822的操作模式及轉(zhuǎn)換時(shí)序
AD7822有兩種可能的操作模式:高速采樣模式和自動(dòng)Power-Down模式。在高速采樣模式下,兩次轉(zhuǎn)換之間AD7822不會(huì)power-down,因此可以達(dá)到較高的吞吐率;而在自動(dòng)Power-Down模式下,轉(zhuǎn)換結(jié)束后AD7822會(huì)自動(dòng)power down,這對(duì)于功耗敏感的應(yīng)用比較有利。設(shè)計(jì)中采用高速采樣模式,基本時(shí)序如圖1所示。
圖1 高速采樣模式的時(shí)序
1.3 AD7822與FPGA的硬件電路圖
圖2 AD7822與FPGA的電路連接圖
如圖2所示,在本系統(tǒng)中,AD7822的VDD采用3V電源供電,這樣數(shù)據(jù)總線可以直接與FPGA(FPGA引腳的邏輯電平為3V)連接,無(wú)需電平轉(zhuǎn)換。參考電壓源Vref為+2.5V,由AD780產(chǎn)生。偏置電壓輸入引腳Vmid懸空,即Vmid 缺省為1V。這種情況下,AD7822可以處理的模擬信號(hào)范圍為0~2V,即模擬輸入信號(hào)經(jīng)運(yùn)放處理,轉(zhuǎn)換到0~2V范圍內(nèi)之后,再輸入AD7822的VIN1引腳。本文利用Tektronix公司的AWG5012B任意波形發(fā)生器產(chǎn)生0~2V的波形信號(hào)作為信號(hào)源。為避免AD7822因外界干擾進(jìn)入非法狀態(tài)或Power down,將AD7822的控制引腳CONVST和PD上拉。
本設(shè)計(jì)采用FPGA芯片EP1C12來(lái)對(duì)AD7822進(jìn)行采樣控制,并將轉(zhuǎn)換得到的數(shù)據(jù)存儲(chǔ)到SRAM中去。用FPGA設(shè)計(jì)的采樣控制器AD_CONTROLLER的接口電路如圖3所示。
圖3 采樣控制器AD_CONTROLLER接口電路圖
AD_CONTROLLER的輸入時(shí)鐘clk取50 MHz,在該時(shí)鐘的作用下,利用有限狀態(tài)機(jī),控制nconvst、adc_cs、adc_rd信號(hào)的狀態(tài),從而完成A/D轉(zhuǎn)換及轉(zhuǎn)換結(jié)果的存儲(chǔ)。start為AD_ CONTROLLER的啟動(dòng)信號(hào),外接按鍵,當(dāng)按鍵PB0按下(start為0)時(shí),AD_CONTROLLER開(kāi)始工作。indata[7.0]為AD7822的轉(zhuǎn)換結(jié)果,當(dāng)轉(zhuǎn)換完成時(shí),eoc由高電平變?yōu)榈碗娖讲⒊掷m(xù)70~110ns,因此,狀態(tài)機(jī)的控制時(shí)鐘必須小于70ns,否則可能檢測(cè)不到eoc信號(hào),這里取20ns。要連續(xù)采集數(shù)據(jù)就要不斷地用時(shí)鐘信號(hào)觸發(fā)AD7822的CONVST腳,而FPGA根據(jù)AD7822送來(lái)的EOC信號(hào)不斷地讀取并將結(jié)果送往SRAM存儲(chǔ)。A/D轉(zhuǎn)換過(guò)程的狀態(tài)遷移圖如下:
圖4 狀態(tài)遷移圖
IDLE狀態(tài):空閑狀態(tài),如果收到來(lái)自外部啟動(dòng)A/D轉(zhuǎn)換的信號(hào),則進(jìn)入START狀態(tài)。
START狀態(tài):控制A/D開(kāi)始轉(zhuǎn)換,將nconvst置低電平,nconvst為低電平至少保持20ns,才能啟動(dòng)A/D轉(zhuǎn)換。
NCONVST狀態(tài):A/D轉(zhuǎn)換保持階段,nconvst為低電平1個(gè)時(shí)鐘(20ns)之后恢復(fù)高電平。
READ狀態(tài): convert_end變?yōu)榈碗娖剑ū硎続/D轉(zhuǎn)換完成)后,將adc_cs和adc_rd控制信號(hào)拉低,讀取A/D轉(zhuǎn)換結(jié)果。
WAITEOC狀態(tài):等待convert_end變高,才將adc_cs和adc_rd拉高,以滿足adc_rd為低電平最少保持30ns的時(shí)序要求。
WRREADY狀態(tài):建立地址和數(shù)據(jù)信號(hào),準(zhǔn)備寫SRAM。
WR狀態(tài):產(chǎn)生片選和寫脈沖。
WAITFOR狀態(tài):用于延時(shí)。在該狀態(tài),用變量j記錄時(shí)鐘數(shù),與參數(shù)FMAX共同控制采樣頻率,保證1us采樣一次(參數(shù)FMAX取18,即延時(shí)18個(gè)時(shí)鐘,該值從調(diào)試過(guò)程中得到)。
注意:判斷A/D轉(zhuǎn)換是否完成取決于信號(hào)eoc的狀態(tài),但是在圖4中,都是通過(guò)信號(hào)convert_end來(lái)判斷的。這是由于直接用clk的上升沿對(duì)eoc判斷決定某些操作是否運(yùn)行時(shí),會(huì)因?yàn)閏lk和eoc兩個(gè)信號(hào)的跳變沿相隔太近而令狀態(tài)機(jī)不能正常工作,因此利用clk的下降沿建立convert_end信號(hào)與eoc同步,相位相差180°,然后用clk的上升沿和convert_end信號(hào)來(lái)判斷操作是否進(jìn)行。
本文利用Tektronix公司的AWG5012B任意波形發(fā)生器產(chǎn)生0~2V的波形信號(hào)作為信號(hào)源,通過(guò)BNC接口輸出直接與AD7822的模擬信號(hào)輸入引腳連接,通過(guò)Quartus II軟件集成的Signal Tap II 嵌入式邏輯分析儀軟件對(duì)該A/D轉(zhuǎn)換控制模塊進(jìn)行仿真,波形如圖5所示,輸入信號(hào)為50KHz的正弦波。
圖5 50KHz的正弦波波形采集仿真
通過(guò)波形可觀察到,該模塊的設(shè)計(jì)達(dá)到了預(yù)期目的,可以實(shí)現(xiàn)對(duì)模擬信號(hào)的1us實(shí)時(shí)采樣和模數(shù)轉(zhuǎn)換。
采用FPGA作為控制器,針對(duì)AD7822完成了模擬信號(hào)的實(shí)時(shí)采集與轉(zhuǎn)換處理,充分利用了FPGA高速高效的優(yōu)勢(shì)。經(jīng)仿真,驗(yàn)證該設(shè)計(jì)運(yùn)行正常,可以滿足信號(hào)1us實(shí)時(shí)采集的需求,并且可以很方便地?cái)U(kuò)展為更多路的數(shù)據(jù)采集,能根據(jù)不同的應(yīng)用進(jìn)行擴(kuò)展,大大增強(qiáng)了系統(tǒng)應(yīng)用的靈活性。
[1]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008
[2]戶國(guó)強(qiáng),房建東,郭春蘭.基于FPGA的A/D轉(zhuǎn)換采樣控制模塊的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(7):229~230
[3]黃容蘭,萬(wàn)德煥.基于FPGA 的A/D 轉(zhuǎn)換采集控制模塊設(shè)計(jì)[J].數(shù)據(jù)采集與處理,2009(10):237~240
[4]韋存剛,金星.基于FPGA的多路數(shù)據(jù)采集和控制模塊設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(6):231~232.
[5]AD7822 datasheet [EB/OL]. Analog Devices, Inc, 2001
[6]Cyclone Device Handbook [EB/OL]. Altera Corporation, 2008
[7]AD780 datasheet [EB/OL]. Analog Devices, Inc, 2004
A Design of the A/D Convertion Control Module Based on FPGA
Xin Fengyan1Sun Xiaoye21.Applied Mathematics Institute, HeBei Academy of Science, Shijiazhuang 050081; 2.Shijiazhuang Development Zone Jikeshuangshi Science & Technology Co, Ltd
FPGA device EP1C12 controls AD7822 to collect analog signal and convert into digital signal, then saves the data to SRAM. The whole design is under the Quartus Ⅱ platform, described in the Verilog HDL. The hardware circuit, internal logic design and waveforms are given. It can be used for high-speed real-time acquisition of analog signal.
TP30
A
10.3969/j.issn.1001-8972.2012.05.040