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