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