基于PXI 總線(xiàn)的水聲目標回波模擬模塊的設計
驅動(dòng)程序設計的工作主要在步驟⑥、⑦,編寫(xiě)驅動(dòng)主要針對以下的幾個(gè)方面。驅動(dòng)程序框架已經(jīng)在添加資源時(shí),創(chuàng )建了操作資源的KMemoryRange 類(lèi)和KIoRange 類(lèi)的對象,如將PCI 的Base1 空間設定為一個(gè)I/O 映射的空間,這個(gè)空間實(shí)際上就是CPLD 中寄存器的空間。要讀寫(xiě)CPLD 中的寄存器訪(fǎng)問(wèn)雙口存儲器就是訪(fǎng)問(wèn)Base1 空間,這時(shí)S5920的PTNUM[2:0]會(huì )輸出001,可以使用它完成對映射到該空間雙口存儲器的片選使能。
驅動(dòng)程序中需要創(chuàng )建對象 KIoRange m_IoPortRange1;
并在 OnStartDevice(KIrpI)函數中調用
status = m_IoPortRange1.Initialize(
pResListTranslated,
pResListRaw,1);
對該對象進(jìn)行初始化。
在驅動(dòng)的其它例程中就可以使用對象 m_IoPortRange1 調用該類(lèi)的成員函數ind、inw、inb、outb、outw、outd 來(lái)完成對PCI 卡的Base1 空間的DWORD、WORD 和Byte 的輸入輸出操作。
3.2 應用軟件編寫(xiě)
3.2.1 應用程序與驅動(dòng)程序的通信方法
應用程序與驅動(dòng)程序通信步驟為:應用程序首先使用 CreatFile 函數打開(kāi)設備,然后使用WriteFile、ReadFile、DeviceIoControl 與驅動(dòng)程序進(jìn)行通信,最后在應用程序退出前使用CloseHandle 關(guān)閉設備。DeviceIoControl 使用不同的IOCTL 命令字來(lái)調用驅動(dòng)中的不同程序,完成應用程序與驅動(dòng)程序的數據交換,驅動(dòng)程序根據訪(fǎng)問(wèn)方式的不同,使用不同的方式獲取應用程序的輸入輸出緩沖區地址。
驅動(dòng)程序與應用程序的通信:當驅動(dòng)程序獲取了特定事件發(fā)生時(shí),有時(shí)需要將這一信息通知給應用程序,主要的方法有2 種:一種是使用DeviceIoControl 進(jìn)行異步通信,另一種是在應用程序中創(chuàng )建一個(gè)事件,并將該句柄傳給驅動(dòng)程序,然后在應用層開(kāi)啟一個(gè)線(xiàn)程等待這個(gè)事件,驅動(dòng)程序會(huì )在事件發(fā)生的時(shí)候設置事件信號狀態(tài)來(lái)觸發(fā)應用程序。
3.2.2 與NI LabView 應用程序通信
仿真系統控制軟件由 NI 公司的LabView 軟件編制,為使本模塊能使用該軟件控制,必須編寫(xiě)接口程序。接口程序實(shí)際上就是Windows 標準動(dòng)態(tài)鏈接庫。鏈接庫可以由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 中沒(méi)有指針型變量,用Labview調用該函數時(shí)可直接定義為ULONG 型。具體代碼略。
4 應用實(shí)例
某型多普勒聲吶發(fā)射信號頻率為 300kHz,發(fā)射脈寬最大60ms,信號采用重復相位編碼,編碼靈活可變,帶寬達到75kHz。為了完成對該聲納的檢測,需要對其回波進(jìn)行模擬,考慮到回波會(huì )產(chǎn)生伸縮效應,本模塊的主要技術(shù)指標如下:
采樣頻率:10MHz~40MHz
存儲深度:1MB
D/A 頻率:10MHz~40MHz
該模塊已用于某型多普勒聲吶的檢測,可以模擬不同深度、不同相對速度的海底回波信號,工作良好,性能穩定。
5 結束語(yǔ)
寬帶回波模擬模塊利用 PXI 技術(shù),在Windows 環(huán)境下可以實(shí)現良好的人機界面,安裝方便,體積小,適用范圍比較廣泛。模擬模塊可以模擬不同延遲、不同尺度伸縮的寬帶點(diǎn)目標信號。系統已用于某型寬帶多普勒聲吶的陸上檢測,經(jīng)過(guò)與水池調試、湖試數據對比,發(fā)現該模擬方法有效,結果與實(shí)際試驗基本一致。
評論