基于FPGA的高速實(shí)時數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
摘要:設(shè)計(jì)的基于FPGA的高速實(shí)時數(shù)據(jù)采集系統(tǒng),可控制6路模擬信號的采集和處理,FPGA中的6個FIFO對數(shù)據(jù)進(jìn)行緩存,數(shù)據(jù)總線傳給DSP進(jìn)行實(shí)時處理和上傳給上位機(jī)顯示。程序部分是用Verilog HDL語言,并利用QuartusⅡ等EDA軟件進(jìn)行仿真,驗(yàn)證了設(shè)計(jì)功能的正確性。
關(guān)鍵詞:FPGA;Verilog HDL;FIFO;數(shù)據(jù)采集
0 引言
隨著當(dāng)今社會信息技術(shù)的快速發(fā)展,高速數(shù)據(jù)采集及處理在人們生活、現(xiàn)代工業(yè)和科學(xué)研究等很多領(lǐng)域中廣泛地應(yīng)用。同樣,在一些高精度、快速的測量中需要對數(shù)據(jù)進(jìn)行高質(zhì)量、高速度的采集。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)往往采用單片機(jī)或數(shù)字信號處理器(DSP)作為控制器,來控制模/數(shù)轉(zhuǎn)換器(ADC)、存儲器和其他外圍電路的工作。但由于單片機(jī)本身的指令周期以及處理速度的影響,效率較低,很難滿足系統(tǒng)對數(shù)據(jù)采集系統(tǒng)實(shí)時性和同步性的要求。同時,F(xiàn)PGA具有高的時鐘頻率,運(yùn)行速度快,開發(fā)周期短,集成度高,功耗低,設(shè)計(jì)費(fèi)用低,組成形式靈活等諸多優(yōu)點(diǎn)。因此,設(shè)計(jì)利用FPGA的高速實(shí)時數(shù)據(jù)采集系統(tǒng)有著重要的價(jià)值。
1 FPGA硬件設(shè)計(jì)
1.1 數(shù)字系統(tǒng)設(shè)計(jì)介紹
6路模擬信號經(jīng)過模擬信號處理模塊,形成電壓差分模擬信號,其目的是減少直流漂移,去除共模干擾,為后級的模/數(shù)轉(zhuǎn)換器(ADC)做準(zhǔn)備,系統(tǒng)的硬件框圖如圖1所示。經(jīng)過ADS8364模數(shù)轉(zhuǎn)換器件后,將輸入的模擬差分信號變換為適用于控制過程、存儲、處理、執(zhí)行計(jì)算并顯示讀出等其他目的的數(shù)字信號。在FPGA的控制下,數(shù)字信號被存儲在異步FIFO中,再按照設(shè)計(jì)要求將存儲在異步FIFO中的數(shù)據(jù)通過總線接口實(shí)時、高速、大量地傳輸?shù)紻SP芯片中進(jìn)行實(shí)時處理,最后再傳輸?shù)缴衔粰C(jī)。
1.2 外圍主要電路
1.2.1 外部開關(guān)控制信號
外部開關(guān)控制信號的作用是給整個系統(tǒng)提供開關(guān)信號。為了滿足工業(yè)應(yīng)用,避免長線傳輸中的共地和電平不一致,采用了光電隔離,實(shí)現(xiàn)了將輸入的24 V電壓轉(zhuǎn)化為3 V輸出電壓的功能,然后再通過整形電路整形后,傳輸?shù)紽PGA的I/O接口上。
1.2.2 A/D轉(zhuǎn)換電路
對于采集的6個通道的信號,由于采樣速率高,因此選擇了ADS8364芯片進(jìn)行模數(shù)轉(zhuǎn)換。其工作電壓為+5V,獨(dú)立6通道全差分輸入,2.5V參考電壓的REFIN和REFOUT引腳、有效數(shù)據(jù)位為14位、采樣頻率可以根據(jù)設(shè)計(jì)要求進(jìn)行調(diào)節(jié)并且最高的采樣頻率可以達(dá)到250 KSPS、帶有6級深度的FIFO輸出、功耗只有450 MW、6個差分采樣放大器以及高速并行接口等主要參數(shù)。
ADS8364芯片的輸入通道分為三組(A,B和C)的6路模擬信號輸入通道,每個端口含有ADCS和保持信號引腳,這兩個信號用來保證幾個通道能同時進(jìn)行采樣和轉(zhuǎn)換,同時輸入電壓是從-VREF到+VREF之間變化的差分模擬輸入電壓信號。6個十六位ADCS可以同時工作,即6通道同時進(jìn)行轉(zhuǎn)換。HOLDA,HOLDB,HOLDC這三個轉(zhuǎn)換保持信號啟動相對應(yīng)的通道進(jìn)行模數(shù)轉(zhuǎn)換。如果這些保持信號同時有效時,這6個通道轉(zhuǎn)換的結(jié)果就被保存在6個寄存器中,如果FPGA中的AD控制模塊對ADS8364芯片執(zhí)行每一個讀操作時。ADS836就會輸出十六位數(shù)據(jù)到FPGA中,A0,A1,A2這3個是地址/模式信號,它們決定ADS8364芯片采用何種方式讀取數(shù)據(jù)。有單通道,單周期或FIFO模式三種模式供選擇。HOLDA,HOLDB,HOL DC至少20 ns保持低電平,相應(yīng)的通道才能開始轉(zhuǎn)換。20 ns的低電平使得相應(yīng)通道的采樣保持放大器處于保持狀態(tài),進(jìn)而所選擇的模數(shù)轉(zhuǎn)換通道就開始進(jìn)行數(shù)據(jù)轉(zhuǎn)換,本設(shè)計(jì)方案所選擇的ADS8364地址/模式信號是單通道模式讀取數(shù)據(jù),6通道同時進(jìn)行數(shù)據(jù)轉(zhuǎn)換,其器件連接圖如圖2所示。
1.2.3 UART通信模塊
在本設(shè)計(jì)中,采用了一片CP2101芯片來實(shí)現(xiàn)與PC機(jī)的USB接口通信,其電路原理圖如圖3所示。
評論