趙 昕,白志科,朱 健
(西安精密機械研究所,西安 710075)
近些年,水聲探測有針對體積小、動態、活動海域廣的目標需求,這樣帶來了探測時間短、目標回波信號強度明顯下降,海平面反射信號等情況更為復雜,以上情況使得水聲探測難度加大,最終導致水聲探測器的接收機組件、數字機組件、發射機組件在性能和功能上均需要大幅提升,從而整個水聲探測器的復雜度有了明顯增加,此時再利用標準臺式儀器對其進行測試,需要使用中高端的示波器,信號源,經核算所需以上儀器總成本高昂,同時在測試的過程中,由于測試的項目眾多,指標分析更深入,操作繁瑣,檢測周期過長。
針對上述問題,文章利用虛擬儀器技術開發了一套自動化測試系統,系統硬件由基于PXIe總線的機箱、零槽、采集卡、CAN卡、多路復用開關、單刀雙擲開關、以及衰減器和適配箱組成,上位機測試軟件利用Labwindows/CVI[1-2]開發,其中引入了自功率譜函數,實現了對信號幅度和頻率的快捷計算;利用Database Editor機制回避了用代碼創建CAN會話句柄的繁瑣方式,以及采用stream模式,提高了CAN幀數據接收效率;采用多線程結合通道觸發的方法,實現了對短調制脈沖信號準確測試;通過以上設計開發,很理想的完成了水聲探測器的自動化測試。
水聲探測器測試系統主要是對接收機組件,數字機組件,發射機組件進行測試,它需要D/A、A/D、DI/O、多路復用開關,單刀雙擲開關,CAN通信接口,衰減器等功能設備,原理框圖如圖1所示。

圖1 水聲探測器測試系統原理
D/A設備一方面用于模擬目標回波信號,產生不同頻率、不同幅度、不同回波延時和不同脈寬的目標反射回波,另一方面模擬不同頻率和不同幅度的目標輻射噪聲,經衰減后分別輸出給接收機組件的輸入通道;CAN通信設備用于收發命令數據,模擬水下航行體中探測與各個系統之間的信息交互;DI/O設備主要采集數字機組件輸出的指示信號,以及輸出數字控制信號作為接收機的數字激勵信號;A/D設備用于采集接收機組件輸出的輸出信號、數字機組件輸出的指示信號、XOUT信號、混頻信號、發射機組件輸出的發射信號;多路復用開關用于切換被采集的通道;單刀雙擲開關實現控制兩種電源供電。
在硬件設計方面,主要是選用機箱、零槽、采集卡、CAN卡、多路復用開關卡、單刀雙擲開關卡。目前PXIe總線相比PXI總線在傳輸帶寬和兼容性方面具有明顯優勢,因此以上均選用基于PXIe總線的設備。采集卡的選擇主要是依據:生成模擬信號的頻率范圍、幅度范圍、輸出通道數;被采集模擬信號的頻率范圍、幅度范圍、采集通道數、采樣率、采樣精度;數字信號輸入輸出的通道數以及是否需要同步采集。本設計采用了2塊4個差分采集通道、16 bit分辨率、單通道最高4 MS/s、輸入量程±10 V、24通道DI/O、可支持56 MB板載存儲器的采集卡。在CAN卡方面,按照標準配置即可,因此選用了1塊1 M bit/s的CAN接口卡。在多路復用開關方面,因為處理的是微弱信號,要求多路復用開關具有盡量低的阻抗,另外參考每個采集通道要切換的被測通道數,選擇了具有24x1 線制多路復用,完整通路阻抗<1 Ω的多路復用卡。在單刀雙擲開關卡方面,由于需要能支持40 V供電,以及需要為3個組件和整個裝置供電,采用了獨立4路且最高120 VDC,120 VAC的單刀雙擲開關。在機箱零槽方面,根據選用的板卡數量及考慮后期的可擴展性,選擇了8槽機箱;根據處理速度和存儲需求,采用了具有2.3 GHz雙核Intel Core i7-3610QE處理器、8 GB (2×4 GB) DDR31600 MHz RAM、1 TB的嵌入式零槽。
由于生成模擬信號的板卡最小輸出信號幅度為5.64 mVpp,不滿足激勵的要求,所以需要對輸出信號進行衰減,這里采用了常用的π型電阻衰減網絡對信號進行分壓衰減,同時衰減器要與探測器具有相同的檢測通道,各通道的衰減系數相同。另外設計了信號適配箱,目地是將測試系統中各板卡的接線端子集成為電纜,便于測試系統與探測器的連接;同時可將模擬負載集成在內,方便管理。
水聲探測器的測試軟件設計是分別對接收機組件、數字機組件、發射機組件進行設計,利用labwindows/CVI平臺完成開發。
接收機測試軟件流程如圖2所示,根據模擬回波參數,編輯模擬回波數據,對接收機組建上的增益用控制碼進行設定,并加載混頻信號進行模擬回波信號調制[3],前期工作準備好后,閉合第一通道開關,加載模擬回波信號,采集接收機輸出信號,在計算信號幅度和頻率方面,由于自功率譜函數[4],可同時直接得到所有信號幅度的有效值以及頻譜上的頻率間隔,因有用信號幅度有效值最大,所以只要再利用尋找最值函數,便可得到有用信號幅度有效值及其在所有信號中的序號,序號乘以頻率間隔既是頻率,因此采用自功率譜函數,來計算輸出信號幅度和頻率參數比較簡便,測完一個通道后,切換多路復用開關,直到接收機輸出通道全部測完為止。

圖2 接收機組件測試軟件流程

數字機組件測試軟件流程與接收機組件測試軟件流程一致,只是加載的激勵信號為接收機輸出信號和激勵命令,測試的信號是XOUT信號,指示信號、混頻信號,發射輸入信號,然后計算出各信號的幅度的峰值和頻率,對于模擬信號的輸出,開關切換,模擬信號采集及計算與上節編程思路一致,不再做贅述,對于激勵命令輸出是通過CAN[6-7]接口卡來實現。
在CAN通信前,需要創建CAN會話句柄[8],傳統的創建首先要用nxdbOpenDatabase函數創建Database標識符,然后將其傳給nxdbCreatObject函數創建Cluster標識符,再將Cluster標識符傳給nxdbCreatObject創建CAN Frame標識符,最后還要調用nxdbSetPropertyp函數配置CAN幀格式、幀ID、數據段長度,這些完成后,才能調用nxCreateSession函數來創建CAN會話,因此這種用代碼編寫創建相對麻煩,為了簡化創建過程,應用了Database Edior的方法,具體實現方法是: 利用Database Editor創建一個Database文件,然后直接利用菜單按鈕繼續創建Cluster和CAN Frame,便得到了圖3所示界面,CAN幀格式、幀ID、數據段長度等參數可直接配置,配置完成后,點擊保存該文件,創建CAN會話時,直接將該文件名賦給nxCreateSession函數,便可得到CAN會話句柄。

圖3 Database Editor創建CAN會話句柄
在CAN通信時,采用了stream模式。因Stream模式不是只讀最近時刻且希望獲取類型的CAN幀,它不檢測總線上是什么類型的CAN幀,只檢測總線上在某一時刻所有的CAN幀,然后一次性取回,后期用戶再根據自身需求處理各類CAN幀,由于本測試系統模擬水下航行體中探測與各個系統之間的信息交互,所以對各系統發來的CAN幀數據都關心,這樣采用stream模式,減少讀取次數,提高了接收效率。具體實現方法是:在nxCreateSession函數中設置成nxMode_FrameInStream模式,并將幀類型參數設置為NULL,按照CAN協議設置一個結構體類型struct can_frame,其成員包括:時間戳、ID、幀類型、標志位、狀態信息、數據段長度,數據緩沖區。開辟一個該類型的結構體數組,將創建的CAN會話句柄,結構體數組首地址賦給nxReadFrame,調用此函數進行數據讀取。
發射機組件測試主要是檢測負載箱輸出,由于此輸出為一段短調制脈沖信號,激勵信號加載后,立即輸出,然后結束。為了能夠準確測試此信號的參數,需要在調制脈沖信號內采集一段小于該信號脈寬的數據,所以將采集狀態用線程的方式先啟動起來,并當信號輸出時,再觸發采集,即通道觸發采集[9]。發射機組件激勵信號為方波信號,因為負載箱輸出有固定的判斷正常與否的標準,所以計算出負載箱輸出信號的頻率和幅度與判據比較,得出信號輸出正常與否。軟件設計流程如圖4所示。

圖4 發射機組件測試軟件流程圖
利用DAQmxCfgAnlgEdgeStartTrig函數配置通道觸發,將其觸發源參數設置成本通道,觸發沿參數設置成上升沿,觸發電平根據輸出幅度范圍設置,這樣通道有信號并超過觸發電平便開始采集。利用CmtScheduleThreadPoolFunction函數創建線程,然后定義一個函數,由此函數完成具體操作,將該函數的指針賦給CmtScheduleThreadPoolFunction函數的參數,因此要將DAQmxReadAnalogF64函數和計算輸出信號的頻率和幅度置于自定義的函數中。對于多線程編程[10],線程管理需考慮全面,在整個發射機組件檢測完畢后,需要關閉線程,釋放相關資源,但有時操作異常,也導致程序即將退出,因此要在啟動線程后設置線程啟動標識,測試程序結束前,如果判斷出線程真實啟動,再進行線程關閉,首先需要調用CmtWaitForThreadPoolFunctionCompletion函數等待線程結束,然后調用函數CmtReleaseThreadPoolFunctionID將線程關閉。
將各板卡的接線盒附件安裝到板卡上,板卡另一端用電纜將信號引出,接到適配箱后面板上,將電源也連接到后面板上,前面板通過電纜與水聲探測器相連,運行上位機測試軟件,測試軟件由接收機檢查、數字機檢查,發射機檢查3部分組成,每部分有配置區域和顯示區域,顯示通過表格形式完成,在水聲探測增加了圖形顯示。配置區域有測試手自一體功能,在接收機測試和發射機測試中,手動是各通道單獨測試,自動是各通道一次測完,對于數字機測試,手動是針對單項輸出信號測試,自動是所有項輸出信號測試,另外配置成自動模式,配置區及其他各項檢測為不可操作模式,防止錯誤操作。將各組件測試配置成自動,分別點擊接收機按鈕、自動按鈕,負載箱輸出按鈕,便完成了水聲探測器各項指標的測試。
對以上測試進行分析,利用文章提出的設計方案及開發方法,能夠精準地實現水聲探測器所有指標測試,同時大幅縮短了測試周期,從過去需要近50分鐘下降到僅需幾分鐘;測試操作得到簡化了,并且具有誤操作防止功能;測試結果顯示更加直觀,并更方便比較各通道的性能指標情況;后期在外場工作中,溫度、濕度等環境因素變化的情況下,多次利用本測試系統對水聲探測器進行測試,測試系統功能良好,運行可靠,無故障發生。工程應用效果相比基于傳統的標準臺式儀器明顯更具優勢。
應用虛擬儀器技術,開發了一套自動化測試系統,實現了高效且快捷地對水聲探測器的測試,本文引入了自功率譜函數實現信號頻率和幅度快速計算,在CAN通信開發方面;提出了應用Database Editor機制,簡化了CAN會話句柄的創建過程,采用了Stream讀取模式,提升了CAN數據接收效率;為了能夠準確測試短調制脈沖信號,提出了多線程結合通道觸發的方法;同時涵蓋了模擬信號激勵和采集、數字信號激勵和采集、各類開關切換等測試測量領域里常用功能單元設計,為利用Labwindows/CVI開發自動化測試系統提供了有價值的參考。