麻志濱+廖雯+劉芳
摘 要: 為了實現(xiàn)對模擬量的高速采集與快速傅里葉分析,提出了一種基于FPGA的高速數(shù)據(jù)采集分析系統(tǒng)的設(shè)計方案,系統(tǒng)采用Cyclone系列FPGA配合高速A/D轉(zhuǎn)換器,并使用了Altera公司的定制快速傅里葉分析集成核,通信與上位機采用RS 232串行通信標準協(xié)議配合基于Matlab GUI的上位機分析軟件,并對多組高頻模擬信號進行了高速數(shù)據(jù)采集與快速傅里葉分析實驗,同時在上位機分析軟件中實時顯示出分析結(jié)果。實驗結(jié)果驗證了快速傅里葉分析理論,實現(xiàn)了低成本、高性能數(shù)據(jù)采集分析系統(tǒng)的設(shè)計完成。
關(guān)鍵詞: FPGA; 高速數(shù)據(jù)采集; 快速傅里葉分析; FIFO存儲器
中圖分類號: TN710?34 文獻標識碼: A 文章編號: 1004?373X(2014)16?0135?03
Design of high?speed data acquisition and analysis system based on FPGA
MA Zhi?bin, LIAO Wen, LIU Fang
(Harbin Institute of Technology, Weihai 264209, China)
Abstract: In order to realize the high?speed acquisition and fast Fourier analysis of analog quantity, a design scheme of high?speed data acquisition and analysis system based on FPGA is proposed in this paper. Cyclone series FPGA chip, high?speed A/D converter and Alteras fast Fourier analysis integration core are used in the system. RS?232 serial communication standard protocol and host analysis software based on Matlab GUI are adopted for the communication. The high?speed data acquisition and fast Fourier data analysis experiment are employed for multi?group high?frequency analog signal. The analysis result is displayed in real time in the principal computer analysis software. The fast Fourier analysis theory was validated in the experiment. The design of low cost but high performance data acquisition and analysis system was completed.
Keywords: FPGA; high?speed data acquisition; fast Fourier analysis; FIFO memory
0 引 言
在信號處理技術(shù)中,數(shù)據(jù)采集顯得尤為重要。數(shù)據(jù)采集的傳統(tǒng)設(shè)計方法,通常以單片機為控制核心,并配合A/D轉(zhuǎn)換器、存儲器等其他功能模塊工作??茖W技術(shù)飛速發(fā)展的今天,工業(yè)與科技各個領(lǐng)域均對數(shù)據(jù)采集速度提出了更高的要求,過去的單片機設(shè)計方案弊端嚴重地制約了數(shù)據(jù)采集技術(shù)的發(fā)展。單片機工作時運行頻率低,且主要依靠軟件編程算法實現(xiàn)數(shù)據(jù)的采集,“軟件式”采集使得采集速度和效率大打折扣[1]。而FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)則克服了傳統(tǒng)單片機的這一劣勢。FPGA工作時鐘頻率高,內(nèi)部延時小,運行工作全部由硬件邏輯實現(xiàn),速度快、效率高。
本文介紹一種基于FPGA,應(yīng)用高速ADC和快速傅里葉分析算法設(shè)計實現(xiàn)的高速數(shù)據(jù)采集分析系統(tǒng)。
1 系統(tǒng)硬件組成與設(shè)計
本設(shè)計以FPGA為核心,主要包括數(shù)據(jù)采集模塊、通信接口模塊以及電源模塊等幾部分。其中核心控制部分主要負責各部分模塊控制信號發(fā)生,完成對整個系統(tǒng)的邏輯控制和對來自上位機軟件面板采集分析模式的定義,并根據(jù)系統(tǒng)需要對ADC采集轉(zhuǎn)換后數(shù)據(jù)進行了合理編幀,電源模塊則為該系統(tǒng)提供可靠直流電源。系統(tǒng)的原理框圖如圖1所示。
圖1 系統(tǒng)原理框圖
1.1 數(shù)據(jù)采集模塊
該模塊由一片Altera公司的FPGA和一片高速ADC芯片組成。由于系統(tǒng)設(shè)計的最大采樣速度為15 MHz,則依據(jù)“香農(nóng)”采樣定理,采樣ADC的工作頻率至少應(yīng)該在30 MHz以上,才能保證采樣后的信號不失真。所以本系統(tǒng)選擇AD公司的AD9280作為采樣核心。該芯片精度為8位,工作范圍為2.7~5.5 V,功耗低,最高工作頻率為32 MSPS。經(jīng)試驗測試可很好地滿足系統(tǒng)高速采樣的要求。
通常在低速系統(tǒng)中常使用單片機(MCU)作為CPU主控制器。但在高速采集系統(tǒng)中,往往會受到MCU的限制,而且隨著速度越來越高,ADC,RAM,MCU之間的時序同步也會變得越來越困難。基于此本系統(tǒng)選擇了高速、多I/O口的FPGA芯片作為主控芯片,并配合ADC和RAM等其他模塊,從而較好地解決了采樣速度過高帶來的同步時序問題[2]。
FPGA是從PAL、GAL發(fā)展來的陣列型高密度PLO器件,具有密度高、速度高、低功耗等特點。特別適合作為復(fù)雜的組合邏輯控制核心。根據(jù)系統(tǒng)的設(shè)計要求,本設(shè)計中使用的FPGA芯片型號為Altera公司的EP2C8Q208[3?4]。并擁有8 000個可用門,可供用戶使用的I/O近100個,內(nèi)部計數(shù)器的工作頻率可達200 MHz以上。在本設(shè)計中FPGA主要實現(xiàn)以下邏輯功能:
(1) 接收采樣啟動信號,啟動A/D轉(zhuǎn)換,實現(xiàn)對ADC采樣控制;
(2) 在FPGA中定制FFT(快速傅里葉分析)IP核;
(3) 對采集后的信號進行快速傅里葉分析編幀,并將編幀后的分析結(jié)果寫入FIFO存儲器;
(4) 指示串口通信模塊實現(xiàn)采樣分析結(jié)果的上傳。
本系統(tǒng)的FPGA功能邏輯采用VHDL語言編寫,這是一種硬件描述語言,主要針對數(shù)字系統(tǒng)的行為、結(jié)構(gòu)、接口和功能進行描述。硬件電路的VHDL語言設(shè)計,可以使開發(fā)者無需編寫真值表或邏輯表達式。這樣使得設(shè)計硬件電路的難度大幅度降低,從而使工作效率得到提高,同時也縮短了開發(fā)周期[5]。
1.2 通信接口部分
串口通信是一種常用的通信協(xié)議標準,它具有使用靈活、連接方便、易于控制等特點。目前,仍有很多計算機外圍設(shè)備采用串行通信接口,本設(shè)計中為了控制設(shè)計方便也采用了串口通信。
在串口通信模塊和EP2C8Q208之間采用了FIFO(First in First out SRAM)芯片作為分析數(shù)據(jù)傳輸?shù)木彌_部分,這樣可以使得串口芯片和FPGA之間的最大數(shù)據(jù)傳輸速度大大超過串口線的速度,使之不會成為數(shù)據(jù)傳輸速度的瓶頸,從而有效地解決了FPGA內(nèi)部數(shù)據(jù)傳輸與串口傳輸速度不匹配的問題[6?7]。
2 FPGA主要模塊的邏輯實現(xiàn)
FPGA系統(tǒng)的設(shè)計模塊主要有數(shù)據(jù)采集模塊、快速傅里葉分析(FFT)模塊和通信控制模塊三部分。采集模塊分為邏輯控制模塊、時序生成模塊、時鐘邏輯控制模塊等。下面主要就快速傅里葉分析模塊和數(shù)據(jù)采集模塊進行描述。
2.1 數(shù)據(jù)采集模塊設(shè)計
本設(shè)計采用的AD轉(zhuǎn)換芯片為AD9280,其工作原理為:AD9280利用多級流水線架構(gòu)實現(xiàn)了低功耗高速數(shù)據(jù)轉(zhuǎn)換;它將整個的轉(zhuǎn)換精度分成幾個低精度的單階子轉(zhuǎn)換器,各階轉(zhuǎn)換的結(jié)果在時序控制下通過內(nèi)部數(shù)字校準電路實現(xiàn)了高精度的數(shù)據(jù)轉(zhuǎn)換。AD9280的流水線構(gòu)架使得它既工作在時鐘的上升沿又工作在下降沿。將AD9280的工作模式選擇好以及驅(qū)動電路配置好后,即可上電使芯片正常工作,芯片正常工作后只需在每個時鐘周期讀取ADC的數(shù)據(jù)輸入端口即可[8?9]。AD9280的工作時序圖如圖2所示。
圖2 AD9280工作圖
數(shù)據(jù)完成A/D轉(zhuǎn)換后將由一個數(shù)字濾波模塊處理。數(shù)字濾波采用8點滑動均值濾波?;瑒泳禐V波的原理為:把N個采樣數(shù)據(jù)設(shè)成一個列隊,列隊的長度固定為N,采樣數(shù)據(jù)按照先進先出的方式進入列隊,每進行一次新的采樣,就把采樣結(jié)果放入隊尾,而扔掉原來隊首的一個數(shù)據(jù),這樣在列隊中始終保持著N個“最新”的數(shù)據(jù)。計算濾波時,只要把隊列中的N個數(shù)據(jù)進行平均,即可得到新的濾波值?;瑒泳禐V波法對周期性的干擾有良好的抑制作用,對信號的平滑度高,適用于高頻振蕩系統(tǒng)。
如圖3為利用Quartus Ⅱ軟件自帶的嵌入式邏輯分析儀抓取到的濾波前后的信號波形。從波形可以看出,信號經(jīng)過濾波后消除了大部分毛刺抖動誤差,使信號波形趨于標準平滑[10]。在Quartus Ⅱ開發(fā)軟件中設(shè)計生成的A/D輸入濾波模塊如圖4所示。
該模塊共有三個輸入信號,一個輸出信號。clk25m為時鐘輸入信號,rst為復(fù)位信號,AD_in[7..0]為A/D芯片的8位數(shù)字輸出信號,data_out[9..0]為濾波后的輸出信號。
圖3 濾波前后的信號波形
圖4 滑動均值濾波模塊
2.2 快速傅里葉分析模塊設(shè)計
在現(xiàn)代科學技術(shù)發(fā)展的眾多領(lǐng)域中經(jīng)常會用到信號處理技術(shù),對信號處理的分析主要有兩個方面,一個是在時域里對信號進行分析,一個是在頻域里對信號進行分析,快速傅里葉變換(Fast Fourier Transform Algorithm,F(xiàn)FT)是經(jīng)常用到的一種方法??焖俑道锶~變換是由離散傅里葉變換(Discrete Fourier Transformation, DFT)發(fā)展而來,它是DFT的一種快速算法[11]。本設(shè)計中的FFT模塊是在Quartus Ⅱ開發(fā)軟件中的Mege Wizard Plug?In Manager中定制的。定制的FFT運算模塊的輸入數(shù)據(jù)位數(shù)為10位,旋轉(zhuǎn)因子為10位。生成的FFT運算模塊如圖5所示。
圖5 FFT運算模塊
FFT運算后的結(jié)果將被寫入一片F(xiàn)IFO存儲器中,當FIFO存儲到設(shè)定的上限值時,便向串口通信模塊產(chǎn)生一個請求信號,通知串口通信模塊此時可讀取FIFO數(shù)據(jù)。FIFO的設(shè)定上限值根據(jù)系統(tǒng)的FFT運算點數(shù)設(shè)定,設(shè)計上不能過于接近FIFO的總深度。這是由于在串口通信模塊響應(yīng)這一讀取請求信號時,并在FIFO中進行讀取分析結(jié)果的過程中,F(xiàn)PGA仍在控制進行數(shù)據(jù)的采集、分析和存儲。此時若設(shè)定上限值過于接近FIFO的總深度,將會發(fā)生FIFO寫入溢出的錯誤,這時部分分析結(jié)果將會被丟失。為了避免寫入溢出錯誤的發(fā)生,本系統(tǒng)中將FIFO芯片的半滿信號作為設(shè)定的寫入上限,當FIFO存儲器被寫滿其容量的一半時,F(xiàn)PGA便向串口模塊產(chǎn)生一個請求數(shù)據(jù)讀取信號。FIFO存儲器的其他功能信號有:讀寫數(shù)據(jù)信號q/data;讀寫使能信號rden/wren;讀空寫滿標志信號empty/full。分析結(jié)果data在寫使能有效時按照寫時鐘往FIFO里面存儲,在讀使能有效時,緩沖數(shù)據(jù)按照讀時鐘從q數(shù)據(jù)輸出總線上讀出[12]。其模擬仿真圖如圖6所示。
圖6 FIFO控制模塊仿真圖
在A/D采樣測試準確以及FFT IP核模塊仿真正常后,將系統(tǒng)整體連接好進行整體測試。系統(tǒng)采樣頻率為25 MHz,F(xiàn)FT分析點數(shù)為512點,因此可得頻譜分析分辨率為48.8 kHz。系統(tǒng)實測分析結(jié)果如圖7所示,所測輸入模擬信號為4.88 MHz的正弦波,測試結(jié)果與信號發(fā)生器中生成的標準信號一致,系統(tǒng)分析結(jié)果準確。
圖7 系統(tǒng)實測分析圖
3 結(jié) 語
本文完成高速數(shù)據(jù)采集、FFT分析系統(tǒng)的FPGA設(shè)計,該系統(tǒng)設(shè)計電路簡單、體積小,便于攜帶,可對工作現(xiàn)場的各類模擬信號進行高速采集和FFT分析。利用Quartus開發(fā)工具和VHDL硬件描述語言對FPGA進行現(xiàn)場設(shè)計、仿真和試驗驗證,便于設(shè)計的修改和功能優(yōu)化,很大程度上縮短了開發(fā)產(chǎn)品的設(shè)計周期。由于FPGA還具有在線編程的特點,這使得開發(fā)者可以根據(jù)現(xiàn)場變化的復(fù)雜情況,對FPGA的內(nèi)部邏輯控制部分進行修改,進一步增強了系統(tǒng)實際應(yīng)用的方便性和靈活性,經(jīng)試驗測試設(shè)計達到了滿意的測量、分析效果,且分析結(jié)果較為準確,是一種較為理想的高速數(shù)據(jù)采集、FFT分析的解決方案。
參考文獻
[1] 肖祖勝,程明.基于FPGA的數(shù)據(jù)采集分析系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2009(3):49?54.
[2] 馬建民,周長城.數(shù)據(jù)采集與處理技術(shù)[M].西安:西安電子科技大學出版社,2005.
[3] 楊真理.基于FPGA的數(shù)字系統(tǒng)設(shè)計[J].中國科技信息,2009(17):128?138.
[4] 馬軍.高速高性能數(shù)據(jù)采集系統(tǒng)的實現(xiàn)方法[J].數(shù)控技術(shù),2007(9):130?131.
[5] WEI Jian?min, YANG Yong?ming, GUO Qiao?hui. Design of real?time ECG signals processing system based on FPGA [J]. Journal of Electron Devices, 2005(3): 581?588.
[6] Compaq Computer Corporation. Universal serial bus specification [M]. Revision 2.0. USA: Compaq Computer Corporation, 2000.
[7] 萬耀,李小清,周云飛.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計[J].微計算機信息,2007(2):199?201.
[8] 徐海軍.FPGA在高性能數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計算機技術(shù)與應(yīng)用,2005(1):62?64.
[9] 王振華.基于FPGA的超高速數(shù)據(jù)采集系統(tǒng)的開發(fā)[D].北京:清華大學,2006.
[10] 胡廣書.數(shù)字信號處理:理論算法和實現(xiàn)[M].北京:清華大學出版社,1997.
[11] 付博.基于SoC的實際成像系統(tǒng)中的FFT處理器的設(shè)計[D].北京:中國科學院計算機技術(shù)研究所,2004.
[12] 蔡可紅.基于FPGA的FFT設(shè)計與實現(xiàn)[D].南京:南京理工大學,2006.
圖6 FIFO控制模塊仿真圖
在A/D采樣測試準確以及FFT IP核模塊仿真正常后,將系統(tǒng)整體連接好進行整體測試。系統(tǒng)采樣頻率為25 MHz,F(xiàn)FT分析點數(shù)為512點,因此可得頻譜分析分辨率為48.8 kHz。系統(tǒng)實測分析結(jié)果如圖7所示,所測輸入模擬信號為4.88 MHz的正弦波,測試結(jié)果與信號發(fā)生器中生成的標準信號一致,系統(tǒng)分析結(jié)果準確。
圖7 系統(tǒng)實測分析圖
3 結(jié) 語
本文完成高速數(shù)據(jù)采集、FFT分析系統(tǒng)的FPGA設(shè)計,該系統(tǒng)設(shè)計電路簡單、體積小,便于攜帶,可對工作現(xiàn)場的各類模擬信號進行高速采集和FFT分析。利用Quartus開發(fā)工具和VHDL硬件描述語言對FPGA進行現(xiàn)場設(shè)計、仿真和試驗驗證,便于設(shè)計的修改和功能優(yōu)化,很大程度上縮短了開發(fā)產(chǎn)品的設(shè)計周期。由于FPGA還具有在線編程的特點,這使得開發(fā)者可以根據(jù)現(xiàn)場變化的復(fù)雜情況,對FPGA的內(nèi)部邏輯控制部分進行修改,進一步增強了系統(tǒng)實際應(yīng)用的方便性和靈活性,經(jīng)試驗測試設(shè)計達到了滿意的測量、分析效果,且分析結(jié)果較為準確,是一種較為理想的高速數(shù)據(jù)采集、FFT分析的解決方案。
參考文獻
[1] 肖祖勝,程明.基于FPGA的數(shù)據(jù)采集分析系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2009(3):49?54.
[2] 馬建民,周長城.數(shù)據(jù)采集與處理技術(shù)[M].西安:西安電子科技大學出版社,2005.
[3] 楊真理.基于FPGA的數(shù)字系統(tǒng)設(shè)計[J].中國科技信息,2009(17):128?138.
[4] 馬軍.高速高性能數(shù)據(jù)采集系統(tǒng)的實現(xiàn)方法[J].數(shù)控技術(shù),2007(9):130?131.
[5] WEI Jian?min, YANG Yong?ming, GUO Qiao?hui. Design of real?time ECG signals processing system based on FPGA [J]. Journal of Electron Devices, 2005(3): 581?588.
[6] Compaq Computer Corporation. Universal serial bus specification [M]. Revision 2.0. USA: Compaq Computer Corporation, 2000.
[7] 萬耀,李小清,周云飛.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計[J].微計算機信息,2007(2):199?201.
[8] 徐海軍.FPGA在高性能數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計算機技術(shù)與應(yīng)用,2005(1):62?64.
[9] 王振華.基于FPGA的超高速數(shù)據(jù)采集系統(tǒng)的開發(fā)[D].北京:清華大學,2006.
[10] 胡廣書.數(shù)字信號處理:理論算法和實現(xiàn)[M].北京:清華大學出版社,1997.
[11] 付博.基于SoC的實際成像系統(tǒng)中的FFT處理器的設(shè)計[D].北京:中國科學院計算機技術(shù)研究所,2004.
[12] 蔡可紅.基于FPGA的FFT設(shè)計與實現(xiàn)[D].南京:南京理工大學,2006.
圖6 FIFO控制模塊仿真圖
在A/D采樣測試準確以及FFT IP核模塊仿真正常后,將系統(tǒng)整體連接好進行整體測試。系統(tǒng)采樣頻率為25 MHz,F(xiàn)FT分析點數(shù)為512點,因此可得頻譜分析分辨率為48.8 kHz。系統(tǒng)實測分析結(jié)果如圖7所示,所測輸入模擬信號為4.88 MHz的正弦波,測試結(jié)果與信號發(fā)生器中生成的標準信號一致,系統(tǒng)分析結(jié)果準確。
圖7 系統(tǒng)實測分析圖
3 結(jié) 語
本文完成高速數(shù)據(jù)采集、FFT分析系統(tǒng)的FPGA設(shè)計,該系統(tǒng)設(shè)計電路簡單、體積小,便于攜帶,可對工作現(xiàn)場的各類模擬信號進行高速采集和FFT分析。利用Quartus開發(fā)工具和VHDL硬件描述語言對FPGA進行現(xiàn)場設(shè)計、仿真和試驗驗證,便于設(shè)計的修改和功能優(yōu)化,很大程度上縮短了開發(fā)產(chǎn)品的設(shè)計周期。由于FPGA還具有在線編程的特點,這使得開發(fā)者可以根據(jù)現(xiàn)場變化的復(fù)雜情況,對FPGA的內(nèi)部邏輯控制部分進行修改,進一步增強了系統(tǒng)實際應(yīng)用的方便性和靈活性,經(jīng)試驗測試設(shè)計達到了滿意的測量、分析效果,且分析結(jié)果較為準確,是一種較為理想的高速數(shù)據(jù)采集、FFT分析的解決方案。
參考文獻
[1] 肖祖勝,程明.基于FPGA的數(shù)據(jù)采集分析系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2009(3):49?54.
[2] 馬建民,周長城.數(shù)據(jù)采集與處理技術(shù)[M].西安:西安電子科技大學出版社,2005.
[3] 楊真理.基于FPGA的數(shù)字系統(tǒng)設(shè)計[J].中國科技信息,2009(17):128?138.
[4] 馬軍.高速高性能數(shù)據(jù)采集系統(tǒng)的實現(xiàn)方法[J].數(shù)控技術(shù),2007(9):130?131.
[5] WEI Jian?min, YANG Yong?ming, GUO Qiao?hui. Design of real?time ECG signals processing system based on FPGA [J]. Journal of Electron Devices, 2005(3): 581?588.
[6] Compaq Computer Corporation. Universal serial bus specification [M]. Revision 2.0. USA: Compaq Computer Corporation, 2000.
[7] 萬耀,李小清,周云飛.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計[J].微計算機信息,2007(2):199?201.
[8] 徐海軍.FPGA在高性能數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計算機技術(shù)與應(yīng)用,2005(1):62?64.
[9] 王振華.基于FPGA的超高速數(shù)據(jù)采集系統(tǒng)的開發(fā)[D].北京:清華大學,2006.
[10] 胡廣書.數(shù)字信號處理:理論算法和實現(xiàn)[M].北京:清華大學出版社,1997.
[11] 付博.基于SoC的實際成像系統(tǒng)中的FFT處理器的設(shè)計[D].北京:中國科學院計算機技術(shù)研究所,2004.
[12] 蔡可紅.基于FPGA的FFT設(shè)計與實現(xiàn)[D].南京:南京理工大學,2006.