新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 激光聲遙感系統(tǒng)顯控軟件的功能及設(shè)計(jì)

激光聲遙感系統(tǒng)顯控軟件的功能及設(shè)計(jì)

作者: 時(shí)間:2007-06-28 來源:網(wǎng)絡(luò) 收藏

要:本文介紹了顯控的功能和設(shè)計(jì)中的關(guān)鍵技術(shù),并給出其在Lab Windows/CVI環(huán)境下的實(shí)現(xiàn)方案,總結(jié)了基于此種方案的優(yōu)越性。
關(guān)鍵詞:Lab Windows/CVI; 虛擬儀器; DSP

1 引言

Windows操作因其卓越的性能已成為各個(gè)領(lǐng)域廣泛采用的操作平臺,由于Windows對系統(tǒng)底層操作采取了屏蔽的策略,因而對用戶而言,系統(tǒng)變得更為安全,但這卻給眾多的硬件或者系統(tǒng)開發(fā)人員帶來了不小的困難,因?yàn)橹灰獞?yīng)用中涉及到底層的操作,如直接訪問I/O端口和物理內(nèi)存等,開發(fā)人員就不得不深入到Windows的內(nèi)核去編寫屬于系統(tǒng)級的虛擬設(shè)備驅(qū)動程序。筆者開發(fā)的系統(tǒng)顯控中涉及到物理內(nèi)存的訪問和信號波形的顯示,如采用VC++等語言開發(fā),一方面開發(fā)虛擬設(shè)備驅(qū)動程序工作難度較大,另外波形的顯示及選取定位等工作實(shí)現(xiàn)起來也較繁雜,而如果在Lab Windows/CVI[1]環(huán)境下完成這一工作,這一切將變得十分輕松,而且使系統(tǒng)的性能更加出色。

2 關(guān)于Lab windows/CVI

Lab Windows/CVI 是美國NI(National Instrument)公司開發(fā)的Measurement Studio軟件組中的一員,是32位的面向計(jì)算機(jī)測控領(lǐng)域的虛擬儀器軟件開發(fā)平臺,可在Windows 98/NT/2000等操作系統(tǒng)下運(yùn)行。它以ANSI C為核心,將功能強(qiáng)大、使用靈活的C語言平臺與用于數(shù)據(jù)采集、分析和顯示的測控專業(yè)工具有機(jī)結(jié)合起來。它的交互式開發(fā)平臺、交互式編程方法、豐富的功能面板和庫函數(shù)大大增強(qiáng)了C語言的功能,為熟悉C語言的開發(fā)人員建立自動化檢測系統(tǒng)、自動測量環(huán)境、數(shù)據(jù)采集系統(tǒng)、過程控制系統(tǒng)等提供了一個(gè)理想的軟件開發(fā)環(huán)境。當(dāng)前的最新版本Lab Windows/CVI 7.0更因其完全集成的工作平臺(Workspace)、可生成代碼的硬件配置助手以及經(jīng)重新設(shè)計(jì)的數(shù)據(jù)采集界面為廣大用戶提供更靈活、高效又長期穩(wěn)定的ANSI C編程,大幅增加了開發(fā)速度。它的用戶界面函數(shù)庫除了提供一般程序設(shè)計(jì)語言提供的控件外,還擴(kuò)展了新的完善的帶有圖像、標(biāo)記和分欄功能的樹型控件、圖形圖例控件、以及“open GL”控件 等;新的圖形控件具有平滑顯示,抗混疊, 內(nèi)置DataSocket以及另一個(gè)x軸的功能,能更有效地顯示測量數(shù)據(jù)。另外,Lab Windows/CVI還支持多線程編程及物理內(nèi)存訪問,它不僅提供了用來進(jìn)行數(shù)據(jù)存儲和讀取的內(nèi)存管理函數(shù),還在Utility函數(shù)庫中提供了利用物理地址對內(nèi)存直接訪問的Physical Memory Access子類,本文中顯控軟件的設(shè)計(jì)正是基于它這幾個(gè)方面的特性。

3、系統(tǒng)概述

激光聲遙感系統(tǒng)[2 ]是一種新型的水下目標(biāo)遙感探測系統(tǒng),它通過對接收到的水下目標(biāo)反射的寬帶窄脈沖信號進(jìn)行實(shí)時(shí)處理來實(shí)現(xiàn)對水下目標(biāo)的探測和定位。因此,在軍事和國防建設(shè)中具有重要的意義。

系統(tǒng)的工作原理為高能激光束照射水面在水中產(chǎn)生高頻寬帶聲脈沖信號,信號在傳播的過程中遇到水下目標(biāo)發(fā)生散射或反射后有部分聲波會透過水面?zhèn)鞑サ娇諝庵小T诳罩胁挤诺穆曣噷⒔邮盏降穆曅盘栟D(zhuǎn)換為電信號后送多波束接收機(jī)進(jìn)行采集、處理、顯示、分析,進(jìn)而確定水下目標(biāo)的方位和距離。

按系統(tǒng)要求,該接收機(jī)將完成對采樣率高達(dá)384KHz的8路信號的波束形成、檢波和短積分處理,并能夠?qū)崟r(shí)顯示14個(gè)波束的目標(biāo)信號方位─距離畫面及光標(biāo)所選目標(biāo)的方位、距離數(shù)據(jù),系統(tǒng)的DSP部分包括前置預(yù)處理分機(jī)、高速信號處理分機(jī)和顯示控制分機(jī)三個(gè)部分。其中前兩部分集成為專用的DSP分機(jī),顯控分機(jī)采用高性能微機(jī),二者通過PCI總線接口卡進(jìn)行控制和數(shù)據(jù)信息的交換。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

1 數(shù)字多波束接收機(jī)結(jié)構(gòu)框圖

系統(tǒng)工作時(shí)首先啟動顯控微機(jī)和DSP處理機(jī),顯控微機(jī)啟動圖形用戶界面應(yīng)用程序,接收用戶設(shè)置輸入,并檢測激光系統(tǒng)發(fā)射信號;DSP分機(jī)中各采集處理模塊的DSP處理器完成初始化工作后等待啟動命令。激光系統(tǒng)發(fā)射后觸發(fā)主控微機(jī)向DSP分機(jī)發(fā)送增益設(shè)置命令及啟動信號。DSP分機(jī)對來自接收陣的信號進(jìn)行采集和計(jì)算,形成目標(biāo)的方位―距離波形數(shù)據(jù)并存入數(shù)據(jù)輸出雙口RAM中,數(shù)據(jù)滿一幀后由顯控微機(jī)進(jìn)行讀取、顯示,并可以文件形式進(jìn)行存儲。接收機(jī)作為微機(jī)的一個(gè)外圍設(shè)備,是按照數(shù)據(jù)空間進(jìn)行讀寫操作的,根據(jù)微機(jī)內(nèi)存資源配置情況,選擇了內(nèi)存的EXXXXH空間存儲14個(gè)波束的數(shù)據(jù)(字存?。?,相鄰兩個(gè)波束數(shù)據(jù)交錯(cuò)排列,處于同一區(qū)間,區(qū)間分配情況如下表所示。

1 波束數(shù)據(jù)緩沖區(qū)地址分配表

地址區(qū)間

空間量

覆蓋區(qū)間

操 作

片選信號

0000―1FFF

4KW

SP0雙口RAM

讀寫

CSP0

2000―3FFF

4KW

SP1雙口RAM

讀寫

CSP1

4000―5FFF

4KW

SP2雙口RAM

讀寫

CSP2

6000―7FFF

4KW

SP3雙口RAM

讀寫

CSP3

8000―9FFF

4KW

SP4雙口RAM

讀寫

CSP4

A000―BFFF

4KW

SP5雙口RAM

讀寫

CSP5

C000―DFFF

4KW

SP6雙口RAM

讀寫

CSP6

E000―FFFF

4KW

I/O外設(shè)

讀寫

CSP7

4、顯控軟件設(shè)計(jì)

4.1顯控軟件功能

該程序負(fù)責(zé)啟動接收機(jī)工作,并完成14個(gè)波束的方位―距離數(shù)據(jù)顯示,它首先將輸入的增益值及波束號轉(zhuǎn)換為控制碼,然后以程序詢問的方式認(rèn)知發(fā)射機(jī)同步信號的到來,如接收到發(fā)射機(jī)同步信號,則控制接收機(jī)進(jìn)入工作狀態(tài),并將控制碼寫入接收機(jī)控制寄存器的指定位,最后將該次發(fā)射所得處理結(jié)果顯示輸出,直至用戶按“ESC”鍵停止程序的運(yùn)行。

這部分軟件運(yùn)行于主控機(jī)上,以菜單驅(qū)動方式進(jìn)行操作,其控制功能包括對接收機(jī)的增益進(jìn)行設(shè)置、執(zhí)行波束選擇及聲陣的高度輸入等,并對接收機(jī)信號處理單元進(jìn)行起停控制;顯示功能則完成14個(gè)波束的方位―距離數(shù)據(jù)顯示或?qū)χ付úㄊ牟ㄐ芜M(jìn)行輸出,并能夠以文字方式給出光標(biāo)所在位置的目標(biāo)方位及距離。全部功能可總結(jié)為如下幾項(xiàng):

(1) 系統(tǒng)及圖形環(huán)境初始化;

(2) 接收程放增益及陣高度設(shè)置輸入;

(3) 檢測激光器發(fā)射信號,傳送控制數(shù)據(jù),啟動DSP分機(jī);

(4) 讀取、顯示14個(gè)波束的方位―距離數(shù)據(jù);

(5) 給出光標(biāo)所在位置的目標(biāo)方位及距離;

(6) 波束數(shù)據(jù)存盤。

程序的設(shè)計(jì)上本著結(jié)構(gòu)化設(shè)計(jì)思想,將整個(gè)系統(tǒng)功能分解為幾個(gè)子功能模塊分別開發(fā)調(diào)試,從而提高了程序的可讀性和可維護(hù)性,也便于功能的擴(kuò)充。下圖給出顯控軟件主程序的流程:

4.2技術(shù)要點(diǎn)

程序在Lab Windows/CVI環(huán)境下開發(fā),主窗體及菜單可在用戶界面窗口中快速便捷地建立,操作控制消息處理過程框架也可由環(huán)境自動生成,設(shè)計(jì)人員只需加入相應(yīng)的處理邏輯即可。程序設(shè)計(jì)中要解決的關(guān)鍵問題是DSP分機(jī)輸出緩沖器中波束數(shù)據(jù)的讀取及波形的顯示和通過光標(biāo)操作進(jìn)行目標(biāo)的定位。這些工作如果用VC++等實(shí)現(xiàn)將比較繁瑣,而在Lab Windows/CVI環(huán)境下則可以得到輕松而完美的解決。

4.2.1 DSP分機(jī)輸出緩沖器中波束數(shù)據(jù)的讀取

Lab Windows/CVI在Utility函數(shù)庫中提供了利用物理地址對內(nèi)存直接訪問的Physical Memory Access子類,當(dāng)系統(tǒng)中有大量數(shù)據(jù)需要處理時(shí),利用物理內(nèi)存訪問函數(shù)即可以提高程序的運(yùn)行速度,又可以避免開發(fā)虛擬設(shè)備驅(qū)動程序的繁重工作。在這一系統(tǒng)的開發(fā)中我們使用ReadFromPhysicalMemoryEX完成波束數(shù)據(jù)的讀取,該函數(shù)原形如下:

Int status=ReadFromPhysicalMemoryEX(unsigned int physicalAddress,void *destinatyionBuffer,unsigned int numberOfBytes,int bytesAtATime);

其中,physicalAddress為數(shù)據(jù)在內(nèi)存中的物理地址;destinatyionBuffer為讀出后存放數(shù)據(jù)的緩沖器;numberOfBytes為讀出數(shù)據(jù)的字節(jié)數(shù);bytesAtATime為一次讀取的字節(jié)數(shù),取值可為1、2、4。返回值為1表示讀取成功。

4.2.2 波形的顯示和光標(biāo)定位操作

Lab Windows/CVI提供了圖表控件來完成圖表、靜態(tài)的曲線和波形及動態(tài)實(shí)時(shí)信號波形的顯示,這里我們通過使用Graph控件來完成波束數(shù)據(jù)的顯示。Graph控件功能十分強(qiáng)大,主要包括繪圖功能、光標(biāo)功能、坐標(biāo)設(shè)定功能和縮放、移動視區(qū)功能等。用戶界面庫中提供了大量的函數(shù)以用于在Graph控件上繪制各種曲線和幾何圖形,這里我們使用PlotY函數(shù),其原形為:

Int PlotY(int panelHandle,int contrlHandle,double[] Yarray,int NumofPoints,int YdataType,int PlotStyle,int PointStyle,int LineStyle,int PointFrequency,int Color)

該函數(shù)有10個(gè)參數(shù),其中panelHandl為Graph控件所在面板的句柄;contrlHandle為Graph控件的句柄,這兩者結(jié)合指明繪圖區(qū)域;Yarray為繪制曲線的數(shù)據(jù)數(shù)組;NumofPoints為繪制數(shù)據(jù)點(diǎn)的個(gè)數(shù);YdataType為數(shù)據(jù)類型;PlotStyle為控制曲線類型的常量;PointStyle為數(shù)據(jù)點(diǎn)形狀常量,通過設(shè)置它將數(shù)據(jù)點(diǎn)用特定的形狀繪制;LineStyle為線條類型常量,進(jìn)行諸如實(shí)線、虛線的選擇;PointFrequency為點(diǎn)間距常量,無效時(shí)設(shè)為默認(rèn)值1;Color曲線顏色設(shè)置常量。仔細(xì)設(shè)置好這些常數(shù)即可精確繪制出波形。

Graph控件支持光標(biāo)操作,在程序設(shè)計(jì)中可利用光標(biāo)進(jìn)行定位,在設(shè)計(jì)時(shí)可對光標(biāo)的個(gè)數(shù)、顏色、形狀、模式等屬性進(jìn)行設(shè)置,程序中又可通過函數(shù)對光標(biāo)進(jìn)行操作,如設(shè)置活動光標(biāo),獲取和設(shè)置光標(biāo)的坐標(biāo)等,而坐標(biāo)數(shù)據(jù)與目標(biāo)的時(shí)間、距離數(shù)據(jù)是相關(guān)聯(lián)的,在程序中可通過簡單的計(jì)算進(jìn)行轉(zhuǎn)換。

Graph控件的縮放和視區(qū)移動功能則允許我們對波形的局部進(jìn)行放大以觀察細(xì)節(jié),以及將波形繪制在視區(qū)之外,需要時(shí)又可移入視區(qū)之內(nèi)進(jìn)行顯示??傊?,該控件的強(qiáng)大功能滿足了我們現(xiàn)階段所有的波形顯示和分析的需要。

5結(jié)束語

本文討論了在Lab Windows/CVI環(huán)境下開發(fā)DSP顯控程序的優(yōu)越性和關(guān)鍵技術(shù)。該接收機(jī)經(jīng)受了海試的考驗(yàn),在整個(gè)海試過程中一直穩(wěn)定可靠地運(yùn)行,其處理所得目標(biāo)方位、距離值及海深等數(shù)值都能與預(yù)知值很好地吻合。另外,該系統(tǒng)的設(shè)計(jì)使得其功能很容易擴(kuò)充,它除了對國防建設(shè)具有重要意義外,稍加改進(jìn)后還可應(yīng)用于如沉船打撈、航道勘測、水底地形圖的測繪等領(lǐng)域,對海洋的開發(fā)和經(jīng)濟(jì)的發(fā)展都具有重要的意義。

參考文獻(xiàn)

[1] 張鳳均. Lab Windows/CVI開發(fā)入門和進(jìn)階[J]. 北京航空航天大學(xué)出版社,2001.
[2] 李榮福,崔桂華,田作喜,桑國明. 激光聲遙感系統(tǒng)[M]. 國防工業(yè)出版社, 2003



關(guān)鍵詞: 激光 遙感 系統(tǒng) 軟件

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉