999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于狀態報告的測量同步技術研究及應用

2017-12-14 05:43:15,,,
計算機測量與控制 2017年9期
關鍵詞:指令測量設備

, ,,,

(中國衛星海上測控部,江蘇 江陰 214431)

基于狀態報告的測量同步技術研究及應用

邱斌,夏偉,沈小青,余清華,丁風海

(中國衛星海上測控部,江蘇江陰214431)

自動測試系統中的測量同步對于提高測試系統性能和運行可靠性至關重要,基于狀態報告系統的同步技術比軟件延時法提供了更高的效率和更好的安全性;為解決自動測試系統中的指令同步問題,探討了IEEE488.2和可編程儀器標準命令(SCPI)的狀態報告模型、寄存器及同步機制,對利用SCPI狀態報告機制實現自動測試系統測量指令同步的原理和方法進行了深入研究;通過原理分析和實例解析,分析了幾種測量指令同步實現方法的時序、實現要點及關鍵技術,總結比較了幾種同步方法的區別和適用場合,解決了自動測試系統中測量指令同步的問題。

狀態報告系統;指令同步;自動測試系統

0 引言

自動測試在科研、生產、國防、計量等領域得到了越來越廣泛的應用。相對手動測試而言,自動測試具有多種優勢,如能夠適應復雜的測試對象和繁重的測試任務、適應極端環境測試和瞬態及長時間測試、測試速度快、結果表示和分析處理功能強、對測試人員要求低等[1]。

自動測試系統在程序統一指揮下,通過各總線設備的互相配合,完成自動測量、狀態采集、數據處理、結果輸出等一系列工作[2]。在自動測試系統中,技術人員要解決的一個關鍵問題是如何處理設備與被測對象、設備與設備、設備與控制器之間的測量狀態同步,例如:當要讀取一臺頻譜分析儀的測量結果,必須在頻譜儀完成一次完整掃描后才能執行讀取指令,而不能提前執行讀操作,否則采集的軌跡數據是肯定不正確的。因此從系統角度考慮,要使測量過程可靠、效率優化、結果準確,首先要解決的問題就是自動測試系統中的測量同步。

1 SCPI狀態報告機制

1.1 SCPI簡介

20世紀70年代,自動測試領域最重要的進展就是制訂了IEEE 488.1標準(GPIB或IEC 625)。IEEE488.1主要規定了儀器在電氣上、機械上和功能上相容性的要求,保證了系統部件之間正確的電氣、機械連接,并提供傳送字節的可靠方法,但它對運行相容性的要求,即代碼、格式、通信協議和公用命令方面未作規定[3]。為此,1987年頒布的新標準IEEE 488.2“IEEE 標準代碼、格式、協議和公用命令”,解決了IEEE 488.1標準中許多問題。IEEE 488.2標準規定了一套代碼和格式,供IEEE488.1總線連接的系統器件使用。IEEE 488.2還定義了與具體器件無關的必要消息交換通信協議,并進一步定義了少量儀器公用命令[4]。但是,IEEE488.2并未解決器件消息標準化的問題,而器件消息的非標準化給編程人員造成很大的困難。為了解決這個問題,1990年4月,建立在IEEE488.2基礎上的可程控儀器標準命令SCPI(Standard Command for Programmable Instrument)應運而生。

SCPI是架構在IEEE488.2上的新一代儀器控制語法,主要包括語法形式、命令標記和數據交換等三部分內容,采用了僅面向功能而與儀器硬件和面板無關的準則。根據這一準則,SCPI提出3種形式兼容性概念,即“縱向兼容性”、“橫向兼容性”和“功能兼容性”[5]。使得同類型儀器具有相同的控制;不同類型儀器能做相同的測量,與使用的測量技術無關;不同種類儀器在相同的命令下完成相同的功能。SCPI是一個“活”標準,具有可擴充性和擴展能力,任何成員和廠商都可以提出意見,并經過一定手續寫入新版本,目前,最新發布版本SCPI-1999。

1.2 SPCI狀態報告系統

狀態報告系統保存所有當前設備操作狀態的信息,例如設備正在執行校準、發生的錯誤等。IEEE 488.2規定了統一的狀態報告模型,將狀態報告的內容歸納、合并,最后綜合反映到標準的狀態字節中。同時,還規定了若干用于服務請求和查詢的公用命令以配合狀態報告工作,通過3條專門用于同步的公用命令,保證程序和器件功能同步。

SCPI規定了專門的狀態子系統,實現了IEEE488.2第11章描述的狀態機制,包括狀態字節寄存器(STB)和事件狀態寄存器(ESR)結構[4]。此外,SCPI還增加定義了操作(Operation)狀態寄存器,以及可疑數據(Questionable)狀態寄存器,圖1給出了“SCPI要求的最小狀態報告結構”,虛線框內是IEEE488.2狀態報告系統最小結構。STB和它的關聯允許寄存器(SRE)構成狀態報告系統最高一層。STB從ESR和包含設備詳細信息的操作狀態寄存器和可疑數據狀態寄存器處采集信息。

圖1 SCPI要求的最小狀態報告結構

2 狀態報告機制在測量同步中的方法及實現

在前文中已提及測量同步對于自動測試系統的重要性,特別是當運行帶有某些操作,如測量復雜信號或執行自校準等操作時,在下一命令能夠執行前需有較長的等待完成時間。如果在下一命令前不能完成這些操作,就會產生錯誤和程序暫停運行。通常在自動測試程序中,最常用也是最簡單的同步方法是使用“軟件延時”法,即開發者通常在某項操作后及在發送下一控制指令前,在程序中控制插入一個軟件固定延遲,來“修復”這一問題。但問題是,大部分需同步的測量過程并不能事先計算得到準確的等待時間,開發者需要花大量的時間來調試軟件,并且常常會為了獲得足夠的時間安全裕量而故意預留更多的延時時間,不但費時費力,更是人為降低了總的系統吞吐率。更重要的是,“軟件延時法”有時會因為系統運行環境的變化,例如運行在不同的控制計算機上或更換了測試設備,實際延時時間會發生不可預期的變化[6],導致測試失敗,嚴重時甚至損壞測試儀器或被測設備。因此在自動測試程序中,應該任何時候都要盡量避免使用“軟件延時”方法同步測量指令,而SCPI繼承了IEEE488.2的基于狀態報告系統的同步機制,可以很好地解決上述問題。

2.1 使用“*WAI”命令同步

SCPI中最簡單常用的同步方法是在需要等待執行完成的指令后加上“*WAI”命令[7],發送組合命令或分別發送都可以。“*WAI”不影響程序與其它儀器的通訊,由圖2可看出,寫入另一臺儀器的命令沒有受到“*WAI”指令的影響。

以下是使用“*WAI”同步方法完成頻譜儀掃描結束后讀取最大標記值功能的.NET C#代碼示例,本文后續示例代碼將使用不同的同步方法完成此功能。

mbSessionFsmr.Write("CALC:MARK1:MAX");

mbSessionFsmr.Write("INIT:CONT OFF");//單次掃描

mbSessionFsmr.Write("INIT;*WAI"); //使用*WAI同步

tempSpec = Double.Parse(

mbSessionFsmr.Query("CALC:MARK:MAX;Y?"));

圖2是使用NI I/O Trace軟件監視和記錄的儀器總線I/O通信內容,由圖2可以清楚觀察使用“*WAI”命令同步的I/O時序關系,讀取最大標記指令在等待了3.294 s才執行,這大約是頻譜分析儀在此次測量中的單次掃描時間。使用“*WAI”不影響程序與另一設備通訊。

圖2 “*WAI”同步的的I/O時序關系

2.2 使用“*OPC?” 指令同步

另一個較簡單的測量指令同步方法是在需要同步的指令后面加上公用命令“*OPC?”,此命令類似于“*WAI”命令。兩者間的主要區別在于“*OPC?”的詢問結果確定后續同步操作,而在詢問結果響應前這段時間儀器的通訊將被掛起,直到前一個指令執行結束。示例代碼如下,由圖3看出,在查詢測量結果前,等待了約3 s的同步響應時間,這正是頻譜分析儀完成1次掃描的時間。

mbSessionFsmr.Write("CALC:MARK1:MAX");

mbSessionFsmr.Write("INIT:CONT OFF");//單次掃描

mbSessionFsmr.Write("INIT; *OPC?"); //使用*OPC?同步

tmpResult= mbSessionFsmr.ReadString();

tempSpec = Double.Parse(

mbSessionFsmr.Query("CALC:MARK:MAX;Y?"));

需要注意的是使用“*WAI”和“*OPC?”時,在程序中必須先將設備會話超時時間設置大于等待同步過程的時間,否則會產生超時錯誤。此外,“*OPC?”查詢命令在等待響應期間,將阻塞指令發送,使得程序不能向設備發送其它命令。所以,此同步方法通常適用于等待時間較小的場景。

2.3 使用“*OPC”和事件狀態寄存器同步

使用“*OPC”命令進行測量同步是最復雜,但也是最靈活的一種方法。需要注意的是使用“*OPC?”和“*OPC”是有很大差別的,是兩種完全不同的方法。“*OPC?”查詢不影響事件狀態寄存器(ESR)的值,其響應結果被放置在輸出緩沖區中,因此其將影響狀態字節寄存器的MAV(bit4)位[8]。

所有遵循IEEE488.2的設備,都須實現事件狀態寄存器(ESR),ESR是一個8位寄存器,該寄存器的bit0被定義為“操作完成”位,如圖1所示。“*OPC”命令完成設備操作同步的原理就是在操作執行命令結束后,設備的狀態報告系統會將ESR的bit0置“1”,測試程序中只要使用“*ESR?”命令輪詢ESR的bit0狀態,即可判斷是否執行完畢,從而實現測量指令的同步。查詢ESR寄存器狀態可以使用公用查詢命令“*ESR?”,完成詢問操作后,ESR寄存器狀態將被清零。

以下是使用“*OPC”和事件狀態寄存器方法完成同樣功能的C#代碼。

mbSessionSA.Write("INIT;*OPC"); //執行指令后使用*OPC同步

while ((Convert.ToByte(mbSessionSA.Query("*ESR?")) amp; 1) == 0) //串行輪詢ESR的bit0狀態

Thread.Sleep(100); // 設置輪詢間隔時間100 ms

tempSpec=Double.Parse(mbSessionSAQuery("CALC:MARK:MAX;Y?"));//掃描完成讀取數據

需要指出的是,作為開發者通常應當盡量避免使用輪詢事件寄存器ESR的方法,因為這會耗費較長的CPU時間,阻塞程序運行。因此,實際自動測試程序中“*OPC”公用命令通常是和服務請求(SRQ)配合,一起使用實現測量指令同步。

2.4 使用“*OPC”和服務請求(SRQ)同步

IEEE488.2的服務請求機制可以用于處理來自設備或儀器各種源和原因的異步事件。在向儀器或設備發出控制指令后,主控計算機可能轉而處理其它事件,而當設備完成指定操作后,要求主控計算機實時回到原先的指令序列讀取數據或進行其它處理。另外,設備在超量程或輸出緩沖溢出時,也需要主控計算機中斷當前的工作為其服務[9]。服務請求(SRQ)功能就是適應這種需要而產生的。

圖1可以解釋服務請求的工作原理,將計算機配置為可響應IEEE-488服務請求(SRQ)中斷,才能使用該功能。使用狀態字節允許寄存器(*SRE命令)選擇哪些條件位可作為IEEE-488的SRQ線使用。例如狀態字節寄存器(STB)的第4位“MAV”和第5位“ESB”分別代表輸出緩沖區和標準事件寄存器狀態。如果STB第6位(RQS)從“0”轉換到“1”,那么IEEE-488服務請求消息就被發送到計算機上。然后計算機可能通過接口總線對儀器進行輪詢,以確定哪一條為服務請求線。在發出串行輪詢時,在串行輪詢響應中將清除STB第6位(RQS)而不影響其他位,并且清除SRQ線。“*STB?”公用命令與串行輪詢相似,但是它的執行方式與任何其他儀器命令一樣,“*STB?”命令返回的結果也與串行輪詢相同,但只要允許的條件仍然保留,就不會清除STB第6位。

在實際應用中,當服務請求用于“操作完成”同步時,首先需要將狀態字節寄存器的允許寄存器(SRE)的bit5和標準事件狀態寄存器的允許寄存器(ESE)的bit0置“1”,從而允許相應事件發生;然后在設備執行指令后添加公用命令“*OPC”,使得的ESR的bit0在操作完成后置“1”,從而觸發狀態字節寄存器的ESB bit5置“1”,若ESE的相同位已設置為允許,則會產生一個服務請求,程序需在事件處理子程序中處理指令執行完畢后的操作。

以下是使用服務請求法完成頻譜儀掃描結束后讀取最大標記值的.NET C#代碼。

mbSessionFsmr.Write("*SRE 32;*ESE 1"); //使能SRE的‘ESB’位和ESR的‘操作完成’位

mbSessionFsmr.ServiceRequest +=

new MessageBasedSessionEventHandler

(OnServiceRequest); //注冊事件處理程序

mbSessionFsmr.EnableEvent(MessageBasedSessionEventType.ServiceRequest,EventMechanism.Handler);

mbSessionFsmr.Write("CALC:MARK1:MAX");

mbSessionFsmr.Write("INIT;*OPC"); //開始測量,使用*OPC同步

MessageBasedSessionEventArgs rst = mbSessionFsmr.WaitOnEvent(MessageBasedSessionEventType.ServiceRequest,5000)

以下是服務請求的事件處理程序的.NET C#關鍵代碼:

private void OnServiceRequest(object sender, MessageBasedSessionEventArgs e)

{ MessageBasedSession session = sender as MessageBasedSession;

if (session != null)

{ try

{ session.DisableEvent(

MessageBasedSessionEventType.ServiceRequest, EventMechanism.Handler);

StatusByteFlags sb = session.ReadStatusByte();//執行串行輪詢獲取STB的值

if ((sb amp; StatusByteFlags.MessageAvailable) != 0)//判斷STB的MAV位(bit4)

{ ... }

else if ((sb amp; StatusByteFlags.EventStatusRegister) != 0) //判斷STB的ESB位(bit5)

{ if((Convert.ToByte(mbSessionSA.Query("*ESR?")) amp; 1) == 0) //判斷ESR bit0狀態

tmpResult = Double.Parse(session.Query("CALC:MARK:MAX;Y?"));

…}

...

}

由圖4看出,在*OPC命令發出后,在頻譜儀完成1次完整掃描后,設備發出服務請求,然后在異步事件處理程序進行處理。

圖4 使用“*OPC”和SRQ同步的I/O時序關系

表1 幾種基于狀態報告系統的測量同步方法比較

3 同步方法分析比較

以上闡述了基于SCPI狀態報告機制的幾種指令同步技術及應用,幾種方法有著不同的特點和適用場合,在實際應用時需要根據指令同步需求靈活使用。使用“*WAI”和“*OPC?”指令實現同步相對較簡單,使用場景也最多,因為絕大數操作都屬于短耗時指令。在“*OPC?”命令等待響應期間,將阻塞指令發送。而“*WAI”不影響與其他設備的通訊,因此在下一操作步驟依賴于上一測量步驟結果的場景下,不能使用“*WAI”命令同步。使用“*OPC”指令實現測量同步有兩種方法。一種是輪詢事件狀態寄存器(ESR)的值,另一種是使用服務請求處理程序。使用“*OPC”不會引發超時和阻塞程序,但是相對于“*WAI”和“*OPC”不夠簡單直接。幾種方法中最復雜也是最靈活的是使用服務請求機制,可以大大提高程序效率,以及實現多線程,其多用于一些長耗時指令場景。需注意的是服務請求事件并不包含事件來源,因此控制軟件需要在事件處理程序中判別事件來源和性質,再做相應處理。

表1簡要總結了本文中幾種基于SCPI和IEEE488.2狀態報告系統的測量同步方法比較。

4 結束語

從本文論述可以看出,基于IEEE488.2和SCPI狀態報告系統的自動測試測量同步技術比軟件延時法提供了更高的效率和更好的安全性,狀態報告機制也為自動測試系統的操作及和測量同步提供了多種不同的實現方法,開發者可以根據系統、設備及程序的實際狀況,靈活選用。本文僅就自動測試系統開發中遇到的實際問題,對基于狀態報告系統的測量同步技術做了些許研究與應用,以期拋磚引玉。

[1] 肖明清,胡雷剛,王 邑,等. 自動測試概論[M]. 北京:國防工業出版社,2012.

[2] 魯昌華,王光春,劉 春. GPIB自動測試系統的同步方法[J]. 電測與儀表,2000,37(10):8-11.

[3] 王增沛,江 樺. IEEE 488.1-2003標準的深入研究[J]. 電測與儀表,2005,42(4):48-50.

[4] 朱興邦,李 兵. IEEE 488與SCPI解釋[J]. 儀器儀表標準化與計量,2007,(1):15-17.

[5] Standard Commands for Programmable Instruments version 1999.0[S]. SCPI Consortium,1999:9-1-9-3

[6] Top Ten SCPI Programming Tips for Signal Generators[Z]. Rohde amp; Schwarz,2011:8-9.

[7] FSMR Measuring Receiver Operating Manual[Z]. Rohde amp; Schwarz,2009:5.17-5.18.

[8] Using Service Requests in your GPIB application. National Instruments[Z].2006:1.

[9] Keysight 33210A 10 MHz函數/任意波形發生器用戶指南[Z]. Keysight Technologies,2014:249-255.

ResearchandApplicationofMeasurementSynchronizationTechnologyBasedonStateReport

Qiu Bin,Xia Wei,Shen Xiaoqing,Yu Qinghua,Ding Fenghai

(China Satellite Maritime Trcaking and Control Department, Jiangyin 214431,China)

Auto-test system synchronization for improving reliability and efficiency of the test system is very important, the synchronization technology based on the state report system provides higher efficiency and better security than the software delay method.In order to solve the problem of instruction synchronization in automatic test system,this paper discusses the status report model, register and synchronization mechanism of IEEE488.2 and SCPI,studies the principle and method of automatic measurement system synchronization by using the SCPI status reporting mechanism ;Through theoretical analysis and examples,analyzes the timing relations and key technologies of several measurement instruction synchronization methods,summarizes and compares the differences and applications of several synchronization methods,solves the problem of automatic measurement system synchronization.

status reporting system; command synchronization; auto-test system

2017-01-24;

2017-03-24。

邱 斌(1976-),男,江蘇鹽城人,碩士研究生,主要從事無線電計量測試方向的研究。

1671-4598(2017)09-0102-04

10.16526/j.cnki.11-4762/tp.2017.09.027

TP29

A

猜你喜歡
指令測量設備
聽我指令:大催眠術
諧響應分析在設備減振中的應用
把握四個“三” 測量變簡單
滑動摩擦力的測量和計算
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
滑動摩擦力的測量與計算
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
測量
主站蜘蛛池模板: 综合成人国产| 亚洲色大成网站www国产| 四虎成人精品在永久免费| 色久综合在线| 尤物视频一区| 日韩国产黄色网站| 国产免费久久精品99re丫丫一| 亚洲AV无码乱码在线观看代蜜桃 | 91探花国产综合在线精品| 国产成人久久777777| 国产成人三级在线观看视频| 99视频在线精品免费观看6| 伊人久久综在合线亚洲91| 欧美色视频日本| 国产女人在线观看| 国产精品无码翘臀在线看纯欲| 国产精品人莉莉成在线播放| 日韩二区三区| 亚洲女同一区二区| 亚洲美女视频一区| 国产精品亚洲片在线va| 国产乱论视频| 亚洲视频二| 在线欧美一区| 亚洲一区二区三区在线视频| 99精品视频在线观看免费播放| 国产一区二区免费播放| 欧美三级自拍| 国产91丝袜| 成人午夜视频网站| 免费在线看黄网址| 男人天堂伊人网| 一级毛片在线播放| 国产精品.com| 无码一区18禁| 色天天综合久久久久综合片| 伊人色天堂| 沈阳少妇高潮在线| 国产精品香蕉在线观看不卡| 成人亚洲视频| 中文字幕1区2区| 国产精品视频系列专区| 茄子视频毛片免费观看| 欧美精品v欧洲精品| 黄色一级视频欧美| 亚洲无线一二三四区男男| 亚洲天堂精品视频| 欧美成人aⅴ| 中文字幕在线欧美| 天堂成人在线| 99视频在线精品免费观看6| 国产亚洲高清视频| 国产凹凸视频在线观看| AV熟女乱| 熟妇人妻无乱码中文字幕真矢织江| 精品无码一区二区三区电影| 国产乱人伦偷精品视频AAA| 91精品国产91久久久久久三级| 免费在线不卡视频| 亚洲AⅤ波多系列中文字幕| 国产精品无码翘臀在线看纯欲| 国产午夜精品鲁丝片| 不卡视频国产| 国产无吗一区二区三区在线欢| 丰满人妻久久中文字幕| 91亚洲视频下载| 国产精品区视频中文字幕| 欧美在线综合视频| 九色免费视频| 日本亚洲国产一区二区三区| 无码精品国产dvd在线观看9久 | 久久精品国产精品国产一区| 亚洲aⅴ天堂| 性做久久久久久久免费看| 国产成年无码AⅤ片在线| 久草中文网| 国产迷奸在线看| 国产天天射| 97se亚洲综合| 97视频精品全国在线观看| 老司机aⅴ在线精品导航| 精品视频一区二区三区在线播|