實時高速高分辨率信號采集存儲與回放系統(tǒng)
隨著信息科學的飛速發(fā)展,數據采集和存儲技術已經是數字信號處理中非常重要的環(huán)節(jié),它廣泛應用于雷達、通信、遙測遙感、生物醫(yī)療、環(huán)境檢測等領域。它已經成為人們獲取不容易得到信號的重要手段,實現半實物仿真與算法分析,回放現場采集的真實信號,對系統(tǒng)性能進行研究,節(jié)省了大量的外場實驗時間和科研經費。
但是當A/D分辨率與采樣率提高時,數據傳輸率相應也變得越高,保持高速數據存儲過程的可靠性、實時性將會成為一個比較棘手的問題。春秋視訊研發(fā)了實時高速高分辨率信號采集存儲與回訪系統(tǒng),最終實現了高速(80 MB/s)持續(xù)的數據連續(xù)采集存儲與回放。系統(tǒng)主要性能指標如下:
●采樣率:單通道40MS/s,雙通道20MS/s,四通道10MS/s;
●分辨率:12 bit A/D,12 bit D/A;
●具有模擬,數字及軟件等多種觸發(fā)模式;
●外時鐘,內時鐘輸入;
●D/A回放模擬信號。
2 系統(tǒng)結構設計
整個系統(tǒng)由計算機、采集卡、實時記錄系統(tǒng)和連續(xù)采集存儲回放軟件四大部分組成(如圖1所示)。實時記錄系統(tǒng)由UltraSCSI-320實時記錄控制器和UltraSCSI-320盤陣兩大部分組成,可以根據用戶不同的存儲時間決定存儲容量的大小。信號回放時,根據用戶不同的要求可以任意選擇回放數據的起始位置和結束位置。
一般IDE硬盤的數據傳輸率比較低,為了實現實時高速的數據存儲,選用希捷轉速為10 Krpm的SCSI硬盤;相應的SCSI硬盤控制器選用Adapetec公司的Ultra320-SCSI硬盤控制器,用以上硬件組建RAIDO磁盤陣列結構實現80 MB/s連續(xù)采集存儲速度。
在要求高速、實時、連續(xù)采集和存儲的情況下,一方面要求系統(tǒng)不間斷的進行信號采集,同時還要進行數據的實時存儲,否則將會丟失數據,造成數據不完整。我們在系統(tǒng)結構設計中中通過采集卡驅動提供的事件通知回調模式,完成數據采集和數據存儲工作。采用雙緩沖區(qū)模式,當采集到的數據寫入第一緩沖區(qū)開始時,在事件回調函數中把第二緩沖區(qū)的數據存入SCSI硬盤;當數據寫入第二緩沖區(qū)時,在事件回調函數中把第一緩沖區(qū)的數據存入SCSI硬盤,如此循環(huán)。另外通過實際實驗測試Ultra320-SCSI硬盤控制器配合希捷公司出品的ST3146707LC SCSI硬盤組成的RAIDO磁盤陣列,持續(xù)寫入速率能達到200MB/s。遠大于80 MB/s的采集速率。因此當數據采集線程寫滿其中一個緩沖區(qū)之前,數據存儲線程已經把另一個緩沖區(qū)里的數據存儲入SC-SI硬盤。所以這種方法能保證數據的實時性、完整性和連續(xù)性。
在測試中發(fā)現:數據穩(wěn)定傳輸的速率與緩沖區(qū)設置大小及SCSI磁盤的個數有密切關系。同時內存申請方式采用虛擬分配,使內存頁面對齊,提高傳輸速率。
3 軟件結構設計
3.1 軟件功能模塊設計
系統(tǒng)由采集卡控制模塊、顯示模塊、連續(xù)采集控制模塊以及回放控制模塊組成,如圖2所示。
CAcqCard類:實現對采集卡的控制。包括采集卡參數配置、單次采集、連續(xù)采集、連續(xù)存儲、連續(xù)回放等功能。
CCurveShow類:實現信號的時域顯示、幅度軸縮放、時間軸縮放、信號大小標定、信號色彩選擇等。
CStreamDisk類:實現連續(xù)采集存儲的參數設定。
CShowStream類:實現連續(xù)回放的參數設定。
3.2 控制界面
基于VC平臺開發(fā)的高速高分辨率信號采集存儲回放系統(tǒng)具有良好的人機界面,易于用戶操作,如圖3所示。
3.3 軟件核心模塊設計原理
我們按照雙緩沖區(qū)的原理,開發(fā)了基于PCI總線的驅動軟件包及專門用于高速信號采集的API函數,實現對數據的實時、高速、連續(xù)的采集存儲與回放。
雙緩沖區(qū)模式在工程上稱為“乒乓”緩沖區(qū)模式。工作原理是:在內存里開辟兩塊容量相等的緩沖區(qū)作為連續(xù)數據輸入的緩沖區(qū)。開始采集時,信號采集卡首先將數據寫入第一緩沖區(qū)中,當信號采集卡開始把數據寫入第二緩沖區(qū)的同時,用戶程序可以根據自身需要取出第一緩沖區(qū)中的數據做特定的處理。當第二緩沖區(qū)被寫滿后,信號采集卡回到第一緩沖區(qū)的起始處,以覆蓋舊數據的方式,把新數據寫入第一緩沖區(qū)中;與此同時用和程序取出第二緩沖區(qū)的數據。整個數據采集處理過程可以如此不斷的循環(huán)進行下去。
雙緩沖區(qū)模式的優(yōu)點是,它可以使用較小容量的內存,不間斷的緩沖幾乎無限量的數據(輸入與輸出端需協(xié)同工作)。軟件核心模塊流程如圖4所示。
3.4 軟件核心模塊代碼
(1)連續(xù)采集控制部分
4 性能評估及未來展望
為了驗證該系統(tǒng)的性能,我們對其所能達到的采集和存儲速率及數據正確率進行了測試和分析。在測試中使用加拿大著名GAGE公司生產的CG4300高速信號產生卡設計特殊信號源(如圖5所示)。同時設計了查看信號完整性的程序。
經過測試發(fā)現:當內存緩沖區(qū)設置合適的時候,可以穩(wěn)定持續(xù)地以80 MB/s的速度連續(xù)采集存儲;當緩沖區(qū)設置過小時,連續(xù)采集存儲會發(fā)生中斷。
由于數據采集和存儲過程雙向占用PCI總線帶寬,在32位/33 MHz PCI總線上,實現了48 MB/s的連續(xù)采集存儲回放速度;64位/66 MHz PCI總線帶寬典型的輸出數據吞吐量為528 MB/s,80 MB/s(100%正確率)的采集和存儲速度相當于占用160MB的總線帶寬,同時磁盤陣列寫入速度穩(wěn)定在200 MB/s,遠高于數據采集的速度,因此在數據采集方面還有很大的提高空間,目前我們正在研究開發(fā)200 MB/s的高速高分辨率信號連續(xù)采集存儲與回放系統(tǒng)。