内江瓷蛋医疗科技有限公司

星載干涉成像光譜儀高速數據采集系統的設計

當前位置:首頁(yè) >> 儀器儀表技術(shù)文章

星載干涉成像光譜儀高速數據采集系統的設計
摘要:在工業(yè)及航空航天測控領(lǐng)域,實(shí)時(shí)數據采集存儲是一個(gè)基本而且重要的環(huán)節。如何提高數 據采集存儲的實(shí)時(shí)性一直是技術(shù)人員所關(guān)心的問(wèn)題。結合32位高速數據采集板7300A在星栽干涉 成像光譜儀高速數據采集記錄系統的應用, 闡述了在WindowsNT下用vc6.0實(shí)現高速數據采集、存 儲與實(shí)時(shí)顯示過(guò)程。在實(shí)現過(guò)程中采用了多線(xiàn)程、定時(shí)器、雙緩存和同步對象等技術(shù),有效保證了光 譜數據采集、存儲與顯示的穩定性、實(shí)時(shí)性,用高速數字采集卡實(shí)現了高速數字圖像采集卡的功能。

0 引言 成像光譜技術(shù)能獲得被測目標的空間和光譜信 息,在航空航天遙感、軍事偵察、環(huán)境監測、資源勘測 等領(lǐng)域具有重要的應用價(jià)值。從原理上成像光譜技術(shù) 可分為色散型和干涉型兩大類(lèi)。由于色散型成像光譜 儀存在著(zhù)能量低等原理性缺陷,從而使其分辨率和信 噪比都難以提高。而干涉型成像光譜儀在原理上具有 高光譜分辨率和高能量通過(guò)率等優(yōu)點(diǎn)。在相同條件 下,與典型的色散型成像光譜儀相比,進(jìn)入干涉成像 光譜儀的能量要高200倍左右,而光譜分辨率一般也 要高兩個(gè)數量級以上。這就要求干涉成像光譜儀的后 續采集處理系統動(dòng)態(tài)范圍大、位數高,一般采用12比 特或更多比特量化,結果使得數據量急劇上升,對數 據的采集記錄造成了很大的壓力。而如何解決干涉成 像光譜儀大量數據的實(shí)時(shí)存儲問(wèn)題,對于干涉成像光 譜儀來(lái)說(shuō)是非常重要的。此外,由于數據采集量大而 又要求采集與顯示實(shí)時(shí)同步進(jìn)行,如何解決兩者的時(shí) 間爭用問(wèn)題,以及兩者間的數據共享問(wèn)題,對于數據 采集記錄系統實(shí)時(shí)性的解決都是非常關(guān)鍵的。

1 系統組成 干涉成像光譜儀輸出14路信號,1路時(shí)鐘,1路 幀同步,12路數據信號,沒(méi)有行同步。時(shí)鐘頻率為 8.987 MHz. 占空比范圍為45—55% ,幀頻固定為 68.38 Hz。高電平為正程,持續512x255個(gè)時(shí)鐘,低電 平為逆程(回掃段),持續128個(gè)時(shí)鐘。在幀同步為高 電平時(shí),數據信號傳送圖像信息,而在低電平時(shí),數據 信號傳送輔助參數。輔助參數放在對應圖像數據的前 一逆程。由于干涉成像光譜儀傳來(lái)的光譜圖像信號是 低壓差分信號(LVDS),所以需要電平轉換卡把成該 信號轉換為1] 電平并傳給7300A 卡進(jìn)行采集,工 控機的圖像采集處理軟件對7300A卡采集的數據進(jìn) 行實(shí)時(shí)存儲、顯示等其他相關(guān)操作,每幀圖像輸出的 數據時(shí)序如圖1所示。 Read cl。ck _ ’ ’ 5 1 。 2 2 5 ; 6 = — 1 3 1 。 0 7 — 2 。 — 。 。 f1 ‘2 :; 。u — 一 : × ‘ : - J egatlve lram e Frame svnc Image data Auxiliarv data D(rD ll 圖l 數據輸出時(shí)序圖

2 數據采集 為了實(shí)現對干涉成像光譜儀傳來(lái)的光譜數據的 實(shí)時(shí)高速采集,選用臺灣凌華公司出品的PCI一7300A 數字I/O采集卡。它具有許多良好的特性:32位PCI 總線(xiàn),32個(gè)數字輸A/輸出通道,高達80 MB/s的傳 輸速率(32 bit input/output@20 MHz),64 KB 的FI— FO,總線(xiàn)主控DMA方式,100針SCSI—II型的連接 器,完善的開(kāi)發(fā)支持軟件【l1。 在開(kāi)始數據采集時(shí),首先對采集卡進(jìn)行初始化配 置,然后開(kāi)始數據采集,同時(shí)啟動(dòng)一個(gè)工作線(xiàn)程來(lái)監 視用戶(hù)緩沖區(用戶(hù)設置緩沖區的大小后,由采集卡 的驅動(dòng)程序創(chuàng )建)的使用情況,以便及時(shí)進(jìn)行數據存 儲,最后啟動(dòng)定時(shí)器控制實(shí)時(shí)顯示。其具體實(shí)現如下: Card=Register Card(PCI_7300A_RevB,0);//注冊卡 DI_ 7300B_ Config(Card,16,TRIG_EXT_STROBE, P7300_ W AIT_ TRG, P7300_ TERM _ ON, P7300_ DIREQ_NEG I P7300_DIACK_NEG I 7300_ DITRIG_ POS,1,0); ,/7300A卡的初始化配置。 DI ContMultiBuferStart(card,0,1);,/啟動(dòng)緩存 DI_ AsyncMultiBufferNextReady(card,&Next Ready,&BufferId);//判斷緩存準備好信號 m _ Timer ID=Set Timer(1,SCAN_INTERVAL, NIⅡL);,/定時(shí)開(kāi)啟實(shí)時(shí)顯示

3 數據存儲 針對PCI 7300A采集卡高速采集的特點(diǎn),在凌華 公司的驅動(dòng)程序包PCI DASK中,提供了專(zhuān)門(mén)用于實(shí) 現高速數據采集的連續多緩沖區操作的一組函數。通 過(guò)這組函數,可以按照循環(huán)緩沖區的原理,非常方便 地實(shí)現對數據的連續、實(shí)時(shí)和大容量采集【21。 為了通過(guò)使用PCI 7300A高速數據采集卡和PCI DASK的雙緩沖區模式,達到實(shí)時(shí)數據存儲速率不低 于32 MB/s的目標,需使用非常規的方法。而且工作 在雙緩沖區模式時(shí),如果在第二個(gè)半緩沖區被寫(xiě)滿(mǎn)之 前,不能完成對第一個(gè)半緩沖區中數據的處理,則會(huì ) 出現第一個(gè)緩沖區中未處理完的數據被新數據覆蓋 的情況,最終導致所采集到的數據不可用。通過(guò)使用 SCSI硬盤(pán)控制器和高轉速的SCSI硬盤(pán)來(lái)解決,其硬 件結構如圖2所示。目前,15000轉/分的SCSI硬盤(pán), 總線(xiàn)數據傳輸速率80 120 MB/s,持續數據傳輸速率 大于50 MB/s,SCSI硬盤(pán)在標識硬盤(pán)扇區時(shí)使用了線(xiàn) 性的概念,即硬盤(pán)只有線(xiàn)性的第1扇區、第2扇區, ⋯ , 第n扇區,該線(xiàn)性編排方式的優(yōu)點(diǎn)是訪(fǎng)問(wèn)延時(shí)最 小,可加速硬盤(pán)存取速率,尤其在大容量持續數據存 儲時(shí).這種編排方式的優(yōu)點(diǎn)更加明顯。 Industrial computer EMS memory H c a ig plu h s rin pee g d c d a r a c p ing carddta I lI conStCroSl Ic ard Hr l haSrCdS d[isk 圖2 高速硬盤(pán)記錄系統結構圖 Fig.2 High speed HD record system structure chart 借助于A(yíng)daptec公司所提供的ASPI(Advanced SCSI Programming Interface)中的函數[3-51,直接對SC— SI控制卡進(jìn)行操作,繞過(guò)Windows傳統的文件系統, 以原始數據塊(RAW DATABLOCK)的格式,對SCSI 硬盤(pán)進(jìn)行讀/寫(xiě)訪(fǎng)問(wèn)。使用ASPI控制SCSI硬盤(pán)寫(xiě)數 據的流程(如圖3所示),使用ASPI函數發(fā)出一條寫(xiě) 數據指令,指令包括:主適配器號、SCSI硬盤(pán)標識號、 邏輯單元號及寫(xiě)入的位置和長(cháng)度。ASPI管理器將收 到的函數指令轉換為ASPI指令傳送給ASPI驅動(dòng), ASPI驅動(dòng)將ASPI指令及參數轉換為適當的SCSI指 令,并把此指令送給SCSI控制器,該控制器依照指令 在其硬盤(pán)上執行寫(xiě)數據操作。具體步驟如下: [nput data ASP【 m anager ASP【 SCSI 卜、J High speed controller卜 SCSI HD 圖3 用ASPI函數寫(xiě)高速SCSI硬盤(pán)的流程 Fig.3 Chart of writing SCSI HD witIl ASPI function
(1)建立指令 所有ASPI指令都使用一個(gè)SCSI請求塊(SRB) 的數據結構,SRB包含了SCSI指令描述塊(DDB), SCSI標準規格的指令和參數均封裝在DDB中。
(2)指令發(fā)送 在SRB被正確初始化后,就可簡(jiǎn)單地把它的地 址傳遞給ASPI管理器,ASPI管理器將處理實(shí)際SCSI 指令的所有階段和數據傳輸。ASPI管理器使指令的 實(shí)際執行同請求一個(gè)功能調用一樣簡(jiǎn)單,通常只是把 SRB放在一個(gè)隊列中,且立即返回調用值,甚至在指 令開(kāi)始執行之前。這就允許應用程序在一個(gè)指令還在 執行的時(shí)候,就為下一條指令做好準備。ASPI管理器 在后臺處理執行這些指令過(guò)程中的所有細節,然后在 指令完全執行后,更新SRB中的狀態(tài)字段。
(3)等待指令完成 應用程序需等待SRB完成,再執行下一步動(dòng)作。 因ASPI管理器可能在一個(gè)SRB完成之前返回。故應 用程序一定不能分配SRB或依賴(lài)于任何SRB返回數 據。保證這一點(diǎn)最簡(jiǎn)單的方法就是這支一個(gè)循環(huán),等 待SRB狀態(tài)字段指示SRB已經(jīng)完成。但該方式浪費 了寶貴的CPU時(shí)間。對于性能要求很高的系統,ASPI 提供了另外一種等待的方法,即對在SRB中指明的 例行程序的一次回調,當ASPI管理器處理完SRB,它 將調用指定的例行程序。這個(gè)回調程序能夠檢查SRB 的狀態(tài)字段,并能立即執行另外一個(gè)SRB。
(4)回調及容錯處理 應用程序在回調程序中,首先檢查SRB的狀態(tài) 字段,做出相應的處理,對可能遇到的錯誤能容錯處 理。 在使用ASPI函數時(shí),還應注意:(1)使DDB控制 字段中的連接標志有效, 指出該DDB是一系列連接 指令的一部分. 避免出現SCSI總線(xiàn)的重新選擇階段 使目標硬盤(pán)可持續連接在總線(xiàn)上,實(shí)時(shí)記錄數據。(2) 應準備多個(gè)SRB,把它們放人前臺的對列,只要前面 的指令完成,就用一個(gè)回調程序發(fā)送下一個(gè)要執行的 SRB給后臺的ASPI管理器。(3)在內存中開(kāi)辟2個(gè)適 當大小的數據緩沖區,以乒乓方式將數據從采集卡送 人硬盤(pán),數據的傳輸以中斷和DMA的方式進(jìn)行。 能直接存取SCSI硬盤(pán)后,就可以跳過(guò)Windows 的文件系統,把每一組數據存放到硬盤(pán)中的指定位 置。經(jīng)過(guò)實(shí)測,采用Adaptec 29320一R SCSt適配卡和 Scagatc ST336753LW 硬盤(pán)(15000轉/min、持續傳輸速 率為65 MB/s的SCSI硬盤(pán)),經(jīng)ASPI函數直接控制 硬盤(pán)記錄數據,記錄速度可達43—56 MB/s。配合數據 采集卡,以20 MB/s的速度持續記錄,并連續記錄30 GB,實(shí)測沒(méi)有出現差錯。

4 實(shí)時(shí)顯示 如果能夠實(shí)時(shí)觀(guān)察到干涉成像光譜儀數據采集 系統采集到的光譜信號,對于了解系統的工作狀態(tài)、 及時(shí)做出相應的調整,將是非常有實(shí)際意義的,這就 需要把采集與顯示同步進(jìn)行。對于搶占式多任務(wù)操作 系統Windows來(lái)說(shuō),利用多線(xiàn)程技術(shù),把采集與顯示 放到不同的線(xiàn)程中實(shí)現。只須解決兩者間的協(xié)調同 步,就可以滿(mǎn)足采集與顯示的實(shí)時(shí)同步。在本采集程 序中,采集程序放在工作線(xiàn)程,顯示程序則放在主線(xiàn) 程中,兩者通過(guò)全局數據對象進(jìn)行數據的共享。從共 享數據緩沖區中取數據的操作由定時(shí)器來(lái)控制實(shí)現 使用定時(shí)器計時(shí).最重要的一個(gè)函數是SetTimer.Set. Timer會(huì )從系統中獲取一個(gè)計時(shí)器時(shí)間。調用Set. Timer還必須提供一個(gè)參數。用以設置定時(shí)器的時(shí)間 間隔。每隔一段時(shí)間間隔。計時(shí)器便傳送WM_TIMER 消息給應用程序。在程序中。創(chuàng )建一個(gè)可激活的圖像 實(shí)時(shí)顯示窗口,窗口激活后用該函數設定計時(shí)器的時(shí) 間常數。窗口創(chuàng )建后, 以此窗口句柄創(chuàng )建處理 W M _ TtMER消息的函數,每隔一定的時(shí)間(比如0.1 s)圖像顯示一次。經(jīng)實(shí)驗測定,每隔0.02 s顯示一次, 綜合性能最佳,雖然沒(méi)有達到實(shí)時(shí)顯示的效果(70 幀/s),但滿(mǎn)足視覺(jué)需要。另外有原始數據記錄可供調 用,因此認為基本滿(mǎn)足實(shí)時(shí)顯示的要求。 在顯示過(guò)程中,采用BMP方式。我們采集到的光 譜數據是12位的數據,現在BMP方式也可以16位 顯示,但這需要專(zhuān)門(mén)的硬件與之配合,成本過(guò)高。于是 采用8位的BMP方式,即只顯示高8位的光譜數據, 通過(guò)內存中寫(xiě)像素點(diǎn)的方式實(shí)現。首先自己填寫(xiě) BMP頭。然后在內存中寫(xiě)像素點(diǎn),其代碼主要如下: for(i=0;i<512;i++) f ::舶ad((void*)(Tmp),512,1,hFile);//一次 讀一行256個(gè)點(diǎn)的數據.256*2 data=Tmp; for(j=0;j<256;j++)//取2個(gè)字節進(jìn)行運算, 2個(gè)字節剛好是1個(gè)點(diǎn)的數據16 bit(低12 bit有效)。 fdatal=data[O]>>4;低字節右移4位 data2,=data[1]<<4;高字節左移4位 data3=datalIdata2:高字節低4位與低 字節高4位合成一個(gè)字節,即取12 bit的高8位 ptr【k+0]=data3;合成BMP圖像,3個(gè) p仃值對應3個(gè)顏色分量 ptr[k+l】=data3; ptr[k+2]=data3; k=k+3; data+=2;} }

5 應用及結論 干涉成像光譜儀光譜信號采集記錄系統研制完 成后,可作為地面檢測測量系統的組成部分。進(jìn)行過(guò) 長(cháng)期的地面聯(lián)調試驗和多次機載飛行試驗,成功地完 成了飛行試驗任務(wù),獲取了高質(zhì)量的光譜圖像。用干 涉成像光譜儀高速數據采集系統采集到的光譜圖像 經(jīng)復原計算合成的彩色遙感圖像,如圖4所示【6]。

發(fā)布人:2010/10/11 10:21:001022 發(fā)布時(shí)間:2010/10/11 10:21:00 此新聞已被瀏覽:1022次