摘 要: 介紹了一種面向多種總線測試設(shè)備的軟件設(shè)計,通過GPIB、TCP網(wǎng)絡(luò)、RS 485串口等總線編程技術(shù),采用多線程編程方法實現(xiàn)對GPIB?IEEE488.2接口測量設(shè)備、網(wǎng)絡(luò)接口示波器以及串口測量設(shè)備的分時通信,最終實現(xiàn)數(shù)據(jù)采集的目的。
關(guān)鍵字: 總線接口; 數(shù)據(jù)采集; 多線程; 分時通信
中圖分類號: TN06?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)03?0085?02
Software design for multiple bus testing devices
LIN Li?jie, GENG Tao
(Institute of Electronic Engineering, China Academy of Engineering Physics, Mianyang 621900, China)
Abstract: The software design for multiple bus testing devices is introduced in this paper. By using GPIB, TCP network and RS485 serial bus program technology, the time?share communication with GBIB?IEEE488.2 interface measuring equipment, network interface oscilloscope and serial port measuring equipment was realized by means of the multithread programming method. The design goal of data acquisition was realized ultimately.
Keywords: bus interface; data acquisition; multithread; time?share communication
具有面向多總線設(shè)備測試功能的檢測設(shè)備是一個串行化處理設(shè)備,該設(shè)備采用了GPIB、TCP網(wǎng)絡(luò)、RS 485等總線通信技術(shù),可分時控制GPIB測量儀器、網(wǎng)絡(luò)示波器、串口測試設(shè)備等多種測量設(shè)備進行數(shù)據(jù)測量,然后從各設(shè)備回讀采集數(shù)據(jù)進行數(shù)據(jù)處理;該軟件基于Windows XP系統(tǒng)操作,采用VC++、SP6開發(fā)工具進行軟件開發(fā),采用BCGControlBar Pro作為界面庫、采用ProEssentials控件作為圖形繪制庫,最終可完成設(shè)備檢測、數(shù)據(jù)采集、數(shù)據(jù)通信、波形顯示、報表打印等功能。
1 硬件結(jié)構(gòu)
該測試系統(tǒng)采用一臺工控機作為測試控制主機,工控機具有網(wǎng)絡(luò)端口、GPIB板卡、RS 485串口卡以及繼電器板卡。按照測試工作流程,依次與GPIB測量儀器、網(wǎng)絡(luò)示波器、串口測試設(shè)備等進行通信,分時控制這些設(shè)備進行數(shù)據(jù)采集和測試,然后從這些不同總線設(shè)備獲得測試數(shù)據(jù)后進行數(shù)據(jù)處理和分析達到測試目的,其硬件主要結(jié)構(gòu)如圖1所示。
2 軟件結(jié)構(gòu)
軟件采用C/C++語言編程,軟件總體結(jié)構(gòu)如圖2所示。軟件主要功能包括:設(shè)備自檢、設(shè)備參數(shù)設(shè)置、自動測試控制、波形顯示及數(shù)據(jù)處理、參數(shù)回放及打印等功能。設(shè)備自檢部分主要完成繼電器板卡及通道自檢、GPIB板卡端口及設(shè)備通信自檢、與網(wǎng)絡(luò)示波器通信自檢以及串口端口自檢等功能;設(shè)備參數(shù)配置主要完成測試記錄(測試設(shè)備編號、測試項目、操作人、測試時間等項目)填寫、按照不同試驗項目選擇不同的測試項目、預(yù)先設(shè)定測試項目閾值用于作合格判據(jù);自動測試控制程序部分采用了多線程設(shè)計技術(shù),將測試流程里的測試項目作為串行處理測試節(jié)點,按照測試流程分時完成各測試節(jié)點的通信測試;波形顯示及數(shù)據(jù)處理部分將讀回的示波器波形進行顯示,將讀回的數(shù)據(jù)進行處理獲得最大值、最小值和均值,將每次測試記錄填寫到由CBCGPGridCtrl派生的Grid控件表格,最后輸出數(shù)據(jù)到報表中;參數(shù)回放部分與Grid控件聯(lián)系緊密,參數(shù)回讀后數(shù)據(jù)顯示在Grid控件表格,通過點選Grid控件中的每次測試記錄,將對應(yīng)的每次測試存儲記錄包括波形和數(shù)據(jù)進行回放,并能通過報表進行參數(shù)打印。
3 關(guān)鍵編程技術(shù)
3.1 讀GPIB設(shè)備編程技術(shù)
通過GPIB總線接口設(shè)備可以對快速測量信號或高壓信號進行測試,這里采用數(shù)字萬用表3410A通過GPIB總線接口設(shè)備完成測量任務(wù),測試系統(tǒng)軟件首先申明GPIB端口地址等屬性,打開相應(yīng)端口地址后,通過自檢GPIB?IEEE 488.2通信接口查詢找到對應(yīng)的GPIB設(shè)備。在自動測試流程線程,當(dāng)程序運行到GPIB參數(shù)讀取測試節(jié)點時,測試系統(tǒng)軟件將測試數(shù)據(jù)從GPIB測試設(shè)備讀回,通過Windows窗口消息機制返回到窗口界面顯示測量數(shù)值。
3.2 讀網(wǎng)絡(luò)示波器編程技術(shù)
通過示波器設(shè)備可以直接對測量信號進行精細(xì)化測量,可以達到納秒級的測量精度,測試設(shè)備采用泰克DPO4054B示波器進行測量。軟件設(shè)計時在頭文件中包括了Visa.h頭文件,在庫鏈接中鏈接了Visa32.lib庫文件,同時結(jié)合Agilent IOlibary接口庫軟件,運用Visa編程技術(shù),查找到TCP網(wǎng)絡(luò)示波器后打開示波器進行通信。軟件啟動后通過自檢網(wǎng)絡(luò)查詢找到對應(yīng)的示波器設(shè)備,在自動測試流程線程,當(dāng)程序運行到示波器參數(shù)讀取測試節(jié)點時,測試系統(tǒng)軟件將測試數(shù)據(jù)從示波器讀回,隨后運用一定的算法處理數(shù)據(jù),可以獲得示波器無法直接測量的數(shù)據(jù)值。
3.3 RS 485總線串口編程技術(shù)
軟件串口編程技術(shù)比較成熟,通常設(shè)計方法為應(yīng)用程序開啟即打開所有串口,在應(yīng)用程序退出時關(guān)閉所有串口,不推薦在應(yīng)用程序內(nèi)不停打開或關(guān)閉串口,這樣存在與硬件兼容性的風(fēng)險,也不容易排除故障。
本應(yīng)用程序在設(shè)備自檢打開端口后,在自動測試流程線程,當(dāng)程序運行到串口設(shè)備參數(shù)讀取測試節(jié)點時,通過讀/寫串口端口完成數(shù)據(jù)讀/寫。
3.4 界面設(shè)計編程技術(shù)
采用BCGControlBar界面庫設(shè)計軟件總體界面,軟件顯示采用OutLook模式,左側(cè)一列顯示主窗口操作按鈕,按鈕操作允許對設(shè)備進行自檢;在測試界面和報表顯示界面進行切換;進行參數(shù)設(shè)置及參數(shù)回讀操作。
軟件居中采用ProEssentials繪圖軟件控件設(shè)計波形曲線窗口,既可用于測量時顯示波形曲線,又可在參數(shù)回讀時顯示波形曲線。
軟件右側(cè)采用基于CBCGPGridCtrl類派生基類生成的參數(shù)報表,可以用于顯示每次實驗數(shù)據(jù)。每做完一次試驗則在報表顯示一列數(shù)據(jù),記錄一次試驗波形數(shù)據(jù),方便使用者在一個時間段觀察試驗記錄。
4 軟件可靠性設(shè)計
測試系統(tǒng)軟件設(shè)計中采用了一定的可靠性設(shè)計方法保證測試設(shè)備的軟件健壯性,首先在軟件啟動的自檢階段確保與所有端口設(shè)備連接正常并通信正常,確保后續(xù)自動測試流程前軟硬件通信正確無誤;軟件采用Windows消息機制,避免線程內(nèi)對Windows窗體進行操作;對返回的波形數(shù)據(jù)軟件采用一定點數(shù)的平滑濾波處理技術(shù),防止讀回的數(shù)據(jù)異常影響軟件邊界。
5 結(jié) 論
經(jīng)過實驗驗證,該測試系統(tǒng)軟件可以很好地完成連續(xù)性試驗任務(wù),能很好的適用于實時性要求不高但需要連續(xù)測試記錄的試驗場合。證明采用多線程分時控制技術(shù)可以很好地將多種總線接口測量設(shè)備結(jié)合在一起測量不同類型的信號,從而達到一個測試系統(tǒng)完成多種測量任務(wù)的目的。
參考文獻
[1] LRINRVKRT R C. Visual C++ bible [M]. 北京:電子工業(yè)出版,1999.
[2] 徐曉剛,高兆法,王秀娟.Visual C++ 6.0入門與提高[M].北京:清華大學(xué)出版社,1999.
[3] 林立杰.基于RS 422接口的備份測試系統(tǒng)設(shè)計[J].儀器儀表學(xué)報,2008(8):23?26.
[4] 涂詩美.一種飛行器地面測控系統(tǒng)設(shè)計[J].計算機自動測量與控制,2000(3):39?42.
[5] 李筱雅,尚麗娜,張芹芹.1553總線測試仿真系統(tǒng)設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(10):53?56.
[6] 趙宇翔,樊曉光,王徐華.基于總線ICD測試方法研究[J].現(xiàn)代電子技術(shù),2010,33(8):87?89.