引言
目標回波模擬是通過計算機系統對水聲信號進行建模,然后在計算機或其它設備上實時模擬水聲目標回波并輸入至信號處理器,以達到檢測信號處理單元功能、性能的目的。PXI總線是PCI 在儀器領域的擴展,它將Compact PCI 規范定義的PCI 總線技術發展成適合于試驗、測量與數據采集場合應用的機械、電氣和軟件規范,從而形成了新的虛擬儀器體系結構。目前,PXI 總線在測控領域得到了越來越多的應用。
本文介紹了自行設計研制的寬帶回波模擬器,可模擬4 路水下目標回波,且各目標的方位、速度、強度、距離等參數在計算機的控制下實時可控,為多參數回波模擬水池實驗系統提供一套功能強、實時性好、使用方便的通用寬帶回波模擬模塊。
1 寬帶水聲目標回波模型
目前聲吶的發射信號大量采用寬帶信號,傳統的窄帶回波模型已經難以適應回波仿真的要求,必須使用寬帶回波模擬進行分析。主動自導工作時,由發射機向目標發出聲波u(t),經目標反射后形成回波s(t)。回波s(t)攜帶著有關目標的所有信息,是檢測和參數估計的全部依據。由于目標的運動,發射波形與接收波形的寬度是不同的,存在時間壓縮效應。若目標做勻速運動,速度為v,海水中聲速為c,則寬帶目標回波模型如下:
由寬帶回波模型可見,回波與發射波相比,有幾點變化:
① 振幅衰減,對慢起伏點目標,其時間包絡為瑞利分布的隨機變量。
② 時延,回波相比發射波延遲0 τ 。
③ 時間尺度 s,使得時間包絡產生伸縮,即時寬和幅寬受到壓縮或擴展。
2 系統需求與設計結構
2.1 系統需求
為了滿足寬帶回波模擬的需要,回波模擬模塊應具有以下功能:
① 具有更大的動態范圍以模擬不同距離的目標回波;
② 能夠精確地模擬目標回波的強度、時延和脈沖伸縮;
③ 能夠精確地測量并記錄輸入、輸出信號的各項參數。
在對以上功能進行仔細分析后,確定回波模擬器應滿足以下參數:
① 目標強度:0~80dB(可設定),0.375dB 檔;
② 回波時延:0~3 秒,誤差不大于0.5%;
③ 模擬運動速度:-30~+30kn;
④ 脈沖展寬可設定;
回波模擬器將接收到的脈沖信號通過 AD 轉換保存在FIFO 中,發射時再從FIFO 里取出數據進行DA。這種方式很好地保存了接收信號的信息,同時DA 輸出時鐘逐Hz 可調,能實現對回波進行脈沖展寬。經過數字衰減后輸出,衰減程控可調,可用于形成回波包絡。
2.2 系統結構
在某檢測設備的研制過程中,研制了基于 PXI 總線的回波模擬模塊,該模塊能對發射信號進行高速采集,在精確延遲后,提供模擬回波,可利用聲對接陣對聲納進行陸上測試。系統結構框圖如圖 1 所示:
圖 1 回波模擬模塊結構框圖
回波模擬模塊包括模擬輸入、數據采集、數據存儲、數據回放、DDS 方波產生器、PXI接口六部分。系統結構如圖1 所示。其核心部分是AD 轉換、DA 輸出、PCI 接口及FIFO的實現。模擬輸入部分由運放直流耦合放大電路組成,主要功能是向后級電路提供可靠的模擬信號。系統中的AD 轉換器采用Analog Device 公司生產的AD9709。采樣時鐘由高精度DDS 芯片AD9850提供,并由CPLD 進行控制,最高采樣頻率可達40MHz,并可實現逐Hz可調。數據緩存采用異步FIFO,系統選用兩片512K×9 的IDT72V2113,通過深度擴展,實現1M×9 的FIFO。數據D/A 采用Burr-Brown 公司的ADS831 芯片。FIFO 的讀寫時鐘、狀態控制、AD 控制、DA 控制以及DDS 頻率控制均由CPLD 實現。
在采集波形存取中,采用了FIFO 存儲發射信號,主控模塊通過讀寫地址產生電路對波形存取的過程進行控制。時鐘產生模塊為讀寫地址產生電路提供獨立的讀、寫FIFO 時鐘,通過讀、寫FIFO 時鐘的頻率差來實現回波信號的伸縮設置。FIFO 存儲器的讀、寫時鐘由數字頻率合成器(DDS)AD9851 產生,它受主控模塊的控制,產生設定頻率的方波信號,用于產生AD 采集、FIFO 讀寫、DA 回放芯片的時鐘信號。
3 模塊軟件實現
回波模擬模塊使用 PXI 總線,可用于PXI 總線計算機中。PXI 總線規范是NI 公司于1997 年發布的[3,4,5]。PXI 這種新型模塊化儀器系統是在PCI總線內核技術上增加了成熟的技術規范和要求形成的。它通過增加用于多板同步的觸發總線和參考時鐘、用于進行精確定時的星形觸發總線、以及用于相鄰模塊間高速通信的局部總線來滿足試驗和測量用戶的要求。
目前 PXI 總線平臺下以Windows2000、Windwos XP 為主,需要編寫Windows WDM 驅動程序。該模塊的驅動程序主要對接口芯片S5920 進行編程。模塊軟件包括驅動程序、應用程序,同時為了與NI 公司的LabView 軟件兼容,還編寫了與LabView 軟件的接口程序。
3.1 WDM 驅動程序編寫
3.1.1 WDM 模型簡介
WDM 模型(Windows Driver Model)是微軟公司為當前主流操作系統Windows2000 和WindowsXP 的驅動程序設計的一種構架,它和傳統的VXD 的驅動是完全不同的體系結構。Window2000/XP 系統結構圖如圖2 所示,應用程序調用Windows 子系統win32API,這個調用由系統服務接口作用到I/O 管理器,I/O 管理器進行必要的參數匹配和操作安全性檢查,然后由這個請求構造出合適的IRP(IO Request Package),它實際上是一個數據結構,具有豐富的成員,對于單層的驅動程序直接接受并執行這個請求包,并完成對硬件的操作,從而完成I/O 請求工作,并將執行的結果通過I/O 管理器返回給應用程序,而對于多層的驅動則將驅動程序分成了若干層,每層驅動再把I/O 請求劃分成更簡單的請求,以傳給更下層的驅動執行。
3.1.2 設計方法
系統使用 VC+DDK+Driverstudio 來進行驅動的開發。Driver Studio 為驅動程序設計提供DriverWizard 向導,可以很方便地建立一個完整的驅動程序框架。設計PCI 驅動程序基本步驟為:
① 選擇 PCI 總線類型,填寫相應的VendorID、DeviceID、SubsystemID、RevisionID,
這些必須和PCI 板卡上的配置信息一致,用于產生INF 文件,在安裝時識別板卡;
② 填寫注冊表信息;
③ 添加資源,包括I/O、Memory、IRQ、DMA 等;
④ 選擇設備接口方式、讀寫方式、電源管理方式等;
⑤ 添加 IOCTL 命令字,并選用相應的輸入輸出模式;
⑥ 產生框架代碼,添加用戶代碼;
⑦ 編譯調試。
驅動程序設計的工作主要在步驟⑥、⑦,編寫驅動主要針對以下的幾個方面。驅動程序框架已經在添加資源時,創建了操作資源的KMemoryRange 類和KIoRange 類的對象,如將PCI 的Base1 空間設定為一個I/O 映射的空間,這個空間實際上就是CPLD 中寄存器的空間。要讀寫CPLD 中的寄存器訪問雙口存儲器就是訪問Base1 空間,這時S5920的PTNUM[2:0]會輸出001,可以使用它完成對映射到該空間雙口存儲器的片選使能。
驅動程序中需要創建對象 KIoRange m_IoPortRange1;
并在 OnStartDevice(KIrpI)函數中調用
status = m_IoPortRange1.Initialize(
pResListTranslated,
pResListRaw,1);
對該對象進行初始化。
在驅動的其它例程中就可以使用對象 m_IoPortRange1 調用該類的成員函數ind、inw、inb、outb、outw、outd 來完成對PCI 卡的Base1 空間的DWORD、WORD 和Byte 的輸入輸出操作。
3.2 應用軟件編寫
3.2.1 應用程序與驅動程序的通信方法
應用程序與驅動程序通信步驟為:應用程序首先使用 CreatFile 函數打開設備,然后使用WriteFile、ReadFile、DeviceIoControl 與驅動程序進行通信,最后在應用程序退出前使用CloseHandle 關閉設備。DeviceIoControl 使用不同的IOCTL 命令字來調用驅動中的不同程序,完成應用程序與驅動程序的數據交換,驅動程序根據訪問方式的不同,使用不同的方式獲取應用程序的輸入輸出緩沖區地址。
驅動程序與應用程序的通信:當驅動程序獲取了特定事件發生時,有時需要將這一信息通知給應用程序,主要的方法有2 種:一種是使用DeviceIoControl 進行異步通信,另一種是在應用程序中創建一個事件,并將該句柄傳給驅動程序,然后在應用層開啟一個線程等待這個事件,驅動程序會在事件發生的時候設置事件信號狀態來觸發應用程序。
3.2.2 與NI LabView 應用程序通信
仿真系統控制軟件由 NI 公司的LabView 軟件編制,為使本模塊能使用該軟件控制,必須編寫接口程序。接口程序實際上就是Windows 標準動態鏈接庫。鏈接庫可以由LabView軟件調用。
鏈接庫導出函數定義如下:
extern "C" __declspec(dllexport) HANDLE OpenDrv();
extern "C" __declspec(dllexport) void CloseDrv(HANDLE hDevice);
extern "C" __declspec(dllexport) void WriteData(HANDLE hDevice,
ULONG freq,double frequency1,double frequency2,
double frequency3,double frequency4,double delay,double atten);
由于在C++中HANDLE 型定義為void *,而LabView 中沒有指針型變量,用Labview調用該函數時可直接定義為ULONG 型。具體代碼略。
4 應用實例
某型多普勒聲吶發射信號頻率為 300kHz,發射脈寬最大60ms,信號采用重復相位編碼,編碼靈活可變,帶寬達到75kHz。為了完成對該聲納的檢測,需要對其回波進行模擬,考慮到回波會產生伸縮效應,本模塊的主要技術指標如下:
采樣頻率:10MHz~40MHz
存儲深度:1MB
D/A 頻率:10MHz~40MHz
系統總線:PXI
模擬回波時延:2ms~3s,精度0.1ms
該模塊已用于某型多普勒聲吶的檢測,可以模擬不同深度、不同相對速度的海底回波信號,工作良好,性能穩定。
5 結束語
寬帶回波模擬模塊利用 PXI 技術,在Windows 環境下可以實現良好的人機界面,安裝方便,體積小,適用范圍比較廣泛。模擬模塊可以模擬不同延遲、不同尺度伸縮的寬帶點目標信號。系統已用于某型寬帶多普勒聲吶的陸上檢測,經過與水池調試、湖試數據對比,發現該模擬方法有效,結果與實際試驗基本一致。
-
處理器
+關注
關注
68文章
19286瀏覽量
229854 -
PXI
+關注
關注
17文章
278瀏覽量
87880 -
計算機
+關注
關注
19文章
7494瀏覽量
87963
發布評論請先 登錄
相關推薦
評論