星載干涉成像光譜儀高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

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

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

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

1 系統(tǒng)組成 干涉成像光譜儀輸出14路信號(hào),1路時(shí)鐘,1路 幀同步,12路數(shù)據(jù)信號(hào),沒(méi)有行同步。時(shí)鐘頻率為 8.987 MHz. 占空比范圍為45—55% ,幀頻固定為 68.38 Hz。高電平為正程,持續(xù)512x255個(gè)時(shí)鐘,低電 平為逆程(回掃段),持續(xù)128個(gè)時(shí)鐘。在幀同步為高 電平時(shí),數(shù)據(jù)信號(hào)傳送圖像信息,而在低電平時(shí),數(shù)據(jù) 信號(hào)傳送輔助參數(shù)。輔助參數(shù)放在對(duì)應(yīng)圖像數(shù)據(jù)的前 一逆程。由于干涉成像光譜儀傳來(lái)的光譜圖像信號(hào)是 低壓差分信號(hào)(LVDS),所以需要電平轉(zhuǎn)換卡把成該 信號(hào)轉(zhuǎn)換為1] 電平并傳給7300A 卡進(jìn)行采集,工 控機(jī)的圖像采集處理軟件對(duì)7300A卡采集的數(shù)據(jù)進(jìn) 行實(shí)時(shí)存儲(chǔ)、顯示等其他相關(guān)操作,每幀圖像輸出的 數(shù)據(jù)時(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ù)據(jù)輸出時(shí)序圖

2 數(shù)據(jù)采集 為了實(shí)現(xiàn)對(duì)干涉成像光譜儀傳來(lái)的光譜數(shù)據(jù)的 實(shí)時(shí)高速采集,選用臺(tái)灣凌華公司出品的PCI一7300A 數(shù)字I/O采集卡。它具有許多良好的特性:32位PCI 總線(xiàn),32個(gè)數(shù)字輸A/輸出通道,高達(dá)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ù)采集時(shí),首先對(duì)采集卡進(jìn)行初始化配 置,然后開(kāi)始數(shù)據(jù)采集,同時(shí)啟動(dòng)一個(gè)工作線(xiàn)程來(lái)監(jiān) 視用戶(hù)緩沖區(qū)(用戶(hù)設(shè)置緩沖區(qū)的大小后,由采集卡 的驅(qū)動(dòng)程序創(chuàng)建)的使用情況,以便及時(shí)進(jìn)行數(shù)據(jù)存 儲(chǔ),最后啟動(dòng)定時(shí)器控制實(shí)時(shí)顯示。其具體實(shí)現(xiàn)如下: Card=Register Card(PCI_7300A_RevB,0);//注冊(cè)卡 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);//判斷緩存準(zhǔn)備好信號(hào) m _ Timer ID=Set Timer(1,SCAN_INTERVAL, NIⅡL);,/定時(shí)開(kāi)啟實(shí)時(shí)顯示

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

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

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

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