摘 要: 在電力系統(tǒng)諧波分析中,模數(shù)轉(zhuǎn)換(ADC)電路是影響系統(tǒng)檢測(cè)性能的主要環(huán)節(jié)之一?;?a class="innerlink" href="http://forexkbc.com/tags/NiosII" title="NiosII" target="_blank">NiosII的諧波分析系統(tǒng)具有邏輯控制能力強(qiáng),、信號(hào)處理實(shí)時(shí)性高、系統(tǒng)抗干擾能力強(qiáng)等特點(diǎn),。以Altera公司的DE2開發(fā)板為平臺(tái),,實(shí)現(xiàn)了采樣電路的硬件設(shè)計(jì);在Quartus II 中用Verilog HDL語言完成了與FPGA的接口設(shè)計(jì),,并最終實(shí)現(xiàn)VGA顯示,。
關(guān)鍵詞: ADC,;NiosII,;FPGA;諧波分析,;VGA
諧波是電力系統(tǒng)的一大公害,,消除諧波污染,把諧波含量控制在允許范圍內(nèi),,已經(jīng)成為主管部門和用電單位的共同奮斗目標(biāo),。而要消除電網(wǎng)中的諧波,首先就要對(duì)諧波進(jìn)行準(zhǔn)確測(cè)量,,諧波測(cè)量工作已經(jīng)越來越引起人們的關(guān)注[1],。A/D轉(zhuǎn)換電路是電力系統(tǒng)諧波測(cè)量中必不可少的一個(gè)重要環(huán)節(jié),是電力系統(tǒng)諧波測(cè)量系統(tǒng)前端的核心,。
FPGA因具有強(qiáng)大的邏輯控制能力,、高速的運(yùn)算能力、靈活的可編程性,,已經(jīng)越來越多的被用于各種數(shù)字系統(tǒng),。在FPGA內(nèi)部一般都內(nèi)嵌有可配置的高速RAM、PLL,、LVDS,、LVTTL以及硬件乘法累加器等DSP模塊。用FPGA模塊來實(shí)現(xiàn)數(shù)字信號(hào)處理可以很好地解決并行和順序性的矛盾,,直至速度問題,,而且其靈活的可配置性,使得FPGA構(gòu)成的DSP系統(tǒng)非常易于修改,,易于測(cè)試及硬件升級(jí),。在QuartusII開發(fā)軟件中用Verilog HDL硬件描述語言能夠很容易進(jìn)行邏輯電路設(shè)計(jì),并且在FPGA中可以實(shí)現(xiàn)用硬件進(jìn)行配置,,可有效降低軟件運(yùn)行時(shí)間和軟件設(shè)計(jì)復(fù)雜程度[2],。因此,F(xiàn)PGA非常適合在電力系統(tǒng)諧波測(cè)量系統(tǒng)中作為核心器件。
本文中采樣電路選用AD73360,,在QuartusII中用Verilog HDL硬件描述語言實(shí)現(xiàn)了AD73360及VGA與FPGA的接口設(shè)計(jì),,最后通過實(shí)驗(yàn)驗(yàn)證了設(shè)計(jì)的正確性。
1 系統(tǒng)總體方案
系統(tǒng)以Altera公司的DE2開發(fā)板為平臺(tái),,系統(tǒng)框圖如圖1所示,。信號(hào)采集單元核心器件為電壓、電流互感器,?;ジ衅鲗⒋郎y(cè)高壓、大電流信號(hào)線性轉(zhuǎn)換為合適的微弱電壓信號(hào),,該微弱電壓信號(hào)經(jīng)信號(hào)調(diào)理電路放大為合適的電壓信號(hào),,經(jīng)低通濾波電路濾除高于2 500 Hz的高頻噪聲,然后送到A/D轉(zhuǎn)換單元進(jìn)行A/D轉(zhuǎn)換,,轉(zhuǎn)換后形成數(shù)字信號(hào)存儲(chǔ)到存儲(chǔ)器中,,再送到FFT處理單元進(jìn)行快速傅里葉變換,變換后得到的數(shù)據(jù)再儲(chǔ)存到存儲(chǔ)器中,,再進(jìn)行一系列相關(guān)運(yùn)算,,如:諧波電壓含有量、諧波電流含有量,、各次諧波電壓含有率,、各次諧波電流含有率等,最后經(jīng)VGA進(jìn)行顯示出波形和相關(guān)數(shù)據(jù),。
2 AD73360的配置[3]
2.1 A/D電路設(shè)計(jì)
A/D電路如圖2所示,。A/D電路可分為以下三個(gè)部分。
(1)電源部分,。AD73360有5 V和3 V兩種工作模式,,為了能夠與FPGA實(shí)現(xiàn)直接連接,采用3 V供電(FPGA接口電平為3.3 V左右),,這樣無需外加電平轉(zhuǎn)換電路,,可以簡(jiǎn)化電路設(shè)計(jì)、降低系統(tǒng)功耗,、節(jié)約成本,。
(2)模擬輸入部分。AD73360有6個(gè)通道,,每個(gè)通道又分為正端VINP和負(fù)端VINN,,每個(gè)通道都可以由AD73360內(nèi)部控制寄存器配置為差分輸入和單端輸入兩種方式,本設(shè)計(jì)采用單端交流耦合輸入方式,。
(3)與FPGA接口部分,。AD73360采用六線制串行接口,,能很方便與外部電路實(shí)現(xiàn)接口連接,為了實(shí)現(xiàn)AD73360與FPGA的連接,,就需要在FPGA中設(shè)計(jì)一個(gè)控制器,,在Quartus II中設(shè)計(jì)的A/D控制器AD_controller如圖3所示。
2.2 AD73360的配置
AD73360為可編程A/D轉(zhuǎn)換器,,每次啟動(dòng)系統(tǒng)都要對(duì)其進(jìn)行配置,。對(duì)AD73360的配置有兩種方式,一種方法是用程序來實(shí)現(xiàn),,另外一種方法是利用FPGA具有很強(qiáng)的邏輯控制能力,,用硬件實(shí)現(xiàn)對(duì)AD73360的配置,后者雖然會(huì)占用一些硬件資源,,但是這樣可以大大簡(jiǎn)化系統(tǒng)程序設(shè)計(jì),,節(jié)約軟件運(yùn)行時(shí)間,因此本設(shè)計(jì)采用后者,。系統(tǒng)上電或者手動(dòng)復(fù)位后,,AD73360被復(fù)位,,在復(fù)位狀態(tài)下,,AD73360的八個(gè)控制字寄存器被初始化為00H,同時(shí)AD_controller也被復(fù)位到初始狀態(tài),,SE被置1,,從而AD73360串口進(jìn)入工作狀態(tài)。當(dāng)復(fù)位信號(hào)變?yōu)楦邥r(shí),,AD73360進(jìn)入編程模式,,該模式下,AD73360數(shù)字端接口時(shí)序如圖4所示,。在編程模式下,,AD73360的SDOFS引腳以主時(shí)鐘頻率的1/2048的頻率產(chǎn)生輸出數(shù)據(jù)標(biāo)志信號(hào),當(dāng)控制寄存器被正確配置后,,將產(chǎn)生與設(shè)定采樣頻率同頻的SDOFS標(biāo)志信號(hào),,每個(gè)輸出標(biāo)志信號(hào)以后SDO引腳將連續(xù)輸出16位隨機(jī)數(shù)據(jù),這時(shí)候的數(shù)據(jù)是隨機(jī)產(chǎn)生的,,不是有效的A/D轉(zhuǎn)換數(shù)據(jù),。與此同時(shí),在SCLK時(shí)鐘的下降沿,,若SDIFS標(biāo)志位有效,,則AD73360于下一個(gè)SCLK下降沿開始讀取SDI引腳數(shù)據(jù),并存到AD73360中的串行寄存器,。
撤銷復(fù)位信號(hào)后,,AD_controller開始對(duì)AD73360進(jìn)行配置,,配置過程如圖4所示。系統(tǒng)復(fù)位后標(biāo)志信號(hào)GO被置1,,經(jīng)過三個(gè)SCLK時(shí)鐘周期后GO被置0,,此時(shí)把第一個(gè)配置數(shù)據(jù)賦給SD,標(biāo)志信號(hào)GO保持一個(gè)SCLK時(shí)鐘周期后,,又被置1,。當(dāng)標(biāo)志信號(hào)GO=0時(shí),AD_controller進(jìn)入下一狀態(tài)檢測(cè)SDOFS,,當(dāng)檢測(cè)到SDOFS由1變?yōu)?時(shí),,進(jìn)入寫數(shù)據(jù)狀態(tài),從SD最高位開始由高到低逐位往SDI端口寫數(shù)據(jù),,每個(gè)SCLK時(shí)鐘周期寫一位,,直到寫完16位數(shù)據(jù),AD73360根據(jù)這16位數(shù)據(jù)的前8位數(shù)據(jù)針對(duì)把后8位數(shù)據(jù)寫入相應(yīng)AD73360的相應(yīng)控制寄存器,,寫完16位數(shù)據(jù)后,,系統(tǒng)把SDIFS引腳設(shè)為高阻狀態(tài),并產(chǎn)生一個(gè)SCLK周期的END(對(duì)END置1)信號(hào),,作為一個(gè)控制字配置完成的標(biāo)志,。系統(tǒng)檢測(cè)到END標(biāo)志信號(hào)后,在未對(duì)所有控制字進(jìn)行有效配置的情況下,,把下一個(gè)控制字賦給PDATA,,并產(chǎn)生一個(gè)SCLK周期的GO(把GO置0)標(biāo)志信號(hào),系統(tǒng)檢測(cè)到GO標(biāo)志信號(hào)后,,再檢測(cè)SDOFS,,在SDOFS為1的下一個(gè)SCLK開始通過SDI端口向AD73360寫下一個(gè)控制字,直到8個(gè)控制字都被寫入AD73360,,配置完成后,,AD73360進(jìn)入數(shù)據(jù)模式,開始進(jìn)行A/D轉(zhuǎn)換,。完成配置任務(wù)后AD_controller結(jié)束配置狀態(tài),,把SDI設(shè)為高阻狀態(tài),并開始接收SDO引腳的數(shù)據(jù),,并把接收到的串行數(shù)據(jù)轉(zhuǎn)換成16位并行數(shù)據(jù)[4],。
在QuartusII開發(fā)工具中,用Verilog HDL語言完成了對(duì)AD73360的配置,,并進(jìn)行了功能仿真,,功能仿真結(jié)果如圖5所示。
3 VGA顯示
VGA(Video Graphics Array)是IBM在1987年隨PS/2機(jī)一起推出的一種視頻傳輸標(biāo)準(zhǔn),,具有分辨率高,、顯示速率快,、顏色豐富等優(yōu)點(diǎn),在彩色顯示器領(lǐng)域得到了廣泛的應(yīng)用,。隨著電子技術(shù)的發(fā)展,,VGA接口出現(xiàn)在很多嵌入式平臺(tái)上,用于圖像信息的實(shí)時(shí)顯示等,。Altera公司提供的DE2開發(fā)板上有一個(gè)VGA接口,,極大地方便了利用VGA實(shí)時(shí)顯示。
3.1 VGA顯示原理及時(shí)序
通用VGA顯示卡系統(tǒng)主要由控制電路,、顯示緩存區(qū)和視頻BIOS程序三個(gè)部分組成,。控制電路主要完成時(shí)序發(fā)生,、顯示緩沖區(qū)數(shù)據(jù)操作,、主時(shí)鐘選擇和D/A轉(zhuǎn)換等功能;顯示緩沖區(qū)提供顯示數(shù)據(jù)緩存空間,;視頻BIOS作為控制程序固化在顯示卡的ROM中,。VGA接口為顯示器提供兩類信號(hào),一類是數(shù)據(jù)信號(hào),,一類是控制信號(hào),。數(shù)據(jù)信號(hào)包括紅、綠,、藍(lán)信號(hào),,簡(jiǎn)稱RGB信號(hào),控制信號(hào)包括水平同步信號(hào)和垂直同步信號(hào),。輸出不同分辨率時(shí),水平同步信號(hào)和垂直同步信號(hào)的頻率也不同,。
要實(shí)現(xiàn)VGA顯示就要解決數(shù)據(jù)來源,、數(shù)據(jù)存儲(chǔ)、時(shí)序?qū)崿F(xiàn)等問題,,其中關(guān)鍵還是如何實(shí)現(xiàn)VGA時(shí)序,。VGA的標(biāo)準(zhǔn)參考顯示時(shí)序如圖6所示。行時(shí)序和幀時(shí)序都需要產(chǎn)生同步脈沖,、顯示后沿,、顯示時(shí)序段和顯示前沿四個(gè)部分。幾種常用模式的時(shí)序參數(shù)如表1所示,。
本系統(tǒng)集成了前端采集,、中間處理和后續(xù)顯示功能模塊,充分利用了FPGA的邏輯資源和NiosII處理器的強(qiáng)大功能,,較好地實(shí)現(xiàn)了預(yù)期目標(biāo),。與同類系統(tǒng)相比,,具有開發(fā)時(shí)間短、程序可移植性強(qiáng)和成本低等優(yōu)勢(shì),。該系統(tǒng)作為電力系統(tǒng)諧波分析系統(tǒng)的一部分,,在數(shù)據(jù)采集及預(yù)處理方面已經(jīng)取得較好的效果,后期將進(jìn)一步研究基于FPGA內(nèi)部邏輯結(jié)構(gòu)的FFT實(shí)用算法,。
參考文獻(xiàn)
[1] 肖雁鴻,,毛筱,等.電力系統(tǒng)諧波測(cè)量方法綜述[J].電網(wǎng)技術(shù),,2002,,26(6):61-64.
[2] 吳茂存.基于FPGA的電力系統(tǒng)諧波檢測(cè)[D].濟(jì)南:山東科技大學(xué),2002.
[3] Analog Devices,,Inc.AD73360 Data Sheet.1999.
[4] 孫國(guó)銀.AD73360在電量測(cè)量系統(tǒng)中的應(yīng)用[J].中國(guó)測(cè)試技術(shù),,2007,23(2):70-73.
[5] 潘松.SOPC技術(shù)實(shí)用教程[M].北京:清華大學(xué)出版社2005.
[6] 張志剛.FPGA與SOPC設(shè)計(jì)教程[M].西安:西安電子科技大學(xué)出版社,,2007