基于FPGA的電網(wǎng)實(shí)時(shí)數(shù)據(jù)采集與控制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著科學(xué)技術(shù)和國民經(jīng)濟(jì)的快速發(fā)展,各種工業(yè)生產(chǎn)對(duì)電力系統(tǒng)對(duì)電能質(zhì)量的要求越來越高,因此,對(duì)電網(wǎng)參數(shù)進(jìn)行實(shí)時(shí)檢測與分析具有重要的意義。要解決電能質(zhì)量問題,首先要建立電能質(zhì)量各項(xiàng)指標(biāo)的監(jiān)測和分析系統(tǒng),對(duì)電網(wǎng)中的各種指標(biāo)進(jìn)行實(shí)時(shí)更新測量和數(shù)據(jù)采集。傳統(tǒng)的電網(wǎng)數(shù)據(jù)采集系統(tǒng)往往采用單片機(jī)或數(shù)字信號(hào)處理器(DSP)作為控制器,來控制模/數(shù)轉(zhuǎn)換器(ADC)、存儲(chǔ)器和其他外圍電路的工作。但是,由于單片機(jī)本身的指令周期以及處理速度的影響,其時(shí)鐘頻率較低,各種功能都要靠軟件的運(yùn)行來實(shí)現(xiàn),而軟件運(yùn)行時(shí)間在整個(gè)采樣時(shí)間中占有很大的比例,效率較低,很難滿足系統(tǒng)對(duì)數(shù)據(jù)采集系統(tǒng)實(shí)時(shí)性和同步性的要求。由于對(duì)電網(wǎng)的諧波進(jìn)行FFT分析時(shí),電網(wǎng)頻率不是一成不變的,因此,以固定的采樣頻率對(duì)電信號(hào)進(jìn)行采樣時(shí),如電網(wǎng)頻率發(fā)生波動(dòng),采樣頻率將不能與輸入信號(hào)同步,因而會(huì)產(chǎn)生頻譜泄漏。事實(shí)上,除了產(chǎn)生頻譜泄露以外,對(duì)于離散傅里葉變換來說,非同步采樣時(shí),即使信號(hào)含有單一頻率,其離散傅里葉變換也不可能求出信號(hào)的準(zhǔn)確參數(shù),而會(huì)產(chǎn)生柵欄效應(yīng)。
為了解決這些不足,可在數(shù)據(jù)采樣部分采用高速A/D轉(zhuǎn)換芯片ADS7864,即在數(shù)據(jù)采集的控制部分則利用FPGA(可編程邏輯器件)直接控制ADS7864對(duì)模擬信號(hào)進(jìn)行采樣。然后將轉(zhuǎn)換好的12位二進(jìn)制數(shù)據(jù)迅速存儲(chǔ)到FPGA內(nèi)部的存儲(chǔ)器中。為了提高諧波測量的精度,還可采用硬件描述語言VHDL來設(shè)計(jì)數(shù)字鎖相環(huán)和同步被測信號(hào),以實(shí)現(xiàn)對(duì)誤差的修正。控制器則根據(jù)數(shù)字鎖相環(huán)模塊檢測出的信號(hào)頻率大小實(shí)時(shí)調(diào)整A/D轉(zhuǎn)換器的采樣頻率,以同步被測信號(hào),提高測量精度。
1 設(shè)計(jì)方案
圖1所示是本數(shù)據(jù)采集控制模塊的設(shè)計(jì)框圖。圖中,數(shù)字鎖相倍頻模塊每輸出一個(gè)有效的采樣觸發(fā)信號(hào)CLK,ADC控制器就完成一次6通道的采樣操作,然后停止等待下一個(gè)觸發(fā)脈沖的到來。時(shí)鐘管理模塊的作用是利用最小系統(tǒng)板上的50 MHz晶振輸入,經(jīng)過編程進(jìn)行1000分頻,以將其轉(zhuǎn)換成50 kHz提供給AD控制器。至于雙口RAM存儲(chǔ)模塊,由于QuqartusII內(nèi)部有一個(gè)可調(diào)用的ROM宏功能模塊,因此,在使用時(shí),只要將其調(diào)出,并按照本系統(tǒng)的要求對(duì)存儲(chǔ)容量和地址端口進(jìn)行設(shè)置,就可以作為模塊來用。
2 數(shù)字鎖相倍頻
2.1 數(shù)字鎖相倍頻器的基本原理
輸入信號(hào)經(jīng)整形后可轉(zhuǎn)換為與輸入信號(hào)同頻率的方波信號(hào),其頻率為FS,可對(duì)其進(jìn)行K倍頻。首先設(shè)置一標(biāo)準(zhǔn)的時(shí)鐘信號(hào),若時(shí)鐘頻率為FC,采用可編程分頻器對(duì)時(shí)鐘信號(hào)進(jìn)行分頻,其分頻系數(shù)由計(jì)數(shù)器提供。若分頻系數(shù)為N,則輸出頻率為FC的N分頻,即:
時(shí)鐘信號(hào)經(jīng)K分頻后可送至計(jì)數(shù)器,由計(jì)數(shù)器在輸入信號(hào)的一個(gè)周期內(nèi)對(duì)FC/K脈沖進(jìn)行計(jì)數(shù),若忽略各種誤差因數(shù),其計(jì)數(shù)值為N,則:
由上兩式可得:F0=KFS,這樣就實(shí)現(xiàn)了對(duì)輸入信號(hào)頻率的K倍頻,倍頻后的信號(hào)即可作為A/D的采樣信號(hào)。數(shù)字鎖相倍頻器中計(jì)數(shù)器的實(shí)質(zhì)是選用采樣窗口信號(hào)通過同步過程所得的方波信號(hào)作為閘門信號(hào),并將高頻率的同步時(shí)鐘信號(hào)作為填充脈沖來進(jìn)行計(jì)數(shù),設(shè)計(jì)數(shù)值為Ⅳ實(shí)現(xiàn)周期測量,由于該模塊在工作過程中可連續(xù)測量輸入信號(hào)的周期,所以兼有測頻的功能。因此,保證數(shù)字倍頻器跟蹤精度的關(guān)鍵是提高周期測量的精度和分頻系數(shù)的準(zhǔn)確度。數(shù)字倍頻器的原理框圖如圖2所示。
2.2 數(shù)字鎖相倍頻的FPGA實(shí)現(xiàn)
輸入信號(hào)經(jīng)整形后也可轉(zhuǎn)換為與基波信號(hào)同頻率的方波,然后對(duì)方波信號(hào)進(jìn)行二分頻。二分頻的目的有兩個(gè),一是作為控制信號(hào)來實(shí)現(xiàn)周期測量;二是可以消除輸入波形不對(duì)稱的影響,提高測量周期的精度。將二分頻后的方波信號(hào)一路送K分頻器I的控制端,另一路反相后接K分頻器Ⅱ的控制端,以使兩路K分頻器在輸入信號(hào)相鄰兩個(gè)周期內(nèi)交替處于分頻、清零狀態(tài)。這樣,兩路輪流工作就可避免使用單路計(jì)數(shù)器連續(xù)計(jì)數(shù)時(shí)由于數(shù)據(jù)保持和清零過程所造成的測量誤差和相位延遲問題。K分頻器在每次工作前,其輸出為0電平,這樣可以保證計(jì)數(shù)器的輸入方波與其計(jì)數(shù)周期同步,防止計(jì)數(shù)器輸入方波與計(jì)數(shù)周期的隨機(jī)性帶來的計(jì)數(shù)誤差,從而提高測量精度。本系統(tǒng)中,K取128。
計(jì)數(shù)器的計(jì)數(shù)值N在被測周期結(jié)束后將立刻送鎖存器鎖存,并作為可編程分頻器的分頻系數(shù)N。由于采用兩路計(jì)數(shù)器輪流工作方式,因此,鎖存器要有選擇地對(duì)每路計(jì)數(shù)器的計(jì)數(shù)結(jié)果進(jìn)行鎖存??紤]到要盡可能地減小相位滯后,在每個(gè)周期結(jié)束后,鎖存器應(yīng)在最短的時(shí)間內(nèi)將數(shù)據(jù)鎖存。這就要求鎖存器在鎖存脈沖到來前,先選擇好被鎖存的計(jì)數(shù)器,保證每個(gè)周期計(jì)數(shù)值的可靠鎖存。鎖存信號(hào)由輸入方波信號(hào)經(jīng)微分電路產(chǎn)生,這種設(shè)計(jì)使可編程分頻器在每個(gè)周期的開始時(shí)刻,總是以新的數(shù)據(jù)、新的起點(diǎn)開始分頻。兩路計(jì)數(shù)器在計(jì)數(shù)工作前要先清零,使計(jì)數(shù)器的計(jì)數(shù)值準(zhǔn)確的反映輸入信號(hào)的周期。清零工作必須在計(jì)數(shù)結(jié)果鎖存后的下一次計(jì)數(shù)開始前完成。數(shù)字鎖相倍頻的頂層電路如圖3所示。
在FPGA軟件QuartusII7.2開發(fā)平臺(tái)上完成硬件設(shè)計(jì)后即可進(jìn)行仿真,其仿真波形如圖4所示。其中,標(biāo)準(zhǔn)時(shí)鐘clk的頻率為10 MHz;shuru:為倍頻的輸入信號(hào),shuru頻率設(shè)置為50 Hz,倍頻系數(shù)為128;beipin:表示倍頻電路的輸出信號(hào)。從仿真中可以看到,本設(shè)計(jì)可以達(dá)到128倍頻的效果。
3 A/D采集控制
由于本設(shè)計(jì)要同時(shí)采集電網(wǎng)的三相電壓和電流,所以,應(yīng)把采樣倍頻信號(hào)接至HOLDA、HOLDB、HOLDC,以同時(shí)保持六路輸入信號(hào),讀出模式設(shè)置為循環(huán)模式。
由ADS7864的時(shí)序圖可以得到如圖5所示的ADC控制器的軟件控制流程。以便在QuartusII開發(fā)平臺(tái)上利用VHDL語言進(jìn)行軟件編程。
通過ADS7864的工作狀態(tài)控制模塊可根據(jù)ADS7864的轉(zhuǎn)換時(shí)序圖,用VHDL編寫FPGA控制ADS7864的轉(zhuǎn)換程序,并可采用雙進(jìn)程有限狀態(tài)機(jī)的方法來在Quartus II 7.2內(nèi)對(duì)A/D控制模塊進(jìn)行時(shí)序仿真,其仿真波形如圖6所示。仿真結(jié)果表明,該模塊的設(shè)計(jì)完全符合要求。
4 結(jié)束語
本文給出了基于FPGA的電網(wǎng)實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方法。該方法采用FPGA作為數(shù)據(jù)采集系統(tǒng)的控制核心。并充分利用了高速模數(shù)轉(zhuǎn)換芯片ADC和可編程邏輯控制器件FPGA,最終通過硬件描述語言VHDL實(shí)現(xiàn)了A/D的控制和數(shù)字鎖相倍頻電路。該電路具有良好的可移植性和可擴(kuò)展性,便于調(diào)試和修改,在電網(wǎng)的實(shí)時(shí)數(shù)據(jù)采集方面有較好的應(yīng)用前景。