閻 俊 費月玲 付夢雯
(西安電子工程研究所 西安 710100)
近年來,LabVIEW以特有的“數(shù)據(jù)流”框圖式編程模式在測試測量領(lǐng)域應(yīng)用廣泛。目前,利用LabVIEW平臺開發(fā)較為復(fù)雜的實時多任務(wù)測試系統(tǒng)已成為一種新趨勢。文獻(xiàn)[1]基于LabVIEW平臺構(gòu)造復(fù)雜多任務(wù)并行應(yīng)用程序,提出了兩級隊列的解決方案,實現(xiàn)嚴(yán)格的任務(wù)定時;文獻(xiàn)[2]設(shè)計了基于LabVIEW的試驗臺測試系統(tǒng),實現(xiàn)對數(shù)據(jù)的調(diào)理、分析以及對數(shù)控轉(zhuǎn)臺綜合性能的檢測與評估,證實系統(tǒng)便捷性好,易于操作、精度高等;文獻(xiàn)[3]針對超高頻RFID讀寫器測試系統(tǒng),應(yīng)用LabVIEW控制待測對象和儀器,通過測試證實該軟件簡化測試過程,同時減少測試人員,提高工作效率。
本文基于LabVIEW平臺開發(fā)了某探測組件軟件測試系統(tǒng),運用圖形化的編程語言,實現(xiàn)了對USB-CANII[4]高性能CAN接口卡通過調(diào)用專用庫函數(shù)進(jìn)行二次編程,完成了輻射源方位碼測試終端數(shù)據(jù)的接收、查詢、存取以及參數(shù)控制。
某毫米波探測組件測試系統(tǒng)構(gòu)成如圖1所示。其中,探測組件(虛線框部分)主要由毫米波檢波模塊的預(yù)警接收單元(接收模塊1~4,共8個接收通道)和包含A/D量化模塊、信號分選模塊、方位解算模塊等部分的信號處理單元兩大部分組成。信號源為測試系統(tǒng)提供毫米波信號。USBCANII接口卡在PC和探測組件之間建立通訊渠道,同時應(yīng)用CAN接口庫函數(shù)二次編程并進(jìn)行數(shù)據(jù)接收、查詢、存取以及控制參數(shù)的設(shè)定, 把現(xiàn)場數(shù)據(jù)通過USB接口上傳給PC終端,同時收集現(xiàn)場數(shù)據(jù)并通過USBCANII接口卡回傳給 CAN通訊總線。
圖1 毫米波探測組件測試系統(tǒng)構(gòu)成
圖2為毫米波探測組件在實地測試中的工作原理。當(dāng)告警天線1~天線n截獲到目標(biāo)威脅信號(圖1信號源模擬)時,毫米波探測組件中檢波模塊接收信號后對其進(jìn)行對數(shù)放大,將視頻信號輸出給信號處理單元。信號處理單元中的A/D模塊對視頻信號進(jìn)行采樣量化后得到8個通道信號幅度的量化值,在信號處理單元中進(jìn)行脈沖描述字的形成和信號分選,并通過方位解算模塊對相鄰波束輸出的幅度值進(jìn)行比較、計算,最終得到輻射源的方位碼。信號處理模塊將輻射源的方位碼通過USBCANII接口卡上傳給PC終端,完成整個毫米波探測組件的技術(shù)參數(shù)測試功能。
圖2 毫米波探測組件工作原理
USBCANII高性能CAN接口卡主要用于對ZLG-CAN系列板卡進(jìn)行軟件測試。集成2路CAN-bus接口的高性能PC-CAN接口卡,CAN通道集成獨立的電氣隔離保護電路。USBCANII使PC通過USB端口連接至CAN網(wǎng)絡(luò),構(gòu)成一個CAN-bus控制節(jié)點。
USBCANII[4]提供專用的接口庫函數(shù)并允許PC軟件平臺自行編程進(jìn)行數(shù)據(jù)收發(fā)、查詢及處理。庫函數(shù)調(diào)用使用流程如圖3所示。
圖3 接口庫函數(shù)使用流程[4]
LabVIEW實驗室虛擬儀器工作平臺是NI公司開發(fā)的一種基于結(jié)構(gòu)框圖或流程圖的編程語言,核心是“數(shù)據(jù)流”。用戶利用創(chuàng)建功能控件(VI)和調(diào)用子程序的方法編寫程序,前面板模擬真實儀器、程序框圖控制控件對象、圖標(biāo)/接線端口將LabVIEW程序定義成一個子程序,從而實現(xiàn)模塊化編程。
LabVIEW集成了與滿足GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。內(nèi)置便于應(yīng)用TCP/IP、ActiveX等軟件標(biāo)準(zhǔn)的庫函數(shù),可方便建立自己的虛擬儀器。
本文輻射源方位碼測試系統(tǒng)開發(fā)平臺基于LabVIEW編程語言,軟件功能實現(xiàn)如圖4所示。
圖4 軟件功能總體框圖
主體程序主要包括USBCANII接口卡功能參數(shù)設(shè)置和輻射源方位碼事件響應(yīng)兩部分。USBCANII接口卡對應(yīng)特定的設(shè)備索引號和CAN通道,打開設(shè)備索引和所需通道并設(shè)置CAN初始化參數(shù)。接口卡初始化結(jié)構(gòu)體VCI_INIT_CONFIG(圖5)定義了初始化CAN參數(shù)配置,并在圖4中VCI-Init Can庫函數(shù)被填充。啟動CAN接口卡,設(shè)置要發(fā)送CAN幀的各項參數(shù)并發(fā)送數(shù)據(jù)。
圖5 接口卡初始化結(jié)構(gòu)體
CAN數(shù)據(jù)幀采用的是短幀結(jié)構(gòu),每一幀數(shù)據(jù)的有效字節(jié)數(shù)為8個。CAN數(shù)據(jù)幀通訊主要包括CAN參數(shù)初始化、數(shù)據(jù)的發(fā)送以及數(shù)據(jù)的接收。參數(shù)初始化是CAN數(shù)據(jù)幀通訊的基礎(chǔ),未進(jìn)行初始化系統(tǒng)將無法工作。初始化是對CAN數(shù)據(jù)幀相關(guān)控制寄存器進(jìn)行設(shè)置,包括驗證碼、屏蔽碼、濾波方式、波特率、收發(fā)模式等。初始化設(shè)置完成后,CAN數(shù)據(jù)幀進(jìn)入工作狀態(tài),進(jìn)行正常通訊工作。
發(fā)送CAN數(shù)據(jù)幀之前需要對幀參數(shù)進(jìn)行設(shè)置,包括發(fā)送格式、幀類型、幀格式、幀ID、數(shù)據(jù)等。發(fā)送數(shù)據(jù)程序?qū)?shù)據(jù)存儲區(qū)中待發(fā)送的數(shù)據(jù)取出,捆綁成CAN數(shù)據(jù)幀信息簇VCI_CAN_OBJ_T(圖6)。數(shù)據(jù)幀ID為幀頭,隨后將信息簇VCI_CAN_OBJ_T發(fā)送到CAN控制器的發(fā)送緩沖區(qū)。在接收到PC的發(fā)送請求后,CAN數(shù)據(jù)幀信息簇從CAN控制器發(fā)送到總線,完成數(shù)據(jù)發(fā)送過程。
圖6 CAN數(shù)據(jù)幀信息簇
接收CAN數(shù)據(jù)幀的線程是信息簇VCI_CAN_OBJ_R從CAN 總線到CAN 控制器接收緩沖區(qū)提取數(shù)據(jù)的過程。接收程序只需從接收緩沖區(qū)讀取信息,并將其存儲在數(shù)據(jù)存儲區(qū),完成數(shù)據(jù)接收過程。
創(chuàng)建輻射源方位碼TR(發(fā)-收)事件作為事件結(jié)構(gòu)的單獨分支,依據(jù)待測試的方位碼參數(shù)搭建LabVIEW程序框架。首先,調(diào)用庫函數(shù)VCI _Transmit(圖7)發(fā)送CAN數(shù)據(jù)幀,設(shè)置要發(fā)送CAN數(shù)據(jù)幀結(jié)構(gòu)體數(shù)組VCI_CAN_OBJ的Send以及幀的數(shù)量Len,函數(shù)返回實際發(fā)送成功的幀數(shù);其次,調(diào)用庫函數(shù)VCI _Receive(圖8)讀取CAN通道緩沖區(qū)數(shù)據(jù),函數(shù)返回實際讀取的幀數(shù);最后,對接收到的數(shù)據(jù)幀依據(jù)通訊協(xié)議二次編程,多列列表框作為最終輸出控件顯示滿足測試要求的輻射源方位碼。
圖7 VCI _ Transmit庫函數(shù)
圖8 VCI _ Receive庫函數(shù)
程序界面編寫基于事件結(jié)構(gòu)。創(chuàng)建While循環(huán)將事件結(jié)構(gòu)包含在循環(huán)體內(nèi),添加事件源,創(chuàng)建控件引用類事件分支和
圖9 創(chuàng)建
1)創(chuàng)建用戶事件。定義
2)注冊用戶事件。連接用戶事件輸出作為“注冊事件”函數(shù)的事件源,將事件注冊引用句柄輸出端連接至
3)產(chǎn)生、處理用戶事件。調(diào)用庫函數(shù)VCI _Transmit發(fā)送數(shù)據(jù)(程序線程如圖10所示),產(chǎn)生發(fā)送用戶事件;調(diào)用庫函數(shù)VCI _Receive接收數(shù)據(jù)(程序線程如圖11所示),產(chǎn)生接收用戶事件;
圖10 VCI _ Transmit發(fā)送程序線程
圖11 VCI _ Receive接收程序線程
4)取消注冊事件。取消注冊與
5)銷毀用戶事件。釋放
通過事件結(jié)構(gòu)中
根據(jù)圖1搭建測試系統(tǒng),信號源信號輸出端連接接收模塊1的第1通道作為接收通道。設(shè)置信號源輸出頻率32GHz、脈沖寬度10μs、脈沖重復(fù)周期(PRI)100μs;設(shè)置初始化CAN參數(shù)、發(fā)送CAN數(shù)據(jù)幀參數(shù);顯示控件多列列表框接收輻射源方位碼數(shù)據(jù),每一列分別代表輻射源方位碼參數(shù)項目名稱分類,行代表接收到每一幀的數(shù)據(jù)信息。輻射源方位碼自發(fā)自收測試終端接收到通道1的方位碼數(shù)據(jù)以多列列表框控件顯示如表1所示。
可見,接收到通道1的方位角DOA參數(shù)顯示22°,脈沖重復(fù)周期PRI參數(shù)為100μs,輸出功率PW為9.36dBm,1通道噪聲參數(shù)PA1的值隨著信號源輸出功率以1dB步進(jìn)量增大的同時也在隨之增大,直到達(dá)到飽和值后衰減,未測試通道噪聲參數(shù)PA2~PA8的值保持不變。
測試性能結(jié)果表明,基于LabVIEW平臺的輻射源方位碼自發(fā)自收測試終端程序開發(fā),結(jié)合產(chǎn)品技術(shù)條件要求驗證了接收方位碼數(shù)據(jù)被用于產(chǎn)品測試項目的正確性,提高測試效率。
表1 輻射源方位碼
以往的ZLGCAN系列板卡測試終端大多數(shù)通過MFC在VC++環(huán)境下利用輔助軟件開發(fā)包編寫測試系統(tǒng)的測試程序。本文輻射源方位碼測試終端開發(fā)平臺基于LabVIEW編程語言,通過對毫米波探測組件的測試分析,獲得以下結(jié)論:
1)考慮LabVIEW推崇的“數(shù)據(jù)流”框圖式編程模式,驗證了自定義事件和動態(tài)注冊事件在處理復(fù)雜編程問題時極大地改善界面處理效率,減少CPU的占用率。說明了基于事件結(jié)構(gòu)與傳統(tǒng)設(shè)計模式相結(jié)合的設(shè)計思維,很大程度上簡化了編程,提高了LabVIEW運行效率。
2)USBCANII[1]高性能CAN接口卡調(diào)用專用的接口庫函數(shù)對ZLGCAN系列板卡進(jìn)行軟件測試,方便LabVIEW平臺針對毫米波探測組件自行開發(fā)二次編程并進(jìn)行數(shù)據(jù)收發(fā)、查詢及處理。
3)基于LabVIEW平臺的ZLGCAN系列板卡測試程序開發(fā),主體架構(gòu)較直觀,方便初學(xué)者快速掌握編程要點,縮短軟件開發(fā)時間,提高測試效率。