基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:隨著信息技術(shù)的飛速發(fā)展,各種數(shù)據(jù)的采集和處理在現(xiàn)代工業(yè)控制和科學(xué)研究中已成為必不可少的部分。數(shù)據(jù)采集系統(tǒng)是計(jì)算機(jī)智能儀器與外界物理世界聯(lián)系的橋粱,是獲取信息的重要途徑。以Xilinx公司的Spartan-3系列FPGA芯片XC3S400為核心,采用TI公司的TLC0820型號(hào)的A/D轉(zhuǎn)換器作為模數(shù)轉(zhuǎn)換器件,設(shè)計(jì)了一個(gè)基于FPGA的數(shù)據(jù)采集系統(tǒng),并用Verilog HDL語言作為描述語言實(shí)現(xiàn)了對(duì)TLC0820的采樣控制和FPGA的數(shù)據(jù)處理等過程的控制,以Xilinx ISE9.1i軟件為平臺(tái),進(jìn)行了設(shè)計(jì)輸入、分析與綜合、仿真與驗(yàn)證等過程仿真實(shí)現(xiàn)了這一系統(tǒng)。
關(guān)鍵詞:數(shù)據(jù)采集;FPGA;模數(shù)轉(zhuǎn)換;vetilog HDL
常用的數(shù)據(jù)采集方案往往采用單片機(jī)或DSP(數(shù)字信號(hào)處理器)作為控制器,控制ADC(模數(shù)轉(zhuǎn)換器)、存儲(chǔ)器和其他外圍電路的工作。但由于單片機(jī)本身的指令周期以及處理速度的影響,難以達(dá)到多通道高速數(shù)據(jù)采集系統(tǒng)的要求,DSP雖然可以實(shí)現(xiàn)較高速的數(shù)據(jù)采集,但其速度提高的同時(shí),也提高了系統(tǒng)的成本;并且單片機(jī)和DSP的各種功能要靠軟件的運(yùn)行來實(shí)現(xiàn),執(zhí)行的速度和效率較低,軟件運(yùn)行時(shí)間在整個(gè)采樣時(shí)間中占很大的比例。而FPGA(現(xiàn)場(chǎng)可編程門陣列)在高速數(shù)據(jù)采集方面有單片機(jī)和DSP無法比擬的優(yōu)勢(shì),F(xiàn)PGA具有時(shí)鐘頻率高,內(nèi)部延時(shí)小,全部控制邏輯由硬件完成,速度快,效率高,組成形式靈活等特點(diǎn)。因此,本文以FPGA作為核心處理器件,進(jìn)行了數(shù)據(jù)采集的過程。
1 數(shù)據(jù)采集系統(tǒng)原理
圖1是一個(gè)模擬信號(hào)的數(shù)據(jù)采集系統(tǒng)框圖。
由圖可知,系統(tǒng)主要由以下5個(gè)部分組成:
第1部分是放大器電路。程控放大器的作用是將傳感器產(chǎn)生微弱的模擬信號(hào)進(jìn)行放大處理。放大器把信號(hào)放大到與A/D轉(zhuǎn)換器滿量程電壓相應(yīng)的電平值,以便充分利用A/D轉(zhuǎn)換器的分辨率,放大器的放大倍數(shù)可以通過設(shè)計(jì)放大電路來進(jìn)行實(shí)時(shí)控制。
第2部分是A/D模數(shù)轉(zhuǎn)換電路。其功能是將放大后的模擬信號(hào)轉(zhuǎn)換為計(jì)算機(jī)能夠識(shí)別的數(shù)字信號(hào)。A/D轉(zhuǎn)換器是采樣通道的核心,所以A/D轉(zhuǎn)換器是影響數(shù)據(jù)采集系統(tǒng)采樣速率和精度的主要因素之一。
第3部分是數(shù)據(jù)緩存電路。A/D轉(zhuǎn)換后的數(shù)據(jù)信息一般不能直接傳送到計(jì)算機(jī),所以在讀入計(jì)算機(jī)或其他處理設(shè)備之前應(yīng)該增加數(shù)據(jù)緩存模塊,這樣能有利于將數(shù)據(jù)連續(xù)的送人計(jì)算機(jī)。
第4部分是時(shí)序邏輯控制電路。它可以控制程控放大器、A/D模數(shù)轉(zhuǎn)換器、數(shù)據(jù)緩存等單元,并實(shí)現(xiàn)與計(jì)算機(jī)的通信。
第5部分是接口電路。接口電路是數(shù)據(jù)緩存區(qū)的數(shù)據(jù)傳輸至計(jì)算機(jī)等設(shè)備的紐帶。
2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)主要研究對(duì)模擬信號(hào)的數(shù)據(jù)采集,根據(jù)系統(tǒng)的要求與功能的實(shí)現(xiàn),F(xiàn)PGA數(shù)據(jù)采集系統(tǒng)的總體方案設(shè)計(jì)結(jié)構(gòu)框圖如圖2所示。
在模擬信號(hào)采集的過程中,模擬信號(hào)輸入給A/D轉(zhuǎn)換器,然后經(jīng)模數(shù)轉(zhuǎn)換之后將8bit的數(shù)字信號(hào)直接輸出給FPGA進(jìn)行處理。在FPGA中設(shè)計(jì)了數(shù)據(jù)緩沖器FIFO和數(shù)據(jù)存儲(chǔ)器RAM以及和各級(jí)電路對(duì)應(yīng)的的時(shí)鐘信號(hào),以保證能夠?qū)崟r(shí)的將ADC轉(zhuǎn)換過來的數(shù)據(jù)進(jìn)行處理。其中,液晶屏可用于顯示被采集的波形,串口通信用于FPGA的在線調(diào)試與配置程序的加載,鍵盤用于控制操作。
2.1 數(shù)據(jù)采集模塊
根據(jù)本系統(tǒng)對(duì)數(shù)據(jù)采集精度以及速度方面的要求,采用Texas Instruments改進(jìn)快閃技術(shù)的先進(jìn)的LinCMOS高速8位A/D轉(zhuǎn)換芯片TLC082 0AC來完成采集過程。它由2個(gè)4位快閃轉(zhuǎn)換器,一個(gè)4位數(shù)模轉(zhuǎn)換器,一個(gè)加法(誤差)放大器,控制邏輯及一個(gè)結(jié)果鎖定電路構(gòu)成。改進(jìn)的快閃技術(shù)可使低功率集成電路在整個(gè)溫度范圍內(nèi)(0~70℃)以1.18 μs(轉(zhuǎn)換率>1 M)完成8位轉(zhuǎn)換。該芯片內(nèi)部采樣和保持電路具有100 ns采樣窗,允許這些器件以高達(dá)100 mV/μs的斜升速率轉(zhuǎn)換連續(xù)模擬信號(hào)而無須外部采樣器件。TTL兼容的3態(tài)輸出驅(qū)動(dòng)器及兩種工作方式允許與不同微處理器接口。單-5 V電源,無須外部時(shí)鐘或振蕩器,最大功耗75 mV,兩種工作方式可選。具有差分基準(zhǔn)輸入,數(shù)據(jù)轉(zhuǎn)化及存取時(shí)間為2.5個(gè)時(shí)鐘周期(MCU晶振選用12 M),最高采樣率20 M。其工作方式連接圖如圖3所示。
2.2 數(shù)據(jù)處理模塊
FPGA在高速數(shù)據(jù)采集處理方面有單片機(jī)和DSP無法比擬的優(yōu)勢(shì),F(xiàn)PGA具有時(shí)鐘頻率高,內(nèi)部延時(shí)小,全部控制邏輯由硬件完成,速度快,效率高,組成形式靈活等特點(diǎn)。因此我們選擇使用FPGA來進(jìn)行數(shù)據(jù)的處理與控制。市場(chǎng)上FPGA的型號(hào)與類型非常多,根據(jù)本系統(tǒng)的要求,我們這里選擇Xilinx公司生產(chǎn)的Spartan-3系列XC3S400型號(hào)的芯片。Spartan-3系列是基于Virtex-II FPGA構(gòu)架,采用90 nm技術(shù),8層金屬工藝,系統(tǒng)門數(shù)超過500萬,內(nèi)嵌了硬核乘法器和數(shù)字時(shí)鐘管理模塊。從結(jié)構(gòu)上看,Spartan-3系列將邏輯、存儲(chǔ)器、數(shù)學(xué)運(yùn)算、數(shù)字處理器、I/O以及系統(tǒng)管理資源完美地集合在一起,使之有更高層次、更廣泛的應(yīng)用。其主要特性為:采用90 nm工藝,密度高達(dá)74880邏輯單元;最高系統(tǒng)時(shí)鐘為340 MHz;具有18x18的專用乘法器;核電壓為1.2V,端口電壓為3.3 V、2.5 V、1.2 V,支持24種I/O標(biāo)準(zhǔn);高達(dá)520 kB的分布式RAM和18 972 kB的塊RAM;有片上時(shí)鐘管理模塊(DCM);具有嵌入式XtremeDSP功能,每秒可執(zhí)行3 300億次乘加。
2.3 輸出模塊
輸出模塊主要負(fù)責(zé)利用液晶顯示器顯示采集到的數(shù)據(jù)以便進(jìn)入后續(xù)的處理,因此,需要連接有顯示模塊。液晶顯示屏常常采用12864,本系統(tǒng)選用了HS12864_15系列中文圖形液晶模塊,文字圖形可混合顯示且?guī)в凶謳?kù),其特征主要由其控制器ST7920決定,ST7920同時(shí)作為控制器和驅(qū)動(dòng)器,它可提供33路com輸出和64路seg輸出。在驅(qū)動(dòng)器ST7921的配合下,最多可以驅(qū)動(dòng)256x32點(diǎn)陣液晶。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 總體方案設(shè)計(jì)
FPGA數(shù)據(jù)采集系統(tǒng)的軟件總體方案設(shè)計(jì)流程圖如圖4所示。當(dāng)FPGA、ADC以及12864顯示器初始化完畢之后,判斷是否有模擬信號(hào)輸入到ADC器件中,如果沒有,則等待信號(hào)的輸入;如果有,則ADC開始采集數(shù)據(jù)并轉(zhuǎn)換。轉(zhuǎn)換完成之后,送到FPGA芯片進(jìn)行數(shù)據(jù)處理。然后,傳送到12864顯示器中進(jìn)行波形的顯示。最后,再次判斷有無信號(hào)輸入到ADC中,如果有,則繼續(xù)進(jìn)行下次的采集流程;如果沒有,則結(jié)束程序。
3.2 FIFO緩存設(shè)計(jì)
由于A/D轉(zhuǎn)換器、FPGA以及12864顯示器之間處理數(shù)據(jù)的速度不同,為了消除不必要的數(shù)據(jù)丟失與毛刺現(xiàn)象或者重復(fù)讀取,可以將處理后的數(shù)據(jù)暫時(shí)存入FIFO中。FIFO是一個(gè)先入先出的堆棧,利用FPGA內(nèi)部強(qiáng)大的寄存器功能,設(shè)計(jì)了一個(gè)FIFO的數(shù)據(jù)緩沖器。
如圖5所示,A/D轉(zhuǎn)換器將轉(zhuǎn)換好的數(shù)據(jù)存入FIFO緩存中,F(xiàn)PGA檢測(cè)顯示器12864有無讀信號(hào),如果有讀信號(hào),則FIFO輸出信號(hào)給顯示器;如果沒有,則數(shù)據(jù)繼續(xù)存儲(chǔ)在FIFO中,等待被取走。
4 結(jié)束語
基于FPGA在高速數(shù)據(jù)采集方面有單片機(jī)和DSP無法比擬的優(yōu)勢(shì),F(xiàn)PGA具有時(shí)鐘頻率高,內(nèi)部延時(shí)小,全部控制邏輯由硬件完成,速度快,效率高,組成形式靈活等特點(diǎn)。因此,本文研究并開發(fā)了一個(gè)基于FPGA的數(shù)據(jù)采集系統(tǒng)。本文中所提出的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案,就是利用FPGA作為整個(gè)數(shù)據(jù)采集系統(tǒng)的核心來對(duì)系統(tǒng)時(shí)序和各邏輯模塊進(jìn)行控制。依靠FPGA強(qiáng)大的功能基礎(chǔ),以FPGA作為橋梁合理的連接了ADC、顯示器件以及其他外圍電路,最終實(shí)現(xiàn)了課題的要求,達(dá)到了數(shù)據(jù)采集的目的。