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