《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的多路同步實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)
基于FPGA的多路同步實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)
侯朝勇, 胡學(xué)浩, 莊 童
(中國(guó)電力科學(xué)研究院, 北京100192)
摘要: 結(jié)合數(shù)據(jù)采集系統(tǒng)在電力系統(tǒng)中的應(yīng)用,設(shè)計(jì)了一種基于FPGA的多路同步實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),該系統(tǒng)將多個(gè)功能模塊集成到一片F(xiàn)PGA中,構(gòu)成片上可編程系統(tǒng),使用一片F(xiàn)PGA完成對(duì)A/D轉(zhuǎn)換和雙口RAM等模塊的控制;給出了系統(tǒng)的硬件原理框圖,并結(jié)合系統(tǒng)的設(shè)計(jì)方案對(duì)其中的主要功能模塊進(jìn)行了闡述;以此構(gòu)成的多路同步實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)具有性能穩(wěn)定、實(shí)時(shí)性強(qiáng)、集成度高、擴(kuò)展性靈活等特點(diǎn)。
關(guān)鍵詞: FPGA 雙口RAM 多通道
Abstract:
Key words :

摘   要: 結(jié)合數(shù)據(jù)采集系統(tǒng)在電力系統(tǒng)中的應(yīng)用,設(shè)計(jì)了一種基于FPGA的多路同步實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),該系統(tǒng)將多個(gè)功能模塊集成到一片F(xiàn)PGA中,構(gòu)成片上可編程系統(tǒng),使用一片F(xiàn)PGA完成對(duì)A/D轉(zhuǎn)換和雙口RAM等模塊的控制;給出了系統(tǒng)的硬件原理框圖,并結(jié)合系統(tǒng)的設(shè)計(jì)方案對(duì)其中的主要功能模塊進(jìn)行了闡述;以此構(gòu)成的多路同步實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)具有性能穩(wěn)定、實(shí)時(shí)性強(qiáng)、集成度高、擴(kuò)展性靈活等特點(diǎn)。
關(guān)鍵詞: FPGA; A/D; 雙口RAM; 多通道

  隨著可再生能源應(yīng)用的日益增多,以此建立的分布式發(fā)電系統(tǒng)也逐漸增加。為了更好地對(duì)分布式電源進(jìn)行控制,通常需要對(duì)多個(gè)模擬信號(hào)進(jìn)行實(shí)時(shí)數(shù)據(jù)采集,同時(shí)為了保證數(shù)據(jù)的一致性,必須同時(shí)對(duì)數(shù)據(jù)進(jìn)行采樣[1-2]。常用的數(shù)據(jù)采集方案往往以單片機(jī)為控制核心,控制A/D(模數(shù)轉(zhuǎn)換器)對(duì)多路信號(hào)進(jìn)行采集及處理,但由于單片機(jī)本身的指令周期以及處理速度的影響,難以達(dá)到對(duì)多通道高速數(shù)據(jù)實(shí)時(shí)采集的要求;并且單片機(jī)控制的各種功能模塊要靠軟件的運(yùn)行來(lái)實(shí)現(xiàn),軟件運(yùn)行時(shí)間在整個(gè)采樣時(shí)間中占很大的比例,對(duì)并行的多路高速數(shù)據(jù)采集的速度和效率較低;而FPGA在高速數(shù)據(jù)采集方面相比單片機(jī)具有較好的優(yōu)勢(shì),全部控制邏輯由硬件來(lái)完成,適合對(duì)時(shí)序要求嚴(yán)格的多路高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)[3]。
1 系統(tǒng)結(jié)構(gòu)圖
  分布式電源通常通過(guò)并網(wǎng)逆變器接入電網(wǎng),為了實(shí)現(xiàn)對(duì)分布式發(fā)電的靈活控制,需要采集電網(wǎng)側(cè)的電壓電流信號(hào)、分布式電源逆變器側(cè)的電壓電流信號(hào)以及逆變器直流母線側(cè)的電壓和電流。采集系統(tǒng)整體結(jié)構(gòu)如圖1所示。主要包括電壓電流互感器、強(qiáng)電隔離電路、模擬信號(hào)處理電路、模數(shù)轉(zhuǎn)換(A/D)電路、A/D控制電路、FFT運(yùn)算電路、頻率測(cè)量電路、三相PLL相位鎖定電路、雙口RAM控制模塊以及CPU對(duì)FPGA控制的邏輯控制模塊等[4]。


  設(shè)計(jì)的采集系統(tǒng)主要采用Altera公司的FPGA(Cyclone II EP2C20Q240)來(lái)實(shí)現(xiàn)[6]。在FPGA內(nèi)部,集成了大部分的控制模塊,主要有A/D轉(zhuǎn)換控制模塊、雙口RAM控制模塊、頻率測(cè)量模塊及FFT運(yùn)算模塊等,采集到的數(shù)據(jù)存儲(chǔ)到外部的雙口RAM中,以便與CPU共享數(shù)據(jù)。
2 系統(tǒng)模塊設(shè)計(jì)
2.1 模擬信號(hào)處理電路

  模擬信號(hào)處理電路如圖2所示,主要處理傳感器輸出的模擬信號(hào),并送入A/D模塊。電阻R1的阻值選擇10 kΩ,可以減少整個(gè)電路對(duì)干擾的敏感性;電容C1可以減少高頻干擾電流的差模和共模的干擾,為了使信號(hào)不產(chǎn)生延時(shí),電容值一般選取100 pF以下;為了使整個(gè)電路有很強(qiáng)的抗共模干擾能力,在運(yùn)算放大器的同相輸入端接2R2的電阻以使整個(gè)電路保持較好的對(duì)稱性;輸入端的2個(gè)分裂電阻之間接篏位二極管以對(duì)整個(gè)電路保護(hù),防止突然的過(guò)電壓,篏位二極管應(yīng)該選擇具有低反向電流的快速二極管,在本設(shè)計(jì)中選用安捷倫的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個(gè)500 kHz采樣速率的逐次逼近模數(shù)轉(zhuǎn)換器,可以同時(shí)進(jìn)行采樣和轉(zhuǎn)換,2個(gè)模數(shù)轉(zhuǎn)換器分別對(duì)應(yīng)三路輸入通道(第一個(gè)模數(shù)轉(zhuǎn)換器對(duì)應(yīng)的通道為A0、B0、C0,第二個(gè)模數(shù)轉(zhuǎn)換器對(duì)應(yīng)的通道為A1、B1、C1),芯片含有三路差分采樣/保持放大器和一個(gè)多路模擬開(kāi)關(guān)。六路通道被分為三對(duì),各由HOLDA、HOLDB、HOLDC三個(gè)信號(hào)控制為采樣或保持模式,輸入信號(hào)在進(jìn)入采樣保持電路之前經(jīng)過(guò)全差分電路運(yùn)算,使其在500 kHz采樣率的情況下仍能保持高達(dá)80 dB的共模抑制比,對(duì)于高噪聲環(huán)境下輸入噪聲的抑制起到了非常重要的作用。
  ADS7864有三種讀出模式,設(shè)計(jì)中通過(guò)CPU設(shè)置FPGA中的寄存器來(lái)確定采取何種模式,這樣CPU可以根據(jù)實(shí)際需要單獨(dú)地對(duì)某一路信號(hào)進(jìn)行采樣。在此設(shè)置為循環(huán)模式,在第一個(gè)讀信號(hào)RD到來(lái)時(shí)讀取通道A0的數(shù)據(jù),第二個(gè)讀信號(hào)RD到來(lái)時(shí)讀取通道A1的數(shù)據(jù),隨后是B0、Bl、C0和C1, A/D轉(zhuǎn)換時(shí)序圖如圖3所示,每個(gè)讀操作將使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所示。通過(guò)FPGA進(jìn)行同步控制,實(shí)現(xiàn)對(duì)18路輸入信號(hào)的同步快速采樣。本系統(tǒng)將被測(cè)的三相電壓分別接至A0、B0、C0;三相電流分別接至A1、B1、C1;通過(guò)對(duì)HOLDA、HOLDB、HOLDC三個(gè)信號(hào)同時(shí)置低電平,實(shí)現(xiàn)三相電壓、電流的同步采樣,采樣轉(zhuǎn)換后的值被保存在6個(gè)寄存器中。


  根據(jù)ADS7864的時(shí)序圖,在FPGA芯片EP2C20Q240中采用狀態(tài)機(jī)來(lái)設(shè)計(jì)A/D轉(zhuǎn)換控制模塊,在Quartus II 7.2中進(jìn)行了仿真,數(shù)據(jù)讀取方式為循環(huán)模式,仿真結(jié)果如圖5所示。


2.3 頻率測(cè)量模塊
  在頻率測(cè)量模塊中,首先對(duì)電壓信號(hào)進(jìn)行濾波和整形,經(jīng)過(guò)比較器后得到一個(gè)方波信號(hào),輸出的方波信號(hào)作為頻率測(cè)量模塊的輸入信號(hào)。常用的頻率測(cè)量方法有直接測(cè)頻法、測(cè)周期法和等精度測(cè)頻法。直接測(cè)頻法的基本原理是在單位時(shí)間T內(nèi)對(duì)被測(cè)脈沖信號(hào)進(jìn)行計(jì)數(shù),若脈沖數(shù)為N,被測(cè)信號(hào)的頻率為f=N/T;測(cè)周法是用被測(cè)信號(hào)作為測(cè)量時(shí)間閘門(mén),在被測(cè)脈沖的一個(gè)周期內(nèi),對(duì)周期為T(mén)的標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),得到的計(jì)數(shù)值為N,則所測(cè)信號(hào)的頻率為f=1/(T×N)。但是這兩種方法都會(huì)產(chǎn)生±1的誤差,直接測(cè)頻法側(cè)重于高頻應(yīng)用,而測(cè)周法側(cè)重于低頻應(yīng)用。本文采用等精度測(cè)頻法,等精度頻率測(cè)量方法是在直接測(cè)頻方法基礎(chǔ)上發(fā)展而來(lái)的,它的實(shí)際閘門(mén)時(shí)間是不固定的,而是被測(cè)信號(hào)周期的整數(shù)倍,故與被測(cè)信號(hào)同步,因此又稱為多周期同步法。此方法消除了對(duì)被測(cè)信號(hào)計(jì)數(shù)時(shí)產(chǎn)生的±1個(gè)數(shù)字誤差,測(cè)量精度大大提高,而且實(shí)現(xiàn)了在整個(gè)測(cè)量期間的等精度測(cè)量,具有精度高及在測(cè)量過(guò)程中精度保持恒定的特點(diǎn),且不隨被測(cè)號(hào)變化而變化。等精度測(cè)頻法的基本原理如圖6所示。


2.4 雙口RAM控制模塊
  在本設(shè)計(jì)中,應(yīng)用FPGA采集多路數(shù)據(jù),還需要把采集到的部分?jǐn)?shù)據(jù)上傳到CPU,同時(shí)CPU也會(huì)和FPGA交換數(shù)據(jù),因此FPGA和CPU之間首先要解決兩者之間的通信方式。常用的數(shù)據(jù)交換主要有串行通信、并行通信、直接存儲(chǔ)器存取(DMA)、共享存儲(chǔ)器等方式。串行通信方式是利用處理器本身提供的串行口或者在芯片的基礎(chǔ)上用軟件或硬件開(kāi)發(fā)一個(gè)串行口實(shí)現(xiàn)處理器之間的通信。這種方式相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,適合處理器之間通信量不是很大或者較遠(yuǎn)距離傳輸?shù)膱?chǎng)合。并行數(shù)據(jù)傳輸技術(shù)是提高數(shù)據(jù)傳輸率的重要手段,但是,由于并行傳送方式的前提是用同一時(shí)序傳輸信號(hào)和接收信號(hào),而過(guò)分提升時(shí)鐘頻率將難以讓數(shù)據(jù)傳送的時(shí)序與時(shí)鐘合拍,布線長(zhǎng)度稍有差異,數(shù)據(jù)就會(huì)以與時(shí)鐘不同的時(shí)序送達(dá),導(dǎo)致傳輸錯(cuò)誤,同時(shí)提升時(shí)鐘頻率還容易引起信號(hào)線間的相互干擾,因此,并行方式難以實(shí)現(xiàn)高速化。直接存儲(chǔ)器存取是一種完全由硬件執(zhí)行數(shù)據(jù)交換的工作方式,在這種方式中,DMA控制器從CPU完全接管對(duì)總線的控制,數(shù)據(jù)交換不經(jīng)過(guò)CPU,而直接在內(nèi)存與設(shè)備之間進(jìn)行;DMA方式一般用于高速地傳送成組的數(shù)據(jù),但是兩個(gè)處理器不能同時(shí)訪問(wèn)存儲(chǔ)器。共享存儲(chǔ)器的方式通常采用雙口RAM來(lái)實(shí)現(xiàn),雙口RAM是一種性能優(yōu)越的快速通信器件,它提供兩套完全獨(dú)立的端口,每個(gè)端口都有完整的地址、數(shù)據(jù)和控制線,此時(shí)兩個(gè)處理器可以同時(shí)訪問(wèn)雙口RAM(當(dāng)然不能同時(shí)訪問(wèn)同一個(gè)地址單元),具有很快的存取速度,可以實(shí)現(xiàn)高速的數(shù)據(jù)交換。
  本設(shè)計(jì)中采用共享存儲(chǔ)器的方式,選用一片CY7C026,是一個(gè)16 KB×16的雙口靜態(tài)RAM,硬件接口結(jié)構(gòu)框圖如圖7所示,使用FPGA分配片選、讀/寫(xiě)和BUSY信號(hào),防止FPGA和DSP同時(shí)對(duì)同一地址空間存取造成的沖突。


2.5 邏輯控制模塊
  DSP通過(guò)邏輯控制模塊向FPGA發(fā)一些指令,同時(shí)讀取FPGA的狀態(tài);系統(tǒng)中把FPGA看做DSP的一個(gè)外設(shè),使用DSP的XZCS0AND1作為FPGA的片選信號(hào),這樣,CPU既可以向FPGA發(fā)送命令,也可以從FPGA中讀一些狀態(tài)。
  在Quartus II 7.2軟件平臺(tái)中包括一個(gè)專用模塊庫(kù),稱之為IP Core,其中的各種硬件功能模塊都是經(jīng)過(guò)EDA廠商周密設(shè)計(jì)并且通過(guò)驗(yàn)證的。設(shè)計(jì)中FFT運(yùn)算模塊采用Altera公司自帶的FFT IP Core來(lái)實(shí)現(xiàn),在FPGA中以硬件邏輯實(shí)現(xiàn)FFT運(yùn)算的功能,簡(jiǎn)化設(shè)計(jì)并提高了系統(tǒng)的可靠性。
  本文設(shè)計(jì)了一種多路數(shù)據(jù)同步實(shí)時(shí)采集系統(tǒng),應(yīng)用FPGA控制采集系統(tǒng)的各個(gè)模塊,其最大的特點(diǎn)是結(jié)構(gòu)靈活,有較強(qiáng)的通用性,適于模塊化設(shè)計(jì),適合于實(shí)時(shí)信號(hào)處理,從而能夠提高整個(gè)系統(tǒng)的采集和處理效率。分析了各個(gè)子模塊的硬件結(jié)構(gòu)框圖和控制實(shí)現(xiàn)方法。實(shí)際應(yīng)用表明,采用該方法設(shè)計(jì)的系統(tǒng)能有效地完成多路同步實(shí)時(shí)數(shù)據(jù)采集任務(wù)。
參考文獻(xiàn)
[1]     楊淑英.電能質(zhì)量測(cè)量方法及其檢測(cè)裝置研究[J]. 華北電力大學(xué)學(xué)報(bào), 2003,30(5).
[2]     曹暉,劉曉華,袁世英. 電能質(zhì)量測(cè)量系統(tǒng)中數(shù)據(jù)采集要求的定量分析[J]. 電測(cè)與儀表, 2004,41(463).
[3]     金燕,葛遠(yuǎn)香,梁凌飛,等.基于SOPC的電能質(zhì)量在線監(jiān)測(cè)儀的設(shè)計(jì)[J]. 浙江工業(yè)大學(xué)學(xué)報(bào),2008,36(6).
[4]     余祖俊,朱力強(qiáng),孫浩青,等.基于FPGA的多路視頻圖像高速同步采集系統(tǒng)[J].北京交通大學(xué)學(xué)報(bào),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è)計(jì)教程[M]. 北京:北京航空航天大學(xué)出版社,2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。