文獻標識碼:A
文章編號: 0258-7998(2010)12-0078-05
隨著信號與處理技術的發展,在通信、雷達、工業控制、智能儀器等領域,對數據采集的速度、精度、實時處理與存儲等也提出了越來越高的要求[1]。對于高帶寬的信號,如圖像、雷達信號等,根據奈奎斯特采樣定理[2],為保證采樣信號的高精度,所需要的采樣速率也很高,往往需要達到上百兆赫茲以上。而隨著微電子技術、嵌入式系統技術以及計算機技術的發展,也為實現這樣的超高速信號采集與存儲系統提供了可能。
目前,國內外也有相關文獻對高速數據采集系統進行了研究。如參考文獻[3]、[4]基于可編程邏輯器件實現對雷達信號的采集,參考文獻[5]則采用USB總線技術設計數據采集系統。但采集速率都不超過100 MS/s,且多數不需要實時存儲,不能滿足本系統200 MS/s采集與實時存儲的要求。
Compact PCI是上世紀90年代后期提出的一種總線接口標準,電氣方面采用PCI總線的電氣規范,理論傳輸速率最高可達1 Gb/s[6-7]。而在機械上采用了標準真空連接器以及歐卡規范,機械結構堅固穩定,可滿足機載條件下的環境需求。因此,本系統采用CPCI總線作為信號采集電路與計算機主機的接口,完成采集數據的傳輸。
本文所設計和實現的超高速數據采集存儲系統,采樣速率達到了200 MS/s,量化精度為12 bit,而且是實時連續采集、傳輸和存儲,最終滿足了對高帶寬雷達信號的高速高精度采集、實時存儲的需求。
1 系統總體架構
1.1 總體結構設計
數據采集系統的總體結構如圖1所示,主要由計算機主機、自主研制的CPCI數據采集卡和磁盤陣列組成。
采用標準工控機作為主機平臺,主要硬件配置為:(1)Intel Core2 處理器T7500,主頻2.2 GHz;(2)2 GB DDR-667內存,組成雙通道;(3)Intel GME965主板芯片組。在工控機主板上插入自行研制的基于CPCI總線的回波數據采集卡。采集卡將模擬回波信號通過ADC轉換為數字信號,與系統其他數據一起打包,通過CPCI總線以DMA方式傳輸到主機內開辟的內存緩沖區中。
為保證對采集數據的實時存儲,采用磁盤陣列作為存儲介質。并且用千兆以太網接口連接磁盤陣列與計算機主機。
在主機平臺上運行自行開發的采集系統軟件,包括驅動程序和應用程序,將內存緩沖區中的回波數據以文件方式寫入磁盤陣列,最終完成對雷達信號的采集。
1.2 CPCI回波數據采集卡
采集卡插入到主機的Compact PCI插槽中,完成的主要功能有:(1)根據前端雷達系統提供的同步信號,采集并緩存雷達回波信號以及五路參數電壓信號。(2)完成CPCI總線接口邏輯,將采集到的波形數據按照一定的數據格式從背板CPCI總線傳輸到計算機主機內存,供應用程序讀取和存儲。(3)完成雷達系統與主機之間的串口電平和速率轉換,采集和存儲雷達系統串口輸出的數據。采集卡的總體框圖如圖2所示。
模擬信號調理電路完成對輸入信號的濾波和電平調整,以滿足ADC轉換的需求。同時,該電路模塊對外具有很高的輸入阻抗,可以起到信號隔離的作用。兩路A/D轉換器分別完成視頻回波信號和模擬參數電壓的采樣,轉換為數字信號。采樣數據送入FPGA進行緩存和后續處理。FPGA完成主要的邏輯時序控制,包括模擬回波信號采樣時序控制、多路參數電壓信號的選通和采樣時序控制、采樣數據的暫存、PCI總線接口邏輯時序、數據幀的組合以提高傳輸效率、串口速率的匹配等。
2 優化策略研究
本系統的采集速率要求達到200 MS/s,A/D轉換的量化位寬要求達到12 bit。這樣的ADC并不難找到,但由于對應的傳輸速率要求達到2.4 Gb/s,這樣的數據傳輸速率對于總線傳輸速率和存儲速率來說是非常高的。而且,高速采集對應的也是海量的存儲數據量。為此,本文提出了三個優化策略,以解決高速傳輸和存儲的瓶頸問題。
優化策略包括:(1)設置采集時間窗,在保證信號質量的情況下盡量降低平均傳輸速率和采集數據量;(2)數據傳輸采用二級緩存機制,提高DMA傳輸的效率;(3)數據格式組合,提高CPCI總線帶寬利用率。
2.1 采集時間窗的設計
為降低平均數據傳輸速率和采集數據量,考慮雷達回波信號的特點。雷達工作時幾個主要的波形示意圖如圖3所示。
從圖3可以看到,有效的雷達回波信號在每個周期內只占據一段時間,其與預同步脈沖的時間距離τ取決于飛行高度。而T的最大可能值τmax取決于飛行器的最高飛行高度。又設雷達回波脈沖的最大寬度為Tp,則可設置采集時間窗,時間窗的長度T0滿足:
時間窗的起始時刻為預同步脈沖的上升沿。在每個周期內,對時間窗內的雷達檢波信號進行采集和存儲,即可滿足系統要求。由于T0<<T,因此時間窗的設置可以達到降低采集數據量,降低平均傳輸速率的目的。
2.2 數據傳輸機制
如前所述,采集系統在每個周期的時間窗內完成對信號的采集,得到一組回波數據。若每個周期內采集時間窗為30 μs,則對應的回波數據量為2 250×32 bit。
由于發起一次DMA傳輸包括產生DMA中斷請求、在中斷服務程序中設置DMA相關參數、啟動DMA傳輸、DMA結束后再次產生中斷、在中斷服務程序中做相關處理等。由此可見,頻繁地發起DMA傳輸,主機頻繁響應DMA請求會消耗大量的系統資源,大大降低CPCI總線的總線帶寬利用效率。
因此,可將每個周期采集的數據在采集卡上暫存,采集若干個周期之后再發起DMA傳輸,由此可以減少DMA中斷次數,提高總線帶寬利用率。
根據上述分析,采集卡采用兩級數據緩存機制,具體如下:
(1)一級緩存FIFO
該級FIFO的作用是暫存一次采集的回波數據,將其降低速率之后輸出,寫入二級緩存。
為了保證較高的寫入速率,同時由于該級緩存容量并不大,所以由FPGA內部的存儲器資源實現。
回波采集與一級FIFO寫入時序如圖4。
讀取操作在每個周期的采集時間窗結束之后即可啟動,由于數據突發寫入速率遠大于讀取速率,所以一級FIFO在讀取期間不會被清空。
(2)二級緩存FIFO
一級FIFO輸出的數據經過格式轉換并添加控制信息和參數電壓數據,位寬變為32 bit,速率變為50 MHz。
二級緩存FIFO寫入流程如圖5。
根據分析,二級緩存的寫入和讀取時鐘頻率都不高,但是容量要求較大,以存儲20次的采樣數據計算,要求至少為45 000×32 bit,FPGA內部實現如此大的存儲器比較困難,因此采用片外FIFO實現,由FPGA產生讀寫控制信號。
每次采集流程都由預同步信號觸發,一級FIFO寫入第一個數據之后,啟動一級FIFO讀取流程和二級FIFO寫入流程。
當二級FIFO中的數據量達到45 000×32 bit時,啟動DMA傳輸,將數據發送到計算機內存中的指定區域。
2.3 數據格式組合
由于傳輸總線協議和ADC采集數據的字長不一致,往往需要對數據進行拆分組合,以提高傳輸帶寬利用率。
在本文的采集系統中,CPCI總線的數據寬度是32 bit,文件系統的數據字長可能是32 bit或者64 bit,而ADC輸出的數據寬度為12 bit。如果以ADC輸出的數據寬度進行DMA傳輸,對總線帶寬的浪費是顯而易見的。
因此,針對上述問題,在本設計中采取了對數據進行重組的方法,以提高總線I/O的利用率。具體算法如下描述。
設采集器模數轉換有效數據長度為n,總線帶寬為L。在傳輸條件較好,信號完整性很好的情況下,一般認為誤碼率極低,這樣的情況下可以取n與L的公倍數。例如CPCI總線數據字長為32 bit,模數轉換字長為12 bit。則在數據組合模塊中將數據位拼合成96 bit。實質上即是8個采樣周期的數據被串行連接后分割成3個字長為32 bit的數據傳輸,這種傳輸方式的總線帶寬利用率為100%。數據組合示意圖如圖6所示。
3 各部分設計和實現
3.1模擬前端設計和失真度控制
外圍模擬電路主要用于處理輸入的回波信號,主要部分包括高阻輸入隔離電路和模擬差分放大器。輸入級采用高速精密運算放大器AD8057構成電壓跟隨器,對外提供30 kΩ的輸入阻抗。
模擬差分放大器采用增益帶寬積高達320 MHz的AD8138,將輸入的單端模擬信號轉換為差分信號,并調整到合適的幅度和直流偏置,供后續A/D轉換,電路原理圖如圖7。
模擬信號的失真主要由兩方面因素導致:信號處理電路的非線性和噪聲。
模擬電路的非線性會對信號造成非線性失真。非線性失真的程度可以用放大器的二次和三次諧波成分與基波的幅度比值衡量。AD8138在輸入信號20 MHz時的二次和三次諧波比分別為-87 dB和-85 dB,按照該參數計算,放大器造成的總諧波失真為5.15×10-9×100%,基本可以忽略。
本系統中對信號造成的非線性失真全部由前端調理電路造成,經實際測試,前端調理電路造成的實際非線性失真小于0.2%,完全滿足系統指標0.5%的要求。
3.2高速ADC電路設計
為實現高的分辨率,本系統采用12 bit高速A/D轉換器AD9430完成視頻回波的A/D轉換。AD9430要求采樣時鐘為差分輸入,而且內部自帶直流電平穩定電路,本設計使用FPGA內置鎖相環將晶體振蕩器產生的時鐘倍頻至200 MHz,然后以差分方式輸出到ADC。
3.3 FPGA邏輯設計
FPGA采用Xilinx的Virtex II Pro高性能FPGA系列中的XC2VP30型號,內部邏輯模塊功能劃分如圖8所示。其中采集卡和計算機內存之間的DMA數據傳輸采用PCI接口IP核自帶的DMA控制器完成,該模塊提供了本地邏輯與PCI總線接口IP核之間的接口。
DMA控制器內部采用512×32 bit發送FIFO,在發送數據時,將數據用PCI總線時鐘送入發送FIFO,完成總線的申請和數據的發送工作。DMA控制器采用的時鐘頻率為33 MHz,與CPCI總線同步。
發送FIFO的寫入時序如圖9所示。
3.4 磁盤陣列
在高速數據采集系統中,大容量高速存儲系統往往是限制系統性能提高的最大瓶頸。由于單個硬盤無法達到本系統要求的存儲速率,因此需要采用獨立磁盤冗余陣列RAID(Redundant Array of Independent Disks)技術。RAID把多塊獨立的物理硬盤按不同的方式組合起來,形成一個邏輯硬盤,從而提供比單個硬盤更高的存儲性能[8]。
如圖10所示,RAID0把連續的數據按照數據塊(512字節到數兆字節)分散到多個磁盤上存取,系統的數據請求被多個磁盤并行執行,每個磁盤執行屬于它自己的那部分數據請求。這種數據上的并行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能。
本系統選用RAID0以獲得最佳存儲性能,使用了4個硬盤組成RAID0。
磁盤陣列機箱通過千兆以太網線連接至采集器主機,實際測試持續寫入速度大于90 MB/s,完全滿足本系統的需求。
4 實驗結果
目前該系統已完成研制及與雷達系統的聯試。圖11為采集的雷達回波信號波形,只截取了回波對應的部分。橫軸為時間,單位μs;縱軸為幅度,單位為V。受到圖片篇幅的限制,只顯示了一個周期內的單個回波信號。
本文根據雷達回波信號的特點,基于虛擬儀器的技術完成了采集系統的設計與開發。在硬件平臺上采用CPCI總線接口和千兆以太網磁盤陣列,在系統設計上提出了有效的優化策略,完成了對雷達信號的高速采集與實時存儲。該系統在通信、自動控制等領域也有廣泛的應用前景。
參考文獻
[1] 張樂峰,吳建輝,郁文賢,等.一種通用雷達數據采集卡設計方法[J].系統工程與電子技術,2005,27(4):623-626.
[2] 沈蘭蓀.高速數據采集系統的原理與應用[M].北京:人民郵電出版社,1995:10-12.
[3] 張俊杰,章鳳麟,葉家駿.高速數據采集系統設計[J].計算機工程,2009,35(1):207-212.
[4] 唐林波,趙保軍,韓月秋.超高速數據采集與處理系統的設計及應用[J].系統工程與電子技術,2005,27(7):1203-1206.
[5] 宋杰,鐘建軍,何友,等.通用雷達數據采集系統研制與實驗數據分析[J].數據采集與處理,2008,23(6):761-765.
[6] LI Bo, LIU Da Tong, PENG Yu. A high speed DMA transaction method for PCI devices[J]. Journal of Electronic Measurement and Instrument, 2008,22(1):705-710.
[7] 張強,耿愛輝,曹立華,等.CompactPCI板卡硬件設計與傳輸速率測試[J].光學精密工程,2009,17(8):2047-2052.
[8] 洪瀑,王巖飛.基于磁盤陣列的超高速SAR原始回波數據記錄技術研究[J].電子與信息學報,2009(3):749-751.