電子測量儀器IO模擬器設計
摘要: 本文介紹一種電子測量儀器IO模擬器實現方法。以網絡分析儀HP8753E為例討論了模擬器的部分實現細節及模擬結果。
關鍵詞: 儀器;IO模擬器;狀態機;網絡分析儀
2008年4月25日收到本文。陳飛:高級工程師,研究方向為電子測量技術。
引言
自動測試系統經常使用各種電子測量儀器進行系統集成。由于訂貨周期限制,這些儀器可能要到系統集成的后期才能到貨,因此軟件系統被迫延遲到到貨后才能進行與儀器設備進行聯調。由于聯調中發現的問題引發的設計更改,將大大延緩系統交付的時間。
通過預先得到的技術資料設計IO模擬器,模擬實際設備的IO響應,可以在儀器設備到貨前開始與軟件系統的聯調。另一方面,開發人員常常需要并行進行系統和分機調試,采用模擬器也可解決實際設備數量限制問題,提高系統開發效率。
本文提出的IO模擬器,根據輸入IO數據流進行狀態轉換,并由當前狀態實現模擬數據輸出。由于采用文本格式的自定義數據文件控制模擬器實例化過程,測試系統內可以同時模擬多種不同測量儀器的IO響應,并具有良好的可擴展性。本文引用地址:http://www.j9360.com/article/85399.htm
模擬器工作原理
如圖1所示,應用程序的IO操作由虛擬IO驅動程序傳遞入模擬設備。IO模擬器通過加載描述設備工作模式的數據文件實現設備IO行為仿真。當物理IO驅動與虛擬IO驅動程序繼承于同一個父類時,應用程序可以通過配置驅動程序在運行時進行物理設備IO與模擬設備IO的動態切換。對實際設備的寫入操作就自動轉發給模擬設備,并由模擬設備對讀出等操作進行響應,返回相應數據流到應用程序。
圖1 模擬器工作原理示意圖
IO模擬器根據數據文件實現一個用戶定義的有限狀態機。如圖2所示:繼承自抽象基類(IOManager)的VISimulator類用于實現IO模擬器。將模擬器替代實際IO管理器對象(VisaIOManger)進行配置后,模擬器將截獲上層應用程序發出的IO指令,并模擬實際設備進行響應。
圖2 模擬器類結構示意圖
VISimulator的成員states為模擬器可用狀態表,variables為變量表,current為當前狀態。狀態表是狀態類(VIState類)對象的集合,變量表為變量類(VIVariable類)對象的集合,變量值可用于狀態和變量值的入口檢查及計算。
當寫入操作(Write)發生時,模擬器遍歷所有的變量及狀態,檢查其入口條件(entrance),對符合入口條件的變量,更新(Update)變量值(value)。如符合狀態入口條件,則將該狀態設置為當前狀態。對于當前狀態,還需檢查其出口條件(exitus),如符合則設置當前狀態為空。
當讀出操作(Read)發生時,模擬器由當前狀態的模擬方法(Simulate)計算并返回模擬實際測量結果的數據。如當前狀態設置讀操作為出口條件,則模擬器在讀出完成后返回空閑狀態。如當前狀態為空或非可讀狀態,模擬器將按照變超時設置延遲后返回無效數據,真實地模擬IO指令序列錯誤造成的測試過程現象。
ViSimulator的Load方法用于數據文件裝入,由數據文件的描述建立狀態表和變量表。由狀態和變量的靜態方法Parse完成解析并返回實例對象。
實現及模擬結果
筆者在實際測試系統開發過程中設計了前述模擬器,并根據儀器程控手冊編寫Agilent公司的HP8753E和E5071C等矢量網絡分析儀的數據文件,實現了對這些實際儀器IO功能的模擬。下面以HP8753E電壓駐波比測量為例詳細介紹IO模擬器實現方法。
矢量網絡分析儀用于測量射頻元件的端口特性,常用于測量端口電壓駐波比、衰減、阻抗等參數。因此其測量結果就包括多種格式不同的數據組合。當用HP8753E進行電壓駐波比測試時,網絡分析儀會返回一個坐標數組,坐標的兩維分別是駐波測量值和測量頻率。
根據HP8753E程控手冊定義狀態SWRWaveform用于模擬電壓駐波比測量狀態:
<SWRWaveform:state>//狀態名
length:101 //模擬波形長度 format:value(1.00,1.1)|linear (StartFreq:10,EndFreq:100)
//模擬波形坐標點格式
entrance:outpform(Format=swr) //狀態
入口點及輔助條件
exituse:[Read] //狀態出口
… …
<SWRWaveform> //狀態結束標志
以上文本描述了狀態的工作模式,當在寫入數據流中檢測到字符串outpform時,如模擬器變量表中變量Format=swr時模擬器進入狀態SWRWaveform。此時如收到讀出指令,模擬器將由SWRWaveform狀態模擬輸出電壓駐波比波形,返回一個101點的兩維坐標數組,其中X為1到1.1之間的隨機數,Y為從模擬器變量表中變量StartFreq到EndFreq的線性遞增數值。
圖3為測試系統由模擬器實際得到的測量波形,模擬器根據IO數據流正確地進入了SWRWaveform狀態,并以正確的頻率范圍返回了仿真數據。
圖3 模擬器輸出數據的結果波形
結語
本文介紹的模擬器適用于文本格式的控制指令集,在電子測量系統開發過程中已得到了驗證和實際應用。
參考文獻:
1. Meilir Page-Jones,UML面向對象設計基礎,人民郵電出版社,2001.4
2. 87XXET/ES Network Analyzer Programmer’s Guide, Agilent Technologies Inc. 08753-90475, February 2001
路由器相關文章:路由器工作原理
路由器相關文章:路由器工作原理
矢量控制相關文章:矢量控制原理
評論