用TMS320LF2407和FPGA實現(xiàn)電能質(zhì)量監(jiān)測
(作者未知) 2010/6/3
用TMS320LF2407和FPGA實現(xiàn)電能質(zhì)量監(jiān)測
摘 要:提出用TMS320LF2407和FPGA實現(xiàn)電能監(jiān)測的一種方案,闡述各模塊的設(shè)計和實現(xiàn)方法,本方案中,F(xiàn)PGA用于采樣16路交流信號并進行64次諧波分析;DSP和于電力參數(shù)的計算。為了提高其通用性,還用FPGA設(shè)計了與外界通信的并口、串口模塊,并實現(xiàn)了同TMS320LF2407的并行和串行通信。
關(guān)鍵詞:電能質(zhì)量 DSP FPGA FFT UART
隨著人們對電能質(zhì)量要求的日益提高,如何保證電能質(zhì)量就成為一個熱門話題。電能質(zhì)量監(jiān)測的一項主要內(nèi)容是諧波檢測,即對多路模擬信號進行采集并進行諧波分析。本系統(tǒng)對16路50Hz模塊信號進行采樣并進行64次諧波分析。如果僅僅依靠一個MCU(單片機或控制型DSP)來進行處理,往往達不到實時性要求,所以采用DSP和FPGA相結(jié)合的方法。利用DSP對電力參數(shù)進行計算,利用FPGA進行諧波分析。
系統(tǒng)主要包括數(shù)據(jù)采集電路、ADC模塊、FPGA模塊、DSP模塊及上位機顯示模塊,其結(jié)構(gòu)如圖1所示。
1 數(shù)據(jù)采集電路和ADC模塊
對經(jīng)過互感器調(diào)理成-3.3~ 3.3V(ADC測量的最大量程)的信號進行采樣。根據(jù)香農(nóng)抽樣定理,對最高頻率fc的連續(xù)信號進行抽樣,須保留其全部內(nèi)容。抽樣頻率fs滿足條件為:fs≥2fc。如圖1系統(tǒng)框圖所示,本系統(tǒng)中,ADC采用的是MAX125,其單通道的轉(zhuǎn)換時間為3μs。若利用內(nèi)部的采樣保持器,可以同時采樣4路信號,轉(zhuǎn)換時間為12μs。為了同時采集已經(jīng)過調(diào)理的16路模擬信號,必須對其進行采樣/保持。在前向通道使用16路采樣/保持器(SMP04),再使用多路開關(guān)(MAX306)依次選擇這16路信號,輸入到MAX125的一個通道(CH1A),并由FPGA發(fā)出轉(zhuǎn)換信號CONVST。待轉(zhuǎn)換結(jié)束,MAX125發(fā)出INT中斷,通知FPGA讀取轉(zhuǎn)換結(jié)果。總之,由FPGA中的ADC控制模塊完成對MAX125、MAX306及SMP04的控制以及對MAX125信號的中斷響應。
2 FPGA模塊
FPGA模塊主要完成通信、數(shù)據(jù)采集、ADC模塊的數(shù)據(jù)讀取、保存及底層的信號預處理計算——諧波分析。FPGA工作流程如圖2所示。其子模塊有:ADC控制模塊、ADC采樣數(shù)據(jù)保存區(qū)、FFT工作RAM、FFT運算結(jié)果保存區(qū)、開方修改正表、開方運算單元、諧波系數(shù)存放區(qū)以及串行、并行通信控制模塊。
(1)ADC控制模塊
圖3所示ADC控制模塊除了完成對MAX125、MAX306及SMP04的控制外,還要響應MAX125的中斷(INT)來讀取轉(zhuǎn)換結(jié)果,并將其保存到ADC采樣數(shù)據(jù)保存區(qū)。如圖3所示,為了更準確地產(chǎn)生控制時序,對系統(tǒng)的采樣周期及相位的鎖定都采取了相應的處理。待采樣信號先經(jīng)過方波轉(zhuǎn)換電路,將其轉(zhuǎn)換成0~ 3.3V的方波信號,再經(jīng)過FPGA中的數(shù)字鎖相環(huán)模塊,根據(jù)外部時鐘和計數(shù)器測量出其周期,作為下一個待采樣信號的采樣周期。這樣就減小了由于待采樣信號頻率的漂移而帶來的采樣周期的誤差。本系統(tǒng)采用的數(shù)字鎖相環(huán)在FPGA中實現(xiàn),其具體的性能為:鎖相環(huán)的捕捉帶Δfmax=12.5Hz,鎖相頻率為50Hz±12.5Hz=37.5~62.5Hz,隨后產(chǎn)生的采樣周期Ts能夠滿足實際應用的要求。同時,根據(jù)多路開關(guān)信號和計數(shù)器,產(chǎn)生ADC采樣數(shù)據(jù)保存區(qū)地址,保存來自MAX125的14位數(shù)字量。
(2)諧波分析模塊
本系統(tǒng)中,采用快速傅里葉變換(FFT)進行諧波分析,主要因為FFT使N點DFT的乘法計算由N2次減少到(N/2)log2N次。由FFT工作流程圖可知,本系統(tǒng)在分析64次諧波時,整個運算分6級。在第一級蝶形運算中,蝶形運算單元根據(jù)算法控制模塊的控制信號,從ADC采樣數(shù)據(jù)保存區(qū)取出原始數(shù)據(jù),從旋轉(zhuǎn)因子ROM中取出旋轉(zhuǎn)因子,進行FFT的第一級蝶形運算,并將結(jié)果存入FFT工作RAM。在以后的各級蝶形運算中,蝶形運算單元從FFT工作RAM中取出間數(shù)據(jù),從旋轉(zhuǎn)因子ROM中取出旋轉(zhuǎn)因子,進行運算,直至第六級蝶形運算結(jié)束,并將結(jié)果存放到運算結(jié)果保存區(qū),以便進行各次諧波系數(shù)計算。
在進行FPGA設(shè)計中,為了節(jié)省器件的內(nèi)部資源,其計算內(nèi)核采用復用技術(shù)進行設(shè)計,其基本原理如圖4所示。
在FFT運算中,一個蝶形運算單元和一組工作RAM被重復使用,其中最重要的是FFT工作控制邏輯的實現(xiàn)。它主要完成從ADC采樣數(shù)據(jù)保存區(qū)取出數(shù)據(jù)、向FFT工作RAM中寫入和讀取數(shù)據(jù)以及向FFT結(jié)果存放區(qū)存放結(jié)果等工作。
根據(jù)FFT運算的結(jié)果z=dinr jdini,計算各次諧波的系數(shù) (其中,dinr為結(jié)果的實(未完,下一頁)
|