摘 要:為了解決接收機自動測試系統(tǒng)中由于系統(tǒng)時延與數(shù)據(jù)緩沖給測試過程中的時間同步與數(shù)據(jù)對齊帶來的一系列難題,提高測試系統(tǒng)的精度,本文對傳統(tǒng)的自動測試系統(tǒng)進行了優(yōu)化。以LabVIEW為平臺開發(fā)了獨立于主工控機的數(shù)據(jù)采集系統(tǒng),并對數(shù)據(jù)緩沖問題提出了解決方案。試驗結(jié)果表明,該系統(tǒng)較好地解決了時延與數(shù)據(jù)對齊問題,達到了預期目標。
關鍵詞: 接收機測試; LabVIEW RT; 數(shù)據(jù)采集
隨著全球經(jīng)濟的蓬勃發(fā)展,導航被廣泛應用在運輸車輛監(jiān)控、服務示范系統(tǒng)工程、石油探測、航天測試系統(tǒng)等方面,用于接收、跟蹤、變換和測量導航信號的接收設備——導航接收機也被應用在各種服務、追蹤、測試等系統(tǒng)中。
在一些對精度及可靠性要求比較高的系統(tǒng)中,一方面接收機的精度和不確定度評估直接影響了測試驗證的可信度;另一方面隨著使用時間及機械損耗,接收機的精度會受到一定的影響,為此需要對接收機進行定期標校。
一般的接收機自動測試系統(tǒng)[1]大都把原始數(shù)據(jù)與接收機接收數(shù)據(jù)進行對比,在此過程中往往忽略了由于操作系統(tǒng)的非實時性帶來的時延以及數(shù)據(jù)緩沖處理給發(fā)送數(shù)據(jù)與接收數(shù)據(jù)的對齊造成的誤差。
本文在對接收機自動測試系統(tǒng)的構(gòu)架進行簡單介紹的基礎上,著重研究如何采用LabVIEW RT 實時系統(tǒng)解決上述問題。
1 測試系統(tǒng)架構(gòu)
傳統(tǒng)導航接收機自動測試系統(tǒng)[2]如圖1所示。
工控機記錄并通過GPIB總線控制信號源的輸出[3];通過天線或射頻信號,信號源將產(chǎn)生的信號發(fā)送給接收機;接收機接收信號源生成的各類信號并通過429總線將接收的信號傳遞給工控機;工控機最終將接收機接收到的信號與信號源發(fā)射信號進行對比,給出接收機誤差補償。
這一方法在理論上成立,在設計和實現(xiàn)的過程中卻會因操作系統(tǒng)的非實時性和接收數(shù)據(jù)過程中的數(shù)據(jù)緩沖,給最終數(shù)據(jù)對比時的時間同步和數(shù)據(jù)對齊帶來問題,進一步影響系統(tǒng)精度。
為了解決這一問題,本文對傳統(tǒng)接收機自動測試系統(tǒng)進行了優(yōu)化,如圖2所示。
本系統(tǒng)采用IFR International Ltd.生產(chǎn)的專用航空信號發(fā)生器IFR2030作為信號源,Collins的GNLU-930、DME-442以及Honey Well的RNA-34BF作為接收機;通過PCI-GPIB板卡實現(xiàn)工控機與信號源控制單元的通信;此外,新增了Agilent公司的DS07104B型示波器以及E4440A型頻譜分析儀,以實時顯示跟蹤信號的變化情況。
與傳統(tǒng)自動測試系統(tǒng)相比,本系統(tǒng)最大的特色是以LabVIEW為平臺開發(fā)了獨立的數(shù)據(jù)采集系統(tǒng),其設計方案將在下一節(jié)中進行介紹。
2 數(shù)據(jù)采集
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一種圖形化編程語言的開發(fā)環(huán)境。它最大的特點是能夠保證應用程序的實時響應[4]只運行在物理內(nèi)存中;另一特點是并行特性,多線程數(shù)據(jù)采集任務的編寫和執(zhí)行更加容易和有效[5]。
本系統(tǒng)設計過程中,以LabVIEW為開發(fā)平臺將數(shù)據(jù)采集設計為獨立的系統(tǒng)就是考慮到了LabVIEW的以上特性,這些特性使系統(tǒng)在運行過程中由于操作系統(tǒng)的非實時性而帶來的時延大大減少[6]。此外,在傳統(tǒng)的接收機自動測試系統(tǒng)中,工控機承擔了包括信號源控制、數(shù)據(jù)采集、解析與分析處理,以及數(shù)據(jù)存儲的任務,這些多線程操作也給工控機的響應時間帶來一定的影響, 本系統(tǒng)中數(shù)據(jù)采集系統(tǒng)作為一個獨立的單元承擔了數(shù)據(jù)采集與解析的任務, 降低了主工控機的負荷。
數(shù)據(jù)采集系統(tǒng)作為中間過程是用戶不可見的,上位機采用TCP/IP協(xié)議實現(xiàn)對采集單元的控制及通信。為了使數(shù)據(jù)采集適應于ETS實時操作系統(tǒng),采集系統(tǒng)采用了ALTA data公司的CPCI采集卡,系統(tǒng)結(jié)構(gòu)如圖3所示。
數(shù)據(jù)采集流程[7]分為初始化、讀取數(shù)據(jù)、結(jié)束采集三大步,其示意圖如圖4所示。
在初始化分支中要分別對板卡及采集通道進行初始化設置,確立板卡ID號、發(fā)送和接收通道編號、總線速率;在讀取通道數(shù)據(jù)分支中調(diào)用獲取緩存中數(shù)據(jù)函數(shù),獲得接收機數(shù)據(jù);在結(jié)束采集分支中按照初始化的逆序退出相應的數(shù)據(jù)采集函數(shù),配置要停止工作的通道編號,調(diào)用函數(shù)關閉通道[8], 最后再關閉板卡。設計如圖5所示。
為了不斷接收來自接收機的數(shù)據(jù),并對采集到的數(shù)據(jù)進行解析和顯示,在程序編寫過程中采用了一個While循環(huán)[9],如圖6所示。
對于數(shù)據(jù)解析部分[10],需要根據(jù)數(shù)據(jù)Label,對每個參數(shù)單獨地進行封裝,然后在主程序中進行調(diào)用。
工控機與數(shù)據(jù)采集單元間的通信采用網(wǎng)絡TCP協(xié)議[11]。通信模塊程序框圖如圖7所示,上部分循環(huán)實現(xiàn)向數(shù)據(jù)采集系統(tǒng)發(fā)命令字的功能,下部分循環(huán)接收數(shù)據(jù)采集系統(tǒng)解析后的數(shù)據(jù),并顯示在工控機面板上。
3 數(shù)據(jù)緩沖方案
除了系統(tǒng)時延之外,另一個影響系統(tǒng)性能的因素是數(shù)據(jù)處理與緩沖。
在很多數(shù)據(jù)采集過程中,對數(shù)據(jù)的處理是一個順序過程,即對某一數(shù)據(jù)包依次進行數(shù)據(jù)采集、數(shù)據(jù)解析、數(shù)據(jù)打包或存儲等過程后再進入下一次的采集。這樣在數(shù)據(jù)及數(shù)據(jù)處理量較小的情況下是可行的,但當數(shù)據(jù)達到一定的閾值,在每一步上耗費的時間將顯著提高,這時就會出現(xiàn)后續(xù)處理流程長時間空閑等待前續(xù)流程,或者前續(xù)流程長時間空閑等待后續(xù)流程處理完畢以進入下一個采集過程。這種處理方式容易帶來數(shù)據(jù)丟失或波形失真等問題,更難以保證實時性的要求。
鑒于以上缺陷,本系統(tǒng)對數(shù)據(jù)采集流程進行了優(yōu)化,改進的數(shù)據(jù)采集流程如圖8所示。
改進后,各個流程既相對獨立,又能夠通過緩存實現(xiàn)模塊間的交互,使數(shù)據(jù)處理量在時間維中均勻分布。同時減少了系統(tǒng)在數(shù)據(jù)量很大卻存在進程循環(huán)等待這一問題,極大地提高了數(shù)據(jù)采集系統(tǒng)的性能。
對于數(shù)據(jù)采集系統(tǒng)內(nèi)部模塊間的交互需要考慮到進程間同步、數(shù)據(jù)緩存等問題。對于數(shù)據(jù)采集模塊與數(shù)據(jù)解析處理模塊,數(shù)據(jù)采集系統(tǒng)采用了主從設計模式來實現(xiàn)。主/從設計模式主要用來解決兩個或多于兩個的同時發(fā)生的并且擁有不同運行速率的線程間通信間題。其示意圖如圖9所示。
數(shù)據(jù)采集模塊作為主循環(huán),數(shù)據(jù)處理模塊作為從循環(huán),它們引用相同的通知器句柄。從循環(huán)在程序運行之初處于等待通知器狀態(tài),只有當從循環(huán)收到主循環(huán)完成采集通知才開始進行數(shù)據(jù)處理,處理完成后將進入下一次等待通知狀態(tài)。
數(shù)據(jù)解析處理模塊與網(wǎng)絡發(fā)送模塊間的交互采用生產(chǎn)者消費者設計模式。與主從設計模式不同,生產(chǎn)者/消費者設計模式采用了隊列的數(shù)據(jù)存儲方式(FIFO)。網(wǎng)絡發(fā)送模塊設置了一個數(shù)據(jù)存儲隊列,從數(shù)據(jù)解析處理模塊發(fā)送來的數(shù)據(jù)按照先進先出的方式被存入這一隊列。程序運行時,數(shù)據(jù)解析處理模塊與網(wǎng)絡發(fā)送模塊同時運行,前者只負責將數(shù)據(jù)處理后寫入到緩存隊列,后者只負責將隊列中的數(shù)據(jù)讀取出來并進行下一步操作。
這樣的處理過程緩和了在數(shù)據(jù)量過大時的種種矛盾,在實際處理過程中也達到了預期目標。然而,仍有一些問題需要進一步考慮,主從模式在數(shù)據(jù)采集速率大于數(shù)據(jù)處理速率的情況下,容易造成數(shù)據(jù)的丟失;生產(chǎn)者/消費者模式能夠很好地克服上述問題,但是當網(wǎng)絡發(fā)送速率低于數(shù)據(jù)處理速率時,隊列將會溢出,在LabVIEW中數(shù)據(jù)發(fā)送將被強行停止。因此合理設計各模塊間的關系,匹配模塊間處理率是系統(tǒng)精益求精的一個設計方向。
4 實驗
為了測試對數(shù)據(jù)采集單元進行優(yōu)化后的系統(tǒng)性能,除了常規(guī)的測試,還進行了一次對比試驗:將信號源設定為正弦信號,分別記錄下傳統(tǒng)自動測試系統(tǒng)與本系統(tǒng)的接收數(shù)據(jù),將它們繪制在同一幅圖像中。實驗結(jié)果顯示,與未經(jīng)優(yōu)化的系統(tǒng)相比,本系統(tǒng)能更好地進行時間同步與數(shù)據(jù)對齊。同時,采用LabVIEW RT圖形化開發(fā)環(huán)境,應用模塊化設計方式,把流程中的各個部分模塊化,也有利于程序的修改和維護。本設計系統(tǒng)達到了優(yōu)化接收機自動測試系統(tǒng)的預期目標。
參考文獻
[1] 鄭敬華,劉晨,高超. 一種基于GPIB的自動測試系統(tǒng)實現(xiàn)方法研究[J].信息通信,2012,21(01):90-92.
[2] 楊文,黃文濤.通用自動測試系統(tǒng)的軟件設計與實現(xiàn)[J].工業(yè)控制計算機,2012,12(01):79-83.
[3] 莫畏.一種基于GPIB的自動測試系統(tǒng)的研究與實現(xiàn)[J].電腦開發(fā)與應用,2008,08(09):5-8.
[4] 何銀菊,夏夢芝,黃運生. 基于Labview的控制器自動測試平臺的設計[J].計算機測量與控制,2011,28(12):2928-2930.
[5] 歐陽三泰,周琴,譚梅.基于LabVIEW平臺和GPIB接口的在線測控系統(tǒng)[J].湖南工程學院學報(自然科學版),
2006,07(02):4-6.
[6] 李雯,肖凱. 應用LabVIEW RT開發(fā)實時測試系統(tǒng)[J].微計算機信息,2003,06(08):42-60.
[7] 宜萬兵,秦紅磊, 路輝.基于LabView RT的實時采集系統(tǒng)[C].第十七屆全國測控計量儀器儀表學術年會,2007,
10(10):276-279.
[8] 趙梅,胡天亮,張倩,等.基于LabVIEW的AMT數(shù)據(jù)采集系統(tǒng)設計與研究[J]. 山東大學學報(工學版), 2011,25
(06):70-79.
[9] LOVELL T J, JEREMY P. Irish flight validation data gathering and evaluation capabilities[C]. 16th International Flight Inspection Symposium. Beijing, 2010,7:21-25.
[10] Zhang Yiyang, Zhou Shaolei. Signal decoding realization of air data dynamics test System[J]. Electronic Measurement and Instruments, 2007,20(54):156-159.
[11] 劉太陽, 王仕成, 劉志國.基于LabVIEW RT的數(shù)據(jù)實時傳輸系統(tǒng)[J]. 計算機測量與控制, 2008,23(02):270-
272.
[12] 郭躍云,鄭賓, 吳柯銳. 基于LabVIEW的429總線收發(fā)系統(tǒng)的設計[J]. 國外電子測量技術,2009,28(6):36-39.