曹凱程,楊 闖,杜玉遠(yuǎn),王 驕
(東北大學(xué)信息科學(xué)與工程學(xué)院,沈陽110819)
CAO Kaicheng,YANGChuang,DU Yuyuan,WANGJiao*
(School of Materials and Metallurgy,Northeastern University,Shenyang 110819,China)
電源作為現(xiàn)代電力電子設(shè)備重要的動(dòng)力來源,其體積大小與質(zhì)量的優(yōu)劣直接影響電子設(shè)備的整體性能。隨著科學(xué)技術(shù)的飛速發(fā)展,許多系統(tǒng)芯片都實(shí)現(xiàn)了低功耗設(shè)計(jì),這在節(jié)約能源和提高運(yùn)行速度的同時(shí),對供電電源的電壓精度、輸出電流、紋波、沖擊、上電時(shí)序等性能也提出了更加嚴(yán)格的要求[1]。電源未來的發(fā)展方向是數(shù)字化、小型化、高頻化[2],未來的電源一定是為數(shù)不多的外圍器件與一個(gè)數(shù)字化智能化的集成電路組合而成[3]。因此,設(shè)計(jì)制作一款通用性強(qiáng),靈活度高,智能化,可擴(kuò)展的數(shù)字電源必定可以更好的適應(yīng)各種系統(tǒng)、芯片對電源的不同要求。
所謂的虛擬電源,是指利用可編程的邏輯單元實(shí)現(xiàn)可控的電壓輸出[4]。與普通的電源相比,虛擬電源不僅能夠提供電壓輸出,還能方便設(shè)定輸出電壓值;還能實(shí)時(shí)返回輸出的電壓值和電流值。本系統(tǒng)實(shí)現(xiàn)的虛擬電源,是以FPGA作為核心控制芯片設(shè)計(jì)的,其具有開放性、通用性、可靠性、簡易性等特點(diǎn)。
本虛擬電源系統(tǒng)包括PC端上位機(jī)程序、總控模塊、電壓輸出模塊、電壓采集模塊。上位機(jī)程序提供美觀的操作界面,不但可以簡單方便的設(shè)定電壓,而且可以實(shí)時(shí)顯示輸出的電壓、電流值。我們還能通過這個(gè)軟件平臺監(jiān)測系統(tǒng)運(yùn)行狀態(tài)??偪啬K采用具有強(qiáng)大的處理數(shù)據(jù)能力和良好的穩(wěn)定性的FPGA硬件平臺,可以通過UART[5]接受數(shù)據(jù)并進(jìn)行分析處理,將設(shè)定電壓傳給電壓輸出模塊;同時(shí)需將電壓采集模塊采集到的數(shù)值傳送到上位機(jī)程序。電壓輸出模塊的硬件主要由AD5662和TPS5450構(gòu)成,主控模塊通過控制 AD5662的輸出,進(jìn)而控制TPS5450的輸出,完成控制電壓輸出的功能。電壓采集模塊采用AD7699芯片完成對電壓的采集,采集電壓輸出模塊的電壓,用于電壓的反饋調(diào)節(jié),可以保證輸出電壓的正確性;采集精確電阻兩端的電壓,可以計(jì)算出輸出的電流,用于過流保護(hù)。其系統(tǒng)框圖如圖1所示。
用戶在上位機(jī)程序上設(shè)定理想電壓值,數(shù)據(jù)通過UART傳給總控模塊,總控模塊控制電壓輸出模塊輸出設(shè)定電壓,總控模塊通過電壓采集模塊判斷輸出電壓是否正確,并通過自調(diào)整程序保證輸出電壓的穩(wěn)定性。
圖1 系統(tǒng)框圖
本虛擬電源系統(tǒng)結(jié)構(gòu)包含硬件電路和軟件程序兩部分。硬件電路的設(shè)計(jì)與實(shí)現(xiàn)是本設(shè)計(jì)的關(guān)鍵所在,只有擁有良好的硬件,才能保證系統(tǒng)具有良好穩(wěn)定的性能。為了滿足系統(tǒng)設(shè)計(jì)的要求,從器件的選型到模擬電路的搭建都需要經(jīng)過縝密的思考。軟件程序的設(shè)計(jì)對系統(tǒng)的實(shí)現(xiàn)與優(yōu)化同樣起著至關(guān)重要的作用。硬件電路和軟件程序兩部分的完美結(jié)合保證了本虛擬電源系統(tǒng)的良好運(yùn)行。
本系統(tǒng)硬件部分主要包含總控電路模塊,電壓采集模塊,電壓輸出模塊等。
2.1.1 FPGA 總控模塊設(shè)計(jì)
圖2 EP2C8T144C8主要管腳圖
Altera公司的FPGA芯片采用基于SRAM的設(shè)計(jì)工藝,內(nèi)部結(jié)構(gòu)由基本邏輯單元(LE)組成。CycloneⅡ系列所包含的基本邏輯單元(LE)從4 608個(gè)到68 416個(gè)不等。除了這些基本的邏輯單元外,CycloneⅡ系列的FPGA還包含其他一些具有特殊功能的邏輯模塊,比如18 bit×18 bit的嵌入式乘法器、嵌入式存儲器塊(M4K)、鎖相環(huán)(PLL)等[6]。在FPGA芯片所有的引腳之中,有一些是有專門用途的,不能隨便用作其他用途,比如時(shí)鐘引腳、電源引腳等。而用戶可以自行配置的引腳數(shù)是芯片的總引腳數(shù)減去特殊功能引腳數(shù)后的值。如本設(shè)計(jì)中采用的EP2C8T144C8芯片,其總共有144個(gè)引腳[7]。EP2C8T144C8的主要管腳如圖2所示。
2.1.2 電壓采集模塊設(shè)計(jì)
實(shí)現(xiàn)電壓采集功能主要依靠AD7699芯片,AD7699是無失碼的真16 bit SAR ADC芯片,每秒能夠轉(zhuǎn)換500 000個(gè)樣本(500 ksample/s),兩次轉(zhuǎn)換之間器件關(guān)斷。當(dāng)采用外部基準(zhǔn)電壓源并以1 ksample/s速率工作時(shí),典型功耗為52μW。雖然AD7699很容易驅(qū)動(dòng),但驅(qū)動(dòng)器放大器所產(chǎn)生的噪聲必須盡可能低,以便保持AD7699的SNR和轉(zhuǎn)換噪聲性能。AD7699的典型噪聲為35μVrms(VREF=5 V),因此放大器引起的SNR性能降低為:
其中f-3 dB為AD7699的輸入帶寬(全帶寬為14.7 MHz,1/4帶寬為670 kHz),或者輸入濾波器(如有)GN的截止頻率。N為放大器的噪聲增益。VeN為運(yùn)算放大器的等效輸入噪聲電壓,單位為
對于多通道、多路復(fù)用應(yīng)用,在每個(gè)輸入或輸入對上,驅(qū)動(dòng)放大器和AD7699模擬輸入電路必須使電容陣列以16位水平(0.0015%)建立滿量程階躍。在放大器的數(shù)據(jù)手冊中,更常見的是規(guī)定0.10%至0.01%的建立時(shí)間。這可能與16位水平的建立時(shí)間顯著不同,因此選擇之前應(yīng)進(jìn)行驗(yàn)證[8]。
通過仔細(xì)調(diào)查研究,本設(shè)計(jì)的AD7699的驅(qū)動(dòng)放大器采用為ADA4841。ADA484能滿足便攜式設(shè)備對運(yùn)算放大器的要求,具有極低的失真,在頻率為100 kHz時(shí)的無雜散動(dòng)態(tài)范圍為111 dBc,能節(jié)省功耗并產(chǎn)生很低的熱量[9]。
AD7699芯片采集到的輸出電壓可以反饋回FPGA總控模塊,從而構(gòu)成一個(gè)反饋回路,提高輸出電壓的精確度。通過采集一個(gè)精密電阻的電壓[10],可以測算出輸出電流的大小,為測量輸出電流值提供了基礎(chǔ)。AD7699的電源VDD和VIO應(yīng)通過陶瓷電容去耦,其值通常為100 nF,靠近AD7699放置,并用短而寬的走線連接,以提供低阻抗路徑并減小電源線路上的毛刺噪聲影響[8]。利用AD7699設(shè)計(jì)的電壓采集模塊的原理圖如圖3所示。
2.1.3 電壓輸出模塊設(shè)計(jì)
電壓輸出模塊主要由AD5662芯片與TPS5450芯片構(gòu)成。AD5662芯片用于為TPS5450提供基準(zhǔn)電壓值,而TPS5450則主要用于輸出穩(wěn)定電壓,其具有的內(nèi)部反饋環(huán)路可用于補(bǔ)償[11]。要更改輸出的電壓值,只需FPGA更改寫入到AD5662的16位二進(jìn)制值。這樣,就能方便的定制輸出電壓。為了保障輸出電壓的穩(wěn)定想,F(xiàn)PGA通過比較電壓采集模塊采集回來的電壓值與上位機(jī)設(shè)定的電壓值,決定是否增減控制AD5662輸出電壓的16位二進(jìn)制的值。本設(shè)計(jì)所使用的AD5662芯片的原理圖如圖4所示,TPS5450芯片的原理圖如圖5所示。
圖3 電壓采集模塊原理圖
圖4 AD5662原理圖
圖5 TPS5450原理圖
軟件程序設(shè)計(jì)的主要內(nèi)容是使用Verilog[12]語言對FPGA進(jìn)行編程,包括控制開關(guān)模塊、電壓采集模塊、電壓輸出模塊、電壓自調(diào)整模塊、UART模塊、數(shù)值轉(zhuǎn)換模塊等。
2.2.1 系統(tǒng)程序總體流程
當(dāng)整個(gè)系統(tǒng)上電時(shí),除電壓輸出模塊外,其他模塊開始工作,控制開關(guān)模塊開始計(jì)時(shí),當(dāng)計(jì)時(shí)到1S時(shí),控制開關(guān)模塊使能電壓輸出模塊的電壓輸出功能。若系統(tǒng)沒有接受到上位機(jī)[13]傳送的設(shè)定電壓,則電壓輸出模塊輸出默認(rèn)電壓3.7 V。當(dāng)系統(tǒng)通過UART接受到上位機(jī)發(fā)送的設(shè)定電壓后,改變輸出電壓的值,并將采集到的電壓、電流上傳給上位機(jī)。電壓自調(diào)整模塊保證輸出電壓穩(wěn)定??刂崎_關(guān)模塊能保證輸出電壓、電流異常時(shí)關(guān)閉電壓輸出。系統(tǒng)的總體流程如圖6所示。
圖6 系統(tǒng)總體流程圖
2.2.2 電壓采集模塊程序設(shè)計(jì)
AD7699電壓采集模塊的仿真圖如圖7所示。在開始下一輪采集前,cnv先輸出一個(gè)上升沿,然后cnv拉高,保持一段時(shí)間的轉(zhuǎn)換時(shí)間。在cnv為低電平時(shí),開始串行輸出配置數(shù)值,并串行輸入電壓值。由仿真圖可以看出,AD7699電壓采集模塊可以正常采集電壓值。
圖7 AD7699芯片電壓采集模塊仿真圖
2.2.3 電壓輸出模塊程序設(shè)計(jì)
AD5662芯片控制時(shí)序的仿真圖,如圖8所示。
圖8 AD5662芯片控制時(shí)序仿真圖
在新一輪的轉(zhuǎn)換開始前,先將sync拉高,然后sclk開始輸出24個(gè)串行時(shí)鐘,din在每個(gè)sclk下降沿輸出串行數(shù)據(jù),前8個(gè)時(shí)鐘輸出0,后16個(gè)時(shí)鐘輸出16位數(shù)字電壓值給AD5662。
2.2.4 開關(guān)控制模塊程序設(shè)計(jì)
開關(guān)控制模塊主要用于控制電壓輸出模塊,當(dāng)檢測到輸出的電壓、電流發(fā)生異常時(shí),開關(guān)控制模塊能及時(shí)關(guān)閉電壓輸出模塊。為了防止上電后,電壓輸出模塊輸出電壓的不確定性,在系統(tǒng)上電后,開關(guān)控制模塊計(jì)時(shí)1 s后,才打開電壓輸出模塊的使能。在每個(gè)clk的上升沿,開關(guān)控制模塊都檢測一下AD7699電壓采集模塊采集到的5個(gè)通道的電壓值,判斷5個(gè)電壓值是否在正常范圍內(nèi)。若有一個(gè)電壓值超出正常范圍,則vpen輸出為0,關(guān)閉電壓輸出模塊的輸出。
2.2.5 數(shù)值轉(zhuǎn)換模塊程序設(shè)計(jì)
數(shù)值轉(zhuǎn)換模塊的仿真圖如圖9所示。
圖9 數(shù)值轉(zhuǎn)換模塊仿真圖
在start_clk端接收到一個(gè)上升沿之前,數(shù)值轉(zhuǎn)換模塊處于空閑狀態(tài)。start_clk端接收到上升沿后,開始進(jìn)行轉(zhuǎn)換。若AD7699的參考電壓為5 V,則轉(zhuǎn)換公式為:
當(dāng)vol=0x7FFF時(shí),vol_mv理論值應(yīng)為2500。從4.9的仿真圖中可以看出,vol端輸入為0x7FFF,vol_mv輸出為2459??梢则?yàn)證數(shù)值轉(zhuǎn)換模塊工作正常。
2.2.6 UART 模塊程序設(shè)計(jì)
UART模塊包括UART發(fā)送模塊與UART接收模塊。為了保證接收與傳送數(shù)據(jù)的完整性,在有效數(shù)據(jù)前添加了幀頭與幀尾,幀長為定長。幀頭格式為0x00、0xFF,幀尾格式為0xFF、0x00。發(fā)送數(shù)據(jù)長度為6 byte。接收數(shù)據(jù)長度為3 byte。接收到數(shù)據(jù)幀幀頭之一0x00之前,UART接收模塊處于等待模式。當(dāng)UART接收模塊接收到0x00之后,等待接收0xFF,若下一個(gè)數(shù)不為0xFF,則返回等待模式。在接收完完整的數(shù)據(jù)幀幀頭之后,將有效數(shù)據(jù)存放在uart_rec_data中。UART發(fā)送模塊的仿真圖如圖10所示。
在start_clk接收到一個(gè)上升沿之前,UART發(fā)送模塊處于空閑狀態(tài),start_clk接收到上升沿之后,UART首先發(fā)送幀頭字節(jié)之一0x00,再發(fā)送另一個(gè)幀頭字節(jié)0xFF,然后發(fā)送6個(gè)有效字節(jié),最后發(fā)送幀尾字節(jié)0x00和0xFF。
圖10 UART發(fā)送模塊仿真圖
2.2.7 電壓自調(diào)整模塊程序設(shè)計(jì)
為了保持輸出電壓的穩(wěn)定性,需要時(shí)時(shí)判斷輸出電壓是否與設(shè)定電壓相等。若輸出電壓小于設(shè)定電壓,則應(yīng)該提高輸出電壓值;反之,則應(yīng)該降低輸出電壓值。設(shè)定電壓由上位機(jī)設(shè)定,輸出電壓則由AD7699電壓采集模塊采集。通過對比兩者的差值,進(jìn)行電壓的自調(diào)整,使輸出電壓保持動(dòng)態(tài)平衡。
電壓自調(diào)整模塊的控制流程如圖11所示。
圖11 電壓自調(diào)整模塊狀態(tài)轉(zhuǎn)換圖
圖11為電壓自調(diào)整模塊在SignalTapⅡ Logic Analyzer下的采集結(jié)果。
從圖12可以ad_ideal_val的值為0x7FBA,而vol_after_adjust的輸出為 0x7FBF,vol_after_adjust與ad_ideal_val的差值為10,在誤差允許范圍之內(nèi),輸出電壓穩(wěn)定,可以證明電壓自調(diào)整模塊工作正常。
圖12 電壓自調(diào)整模塊的采集結(jié)果
圖13 系統(tǒng)實(shí)物圖
在整體調(diào)試之前,先對各個(gè)模塊進(jìn)行單獨(dú)調(diào)試,各個(gè)模塊調(diào)試通過后,再將多個(gè)模塊整合成一個(gè)完整系統(tǒng)。系統(tǒng)整合完成后,要對系統(tǒng)進(jìn)行測試,圖13給出了系統(tǒng)的實(shí)物圖。
通過上位機(jī)更改設(shè)定電壓,將設(shè)定電壓設(shè)定為2.8 V,其設(shè)定界面與結(jié)果如圖14所示。
上位機(jī)記錄下虛擬電源系統(tǒng)傳送上來的電壓值,畫出一段時(shí)間內(nèi)的電壓曲線,當(dāng)設(shè)定電壓為3.7 V時(shí)的電壓曲線圖如圖15所示。
圖15 電壓曲線圖
測試結(jié)果如下:
(1)AD7699采集模塊可以正確采集電壓值;
(2)電壓輸出模塊可以正確輸出設(shè)定電壓;
(3)UART模塊可以與上位機(jī)實(shí)現(xiàn)正確通信;
(4)可以通過上位機(jī)設(shè)定輸出電壓,測試電壓從2.6 V到4.2 V,當(dāng)系統(tǒng)不帶負(fù)載時(shí),輸出電壓的紋波小于10 mV,當(dāng)輸出電流為1 A時(shí),輸出電壓紋波小于20 mV。
由上述結(jié)果可知,本系統(tǒng)的設(shè)計(jì)完成了預(yù)期的目標(biāo)。
綜上所述,本文設(shè)計(jì)的基于FPGA的虛擬電源,可以輸出穩(wěn)定的電壓,當(dāng)電壓從2.6 V到4.2 V且系統(tǒng)不帶負(fù)載時(shí),輸出電壓的紋波小于10 mV;當(dāng)輸出電流為1 A時(shí)紋波小于20 mV,可以通過UART與上位機(jī)實(shí)現(xiàn)通信,并利用上位機(jī)操作界面方便地設(shè)定輸出電壓值,且實(shí)時(shí)顯示電壓電流值,在硬件和軟件兩方面實(shí)現(xiàn)過流保護(hù)。所以,本文設(shè)計(jì)的系統(tǒng)可以很好地滿足各方面的應(yīng)用需求。
[1] 王溦.基于DSP+FPGA的高速數(shù)字信號處理平臺的電源設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007,15:34.
[2] 楊建偉.談開關(guān)電源的原理和發(fā)展趨勢[J].科技與企業(yè),2012,22:359.
[3] 王久和.電壓型PWM整流器的非線性控制[M].機(jī)械工業(yè)出版社,2008:34.
[4] 常學(xué)貴.用于數(shù)字電源的基于時(shí)間的模數(shù)轉(zhuǎn)換器的研究與設(shè)計(jì)[D].復(fù)旦大學(xué),2012,22:38.
[5] 王敬美,楊春玲.基于FPGA和UART的數(shù)據(jù)采集器設(shè)計(jì)[J].電子器件,2009,32(2):386 -389+393.
[6] CycloneⅡ Device Handbook,Volume 1[EB/OL].http://www.a(chǎn)ltera.com.cn.2014 -03 -01.
[7] Cyclone Ⅱ Device Data Sheet[EB/OL].http://www.a(chǎn)ltera.com.cn.2014 -03 -01.
[8] ANALOG DEVICESCorporation.AD7699 Data Sheet[EB/OL].http://www.a(chǎn)nalog.com.2014 -03 -01.
[9] ANALOG DEVICES Corporation.ADA4841 Data Sheet[EB/OL].http://www.a(chǎn)nalog.com.2014 -03 -01.
[10]方春恩,李偉,任曉,等.基于電阻分壓器的10 kV電子式電壓互感器的研制[J].西華大學(xué)學(xué)報(bào)(自然科學(xué)版),2010(2):148-151+155.
[11] TEXAS INSTRUMENTS.TPS5450 Description and Features[EB/OL].http://www.ti.com/product/tps5450#samples.2014 - 03-01.
[12]陳亞軍,陳隆道.基于Verilog HDL的信號發(fā)生器的設(shè)計(jì)[J].電子器件,2011,34(5):525 -528.
[13]段大衛(wèi).基于VB的DSP與上位機(jī)之間的串行通信的研究[J].信息通信,2014(1):15-16.