基于FPGA多通道同步數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
數(shù)據(jù)采集在工業(yè)測控領(lǐng)域里有廣泛的應(yīng)用,它已成為計(jì)算機(jī)測控系統(tǒng)的一個(gè)重要的環(huán)節(jié),尤其在設(shè)備故障監(jiān)測系統(tǒng)中,由于各種設(shè)備的結(jié)構(gòu)復(fù)雜,運(yùn)動(dòng)形式多種多樣,發(fā)生故障的可能部位很難確定,因此我們需要從設(shè)備的各個(gè)部位來提取大量的、連續(xù)的數(shù)據(jù)作為設(shè)備狀態(tài)的信息,以此來分析、判斷設(shè)備是否存在故障,這就需要高速、高性能的數(shù)據(jù)采集系統(tǒng)來保證采集到的數(shù)據(jù)的實(shí)時(shí)性;同時(shí),我們需要對同一設(shè)備的不同位置的信號(hào)進(jìn)行同步采集,并借助一些手段來提取特征(例如繪制軸心軌跡圖)以判斷設(shè)備的運(yùn)行狀態(tài)。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中,通常采用單片機(jī)或DSP作為主控制器來控制ADC、存儲(chǔ)器及其他相關(guān)的外圍電路來工作。隨著可再生能源應(yīng)用的日益增多,以此建立的分布式發(fā)電系統(tǒng)也逐漸增加。為了更好地對分布式電源進(jìn)行控制,通常需要對多個(gè)模擬信號(hào)進(jìn)行實(shí)時(shí)數(shù)據(jù)采集,同時(shí)為了保證數(shù)據(jù)的一致性,必須同時(shí)對數(shù)據(jù)進(jìn)行采樣[1-2]。常用的數(shù)據(jù)采集方案往往以單片機(jī)為控制核心,控制A/D(模數(shù)轉(zhuǎn)換器)對多路信號(hào)進(jìn)行采集及處理,但由于單片機(jī)本身的指令周期以及處理速度的影響,難以達(dá)到對多通道高速數(shù)據(jù)實(shí)時(shí)采集的要求;并且單片機(jī)控制的各種功能模塊要靠軟件的運(yùn)行來實(shí)現(xiàn),軟件運(yùn)行時(shí)間在整個(gè)采樣時(shí)間中占很大的比例,對并行的多路高速數(shù)據(jù)采集的速度和效率較低;而FPGA在高速數(shù)據(jù)采集方面相比單片機(jī)具有較好的優(yōu)勢,全部控制邏輯由硬件來完成,適合對時(shí)序要求嚴(yán)格的多路高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)[3]。
1 系統(tǒng)結(jié)構(gòu)圖
分布式電源通常通過并網(wǎng)逆變器接入電網(wǎng),為了實(shí)現(xiàn)對分布式發(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)算電路、頻率測量電路、三相PLL相位鎖定電路、雙口RAM控制模塊以及CPU對FPGA控制的邏輯控制模塊等[4]。
設(shè)計(jì)的采集系統(tǒng)主要采用Altera公司的FPGA(Cyclone II EP2C20Q240)來實(shí)現(xiàn)[6]。在FPGA內(nèi)部,集成了大部分的控制模塊,主要有A/D轉(zhuǎn)換控制模塊、雙口RAM控制模塊、頻率測量模塊及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è)電路對干擾的敏感性;電容C1可以減少高頻干擾電流的差模和共模的干擾,為了使信號(hào)不產(chǎn)生延時(shí),電容值一般選取100 pF以下;為了使整個(gè)電路有很強(qiáng)的抗共模干擾能力,在運(yùn)算放大器的同相輸入端接2R2的電阻以使整個(gè)電路保持較好的對稱性;輸入端的2個(gè)分裂電阻之間接篏位二極管以對整個(gè)電路保護(hù),防止突然的過電壓,篏位二極管應(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)換器分別對應(yīng)三路輸入通道(第一個(gè)模數(shù)轉(zhuǎn)換器對應(yīng)的通道為A0、B0、C0,第二個(gè)模數(shù)轉(zhuǎn)換器對應(yīng)的通道為A1、B1、C1),芯片含有三路差分采樣/保持放大器和一個(gè)多路模擬開關(guān)。六路通道被分為三對,各由HOLDA、HOLDB、HOLDC三個(gè)信號(hào)控制為采樣或保持模式,輸入信號(hào)在進(jìn)入采樣保持電路之前經(jīng)過全差分電路運(yùn)算,使其在500 kHz采樣率的情況下仍能保持高達(dá)80 dB的共模抑制比,對于高噪聲環(huán)境下輸入噪聲的抑制起到了非常重要的作用。[!--empirenews.page--]
ADS7864有三種讀出模式,設(shè)計(jì)中通過CPU設(shè)置FPGA中的寄存器來確定采取何種模式,這樣CPU可以根據(jù)實(shí)際需要單獨(dú)地對某一路信號(hào)進(jìn)行采樣。在此設(shè)置為循環(huán)模式,在第一個(gè)讀信號(hào)RD到來時(shí)讀取通道A0的數(shù)據(jù),第二個(gè)讀信號(hào)RD到來時(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所示。通過FPGA進(jìn)行同步控制,實(shí)現(xiàn)對18路輸入信號(hào)的同步快速采樣。本系統(tǒng)將被測的三相電壓分別接至A0、B0、C0;三相電流分別接至A1、B1、C1;通過對HOLDA、HOLDB、HOLDC三個(gè)信號(hào)同時(shí)置低電平,實(shí)現(xiàn)三相電壓、電流的同步采樣,采樣轉(zhuǎn)換后的值被保存在6個(gè)寄存器中。
[!--empirenews.page--]
根據(jù)ADS7864的時(shí)序圖,在FPGA芯片EP2C20Q240中采用狀態(tài)機(jī)來設(shè)計(jì)A/D轉(zhuǎn)換控制模塊,在Quartus II 7.2中進(jìn)行了仿真,數(shù)據(jù)讀取方式為循環(huán)模式,仿真結(jié)果如圖5所示。
2.3 頻率測量模塊
在頻率測量模塊中,首先對電壓信號(hào)進(jìn)行濾波和整形,經(jīng)過比較器后得到一個(gè)方波信號(hào),輸出的方波信號(hào)作為頻率測量模塊的輸入信號(hào)。常用的頻率測量方法有直接測頻法、測周期法和等精度測頻法。直接測頻法的基本原理是在單位時(shí)間T內(nèi)對被測脈沖信號(hào)進(jìn)行計(jì)數(shù),若脈沖數(shù)為N,被測信號(hào)的頻率為f=N/T;測周法是用被測信號(hào)作為測量時(shí)間閘門,在被測脈沖的一個(gè)周期內(nèi),對周期為T的標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),得到的計(jì)數(shù)值為N,則所測信號(hào)的頻率為f=1/(T×N)。但是這兩種方法都會(huì)產(chǎn)生±1的誤差,直接測頻法側(cè)重于高頻應(yīng)用,而測周法側(cè)重于低頻應(yīng)用。本文采用等精度測頻法,等精度頻率測量方法是在直接測頻方法基礎(chǔ)上發(fā)展而來的,它的實(shí)際閘門時(shí)間是不固定的,而是被測信號(hào)周期的整數(shù)倍,故與被測信號(hào)同步,因此又稱為多周期同步法。此方法消除了對被測信號(hào)計(jì)數(shù)時(shí)產(chǎn)生的±1個(gè)數(shù)字誤差,測量精度大大提高,而且實(shí)現(xiàn)了在整個(gè)測量期間的等精度測量,具有精度高及在測量過程中精度保持恒定的特點(diǎn),且不隨被測號(hào)變化而變化。等精度測頻法的基本原理如圖6所示。
[!--empirenews.page--]
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ǔ)器存取、共享存儲(chǔ)器等方式。串行通信方式是利用處理器本身提供的串行口或者在芯片的基礎(chǔ)上用軟件或硬件開發(fā)一個(gè)串行口實(shí)現(xiàn)處理器之間的通信。這種方式相對來說比較簡單,適合處理器之間通信量不是很大或者較遠(yuǎn)距離傳輸?shù)膱龊?。并行?shù)據(jù)傳輸技術(shù)是提高數(shù)據(jù)傳輸率的重要手段,但是,由于并行傳送方式的前提是用同一時(shí)序傳輸信號(hào)和接收信號(hào),而過分提升時(shí)鐘頻率將難以讓數(shù)據(jù)傳送的時(shí)序與時(shí)鐘合拍,布線長度稍有差異,數(shù)據(jù)就會(huì)以與時(shí)鐘不同的時(shí)序送達(dá),導(dǎo)致傳輸錯(cuò)誤,同時(shí)提升時(shí)鐘頻率還容易引起信號(hào)線間的相互干擾,因此,并行方式難以實(shí)現(xiàn)高速化。直接存儲(chǔ)器存取是一種完全由硬件執(zhí)行數(shù)據(jù)交換的工作方式,在這種方式中,DMA控制器從CPU完全接管對總線的控制,數(shù)據(jù)交換不經(jīng)過CPU,而直接在內(nèi)存與設(shè)備之間進(jìn)行;DMA方式一般用于高速地傳送成組的數(shù)據(jù),但是兩個(gè)處理器不能同時(shí)訪問存儲(chǔ)器。共享存儲(chǔ)器的方式通常采用雙口RAM來實(shí)現(xiàn),雙口RAM是一種性能優(yōu)越的快速通信器件,它提供兩套完全獨(dú)立的端口,每個(gè)端口都有完整的地址、數(shù)據(jù)和控制線,此時(shí)兩個(gè)處理器可以同時(shí)訪問雙口RAM,具有很快的存取速度,可以實(shí)現(xiàn)高速的數(shù)據(jù)交換。
本設(shè)計(jì)中采用共享存儲(chǔ)器的方式,選用一片CY7C026,是一個(gè)16 KB×16的雙口靜態(tài)RAM,硬件接口結(jié)構(gòu)框圖如圖7所示,使用FPGA分配片選、讀/寫和BUSY信號(hào),防止FPGA和DSP同時(shí)對同一地址空間存取造成的沖突。
2.5 雙端口RAM的應(yīng)用
利用傳統(tǒng)方法設(shè)計(jì)的高速數(shù)據(jù)采集系統(tǒng)由于集成度低、電路復(fù)雜,高速運(yùn)行電路干擾大,電路可靠性低,難以滿足高速數(shù)據(jù)采集工作的要求。應(yīng)用FPGA可以把數(shù)據(jù)采集電路中的數(shù)據(jù)緩存、控制時(shí)序邏輯、地址譯碼、總線接口等電路全部集成進(jìn)一片芯片中,高集成性增強(qiáng)了系統(tǒng)的穩(wěn)定性,為高速數(shù)據(jù)采集提供了理想的解決方案。
2.6 邏輯控制模塊
DSP通過邏輯控制模塊向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è)專用模塊庫,稱之為IP Core,其中的各種硬件功能模塊都是經(jīng)過EDA廠商周密設(shè)計(jì)并且通過驗(yàn)證的。設(shè)計(jì)中FFT運(yùn)算模塊采用Altera公司自帶的FFT IP Core來實(shí)現(xiàn),在FPGA中以硬件邏輯實(shí)現(xiàn)FFT運(yù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ù)。