用TMS320 DSP和FPGA實(shí)現(xiàn)電能質(zhì)量監(jiān)測(cè)
內(nèi)容摘要:提出用TMS320LF2407和FPGA實(shí)現(xiàn)電能監(jiān)測(cè)的一種方案,闡述各模塊的設(shè)計(jì)和實(shí)現(xiàn)方法,本方案中,FPGA用于采樣16路交流信號(hào)并進(jìn)行64次諧波分析;DSP和于電力參數(shù)的計(jì)算。為了提高其通用性,還用FPGA設(shè)計(jì)了與外界通信的并口、串口模塊,并實(shí)現(xiàn)了同TMS320LF2407的并行和串行通信。
隨著人們對(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)來進(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 數(shù)據(jù)采集電路和ADC模塊
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ū)、開方修改正表、開方運(yùn)算單元、諧波系數(shù)存放區(qū)以及串行、并行通信控制模塊。
(1)ADC控制模塊
圖3所示ADC控制模塊除了完成對(duì)MAX125、MAX306及SMP04的控制外,還要響應(yīng)MAX125的中斷(INT)來讀取轉(zhuǎn)換結(jié)果,并將其保存到ADC采樣數(shù)據(jù)保存區(qū)。如圖3所示,為了更準(zhǔn)確地產(chǎn)生控制時(shí)序,對(duì)系統(tǒng)的采樣周期及相位的鎖定都采取了相應(yīng)的處理。待采樣信號(hào)先經(jīng)過方波轉(zhuǎn)換電路,將其轉(zhuǎn)換成0~+3.3V的方波信號(hào),再經(jīng)過FPGA中的數(shù)字鎖相環(huán)模塊,根據(jù)外部時(shí)鐘和計(jì)數(shù)器測(cè)量出其周期,作為下一個(gè)待采樣信號(hào)的采樣周期。這樣就減小了由于待采樣信號(hào)頻率的漂移而帶來的采樣周期的誤差。本系統(tǒng)采用的數(shù)字鎖相環(huán)在FPGA中實(shí)現(xiàn),其具體的性能為:鎖相環(huán)的捕捉帶Δfmax=12.5Hz,鎖相頻率為50Hz±12.5Hz=37.5~62.5Hz,隨后產(chǎn)生的采樣周期Ts能夠滿足實(shí)際應(yīng)用的要求。同時(shí),根據(jù)多路開關(guān)信號(hào)和計(jì)數(shù)器,產(chǎn)生ADC采樣數(shù)據(jù)保存區(qū)地址,保存來自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ì)算。
在進(jìn)行FPGA設(shè)計(jì)中,為了節(jié)省器件的內(nèi)部資源,其計(jì)算內(nèi)核采用復(fù)用技術(shù)進(jìn)行設(shè)計(jì),其基本原理如圖4所示。
在FFT運(yùn)算中,一個(gè)蝶形運(yùn)算單元和一組工作RAM被重復(fù)使用,其中最重要的是FFT工作控制邏輯的實(shí)現(xiàn)。它主要完成從ADC采樣數(shù)據(jù)保存區(qū)取出數(shù)據(jù)、向FFT工作RAM中寫入和讀取數(shù)據(jù)以及向FFT結(jié)果存放區(qū)存放結(jié)果等工作。
根據(jù)FFT運(yùn)算的結(jié)果z=dinr+jdini,計(jì)算各次諧波的系數(shù)(其中,dinr為結(jié)果的實(shí)路,dini為結(jié)果的虛部,。在進(jìn)行開方運(yùn)算時(shí),若設(shè)計(jì)64M×13位長(zhǎng)度的存儲(chǔ)器進(jìn)行查表計(jì)算,對(duì)于現(xiàn)有的可編程邏輯器件來說是很難實(shí)現(xiàn)的。因此,本次設(shè)計(jì)中采用了修正查表算法:將待開方的數(shù)據(jù)z=(dinr2+dini2)左移m次(m為偶數(shù)),直到其最高兩位不全為0,此時(shí)z變?yōu)閦1;取z1的高8位來查表(此時(shí)表長(zhǎng)為2 8=256個(gè)字)得到t1;使用牛頓一次迭代公式t=(t1+z1/t1)/2,對(duì)t1進(jìn)行修正得到t;最后將t右移m/2次,得到開方結(jié)果。實(shí)驗(yàn)證明,上述修正后的查表法誤差在允許的范圍內(nèi),對(duì)本系統(tǒng)來說是可行的。
?。?)通信接口模塊
以于并行通信,如系統(tǒng)框圖所示,根據(jù)規(guī)劃好的LF2407擴(kuò)展I/O空間,由LF2407的高位地址線的邏輯組合來產(chǎn)生FPGA選片信號(hào),低位地址線向LF2407輸出要訪問數(shù)據(jù)的地址,在IS引腳的下降沿,F(xiàn)PGA中的數(shù)據(jù)傳輸?shù)絃F2407的數(shù)據(jù)總線。值得注意的是,在編寫FPGA的并行通信模塊時(shí),除了編寫相應(yīng)的控制程序以外,還要利用LF2407的IS引腳來選通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編寫串行通信接口模塊時(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ù)寫入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”。然后通過移位寄存器,將串行數(shù)據(jù)轉(zhuǎn)換成并行的8位數(shù)據(jù),完成數(shù)據(jù)的接收。
3 DSP模塊
根據(jù)算法的分配,高層的信號(hào)處理量小,但控制結(jié)構(gòu)復(fù)雜,適合用處理速度較快的DSP來處理。本系統(tǒng)中,DSP主要是根據(jù)FPGA中模擬量的采樣結(jié)果和運(yùn)算結(jié)果,計(jì)算電力參數(shù)以及發(fā)出相應(yīng)的控制信號(hào)。如有必要,還可以用液晶來顯示結(jié)果。
對(duì)于LF2407和FPGA的并行通信,使用LF2407的擴(kuò)展I/O來讀取FPGA中ADC采樣數(shù)據(jù)保存區(qū)和各次諧波系數(shù)放區(qū)中數(shù)據(jù)。LF2407可以直接使用IN和OUT指令對(duì)FPGA進(jìn)行讀寫。
對(duì)于串行通信,LF2407向FPGA發(fā)送數(shù)據(jù)。只要查詢SCICTL2的7號(hào)位,來判斷發(fā)送器是否為高。如果為空,LF2407就可以向FPGA發(fā)送數(shù)據(jù)(命令),控制FPGA的運(yùn)行。同樣,LF2407采用中斷方式接收從FPGA發(fā)送來的數(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)中,通過FPGA和DSP相結(jié)合,可使測(cè)量更靈活、控制更方便。本系統(tǒng)有選擇地進(jìn)行并行通信或串行通信,使設(shè)計(jì)更加靈活多變,有利于系統(tǒng)的擴(kuò)展,方便與其它電力測(cè)控系統(tǒng)直接相邊,而且適于模塊化設(shè)計(jì),提高算法效率,縮短開發(fā)周期。
評(píng)論