探地雷達信號的數(shù)據(jù)采集與顯示研究
摘要:介紹了使用數(shù)據(jù)采集控制板HY-6070 C進行探地雷達信號的數(shù)據(jù)采集方法以及應用VC++編程進行數(shù)據(jù)堆積顯示的軟件編制結果。實際使用證明它們均正確有效。
關鍵詞:探地雷達;數(shù)據(jù)采集;堆積顯示
隨著電子技術和計算機技術的迅速發(fā)展,幾種商業(yè)化的探地雷達系統(tǒng)開始得到了初步應用,其中具有代表性的有加拿大探頭及軟件公司(SSI)的PulseEKKO系列、瑞典地質(zhì)公司(SGAB)的RAMAC鉆孔地質(zhì)雷達系統(tǒng)、美國地球物理探測設備公司(GSSI)的SIR系統(tǒng)及日本應用地質(zhì)株式會社(OYO)的Georadar系列等。但是,這些國外產(chǎn)品造價昂貴,且測量的局限性較大,嚴重地影響了它的普及。鑒于探地雷達具有廣泛的用途對其進行了開發(fā)研制,目前已研制成功。由于篇幅限制,文中在此重點介紹數(shù)據(jù)采集部分和顯示軟件。
1 數(shù)據(jù)采集
在探地雷達數(shù)據(jù)采集試驗中,所使用的是HY-6070 C通用數(shù)據(jù)采集控制板,此板的功能主要是A/D與D/A數(shù)據(jù)轉(zhuǎn)換。其接口是ISA總線型的,可以直接插入具有ISA總線擴展槽的計算機中,在計算機的控制下構成信號采集、監(jiān)視輸入系統(tǒng)和模擬量電壓信號、數(shù)字電壓信號輸入系統(tǒng)。HY-6070 C板上安裝有12 bit分辨率的A/D轉(zhuǎn)換器,其通過率為40 kHz。為用戶提供了兩種模擬信號輸入方式:16路單端輸入和8路雙端輸入。通過硬件設置,模擬電壓信號輸入范圍可以是0~5 V,土2.5 V,±5 V。此板還提供了1路12 bit D/A轉(zhuǎn)換模擬電壓輸出通道。在HY-6070 C板上還裝有可編程定時/計數(shù)器82C54,其中82C54的定時/計數(shù)器1和定時/計數(shù)器2級連,用以生成定時啟動A/D轉(zhuǎn)換的信號。定時/計數(shù)器O單獨引出,供用戶使用。HY-6070 C板支持軟件觸發(fā)、定時觸發(fā)和外觸發(fā)3種A/D電路啟動轉(zhuǎn)換工作方式。支持軟件查詢和中斷申請數(shù)據(jù)傳送工作方式。HY-6070 c板還為用戶提供了16路數(shù)字輸入/輸出通道信號,接口電平符合TTL電平標準。
文中利用軟件編程啟動HY-6070 C板的A/D轉(zhuǎn)換功能。在軟件觸發(fā)方式下,每次啟動A/D轉(zhuǎn)換前由軟件切換通道,然后發(fā)送A/D轉(zhuǎn)換啟動命令來觸發(fā)A/D轉(zhuǎn)換。當A/D轉(zhuǎn)換完成后,可通過軟件查詢A/D完成位,當程序測到A/D完成位為“1”時,即可讀取A/D轉(zhuǎn)換的12 bit數(shù)據(jù)。
A/D采樣程序步驟如下:
(1)設置板上的模擬信號輸入通道(共16個通道,編號為0~15);
(2)設置A/D觸發(fā)方式,這里設置為軟件觸發(fā);
(3)開始觸發(fā)A/D轉(zhuǎn)換;
(4)等待并查詢A/D轉(zhuǎn)換完成標志;
(5)對接收到的數(shù)據(jù)進行存儲。
在HY-6070 c數(shù)據(jù)采集卡內(nèi)預先分配了各種地址,程序通過訪問這些地址并對其進行相應的讀寫操作來控制A/D采樣的實現(xiàn)。在實際應用中,可以直接利用由C語言編制的應用程序來控制采集卡進行A/D轉(zhuǎn)換,只需調(diào)用頭文件為dos.h中的outport(address,data)(address為地址值,data為要向該地址輸出的數(shù)據(jù))與inportb(ADaddress)(ADadress是A/D轉(zhuǎn)換數(shù)據(jù)所存儲的地址)兩個函數(shù)即可,但是應用程序的使用環(huán)境必須是DOS操作系統(tǒng)。這給應用程序的使用者帶來了諸多不便。因此為了讓用戶方便使用,作者制作了基于Windows操作系統(tǒng)的顯示軟件。由于Windows操作系統(tǒng)不能像DOS那樣直接讀取采集卡的板內(nèi)地址,因此要想面向數(shù)據(jù)采集卡編程,首先需要安裝數(shù)據(jù)采集卡的驅(qū)動程序,既讓Windows操作系統(tǒng)能夠識別到此硬件。在接下來的編程中還必須使用到數(shù)據(jù)采集卡自帶的兩個文件,HKIoMFC.H和HKIoMFC.lib,在這兩個文件中定義了對采集卡進行控制的變量與函數(shù)體,編程時即可直接調(diào)用。
2 顯示軟件
利用Visual C++6.0在Windows操作系統(tǒng)下開發(fā)應用程序主要是使用MFC(Microsoft Fbundation Class)類庫。MFC是微軟為Windows程序員提供的一個面向?qū)ο蟮腤indows編程接口,它簡化了Windows編程工作。使用MFC類庫的優(yōu)點:首先,MFC提供了一個標準化的結構,這樣開發(fā)人員不必從頭設計創(chuàng)建和管理一個標準Windows應用程序所需的程序,而是從一個比較高的起點編程,可節(jié)省大量的時間;其次,它提供了大量的代碼,指導用戶編程時實現(xiàn)某些技術和功能。MFC庫充分利用了Microsoft開發(fā)人員多年開發(fā)Windows程序的經(jīng)驗,并可以將這些經(jīng)驗融入到自己開發(fā)的應用程序中去。
Visual C++6.0集成環(huán)境對MFC提供了多種界面友好的輔助工具,用AppWizard可以生成新的類,可以對類成員進行維護。MFC提供了一種機制,把Windows的消息與類的某個成員直接聯(lián)系起來,減少程序員中間的處理過程。比如在菜單中加了一個命令項,指定其命令ID,然后用ClassWizard可以指定此菜單ID與類的成員函數(shù)相聯(lián)系,所需要的編程就是實現(xiàn)該成員函數(shù)的代碼,其他代碼均由MFC和Class-Wizard負責處理。這種機制提高了程序開發(fā)效率,而且Visual C++提供了MFC的所有源代碼,這些源代碼不僅可供參考,還為應用程序的調(diào)試提供了方便,源代碼的開放性也是MFC獲得成功的一個主要原因。
作者所設計的顯示軟件是基于單文檔(SDI)框架結構的應用程序,其外觀如圖1所示。
由圖可見,單文檔的外觀與常見的Windows應用程序相似,因此操作方便,只需要選擇各個菜單執(zhí)行相應的功能即可。
探測波形實時顯示功能的實現(xiàn)需要軟件與前面提到的HY-6070 C數(shù)據(jù)采集卡配合實現(xiàn)。在廠家提供的驅(qū)動函數(shù)庫內(nèi)定義了一個CHKIoCtrl類,在編程時只需聲明一個此類的對象mHKDevice即可,然后就可調(diào)用驅(qū)動函數(shù)進行相應的操作。圖2是波形的動態(tài)顯示效果。
當?shù)弥叵掠形矬w存在后,人們希望了解這個物體到底是什么,而利用上述波形的動態(tài)顯示方法就難以給出結論。因此還需要通過這些回波產(chǎn)生一幅可視性強的圖像,這通常建立在數(shù)字圖像處理的基礎上。通常稱圖2所示的波形為一維圖像,如果能將其轉(zhuǎn)化為二維圖像,可視性會大為改善。這里用“波形堆積”一詞來形容將一維圖形轉(zhuǎn)化為二維圖形的過程。圖3所示240個波形直接堆積的結果,這里采用灰度圖像。
由圖3可見,圖像出現(xiàn)了灰度不均勻顯示的效果,與圖2單純的波形相比,其可視性得到增強。這些不均勻的變化特征反映出目標的某些特性。
3 結束語
通過應用通用HY-6070 C完成了對探地雷達信號的數(shù)據(jù)采集,并且應用文中所編制的顯示軟件,對實時波形和堆積圖形進行了正確顯示,與所研制的探地雷達主機聯(lián)調(diào)也得以成功,完全能夠正確使用。