用TMS320LF2407和FPGA實(shí)現(xiàn)電能質(zhì)量監(jiān)測(cè)
關(guān)鍵詞:電能質(zhì)量 DSP FPGA FFT UART
隨著人們對(duì)電能質(zhì)量要求的日益提高,如何保證電能質(zhì)量就成為一個(gè)熱門話題。電能質(zhì)量監(jiān)測(cè)的一項(xiàng)主要內(nèi)容是諧波檢測(cè),即對(duì)多路模擬信號(hào)進(jìn)行采集并進(jìn)行諧波分析。本系統(tǒng)對(duì)16路50Hz模塊信號(hào)進(jìn)行采樣并進(jìn)行64次諧波分析。如果僅僅依靠一個(gè)MCU(單片機(jī)或控制型DSP)來(lái)進(jìn)行處理,往往達(dá)不到實(shí)時(shí)性要求,所以采用DSP和FPGA相結(jié)合的方法。利用DSP對(duì)電力參數(shù)進(jìn)行計(jì)算,利用FPGA進(jìn)行諧波分析。
系統(tǒng)主要包括數(shù)據(jù)采集電路、ADC模塊、FPGA模塊、DSP模塊及上位機(jī)顯示模塊,其結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)框圖
1 數(shù)據(jù)采集電路和ADC模塊
對(duì)經(jīng)過(guò)互感器調(diào)理成-3.3~+3.3V(ADC測(cè)量的最大量程)的信號(hào)進(jìn)行采樣。根據(jù)香農(nóng)抽樣定理,對(duì)最高頻率fc的連續(xù)信號(hào)進(jìn)行抽樣,須保留其全部?jī)?nèi)容。抽樣頻率fs滿足條件為:fs≥2fc。如圖1系統(tǒng)框圖所示,本系統(tǒng)中,ADC采用的是MAX125,其單通道的轉(zhuǎn)換時(shí)間為3μs。若利用內(nèi)部的采樣保持器,可以同時(shí)采樣4路信號(hào),轉(zhuǎn)換時(shí)間為12μs。為了同時(shí)采集已經(jīng)過(guò)調(diào)理的16路模擬信號(hào),必須對(duì)其進(jìn)行采樣/保持。在前向通道使用16路采樣/保持器(SMP04),再使用多路開(kāi)關(guān)(MAX306)依次選擇這16路信號(hào),輸入到MAX125的一個(gè)通道(CH1A),并由FPGA發(fā)出轉(zhuǎn)換信號(hào)CONVST。待轉(zhuǎn)換結(jié)束,MAX125發(fā)出INT中斷,通知FPGA讀取轉(zhuǎn)換結(jié)果??傊?,由FPGA中的ADC控制模塊完成對(duì)MAX125、MAX306及SMP04的控制以及對(duì)MAX125信號(hào)的中斷響應(yīng)。
2 FPGA模塊
FPGA模塊主要完成通信、數(shù)據(jù)采集、ADC模塊的數(shù)據(jù)讀取、保存及底層的信號(hào)預(yù)處理計(jì)算――諧波分析。FPGA工作流程如圖2所示。其子模塊有:ADC控制模塊、ADC采樣數(shù)據(jù)保存區(qū)、FFT工作RAM、FFT運(yùn)算結(jié)果保存區(qū)、開(kāi)方修改正表、開(kāi)方運(yùn)算單元、諧波系數(shù)存放區(qū)以及串行、并行通信控制模塊。
圖2 FPGA工作流程圖
(1)ADC控制模塊
圖3所示ADC控制模塊除了完成對(duì)MAX125、MAX306及SMP04的控制外,還要響應(yīng)MAX125的中斷(INT)來(lái)讀取轉(zhuǎn)換結(jié)果,并將其保存到ADC采樣數(shù)據(jù)保存區(qū)。如圖3所示,為了更準(zhǔn)確地產(chǎn)生控制時(shí)序,對(duì)系統(tǒng)的采樣周期及相位的鎖定都采取了相應(yīng)的處理。待采樣信號(hào)先經(jīng)過(guò)方波轉(zhuǎn)換電路,將其轉(zhuǎn)換成0~+3.3V的方波信號(hào),再經(jīng)過(guò)FPGA中的數(shù)字鎖相環(huán)模塊,根據(jù)外部時(shí)鐘和計(jì)數(shù)器測(cè)量出其周期,作為下一個(gè)待采樣信號(hào)的采樣周期。這樣就減小了由于待采樣信號(hào)頻率的漂移而帶來(lái)的采樣周期的誤差。本系統(tǒng)采用的數(shù)字鎖相環(huán)在FPGA中實(shí)現(xiàn),其具體的性能為:鎖相環(huán)的捕捉帶Δfmax=12.5Hz,鎖相頻率為50Hz12.5Hz=37.5~62.5Hz,隨后產(chǎn)生的采樣周期Ts能夠滿足實(shí)際應(yīng)用的要求。同時(shí),根據(jù)多路開(kāi)關(guān)信號(hào)和計(jì)數(shù)器,產(chǎn)生ADC采樣數(shù)據(jù)保存區(qū)地址,保存來(lái)自MAX125的14位數(shù)字量。
(2)諧波分析模塊
本系統(tǒng)中,采用快速傅里葉變換(FFT)進(jìn)行諧波分析,主要因?yàn)镕FT使N點(diǎn)DFT的乘法計(jì)算由N2次減少到(N/2)log2N次。由FFT工作流程圖可知,本系統(tǒng)在分析64次諧波時(shí),整個(gè)運(yùn)算分6級(jí)。在第一級(jí)蝶形運(yùn)算中,蝶形運(yùn)算單元根據(jù)算法控制模塊的控制信號(hào),從ADC采樣數(shù)據(jù)保存區(qū)取出原始數(shù)據(jù),從旋轉(zhuǎn)因子ROM中取出旋轉(zhuǎn)因子,進(jìn)行FFT的第一級(jí)蝶形運(yùn)算,并將結(jié)果存入FFT工作RAM。在以后的各級(jí)蝶形運(yùn)算中,蝶形運(yùn)算單元從FFT工作RAM中取出間數(shù)據(jù),從旋轉(zhuǎn)因子ROM中取出旋轉(zhuǎn)因子,進(jìn)行運(yùn)算,直至第六級(jí)蝶形運(yùn)算結(jié)束,并將結(jié)果存放到運(yùn)算結(jié)果保存區(qū),以便進(jìn)行各次諧波系數(shù)計(jì)算。
在FFT運(yùn)算中,一個(gè)蝶形運(yùn)算單元和一組工作RAM被重復(fù)使用,其中最重要的是FFT工作控制邏輯的實(shí)現(xiàn)。它主要完成從ADC采樣數(shù)據(jù)保存區(qū)取出數(shù)據(jù)、向FFT工作RAM中寫(xiě)入和讀取數(shù)據(jù)以及向FFT結(jié)果存放區(qū)存放結(jié)果等工作。
根據(jù)FFT運(yùn)算的結(jié)果z=dinr+jdini,計(jì)算各次諧波的系數(shù)(其中,dinr為結(jié)果的實(shí)路,dini為結(jié)果的虛部,。在進(jìn)行開(kāi)方運(yùn)算時(shí),若設(shè)計(jì)64M13位長(zhǎng)度的存儲(chǔ)器進(jìn)行查表計(jì)算,對(duì)于現(xiàn)有的可編程邏輯器件來(lái)說(shuō)是很難實(shí)現(xiàn)的。因此,本次設(shè)計(jì)中采用了修正查表算法:將待開(kāi)方的數(shù)據(jù)z=(dinr2+dini2)左移m次(m為偶數(shù)),直到其最高兩位不全為0,此時(shí)z變?yōu)閦1;取z1的高8位來(lái)查表(此時(shí)表長(zhǎng)為2 8=256個(gè)字)得到t1;使用牛頓一次迭代公式t=(t1+z1/t1)/2,對(duì)t1進(jìn)行修正得到t;最后將t右移m/2次,得到開(kāi)方結(jié)果。實(shí)驗(yàn)證明,上述修正后的查表法誤差在允許的范圍內(nèi),對(duì)本系統(tǒng)來(lái)說(shuō)是可行的。
在軟件方面,為了提高芯片的性能及資源利用率,采用Quartus II 2.0t Synplify7.1。在Synplify中使用有效的代碼,采取流水線設(shè)計(jì)、優(yōu)化組合邏輯及減少邏輯延時(shí)等措施來(lái)提高整體性能,還進(jìn)行了多個(gè)文件的分塊設(shè)計(jì),然后將這些文件映射到頂層文件進(jìn)行綜合,并運(yùn)行VHDL或者Verilog HDL對(duì)單個(gè)文件編寫(xiě)、信真和優(yōu)化。在用到組合邏輯時(shí),Synplify會(huì)盡量避免鎖存器的出現(xiàn),節(jié)省邏輯單元。對(duì)于ACEX系列的芯片,它還支持寄存器配平技術(shù)、流水線操作、復(fù)制邏輯模塊及使用LPM函數(shù)等技術(shù)來(lái)提高其整體性能。Synplify和其它結(jié)合軟件一樣,編譯后生成的電子設(shè)計(jì)交換格式文件(EDIF)可以在MAX+PLUS II或Quartus II 2.0中進(jìn)行編譯、分別引腳和其它優(yōu)化處理。因此,采用Quartus II 2.0和Synplify7.1相結(jié)合,對(duì)FPGA進(jìn)行設(shè)計(jì)、優(yōu)化及綜合,不僅能提高系統(tǒng)性能,還能提高芯片資源的利用率。
(3)通信接口模塊
為了靈活地與外界系統(tǒng)進(jìn)行連接,F(xiàn)PGA提供了并行通信和串行通信兩種形式。并行通信可以直接和DSP連接組成電力監(jiān)測(cè)和控制系統(tǒng);串行通信不僅可以方便地和DSP連接,不可以和不具備諧波分析功能的系統(tǒng)組成更加完善的電力監(jiān)測(cè)系統(tǒng)。
以于并行通信,如系統(tǒng)框圖所示,根據(jù)規(guī)劃好的LF2407擴(kuò)展I/O空間,由LF2407的高位地址線的邏輯組合來(lái)產(chǎn)生FPGA選片信號(hào),低位地址線向LF2407輸出要訪問(wèn)數(shù)據(jù)的地址,在IS引腳的下降沿,F(xiàn)PGA中的數(shù)據(jù)傳輸?shù)絃F2407的數(shù)據(jù)總線。值得注意的是,在編寫(xiě)FPGA的并行通信模塊時(shí),除了編寫(xiě)相應(yīng)的控制程序以外,還要利用LF2407的IS引腳來(lái)選通FPGA的三態(tài)總線進(jìn)行數(shù)據(jù)輸出,這樣可以避免FPGA與LF2407的數(shù)據(jù)接口影響LF2407的工作。
如果利用FPGA進(jìn)行串行通信,則可以完善已有的電力監(jiān)測(cè)系統(tǒng)。為了使其能和現(xiàn)有的設(shè)備更好的進(jìn)行連接,還設(shè)計(jì)了TMS320LF2407和FPGA之間的串行通信。本系統(tǒng)中,LF2407包含了可以直接利用RS232通信的串行通信接口(SCI)模塊,所以對(duì)FPGA編寫(xiě)串行通信接口模塊時(shí),要保證和LF2407相同的通信格式。本系統(tǒng)在實(shí)際設(shè)計(jì)中采用的通信格式為:1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)奇/校驗(yàn)位,1個(gè)停止位。TMS320LF2407的串口通訊電路如圖5所示。
FPGA的UART模塊中,確定相同通信格式的同時(shí),還要確定相同的波特率,并根據(jù)波特率產(chǎn)生發(fā)送、接收時(shí)鐘。對(duì)于數(shù)據(jù)的發(fā)送,F(xiàn)PGA監(jiān)測(cè)txrdy(發(fā)送就緒)信號(hào)。如果txrdy=“1”,就從待發(fā)送數(shù)據(jù)區(qū)中取出數(shù)據(jù)寫(xiě)入U(xiǎn)ART的數(shù)據(jù)總線,隨后產(chǎn)生一位起始位。然后,利用發(fā)送時(shí)鐘觸發(fā)移位寄存器,將待發(fā)送數(shù)據(jù)送到內(nèi)部寄存器,將數(shù)據(jù)依次送到發(fā)送端(TX)。最后,根據(jù)發(fā)送數(shù)據(jù)的“1”的個(gè)數(shù),加上校驗(yàn)位和停止位,就實(shí)現(xiàn)了數(shù)據(jù)的串行發(fā)送。
FPGA的監(jiān)測(cè)單元監(jiān)測(cè)到RX的下降沿,則啟動(dòng)接收單元。在采樣時(shí)鐘的上升沿對(duì)接收信號(hào)進(jìn)行采樣,高電平為“1”,低電平為“0”。然后通過(guò)移位寄存器,將串行數(shù)據(jù)轉(zhuǎn)換成并行的8位數(shù)據(jù),完成數(shù)據(jù)的接收。
圖5 串口通信電路圖
3 DSP模塊
根據(jù)算法的分配,高層的信號(hào)處理量小,但控制結(jié)構(gòu)復(fù)雜,適合用處理速度較快的DSP來(lái)處理。本系統(tǒng)中,DSP主要是根據(jù)FPGA中模擬量的采樣結(jié)果和運(yùn)算結(jié)果,計(jì)算電力參數(shù)以及發(fā)出相應(yīng)的控制信號(hào)。如有必要,還可以用液晶來(lái)顯示結(jié)果。
對(duì)于LF2407和FPGA的并行通信,使用LF2407的擴(kuò)展I/O來(lái)讀取FPGA中ADC采樣數(shù)據(jù)保存區(qū)和各次諧波系數(shù)放區(qū)中數(shù)據(jù)。LF2407可以直接使用IN和OUT指令對(duì)FPGA進(jìn)行讀寫(xiě)。
對(duì)于串行通信,LF2407向FPGA發(fā)送數(shù)據(jù)。只要查詢SCICTL2的7號(hào)位,來(lái)判斷發(fā)送器是否為高。如果為空,LF2407就可以向FPGA發(fā)送數(shù)據(jù)(命令),控制FPGA的運(yùn)行。同樣,LF2407采用中斷方式接收從FPGA發(fā)送來(lái)的數(shù)據(jù)。LF2407接收中斷的向量地址為INT1(0002H),外圍中斷向量為0006H。
4 總結(jié)
本系統(tǒng)已完成實(shí)驗(yàn)室樣機(jī)制作與調(diào)試,證明設(shè)計(jì)正確,可以完成對(duì)電力質(zhì)量進(jìn)行監(jiān)測(cè)的任務(wù)。在電力監(jiān)測(cè)系統(tǒng)中,通過(guò)FPGA和DSP相結(jié)合,可使測(cè)量更靈活、控制更方便。本系統(tǒng)有選擇地進(jìn)行并行通信或串行通信,使設(shè)計(jì)更加靈活多變,有利于系統(tǒng)的擴(kuò)展,方便與其它電力測(cè)控系統(tǒng)直接相邊,而且適于模塊化設(shè)計(jì),提高算法效率,縮短開(kāi)發(fā)周期。
評(píng)論