摘 要: 結(jié)合數(shù)據(jù)采集系統(tǒng)在電力系統(tǒng)中的應(yīng)用,設(shè)計了一種基于FPGA的多路同步實時數(shù)據(jù)采集系統(tǒng),該系統(tǒng)將多個功能模塊集成到一片F(xiàn)PGA中,構(gòu)成片上可編程系統(tǒng),使用一片F(xiàn)PGA完成對A/D轉(zhuǎn)換和雙口RAM等模塊的控制;給出了系統(tǒng)的硬件原理框圖,并結(jié)合系統(tǒng)的設(shè)計方案對其中的主要功能模塊進行了闡述;以此構(gòu)成的多路同步實時數(shù)據(jù)采集系統(tǒng)具有性能穩(wěn)定、實時性強、集成度高、擴展性靈活等特點。
關(guān)鍵詞: FPGA; A/D; 雙口RAM; 多通道
隨著可再生能源應(yīng)用的日益增多,以此建立的分布式發(fā)電系統(tǒng)也逐漸增加。為了更好地對分布式電源進行控制,通常需要對多個模擬信號進行實時數(shù)據(jù)采集,同時為了保證數(shù)據(jù)的一致性,必須同時對數(shù)據(jù)進行采樣[1-2]。常用的數(shù)據(jù)采集方案往往以單片機為控制核心,控制A/D(模數(shù)轉(zhuǎn)換器)對多路信號進行采集及處理,但由于單片機本身的指令周期以及處理速度的影響,難以達(dá)到對多通道高速數(shù)據(jù)實時采集的要求;并且單片機控制的各種功能模塊要靠軟件的運行來實現(xiàn),軟件運行時間在整個采樣時間中占很大的比例,對并行的多路高速數(shù)據(jù)采集的速度和效率較低;而FPGA在高速數(shù)據(jù)采集方面相比單片機具有較好的優(yōu)勢,全部控制邏輯由硬件來完成,適合對時序要求嚴(yán)格的多路高速實時數(shù)據(jù)采集系統(tǒng)[3]。
1 系統(tǒng)結(jié)構(gòu)圖
分布式電源通常通過并網(wǎng)逆變器接入電網(wǎng),為了實現(xiàn)對分布式發(fā)電的靈活控制,需要采集電網(wǎng)側(cè)的電壓電流信號、分布式電源逆變器側(cè)的電壓電流信號以及逆變器直流母線側(cè)的電壓和電流。采集系統(tǒng)整體結(jié)構(gòu)如圖1所示。主要包括電壓電流互感器、強電隔離電路、模擬信號處理電路、模數(shù)轉(zhuǎn)換(A/D)電路、A/D控制電路、FFT運算電路、頻率測量電路、三相PLL相位鎖定電路、雙口RAM控制模塊以及CPU對FPGA控制的邏輯控制模塊等[4]。
設(shè)計的采集系統(tǒng)主要采用Altera公司的FPGA(Cyclone II EP2C20Q240)來實現(xiàn)[6]。在FPGA內(nèi)部,集成了大部分的控制模塊,主要有A/D轉(zhuǎn)換控制模塊、雙口RAM控制模塊、頻率測量模塊及FFT運算模塊等,采集到的數(shù)據(jù)存儲到外部的雙口RAM中,以便與CPU共享數(shù)據(jù)。
2 系統(tǒng)模塊設(shè)計
2.1 模擬信號處理電路
模擬信號處理電路如圖2所示,主要處理傳感器輸出的模擬信號,并送入A/D模塊。電阻R1的阻值選擇10 kΩ,可以減少整個電路對干擾的敏感性;電容C1可以減少高頻干擾電流的差模和共模的干擾,為了使信號不產(chǎn)生延時,電容值一般選取100 pF以下;為了使整個電路有很強的抗共模干擾能力,在運算放大器的同相輸入端接2R2的電阻以使整個電路保持較好的對稱性;輸入端的2個分裂電阻之間接篏位二極管以對整個電路保護,防止突然的過電壓,篏位二極管應(yīng)該選擇具有低反向電流的快速二極管,在本設(shè)計中選用安捷倫的HSMS2702。
2.2 A/D轉(zhuǎn)換控制模塊
A/D轉(zhuǎn)換電路采用德州儀器(TI)公司生產(chǎn)的ADS7864[5],該芯片是高速6通道全差分輸入雙12位A/D轉(zhuǎn)換器,內(nèi)部含有2個500 kHz采樣速率的逐次逼近模數(shù)轉(zhuǎn)換器,可以同時進行采樣和轉(zhuǎn)換,2個模數(shù)轉(zhuǎn)換器分別對應(yīng)三路輸入通道(第一個模數(shù)轉(zhuǎn)換器對應(yīng)的通道為A0、B0、C0,第二個模數(shù)轉(zhuǎn)換器對應(yīng)的通道為A1、B1、C1),芯片含有三路差分采樣/保持放大器和一個多路模擬開關(guān)。六路通道被分為三對,各由HOLDA、HOLDB、HOLDC三個信號控制為采樣或保持模式,輸入信號在進入采樣保持電路之前經(jīng)過全差分電路運算,使其在500 kHz采樣率的情況下仍能保持高達(dá)80 dB的共模抑制比,對于高噪聲環(huán)境下輸入噪聲的抑制起到了非常重要的作用。
ADS7864有三種讀出模式,設(shè)計中通過CPU設(shè)置FPGA中的寄存器來確定采取何種模式,這樣CPU可以根據(jù)實際需要單獨地對某一路信號進行采樣。在此設(shè)置為循環(huán)模式,在第一個讀信號RD到來時讀取通道A0的數(shù)據(jù),第二個讀信號RD到來時讀取通道A1的數(shù)據(jù),隨后是B0、Bl、C0和C1, A/D轉(zhuǎn)換時序圖如圖3所示,每個讀操作將使ADS7864輸出16位信息,其中D15用于表明讀出數(shù)據(jù)是否有效(“1”有效),D14、D13、D12 用于表示所讀出數(shù)據(jù)的通道,D0~D11為該通道采樣結(jié)果數(shù)據(jù)。
根據(jù)系統(tǒng)要求,采用3片6通道的ADS7864構(gòu)成A/D轉(zhuǎn)換電路,F(xiàn)PGA和A/D的硬件接口如圖4所示。通過FPGA進行同步控制,實現(xiàn)對18路輸入信號的同步快速采樣。本系統(tǒng)將被測的三相電壓分別接至A0、B0、C0;三相電流分別接至A1、B1、C1;通過對HOLDA、HOLDB、HOLDC三個信號同時置低電平,實現(xiàn)三相電壓、電流的同步采樣,采樣轉(zhuǎn)換后的值被保存在6個寄存器中。
根據(jù)ADS7864的時序圖,在FPGA芯片EP2C20Q240中采用狀態(tài)機來設(shè)計A/D轉(zhuǎn)換控制模塊,在Quartus II 7.2中進行了仿真,數(shù)據(jù)讀取方式為循環(huán)模式,仿真結(jié)果如圖5所示。
2.3 頻率測量模塊
在頻率測量模塊中,首先對電壓信號進行濾波和整形,經(jīng)過比較器后得到一個方波信號,輸出的方波信號作為頻率測量模塊的輸入信號。常用的頻率測量方法有直接測頻法、測周期法和等精度測頻法。直接測頻法的基本原理是在單位時間T內(nèi)對被測脈沖信號進行計數(shù),若脈沖數(shù)為N,被測信號的頻率為f=N/T;測周法是用被測信號作為測量時間閘門,在被測脈沖的一個周期內(nèi),對周期為T的標(biāo)準(zhǔn)信號進行計數(shù),得到的計數(shù)值為N,則所測信號的頻率為f=1/(T×N)。但是這兩種方法都會產(chǎn)生±1的誤差,直接測頻法側(cè)重于高頻應(yīng)用,而測周法側(cè)重于低頻應(yīng)用。本文采用等精度測頻法,等精度頻率測量方法是在直接測頻方法基礎(chǔ)上發(fā)展而來的,它的實際閘門時間是不固定的,而是被測信號周期的整數(shù)倍,故與被測信號同步,因此又稱為多周期同步法。此方法消除了對被測信號計數(shù)時產(chǎn)生的±1個數(shù)字誤差,測量精度大大提高,而且實現(xiàn)了在整個測量期間的等精度測量,具有精度高及在測量過程中精度保持恒定的特點,且不隨被測號變化而變化。等精度測頻法的基本原理如圖6所示。
2.4 雙口RAM控制模塊
在本設(shè)計中,應(yīng)用FPGA采集多路數(shù)據(jù),還需要把采集到的部分?jǐn)?shù)據(jù)上傳到CPU,同時CPU也會和FPGA交換數(shù)據(jù),因此FPGA和CPU之間首先要解決兩者之間的通信方式。常用的數(shù)據(jù)交換主要有串行通信、并行通信、直接存儲器存取(DMA)、共享存儲器等方式。串行通信方式是利用處理器本身提供的串行口或者在芯片的基礎(chǔ)上用軟件或硬件開發(fā)一個串行口實現(xiàn)處理器之間的通信。這種方式相對來說比較簡單,適合處理器之間通信量不是很大或者較遠(yuǎn)距離傳輸?shù)膱龊?。并行?shù)據(jù)傳輸技術(shù)是提高數(shù)據(jù)傳輸率的重要手段,但是,由于并行傳送方式的前提是用同一時序傳輸信號和接收信號,而過分提升時鐘頻率將難以讓數(shù)據(jù)傳送的時序與時鐘合拍,布線長度稍有差異,數(shù)據(jù)就會以與時鐘不同的時序送達(dá),導(dǎo)致傳輸錯誤,同時提升時鐘頻率還容易引起信號線間的相互干擾,因此,并行方式難以實現(xiàn)高速化。直接存儲器存取是一種完全由硬件執(zhí)行數(shù)據(jù)交換的工作方式,在這種方式中,DMA控制器從CPU完全接管對總線的控制,數(shù)據(jù)交換不經(jīng)過CPU,而直接在內(nèi)存與設(shè)備之間進行;DMA方式一般用于高速地傳送成組的數(shù)據(jù),但是兩個處理器不能同時訪問存儲器。共享存儲器的方式通常采用雙口RAM來實現(xiàn),雙口RAM是一種性能優(yōu)越的快速通信器件,它提供兩套完全獨立的端口,每個端口都有完整的地址、數(shù)據(jù)和控制線,此時兩個處理器可以同時訪問雙口RAM(當(dāng)然不能同時訪問同一個地址單元),具有很快的存取速度,可以實現(xiàn)高速的數(shù)據(jù)交換。
本設(shè)計中采用共享存儲器的方式,選用一片CY7C026,是一個16 KB×16的雙口靜態(tài)RAM,硬件接口結(jié)構(gòu)框圖如圖7所示,使用FPGA分配片選、讀/寫和BUSY信號,防止FPGA和DSP同時對同一地址空間存取造成的沖突。
2.5 邏輯控制模塊
DSP通過邏輯控制模塊向FPGA發(fā)一些指令,同時讀取FPGA的狀態(tài);系統(tǒng)中把FPGA看做DSP的一個外設(shè),使用DSP的XZCS0AND1作為FPGA的片選信號,這樣,CPU既可以向FPGA發(fā)送命令,也可以從FPGA中讀一些狀態(tài)。
在Quartus II 7.2軟件平臺中包括一個專用模塊庫,稱之為IP Core,其中的各種硬件功能模塊都是經(jīng)過EDA廠商周密設(shè)計并且通過驗證的。設(shè)計中FFT運算模塊采用Altera公司自帶的FFT IP Core來實現(xiàn),在FPGA中以硬件邏輯實現(xiàn)FFT運算的功能,簡化設(shè)計并提高了系統(tǒng)的可靠性。
本文設(shè)計了一種多路數(shù)據(jù)同步實時采集系統(tǒng),應(yīng)用FPGA控制采集系統(tǒng)的各個模塊,其最大的特點是結(jié)構(gòu)靈活,有較強的通用性,適于模塊化設(shè)計,適合于實時信號處理,從而能夠提高整個系統(tǒng)的采集和處理效率。分析了各個子模塊的硬件結(jié)構(gòu)框圖和控制實現(xiàn)方法。實際應(yīng)用表明,采用該方法設(shè)計的系統(tǒng)能有效地完成多路同步實時數(shù)據(jù)采集任務(wù)。
參考文獻(xiàn)
[1] 楊淑英.電能質(zhì)量測量方法及其檢測裝置研究[J]. 華北電力大學(xué)學(xué)報, 2003,30(5).
[2] 曹暉,劉曉華,袁世英. 電能質(zhì)量測量系統(tǒng)中數(shù)據(jù)采集要求的定量分析[J]. 電測與儀表, 2004,41(463).
[3] 金燕,葛遠(yuǎn)香,梁凌飛,等.基于SOPC的電能質(zhì)量在線監(jiān)測儀的設(shè)計[J]. 浙江工業(yè)大學(xué)學(xué)報,2008,36(6).
[4] 余祖俊,朱力強,孫浩青,等.基于FPGA的多路視頻圖像高速同步采集系統(tǒng)[J].北京交通大學(xué)學(xué)報,1998,22(4).
[5] Texas Instruments Corporation. ADS7864 Data sheet[DB/OL]. 2005. http://focus.ti.com/lit/ds/symlink/ads7864.pdf.
[6] Altera Corporation.Cyclone II Device Handbook[DB/OL].2007. http://www.altera.com/literature/hb/cyc2/cyc2_cii5v1_01.pdf
[7] 夏宇聞.Verilog 數(shù)字系統(tǒng)設(shè)計教程[M]. 北京:北京航空航天大學(xué)出版社,2004.