摘要:本文提出了一種用于雷達(dá)回波信號采集的高速數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了對數(shù)十兆赫的回波信號進(jìn)行連續(xù)的采樣和存儲。系統(tǒng)通過FPGA控制數(shù)據(jù)連續(xù)采集、緩沖,通過PCI9056將緩沖區(qū)數(shù)據(jù)轉(zhuǎn)移到硬盤管理卡,由硬盤管理卡將數(shù)據(jù)存入海量硬盤陣列。
關(guān)鍵字:采樣門 FPGA PCI
總線 連續(xù)采集
1 引言
數(shù)據(jù)采集是數(shù)字信號處理過程中的一個(gè)重要環(huán)節(jié),已經(jīng)廣泛應(yīng)用于雷達(dá)、聲納、瞬態(tài)信號測試、無線探傷等領(lǐng)域。對不同的任務(wù)和應(yīng)用場合數(shù)據(jù)采集系統(tǒng)要求的采樣和采樣速率各不相同,系統(tǒng)的實(shí)現(xiàn)方法和難度也各異。在低速數(shù)據(jù)采集領(lǐng)域,系統(tǒng)要求的采樣速率低,數(shù)傳輸量小,系統(tǒng)的實(shí)現(xiàn)較容易,常用
單片機(jī)系統(tǒng)完成數(shù)據(jù)采集、串行接口完成數(shù)據(jù)傳輸
[1];在高速數(shù)據(jù)采集領(lǐng)域,系統(tǒng)要求的采樣速率高、采集高、數(shù)據(jù)傳輸量大,于是系統(tǒng)的抗干擾、數(shù)據(jù)的傳輸、數(shù)據(jù)的存儲問題就成了系統(tǒng)構(gòu)建必須克服的關(guān)鍵問題。目前,常用的高速數(shù)據(jù)采集系統(tǒng)通常為定時(shí)采樣或者固定采樣門數(shù)據(jù)采集系統(tǒng),這種系統(tǒng)數(shù)據(jù)采集的時(shí)間和數(shù)據(jù)量已知,待保存的數(shù)據(jù)都是被采樣信號信息,通常通過設(shè)置足夠大的緩沖區(qū),通過PCI總線將緩沖區(qū)的數(shù)據(jù)傳輸?shù)接?jì)算機(jī)內(nèi)部總線
[2][3],從而實(shí)現(xiàn)數(shù)據(jù)采集。
隨著高速數(shù)據(jù)采集系統(tǒng)的發(fā)展,提出了變采樣門連續(xù)高速采集的要求。此時(shí)系統(tǒng)不但要記錄被采樣信號信息,還要記錄采樣門的變化信息;由于采樣門可變,采集的數(shù)據(jù)量變化、采樣持續(xù)時(shí)間和采樣的數(shù)據(jù)量不定,系統(tǒng)的實(shí)現(xiàn)難度較高。
本文提出了基于FPGA的四路變采樣門的高速連續(xù)數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)方法。
2 系統(tǒng)背景及功能描述
由于雷達(dá)重復(fù)掃描周期中,回波信號往往只占很小的時(shí)間部分。為了高效地獲取回波數(shù)據(jù),往往采用距離窗口推遲采樣,以便濾除雷達(dá)重復(fù)周期中與目標(biāo)無關(guān)的信號,提高數(shù)據(jù)有效率。因此系統(tǒng)觸發(fā)信號、采樣門、采樣距離等都在變化。
本系統(tǒng)被測信號由四路雷達(dá)回波信號組成,基本要求:采樣頻率為20MHz;觸發(fā)信號(triger)頻率已知、可變(1KHz~2KHz);采樣門(gate)為頻率同觸發(fā)信號、占寬比可變(5%~95%。
3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
數(shù)據(jù)采集系統(tǒng)要解決的問題主要是數(shù)據(jù)的采集和傳輸問題。為了增強(qiáng)設(shè)計(jì)的靈活性和可擴(kuò)展性,系統(tǒng)采用FPGA(Field Programmable Logic Array)來實(shí)現(xiàn)對AD
轉(zhuǎn)換器、數(shù)據(jù)緩沖器、時(shí)鐘、數(shù)據(jù)傳輸?shù)倪壿嬁刂?BR>。
3.1 術(shù)語定義和數(shù)據(jù)組織
一個(gè)采樣周期內(nèi)的系統(tǒng)采集的數(shù)據(jù)稱為一幀數(shù)據(jù)。系統(tǒng)設(shè)置的緩存能容納多幀數(shù)據(jù),當(dāng)緩存存儲容量不夠存下一幀數(shù)據(jù)時(shí)就要轉(zhuǎn)移數(shù)據(jù),每次轉(zhuǎn)移的數(shù)據(jù)稱為一塊數(shù)據(jù)。數(shù)據(jù)采集的目的是在信號發(fā)生后再現(xiàn)信號,所以為了便于數(shù)據(jù)回放(軟件回放或者硬件回放),必須保存數(shù)據(jù)幀和數(shù)據(jù)塊相關(guān)信息。系統(tǒng)保存的數(shù)據(jù)包括:被采樣信號數(shù)據(jù);采樣門采樣距離、采樣寬度;數(shù)據(jù)幀、數(shù)據(jù)塊相關(guān)信息。
3.2 連續(xù)采集的實(shí)現(xiàn)策略
四路0~2V的模擬信號輸入,由四個(gè)16位的A/D轉(zhuǎn)換器完成模數(shù)轉(zhuǎn)換,AD0和AD1構(gòu)成一組32位的數(shù)據(jù)(A組),AD2和AD3構(gòu)成另一組(B組)32位的數(shù)據(jù)。對于A組和B組數(shù)據(jù),分別設(shè)置兩個(gè)FIFO
存儲器FIFO
X0、FIFO
X1(X為A或B)。每組數(shù)據(jù)先暫存于FIFO
X0,當(dāng)FIFO
X0的容量不夠存儲一幀數(shù)據(jù)時(shí),F(xiàn)PGA控制數(shù)據(jù)流切換到FIFOX1,同時(shí)刷新SGTM表(DMA數(shù)據(jù)鏈指針表),啟動PCI總線的DMA;先傳送數(shù)據(jù)塊信息和控制信息,然后傳送FIFO
A0數(shù)據(jù),再傳送FIFO
B0數(shù)據(jù),傳送結(jié)束后DMA等待下傳送。當(dāng)FIFO
X1容量不夠存儲一幀數(shù)據(jù)時(shí),F(xiàn)PGA控制數(shù)據(jù)流切換到FIFO
X0,同時(shí)控制邏輯刷新SGTM表,啟動PCI總線的DMA;先傳送數(shù)據(jù)塊信息和控制信息,然后傳送FIFO
A1數(shù)據(jù),再傳送FIFO
B1數(shù)據(jù),如此反復(fù)采樣和傳送數(shù)據(jù),從而實(shí)現(xiàn)連續(xù)數(shù)據(jù)采集。
3.3 數(shù)據(jù)傳輸和存儲策略
緩沖區(qū)的數(shù)據(jù)通過PCI總線以DMA方式傳送到硬盤管理卡(SScard),該卡再將數(shù)據(jù)高速保存到硬盤陣列上。該系統(tǒng)硬盤陣列由8個(gè)40G硬盤組成(可根據(jù)需要擴(kuò)展到16個(gè)硬盤)。PCI接口的實(shí)現(xiàn)方式通常有兩種:通用FPGA實(shí)現(xiàn)方式和專用芯片方式。為了簡化設(shè)計(jì)和提高系統(tǒng)的可靠性,本系統(tǒng)采用專用芯片方式。由于系統(tǒng)采用速率高,數(shù)據(jù)傳輸量很大,系統(tǒng)選用PCI9056芯片來實(shí)現(xiàn)PCI接口。該芯片支持66MHz/32BitsPCI總線,傳輸速率高達(dá)256M,支持?jǐn)?shù)據(jù)鏈傳輸方式,便于實(shí)現(xiàn)大規(guī)模、多塊數(shù)據(jù)傳輸[9]。本系統(tǒng)采用PCI9056的鏈?zhǔn)絺魉头绞綄?shí)現(xiàn)數(shù)據(jù)緩存到硬盤管理卡的DMA傳送。為了發(fā)揮DMA的優(yōu)勢在FPGA上設(shè)置SGTM表。FPGA的控制邏輯通過對該表的刷新實(shí)時(shí)啟動DMA操作。
4 FPGA在系統(tǒng)中的應(yīng)用
FPGA領(lǐng)域的快速發(fā)展使FPGA片上資源大量豐富,尤其使其高速性能和片上RAM使其特別適用于高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。設(shè)計(jì)選用Altera公司的FLEX10K30E,該器件含有8個(gè)EAB(嵌入式陣列),每個(gè)EAB能夠提供4K位存儲位,每個(gè)EAB都有雙口RAM實(shí)現(xiàn)能力;提供30000邏輯門;支持PCI總線,可提供66MHz的PCI性能;門級延時(shí)僅為6.5ns。本系統(tǒng)中FPGA設(shè)計(jì)主要包含時(shí)鐘網(wǎng)絡(luò)、雙端口RAM、控制邏輯等。
4.1 時(shí)鐘及相關(guān)網(wǎng)絡(luò)
時(shí)鐘電路是高速時(shí)序電路設(shè)計(jì)的關(guān)鍵,本系統(tǒng)涉及20MHz和66 MHz高速時(shí)鐘,時(shí)鐘是系統(tǒng)設(shè)計(jì)的一個(gè)重要內(nèi)容。系統(tǒng)在一般邏輯控制和數(shù)據(jù)采集時(shí)采用20MHz時(shí)鐘,存儲電路工作在66MHz時(shí)鐘下。為了提高時(shí)鐘同步性能、系統(tǒng)工作頻率和系統(tǒng)可靠性,設(shè)計(jì)采用如下措施:
1 輸入信號盡量通過鎖存器;
2 保證每路始終負(fù)載相當(dāng),以便減小時(shí)鐘漂移;
3 通過異步雙端口存儲器解決異步時(shí)鐘匹配問題;
4 大量使用有限狀態(tài)機(jī),提高設(shè)計(jì)的可靠性;
5 大量采用流水線技術(shù),提高系統(tǒng)工作主頻。
4.2 雙端口RAM
由于FIFO的容量有限,每塊數(shù)據(jù)包含的數(shù)據(jù)幀數(shù)有限,故必須在適當(dāng)?shù)臅r(shí)候進(jìn)行數(shù)據(jù)切換。切換帶來的塊控制數(shù)據(jù)和對應(yīng)每塊數(shù)據(jù)的采樣門
計(jì)數(shù)器數(shù)據(jù)的數(shù)據(jù)量相對較小,設(shè)計(jì)通過設(shè)置了片上雙端口RAM(control data RAM),實(shí)現(xiàn)數(shù)據(jù)的緩沖。
因?yàn)橄到y(tǒng)采樣速率高,數(shù)據(jù)傳輸量大,要求PCI響應(yīng)快速,故本設(shè)計(jì)在FPGA上構(gòu)造SGTM,PCI控制器一直查詢SGTM,一旦發(fā)現(xiàn)SGTM傳輸控制字被置起,隨即申請DMA操作,提高了PCI總線的DMA響應(yīng)速度。
FPGA廠商提供的參數(shù)化模塊庫LPM(Library of Parameterized Modules)中的雙端口RAM模塊都是只能一端讀、一端寫的雙端口RAM。設(shè)計(jì)采用lpm_ram_dp模塊再外加控制邏輯和仲裁邏輯的方法實(shí)現(xiàn)了兩端都能進(jìn)行讀寫操作的雙端口RAM。每次數(shù)據(jù)切換時(shí)FPGA首先刷新SGTM,申請PCI總線進(jìn)行DMA操作,DMA響應(yīng)后首先傳送雙端口RAM的對應(yīng)半?yún)^(qū)的數(shù)據(jù),然后傳輸對應(yīng)的FIFO上的數(shù)據(jù)。
4.3 控制邏輯
控制邏輯實(shí)現(xiàn)對距離計(jì)數(shù)器、采樣點(diǎn)計(jì)數(shù)器、塊內(nèi)采樣點(diǎn)計(jì)數(shù)器、塊內(nèi)幀計(jì)數(shù)器等的控制;實(shí)現(xiàn)系統(tǒng)的設(shè)置和control data RAM和SGTM的刷新;實(shí)現(xiàn)對FIFO的讀操作、寫操作控制和其它控制。
5 應(yīng)用和結(jié)論
本文提出了一種連續(xù)、高速、大容量、多通道的高速數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn)方案,并說明了該方案基于Altera公司的EPF10K30E系列FPGA的實(shí)現(xiàn)方法。目前本文實(shí)現(xiàn)的數(shù)據(jù)采集系統(tǒng)已經(jīng)應(yīng)用于某雷達(dá)數(shù)字信號處理系統(tǒng)中。經(jīng)過實(shí)驗(yàn)室和室外測試,系統(tǒng)工作正常,達(dá)到了設(shè)計(jì)的要求。
?。S新財(cái) 佃松宜 汪道輝)
參考文獻(xiàn):
[1]. EPF10K30E datasheet http://m.58mhw.cn/datasheet/EPF10K30E_1054449.html.
關(guān)鍵詞:基于FPGA的高速連續(xù)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)PCI9056