水聲探測器測試系統(tǒng)設(shè)計與實現(xiàn)
發(fā)布時間:2021-10-26 11:02
為了提升水聲探測性能,其探測器不斷改造升級,傳統(tǒng)利用各類標準臺式儀器對其測試,在成本、檢測周期、操作復雜度等方面均有明顯的增加,鑒于以上問題,設(shè)計了一套自動化測試系統(tǒng);闡述了測試系統(tǒng)設(shè)計原理、硬件設(shè)計方法、水聲探測器各組件的測試軟件設(shè)計方法;在測試軟件設(shè)計中,對于信號幅度和頻率計算方面,引入了基于自功率譜函數(shù)的快捷計算方法;對于CAN通信軟件模塊開發(fā)方面,提出了一種Database Editor機制,簡化了CAN會話句柄創(chuàng)建過程,并應(yīng)用stream模式實現(xiàn)CAN通信,提升了CAN幀數(shù)據(jù)接收效率;對于短調(diào)制脈沖信號測試,利用多線程結(jié)合通道觸發(fā)的方法,實現(xiàn)了準確測試;采用該測試系統(tǒng)對水聲探測器進行測試,效果表明,操作方便快捷、檢測周期顯著縮短、可靠穩(wěn)定、完全達到了預(yù)期的效果。
【文章來源】:計算機測量與控制. 2020,28(05)
【文章頁數(shù)】:4 頁
【部分圖文】:
水聲探測器測試系統(tǒng)原理
具體實現(xiàn)方法是:利用GetCtrlval[5]函數(shù)獲取測試軟件界面回波配置參數(shù),將板卡更新率除以回波頻率獲得回波每周期點數(shù),設(shè)置每周期點數(shù)倍數(shù)關(guān)系的輸出波形總點數(shù),將每周期點數(shù)、總點數(shù)、信號幅度賦到SineWave函數(shù)對應(yīng)的參數(shù)里,編輯模擬回波數(shù)據(jù);控制碼屬于數(shù)字信號輸出,先后利用DAQmxCreateTask函數(shù)、DAQmxCreateDOChan函數(shù)、DAQmxstartTask函數(shù)創(chuàng)建DO任務(wù),配置DO任務(wù),開啟DO任務(wù),然后調(diào)用DAQmxWriteDigitalLine函數(shù)將控制碼數(shù)字信號進行輸出;混頻信號按照編輯模擬回波數(shù)據(jù)方法,完成數(shù)據(jù)編輯,然后分別利用DAQmxCreateTask函數(shù)、DAQmxCreateAOChan函數(shù)創(chuàng)建AO任務(wù),配置AO任務(wù),調(diào)用DAQmxWriteAnalogF64函數(shù)將編輯的波形數(shù)據(jù)下載到板卡里,通過DAQmxstartTask函數(shù)將混頻信號輸出;多路復用開關(guān)切換方面,利用niSwitch_InitwithTopology函數(shù),并將該函數(shù)參數(shù)topology設(shè)置為需要的開關(guān)拓撲模式,復位模式設(shè)置為不使能,完成初始化開關(guān)板卡并獲得開關(guān)句柄,將該句柄賦給niSwitch_Connect函數(shù),同時將閉合開關(guān)的左右結(jié)點標識符賦給此函數(shù)的相應(yīng)參數(shù),完成閉合左右結(jié)點標識符對應(yīng)的開關(guān);模擬回波信號輸入按照混頻信號輸入編程方法,將其輸入給接收機組件;設(shè)置采樣點數(shù)及采樣率,調(diào)用DAQmxReadAnalogF64將接收機輸出信號進行采集,將采集的數(shù)據(jù),采樣點數(shù),采樣率的倒數(shù)均賦給自功率譜函數(shù)AutoPowerSpectrum相應(yīng)的參數(shù),同時將獲取所有信號幅度有效值的數(shù)組指針和獲得頻譜上頻率間隔的變量指針也賦給此函數(shù)的相應(yīng)參數(shù),然后將獲取所有信號幅度有效值的數(shù)組指針再賦給尋找最值的函數(shù)MaxMin1D的相應(yīng)參數(shù),便找到此數(shù)組中的最大值,并得到最大值在數(shù)組中的序號,此最大值除以槡2便可得到有用信號幅度的峰值,將最大值的序號乘以頻率間隔便得到了有用信號的頻率,利用函數(shù)SetTableCellVal將值顯示在測試軟件界面對應(yīng)的表格里,如果待測通道沒有測完,繼續(xù)切換開關(guān),只需要將niSwitch_Connect函數(shù)的參數(shù)修改為對應(yīng)開關(guān)的左右結(jié)點標識符,如果所有通道已測試完成,利用函數(shù)MessagePopup告知用戶測試完成。3.2 數(shù)字機組件測試軟件設(shè)計
在CAN通信前,需要創(chuàng)建CAN會話句柄[8],傳統(tǒng)的創(chuàng)建首先要用nxdbOpenDatabase函數(shù)創(chuàng)建Database標識符,然后將其傳給nxdbCreatObject函數(shù)創(chuàng)建Cluster標識符,再將Cluster標識符傳給nxdbCreatObject創(chuàng)建CAN Frame標識符,最后還要調(diào)用nxdbSetPropertyp函數(shù)配置CAN幀格式、幀ID、數(shù)據(jù)段長度,這些完成后,才能調(diào)用nxCreateSession函數(shù)來創(chuàng)建CAN會話,因此這種用代碼編寫創(chuàng)建相對麻煩,為了簡化創(chuàng)建過程,應(yīng)用了Database Edior的方法,具體實現(xiàn)方法是:利用Database Editor創(chuàng)建一個Database文件,然后直接利用菜單按鈕繼續(xù)創(chuàng)建Cluster和CAN Frame,便得到了圖3所示界面,CAN幀格式、幀ID、數(shù)據(jù)段長度等參數(shù)可直接配置,配置完成后,點擊保存該文件,創(chuàng)建CAN會話時,直接將該文件名賦給nxCreateSession函數(shù),便可得到CAN會話句柄。在CAN通信時,采用了stream模式。因Stream模式不是只讀最近時刻且希望獲取類型的CAN幀,它不檢測總線上是什么類型的CAN幀,只檢測總線上在某一時刻所有的CAN幀,然后一次性取回,后期用戶再根據(jù)自身需求處理各類CAN幀,由于本測試系統(tǒng)模擬水下航行體中探測與各個系統(tǒng)之間的信息交互,所以對各系統(tǒng)發(fā)來的CAN幀數(shù)據(jù)都關(guān)心,這樣采用stream模式,減少讀取次數(shù),提高了接收效率。具體實現(xiàn)方法是:在nxCreateSession函數(shù)中設(shè)置成nxMode_FrameInStream模式,并將幀類型參數(shù)設(shè)置為NULL,按照CAN協(xié)議設(shè)置一個結(jié)構(gòu)體類型struct can_frame,其成員包括:時間戳、ID、幀類型、標志位、狀態(tài)信息、數(shù)據(jù)段長度,數(shù)據(jù)緩沖區(qū)。開辟一個該類型的結(jié)構(gòu)體數(shù)組,將創(chuàng)建的CAN會話句柄,結(jié)構(gòu)體數(shù)組首地址賦給nxReadFrame,調(diào)用此函數(shù)進行數(shù)據(jù)讀取。
【參考文獻】:
期刊論文
[1]LabWindows/CVI多線程技術(shù)的應(yīng)用研究[J]. 單體強,陳雷,張萬發(fā). 電子設(shè)計工程. 2012(15)
[2]CAN總線應(yīng)用層協(xié)議的研究與實現(xiàn)[J]. 王邦繼,劉慶想,李相強,張健穹. 計算機工程與應(yīng)用. 2011(20)
[3]基于LabWindows/CVI的多路高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J]. 周承仙,李仰軍,武錦輝,翟慧娟. 電子測量技術(shù). 2007(12)
本文編號:3459385
【文章來源】:計算機測量與控制. 2020,28(05)
【文章頁數(shù)】:4 頁
【部分圖文】:
水聲探測器測試系統(tǒng)原理
具體實現(xiàn)方法是:利用GetCtrlval[5]函數(shù)獲取測試軟件界面回波配置參數(shù),將板卡更新率除以回波頻率獲得回波每周期點數(shù),設(shè)置每周期點數(shù)倍數(shù)關(guān)系的輸出波形總點數(shù),將每周期點數(shù)、總點數(shù)、信號幅度賦到SineWave函數(shù)對應(yīng)的參數(shù)里,編輯模擬回波數(shù)據(jù);控制碼屬于數(shù)字信號輸出,先后利用DAQmxCreateTask函數(shù)、DAQmxCreateDOChan函數(shù)、DAQmxstartTask函數(shù)創(chuàng)建DO任務(wù),配置DO任務(wù),開啟DO任務(wù),然后調(diào)用DAQmxWriteDigitalLine函數(shù)將控制碼數(shù)字信號進行輸出;混頻信號按照編輯模擬回波數(shù)據(jù)方法,完成數(shù)據(jù)編輯,然后分別利用DAQmxCreateTask函數(shù)、DAQmxCreateAOChan函數(shù)創(chuàng)建AO任務(wù),配置AO任務(wù),調(diào)用DAQmxWriteAnalogF64函數(shù)將編輯的波形數(shù)據(jù)下載到板卡里,通過DAQmxstartTask函數(shù)將混頻信號輸出;多路復用開關(guān)切換方面,利用niSwitch_InitwithTopology函數(shù),并將該函數(shù)參數(shù)topology設(shè)置為需要的開關(guān)拓撲模式,復位模式設(shè)置為不使能,完成初始化開關(guān)板卡并獲得開關(guān)句柄,將該句柄賦給niSwitch_Connect函數(shù),同時將閉合開關(guān)的左右結(jié)點標識符賦給此函數(shù)的相應(yīng)參數(shù),完成閉合左右結(jié)點標識符對應(yīng)的開關(guān);模擬回波信號輸入按照混頻信號輸入編程方法,將其輸入給接收機組件;設(shè)置采樣點數(shù)及采樣率,調(diào)用DAQmxReadAnalogF64將接收機輸出信號進行采集,將采集的數(shù)據(jù),采樣點數(shù),采樣率的倒數(shù)均賦給自功率譜函數(shù)AutoPowerSpectrum相應(yīng)的參數(shù),同時將獲取所有信號幅度有效值的數(shù)組指針和獲得頻譜上頻率間隔的變量指針也賦給此函數(shù)的相應(yīng)參數(shù),然后將獲取所有信號幅度有效值的數(shù)組指針再賦給尋找最值的函數(shù)MaxMin1D的相應(yīng)參數(shù),便找到此數(shù)組中的最大值,并得到最大值在數(shù)組中的序號,此最大值除以槡2便可得到有用信號幅度的峰值,將最大值的序號乘以頻率間隔便得到了有用信號的頻率,利用函數(shù)SetTableCellVal將值顯示在測試軟件界面對應(yīng)的表格里,如果待測通道沒有測完,繼續(xù)切換開關(guān),只需要將niSwitch_Connect函數(shù)的參數(shù)修改為對應(yīng)開關(guān)的左右結(jié)點標識符,如果所有通道已測試完成,利用函數(shù)MessagePopup告知用戶測試完成。3.2 數(shù)字機組件測試軟件設(shè)計
在CAN通信前,需要創(chuàng)建CAN會話句柄[8],傳統(tǒng)的創(chuàng)建首先要用nxdbOpenDatabase函數(shù)創(chuàng)建Database標識符,然后將其傳給nxdbCreatObject函數(shù)創(chuàng)建Cluster標識符,再將Cluster標識符傳給nxdbCreatObject創(chuàng)建CAN Frame標識符,最后還要調(diào)用nxdbSetPropertyp函數(shù)配置CAN幀格式、幀ID、數(shù)據(jù)段長度,這些完成后,才能調(diào)用nxCreateSession函數(shù)來創(chuàng)建CAN會話,因此這種用代碼編寫創(chuàng)建相對麻煩,為了簡化創(chuàng)建過程,應(yīng)用了Database Edior的方法,具體實現(xiàn)方法是:利用Database Editor創(chuàng)建一個Database文件,然后直接利用菜單按鈕繼續(xù)創(chuàng)建Cluster和CAN Frame,便得到了圖3所示界面,CAN幀格式、幀ID、數(shù)據(jù)段長度等參數(shù)可直接配置,配置完成后,點擊保存該文件,創(chuàng)建CAN會話時,直接將該文件名賦給nxCreateSession函數(shù),便可得到CAN會話句柄。在CAN通信時,采用了stream模式。因Stream模式不是只讀最近時刻且希望獲取類型的CAN幀,它不檢測總線上是什么類型的CAN幀,只檢測總線上在某一時刻所有的CAN幀,然后一次性取回,后期用戶再根據(jù)自身需求處理各類CAN幀,由于本測試系統(tǒng)模擬水下航行體中探測與各個系統(tǒng)之間的信息交互,所以對各系統(tǒng)發(fā)來的CAN幀數(shù)據(jù)都關(guān)心,這樣采用stream模式,減少讀取次數(shù),提高了接收效率。具體實現(xiàn)方法是:在nxCreateSession函數(shù)中設(shè)置成nxMode_FrameInStream模式,并將幀類型參數(shù)設(shè)置為NULL,按照CAN協(xié)議設(shè)置一個結(jié)構(gòu)體類型struct can_frame,其成員包括:時間戳、ID、幀類型、標志位、狀態(tài)信息、數(shù)據(jù)段長度,數(shù)據(jù)緩沖區(qū)。開辟一個該類型的結(jié)構(gòu)體數(shù)組,將創(chuàng)建的CAN會話句柄,結(jié)構(gòu)體數(shù)組首地址賦給nxReadFrame,調(diào)用此函數(shù)進行數(shù)據(jù)讀取。
【參考文獻】:
期刊論文
[1]LabWindows/CVI多線程技術(shù)的應(yīng)用研究[J]. 單體強,陳雷,張萬發(fā). 電子設(shè)計工程. 2012(15)
[2]CAN總線應(yīng)用層協(xié)議的研究與實現(xiàn)[J]. 王邦繼,劉慶想,李相強,張健穹. 計算機工程與應(yīng)用. 2011(20)
[3]基于LabWindows/CVI的多路高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J]. 周承仙,李仰軍,武錦輝,翟慧娟. 電子測量技術(shù). 2007(12)
本文編號:3459385
本文鏈接:http://sikaile.net/kejilunwen/wulilw/3459385.html
最近更新
教材專著