基于FPGA的可編程電壓源系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
1 系統(tǒng)設(shè)計(jì)
采用Altera公司Cyclone系列EP1C6Q240C8為控制芯片。通過(guò)Altera的IP工具M(jìn)egaWizard管理器定制LPM_ROM宏功能模塊,用.mif格式文件存放產(chǎn)生電壓的數(shù)據(jù);利用硬件描述語(yǔ)言(HDL)設(shè)計(jì)分頻電路、地址發(fā)生器或數(shù)據(jù)計(jì)數(shù)器等控制電路。地址發(fā)生器對(duì)ROM進(jìn)行數(shù)據(jù)讀取。ROM中各單元的數(shù)據(jù)經(jīng)串/并轉(zhuǎn)換電路,在DAC控制電路的作用下,串行數(shù)據(jù)從高位到低位讀入數(shù)/模轉(zhuǎn)換器中,數(shù)/模轉(zhuǎn)換器出來(lái)的模擬電壓信號(hào)經(jīng)過(guò)運(yùn)算放大器放大后,得到所需的模擬電壓。系統(tǒng)框圖如圖1所示。
根據(jù)項(xiàng)目需求,定制10 b×32 Word的LPM_ROM??梢援a(chǎn)生32路1 024階可調(diào)的電壓。此外,可以根據(jù)需要定制不同的位寬,不同單元數(shù)的LPM_ROM宏功能模塊,可以產(chǎn)生符合精度要求的多通道電壓。
2 控制電路設(shè)計(jì)
2.1 分頻電路模塊
開發(fā)板提供的系統(tǒng)時(shí)鐘為50 MHz,系統(tǒng)的時(shí)鐘信號(hào)通過(guò)分頻模塊進(jìn)行分頻,將分頻后的時(shí)鐘信號(hào)分別提供給控制電路模塊、地址發(fā)生器和并/串轉(zhuǎn)換電路作為時(shí)鐘控制信號(hào)。該模塊部分VHDL源程序如下:
程序中,duty為控制占空比的參數(shù);count為控制分頻的參數(shù)。通過(guò)改變duty和count兩個(gè)參數(shù),得到占空比及分頻數(shù)可調(diào)的時(shí)鐘信號(hào),極為方便。
2.2 其他模塊的實(shí)現(xiàn)
其他控制模塊包括地址發(fā)生器、DAC控制電路、并/串轉(zhuǎn)換電路。存儲(chǔ)數(shù)據(jù)中只讀存儲(chǔ)器ROM是通過(guò)QuartusII軟件中Mega Wizard Plug-In Manager命令定制元件的。地址發(fā)生器產(chǎn)生地址信號(hào)addr_tom和讀使能信號(hào)clk_rom,對(duì)ROM中的數(shù)據(jù)進(jìn)行讀取。讀取到的數(shù)據(jù)data為并行數(shù)據(jù),由于采用的是串行數(shù)據(jù)輸入的數(shù)/摸轉(zhuǎn)換器,所以要進(jìn)行并/串轉(zhuǎn)換。data并行數(shù)據(jù)在load使能信號(hào)的作用下,賦植給寄存器data_q,經(jīng)并/串轉(zhuǎn)換電路對(duì)data_q進(jìn)行從高位到低位的并/串轉(zhuǎn)換。在DAC控制電路產(chǎn)生讀數(shù)據(jù)信號(hào)clk_dac和片選信號(hào)cs_dac的作用下,轉(zhuǎn)換電路的輸出信號(hào)從高位到低位串行讀入數(shù)/模轉(zhuǎn)換器DAC中。完整程序如下:
2.3 程序仿真
在QuartusⅡ軟件中,用原理圖的方式把上面兩個(gè)程序例化成工程。圖2為例化后的結(jié)果。
ROM中的數(shù)據(jù)采用.mif格式進(jìn)行存儲(chǔ)。ROM中存儲(chǔ)的數(shù)據(jù)如圖3所示。
對(duì)工程進(jìn)行全編譯,用啟動(dòng)仿真器對(duì)工程進(jìn)行功能仿真。仿真結(jié)果如圖4所示。從仿真結(jié)果可以看出,din_dac輸出的數(shù)據(jù)與ROM內(nèi)寫入的數(shù)據(jù)完全一致。clk_dac和cs_dac:也完全滿足數(shù)/模轉(zhuǎn)換器所需的控制信號(hào)。
3 數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器的設(shè)計(jì)
采用TI公司的TLC5615和OPA551分別作為數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器。TLC5615是10位電壓輸出型數(shù)/模轉(zhuǎn)換器,其轉(zhuǎn)換輸出如式(1)所示。
從式(1)可看出,數(shù)/模轉(zhuǎn)換輸出由參考電壓VREFIN和輸入數(shù)據(jù)Code決定,輸出精度達(dá)到1/1 024,因此可以達(dá)到很高的調(diào)壓精度。
兩款元器件均采用DIP封裝形式,可以即插即用,加上價(jià)格不高,特別適合用來(lái)實(shí)驗(yàn)。數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器的硬件連接原理圖如圖5所示。OPA采用同相輸入,放大后的輸出電壓值為:
通過(guò)改變R3和R2的值,在輸入不變的條件下便可改變輸出電壓。
4 實(shí)驗(yàn)結(jié)果
取Vref=2.16 V,R1=2.5 kΩ,R2=3 kΩ,R3=15 kΩ,V+=30 V。V_=-30 V,ROM中的數(shù)據(jù)如圖6所示。
實(shí)驗(yàn)只用到ROM的30個(gè)單元數(shù)據(jù),即只產(chǎn)生30路可編程電壓。把.sof文件加載到FPGA中。實(shí)驗(yàn)結(jié)果在示波器顯示如圖7所示。
圖7中上邊曲線為放大后的電壓,下面曲線為數(shù)/模轉(zhuǎn)換輸出的電壓。根據(jù)式(1)算出數(shù)/模轉(zhuǎn)換器的輸出電壓最大值Vmax=4.315 V.測(cè)得值為4.32 V。根據(jù)式(2)算出Vmax=25.89 V,測(cè)得值為26.0 V。圖7中各階輸出電壓均與圖6中數(shù)據(jù)相對(duì)應(yīng)。實(shí)際測(cè)試結(jié)果與理論計(jì)算相吻合。實(shí)驗(yàn)表明,系統(tǒng)的精度高,穩(wěn)定性強(qiáng)。
5 結(jié) 語(yǔ)
利用FPGA可以方便定制IP核,可重復(fù)編程,可在線調(diào)試的諸多優(yōu)點(diǎn),在改變ROM的地址單元數(shù)及各單元數(shù)據(jù)以及改變分頻模塊的參數(shù),極其方便地產(chǎn)生所需的可編程多路電壓。通過(guò)實(shí)驗(yàn)表明,系統(tǒng)產(chǎn)生的電壓穩(wěn)定,精度高,可調(diào)范圍大(0-26V),適合為電子元件或者對(duì)多像素的元件提電源。此外,本文給出了完整的程序代碼、原理圖參數(shù),具有一定的工程參考價(jià)值。
評(píng)論