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