

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