多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 介紹了一種基于FPGA+DSP的多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案,描述了系統(tǒng)的硬件設(shè)計(jì)方案和硬件電路,闡述了信息采集過(guò)程以及外圍通訊接口及軟件設(shè)計(jì)。通過(guò)Quartus II8.0及CCS 2進(jìn)行系統(tǒng)仿真,證明了系統(tǒng)設(shè)計(jì)方案的可行性。
關(guān)鍵詞 數(shù)據(jù)采集系統(tǒng);FPGA;DSP;FIFO
在以往數(shù)據(jù)采集系統(tǒng)中,單片機(jī)、DSP常被選作主控制器,但隨著FPGA性能的不斷提高,具有時(shí)鐘域高、內(nèi)部延時(shí)小、速度快、全部邏輯南硬件完成等優(yōu)點(diǎn),因此在高速數(shù)據(jù)采集方面FPGA有著較大優(yōu)勢(shì),但也存在難于實(shí)現(xiàn)復(fù)雜算法的缺點(diǎn)。而DSP適合于高速算法的處理,系統(tǒng)采用FPCA+DSP方案,彌補(bǔ)了系統(tǒng)的不足。系統(tǒng)數(shù)據(jù)采集的控制、緩存及外圍通訊部分,用FPCA硬件實(shí)現(xiàn)。算法處理由DSP完成。在線采集的數(shù)據(jù)存放在DSP外掛的SRAM中。
設(shè)計(jì)采用DE2、THDB-ADA平臺(tái)進(jìn)行開(kāi)發(fā)。DE2平臺(tái)選用FPGA EP2C35F672。THDB-ADA是針對(duì)DE2開(kāi)發(fā)板設(shè)計(jì)的一款子開(kāi)發(fā)板,由FPGA實(shí)現(xiàn)對(duì)A/D的控制。在系統(tǒng)中只用到了模塊的A/D轉(zhuǎn)換部分。其中芯片AD9248是一款雙通道模數(shù)轉(zhuǎn)換器。另外DSP選用TI推出的TMS320UC5402。
1 系統(tǒng)設(shè)計(jì)
數(shù)據(jù)采集系統(tǒng)硬件原理如圖1所示,由圖1知DSP收到上位機(jī)發(fā)送的命令完成系統(tǒng)工作參數(shù)的配置,然后向FPGA發(fā)送指令,F(xiàn)PGA收到指令后一是對(duì)多路模擬開(kāi)關(guān)進(jìn)行選通讓選通信號(hào)通過(guò)信號(hào)調(diào)理電路實(shí)現(xiàn)電平調(diào)整,并進(jìn)行A/D轉(zhuǎn)換的時(shí)序控制,二是把轉(zhuǎn)換好的數(shù)據(jù)進(jìn)行數(shù)據(jù)緩存,當(dāng)FIFO滿時(shí)并產(chǎn)生DSP能識(shí)別的外部中斷信號(hào)及標(biāo)識(shí)信號(hào),通知DSP采集數(shù)據(jù),最后DSP對(duì)采集到的數(shù)據(jù)進(jìn)行濾波處理、變換、譜分析。
2 硬件設(shè)計(jì)
2.1 通道切換電路
系統(tǒng)采用16通道ADG506模擬開(kāi)關(guān)進(jìn)行各通道的切換。并具有開(kāi)關(guān)速度快、泄漏小等特點(diǎn)。主要有A0~A3,S1~S8,D,EN端口。其中A0~A3是二進(jìn)制地址信號(hào)輸入端,譯碼結(jié)果用于選擇有效的輸出通道;S1~S16是16路信號(hào)的輸入端,在此可根據(jù)需要選擇通道數(shù)。D是被選擇通道的信號(hào)輸出端;EN是選擇開(kāi)關(guān)使能控制端高電平為有效。FPGA通過(guò)數(shù)據(jù)幀來(lái)進(jìn)行通道選擇,每次只選擇一路,經(jīng)A/D轉(zhuǎn)換后送入FIFO。
圖中,A0~A5表示所選擇通道,其中A4,A5恒為0。D0~D1表示幀結(jié)構(gòu)數(shù)據(jù)起止標(biāo)識(shí)位。
2.2 信號(hào)調(diào)理電路
信號(hào)調(diào)理電路對(duì)模擬信號(hào)進(jìn)行一定的放大/衰減,使信號(hào)的幅度滿足A/D芯片要求。前向調(diào)理電路采用高速低噪聲的模擬開(kāi)關(guān)MAX4545去選擇不同的反饋電阻,同模擬運(yùn)算放大器MAX817構(gòu)成標(biāo)準(zhǔn)的反相運(yùn)算放大器來(lái)實(shí)現(xiàn)前向調(diào)理。MAX817的單位增益3 dB,截止頻率高達(dá)50 MHz,滿足帶寬的要求。MAX4545的4根控制線由FPGA設(shè)計(jì)控制電路去控制,具體是由復(fù)位按鈕進(jìn)行邊沿觸發(fā),使4位輸出電平在0001,0010,0100,1000之間輪流切換,將輸出電平去控制MAX4545的4根控制線,這就實(shí)現(xiàn)了不同的放大倍數(shù)之間切換,控制信號(hào)與放大倍數(shù)的對(duì)應(yīng)關(guān)系,如圖3所示。
2.3 濾波電路
系統(tǒng)接收到的模擬信號(hào)總是混有噪聲成分,為達(dá)到奈奎斯特采樣定理所要求信號(hào)的頻率范圍,需要利用低通濾波器除去干擾信號(hào)及抑制混疊現(xiàn)象,即進(jìn)行衰減與濾除。設(shè)計(jì)選用二階巴特沃斯低通濾波電路來(lái)濾除信號(hào)中的高頻分量,其特點(diǎn)是通頻帶內(nèi)的響應(yīng)曲線最大限度平坦,無(wú)起伏,而在阻頻帶逐漸衰減為0.2階的巴特沃斯低通濾波器幅頻。
2.4 FPGA硬件電路設(shè)計(jì)
FPGA作為接口電路主芯片,充當(dāng)DSP的前端接口元件,將各種信號(hào)轉(zhuǎn)換為DSP能讀取的并行格式數(shù)據(jù)。
FPGA的開(kāi)發(fā)采用自頂向下的設(shè)計(jì)方法,即指將一個(gè)系統(tǒng)按功能劃分為不同的模塊,而模塊再根據(jù)需要?jiǎng)澐譃槎?jí)模塊,依此直到模塊易被實(shí)現(xiàn)為止。通過(guò)Verilog編程FPGA即可生成雙口SRAM模塊、ADC接口模塊、調(diào)理電路放大倍數(shù)控制模塊、數(shù)據(jù)接收模塊等,以實(shí)現(xiàn)對(duì)輸入信號(hào)的采集、存儲(chǔ)、處理和輸出。
2.5 DSP硬件電路設(shè)計(jì)
在數(shù)據(jù)采集過(guò)程中,采集的數(shù)據(jù)緩存在FPGA內(nèi)部構(gòu)建的FIFO中在線采集時(shí),通過(guò)FPGA與DSP接口將FIFO中的數(shù)據(jù)轉(zhuǎn)存到DSP外掛的SRAM內(nèi),當(dāng)需要分析數(shù)據(jù)時(shí)再?gòu)拇鎯?chǔ)器中取出。DSP外掛Flash存放程序及配置信息。
3 軟件設(shè)計(jì)
3.1 FPGA軟件設(shè)計(jì)
數(shù)據(jù)在傳入FPGA后,直接采用數(shù)據(jù)在傳入FPGA后,可利用SRAM來(lái)設(shè)計(jì)的同步FIFO來(lái)緩存采樣數(shù)據(jù)如圖4所示:將FIFO抽象為環(huán)形數(shù)組,并用讀或?qū)懼羔榿?lái)控制對(duì)環(huán)形數(shù)組的讀寫。該FIFO提供讀使能fiford和寫使能fifowr輸入控制信號(hào),并指示FIFO的狀態(tài)非空nempty,非滿nfull。未完成一次讀寫操作地址加1。隨著地址的增加,采樣數(shù)據(jù)被依次存入雙口SRAM中,當(dāng)存完數(shù)據(jù)后向DSP發(fā)出信號(hào)。
ADC接口模塊主要由分頻器、通道選擇模塊及ADC控制模塊組成。分頻器一方面產(chǎn)牛ADC控制模塊的工作時(shí)鐘,另一方面提供采集啟動(dòng)信號(hào)以觸發(fā)通道選擇模塊。通道選擇控制模塊,輸出地址信號(hào)到多路開(kāi)關(guān),用來(lái)選擇采集對(duì)應(yīng)通道的數(shù)據(jù)信息。該模塊由分頻器產(chǎn)生的采集信號(hào)觸發(fā)啟動(dòng)。ADC控制模塊,主要完成模數(shù)轉(zhuǎn)換器的配置與瀆取。根據(jù)通道選擇模塊發(fā)出的A/D啟動(dòng)信號(hào),按照配置信息對(duì)選擇的通道進(jìn)行A/D轉(zhuǎn)換。該模塊的數(shù)據(jù)接收觸發(fā)信號(hào)在一次A/D轉(zhuǎn)換結(jié)束后該信號(hào)有效,表示開(kāi)始接收轉(zhuǎn)換結(jié)果。為提高準(zhǔn)確性,采取平均值濾波的方法,隨后將結(jié)果輸出至寄存器陣列,同時(shí)向通道選擇模塊輸出數(shù)據(jù)有效信號(hào),表示該通道數(shù)據(jù)采集結(jié)束數(shù)據(jù)有效。
3.2 DSP軟件設(shè)計(jì)
DSP軟件設(shè)計(jì)包括模塊化編程,其中包括初始化模塊、數(shù)據(jù)采集模塊、通訊模塊、FFT功能模塊等。
初始化模塊涉及鎖相環(huán)的初始化,F(xiàn)lash的初始化、SRAM的初始化等一鎖相環(huán)的初始化,系統(tǒng)中PLL輸入時(shí)鐘為50 MHz的晶振,輸出時(shí)鐘為兩個(gè),一是DSP內(nèi)部時(shí)SYSCLK1二是EMIF3。為得到這兩個(gè)時(shí)鐘而進(jìn)行初始化。Flash的初始化,EMIF接口對(duì)于異步器件的控制通過(guò)A1CR來(lái)實(shí)現(xiàn),主要根據(jù)Flash參數(shù)設(shè)置數(shù)據(jù)位寬、讀寫建立時(shí)間、讀寫選通時(shí)間以及讀寫保持時(shí)間。SRAM的初始化,即完成對(duì)EMIF內(nèi)部關(guān)于SRAM參數(shù)寄存器的初始化。
DSP對(duì)數(shù)據(jù)采集控制主要通過(guò)查詢與中斷兩種方式進(jìn)行。該系統(tǒng)是通過(guò)巾斷方式進(jìn)行,即指當(dāng)FIFO滿時(shí)產(chǎn)生一個(gè)高電平中斷。其主要流程由系統(tǒng)初始化和開(kāi)啟中斷組成。
初始化程序完成對(duì)所有變量及DSP相應(yīng)寄存器的初始化工作,同時(shí)復(fù)位SRAM,并完成采集通道及量程的設(shè)置,隨后開(kāi)啟中斷,進(jìn)入等待中斷狀態(tài)。當(dāng)檢測(cè)到中斷時(shí)進(jìn)入中斷服務(wù)程序,并查詢FPGA相關(guān)寄存器確定是哪一通道的中斷,并將數(shù)據(jù)存于SRAM中。
UART在FPGA內(nèi)部實(shí)現(xiàn),但接收數(shù)據(jù)的是DSP。DSP接收數(shù)據(jù)時(shí)UART采用中斷方式,即由UART接收FIFO滿產(chǎn)生中斷通知DSP讀取信息。
DSP對(duì)采集到的數(shù)據(jù)進(jìn)行濾波處理、變換、譜分析,下面以FFT為例對(duì)信號(hào)進(jìn)行譜分析。FFT算法基本可分為兩大類時(shí)域捕取法FFT和頻域抽取法FFT。在設(shè)計(jì)中選擇簡(jiǎn)單實(shí)用的時(shí)域抽取基二FFT算法。并采用基二的突發(fā)輸入輸出結(jié)構(gòu)。如圖5為采樣信號(hào)經(jīng)過(guò)采樣點(diǎn)為512的信號(hào)頻譜圖。
3.3 FPGA與DSP的接口設(shè)計(jì)
FPGA與DSP兩者之間的通信,可分為DSP到FPCA為寫操作,F(xiàn)PGA到DSP為讀操作。DSP發(fā)給FPGA的配置信息為通道切換電路的選通信號(hào),各通道數(shù)據(jù)采集使能信號(hào)及清零信號(hào),UART的數(shù)據(jù)格式及中斷源設(shè)置等。FPGA返回給DSP的信息主要有數(shù)據(jù)采集存儲(chǔ)的窄滿標(biāo)志,實(shí)際采集的數(shù)據(jù),UART的中斷信息等。
4 結(jié)束語(yǔ)
提出了一種基于FPGA+DSP的高速多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案,將FPGA及DSP的優(yōu)勢(shì)充分結(jié)合,并針對(duì)間歇性數(shù)據(jù)傳輸特征,設(shè)計(jì)以FIFO作數(shù)據(jù)過(guò)渡。該系統(tǒng)經(jīng)過(guò)測(cè)試,工作穩(wěn)定,滿足采集速度及A/D轉(zhuǎn)換精度的要求。