王 勤,黃云霞,任維政
(北京郵電大學 電子工程學院,北京 100876)
隨著網絡技術的普及和信息技術的發展,開放式、網絡化的遠程實驗系統應運而生。虛擬儀器作為遠程虛擬實驗系統的核心,已成為國內外測試和儀器制造界十分關注的研究方向[1]。20世紀80年代中期,美國國家儀器公司 NI(national instrument)首先提出了“軟件就是儀器”這一虛擬儀器概念。虛擬儀器是現代儀器技術與計算機技術相結合的產物,充分利用最新的計算機技術來實現傳統儀器的功能。將虛擬儀器應用在遠程教學和遠程實驗中,可節省實驗室有限資源[3],也為異地實驗數據處理和遠程學術交流提供了很好的平臺。
B/S架構是WEB興起后的一種網絡結構模式,它將系統功能實現的核心部分集中到服務器上,大大減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本。本文充分利用B/S架構的優勢,將RIA(富英特網應用程序)最成熟的技術之一Flex技術與FPGA技術相結合,應用在遠程虛擬示波器中,實現了虛擬示波器的界面與實時數據的交互方式,為將來虛擬實驗系統的建設提供了良好的支持。
如圖1所示,遠程虛擬示波器主要由客戶端、網絡服務器、示波器硬件平臺3部分構成。

圖1 遠程虛擬示波器系統架構圖Fig.1 Architecture diagram of remote virtual oscilloscope system
遠程虛擬示波器采用B/S架構,用戶通過網絡遠程登錄網絡服務器,在客戶端界面上進行遠程操作。用戶在客戶端界面上操作虛擬示波器發送動作指令,網絡服務器接受到指令后將其解析傳遞給示波器硬件平臺,硬件平臺實時采集實驗數據,并將其回傳給網絡服務器,在客戶端界面上呈現給用戶,供用戶查看實驗結果和測量相應參數。
(1)客戶端
依據B/S架構規范,客戶端不需安裝任何專門軟件,可直接運行于瀏覽器之上,能適用于龐大的用戶群體,且不需任何維護,因此它為用戶提供了一個方便快捷的交互接口,體現了B/S架構的優勢。用戶可直接通過客戶端遠程登錄實驗系統,查看、管理自身用戶信息及在虛擬示波器界面上操作[2]。
客戶端具備和真實示波器完全一致的展示界面,因而最大程度的降低了用戶學習使用虛擬示波器的難度。用戶在虛擬示波器界面的操作最終會被組包成相應的動作指令,通過Http請求的方式傳輸給網絡服務器。服務器在解析了指令所描述的內容之后也將返回的數據組包成客戶端能夠識別的格式,回傳給客戶端。客戶端在獲取這些指令之后通過界面向用戶呈現實驗測量的結果。
(2)網絡服務器
網絡服務器是數據的處理、存儲、分發中心。網絡服務器需要驗證客戶端的遠程登錄請求,接收客戶端的操作請求并進行處理,之后將相應的操作指令按照協議組包后通過Socket方式傳遞給示波器硬件平臺;與此同時,服務器還需要接收并解析硬件平臺的處理結果,最后將結果反饋給客戶端。整個過程數據都存儲在網絡服務器中,因此數據的一致性和時效性都得到了保證。
(3)示波器硬件平臺
示波器硬件平臺負責接收網絡服務器下發的動作指令,經過分析解析,控制相應的實驗電路模塊進行工作,并采集實驗中產生的實驗數據,最后將數據流以Soap方式回傳給網絡服務器。
如圖2所示,遠程虛擬示波器硬件平臺由ARM處理模塊、FPGA數據采集處理模塊、高速A/D轉換模塊構成。

圖2 示波器硬件平臺組成框圖Fig.2 Block diagram of oscilloscope hardware platform
(1)高速A/D轉換模塊
高速A/D轉換模塊采用AD9268芯片。該模塊負責將采集的多通道模擬信號轉換為高速并行的數字信號并傳遞給FPGA數據采集處理模塊,它是整個采樣系統的核心功能模塊之一,其采樣精度和速率決定了采樣系統的吞吐量和數據精確度。
(2)ARM 處理模塊
ARM處理模塊主要功能是接收網絡服務器下發的動作指令,并進行解析處理,通過調用總線驅動程序下達指令給FPGA數據采集處理模塊,并接收由該模塊回傳的數據,進而將數據進行封裝成數據包,然后通過TCP協議上傳給網絡服務器。
(3)FPGA數據采集處理模塊
FPGA數據采集處理模塊采用的是XC6SCLX45-2FGG484型號芯片。該模塊主要負責數據的采集和處理,由總線接口、時鐘生成模塊、多通道采集控制模塊、數據處理模塊、雙端口存儲器構成,它是整個示波器硬件平臺的控制核心[6]。
①總線接口。總線接口負責控制總線上的數據和控制信號的傳輸,及解讀ARM處理模塊傳來的ARM指令,并將啟動采樣信號和采樣通道選擇信號傳遞給多通道采集控制模塊,將時鐘頻率參數傳遞給時鐘生成模塊。
②時鐘生成模塊。時鐘生成模塊根據總線接口傳來的時鐘頻率參數,產生A/D采樣時序,進而控制多通道采集控制模塊采集數據的頻率。
③多通道采集控制模塊。多通道采集控制模塊負責采集由A/D上傳的數據,由啟動采樣信號、通道選擇信號及A/D采樣時序進行控制。只有接收到啟動采樣信號和通道選擇信號后,才會根據對應的A/D采樣時序進行數據采集,并將數據上傳給數據處理模塊。
④數據處理模塊。數據處理模塊接收采集到的數字信號,并對采樣信號進行流水線無阻塞的FFT變換,將時域信號轉換為頻域信號,進而存儲到雙端口存儲器中。
⑤雙端口存儲器。雙端口存儲器主要負責數據的存儲與轉發,采用RAM+FIFO的模式來實現。當數據量較大,內部RAM資源緊張時使用外部的DDR3來代替內部RAM來實現存儲。RAM+FIFO模式中,高度A/D轉換模塊經配置,在其輸入時鐘的下降沿,將數據存入RAM中,當數據存滿RAM時,總線接口將其讀出并控制傳輸到總線上。
數據采集、數據處理和存儲控制都可以并行進行,從而使系統有更好的數據處理能力。
如圖3所示,系統軟件部分主要包括客戶端、網絡服務器及底層軟件3部分,整個虛擬示波器的實現需要這3部分相互配合完成。

圖3 系統軟件設計流程圖Fig.3 Flow chart of system software design
(1)客戶端
客戶端主要為用戶提供一個便捷、交互的接口,使用戶能夠完成遠程測量操作。本系統采用Flex3.0平臺完成軟件部分的設計[4]。虛擬示波器前端界面設計以真實示波器的圖片為背景,利用Flex類庫提供的布局組件、控制組件、導航組件等設計各功能鍵和顯示屏兩個部分。使用布局組件,實現靜態頁面由底層到上層的布局層次。在各不同布局層次中放置所需的控件和圖表組件,調整布局及控件和圖表組件的位置,使其與原位置重合,實現靜態界面與真實示波器布局相同的效果。
用戶通過操作界面上的功能按鈕,產生服務請求,轉為相應的指令傳給網絡服務器。網絡服務器把接收到的指令翻譯成ARM指令,傳給ARM處理模塊,此時可通過控制數據采集模塊進行數據的采集。采集成功,回傳給客戶端顯示在界面上,否則向客戶端發出錯誤指令,請求用戶重新操作。
(2)網絡服務器
網絡服務器在整個系統中主要起一個指令的接收轉發及數據的存儲轉發功能,在J2EE平臺中采用SSH三層構架進行搭建,包括控制界面表現的數據交互層Struts2、業務邏輯控制層 Spring3.0、數據持久化層Hibernate。Struts負責MVC(model view controller)的分離并為整個系統提供基礎框架。在框架模型部分,利用Spring完成對業務層的支持,使用Hibernate框架對持久層提供支持。
(3)示波器底層軟件設計
示波器底層軟件設計,主要包括socket通信,Webservice程序以及多線程通信3部分。其中socket通信是用來接收網絡服務器指令的,通信的數據長度較短,數據內容較少,一般為幾十個字節。Webservice程序主要是用于向網絡服務器上傳實驗數據的,通信的數據內容較長,數據傳輸的頻率較高,因為很多實驗數據需要連續不斷地返回[5]。多線程通信包含了套接字與Webservice程序。在程序中設計一個命令隊列,并按照命令隊列中不同的指令創建不同的線程處理程序,并且在多線程設計中加入線程的控制機制,以達到充分利用系統資源并減少事件間的相互影響的效果。
為了驗證遠程虛擬示波器的功能及實用性,對實驗過程中涉及到的波形、失真度、頻率、誤差等進行了多次測試,并與實際的高精度的示波器進行了校準和比較,從而證實了該虛擬儀器的可靠性。
以波形的測試舉例說明:
(1)對虛擬示波器進行CH1,CH2兩個通道并行波形的顯示。
打開虛擬示波器的界面。點擊run/stop按鈕,發送請求數據的指令,可以從網絡服務器中取到用于顯示的雙通道數據,2 V/100 Hz的正弦波信號。并點擊Measure測量波形的電壓值與周期,其顯示波形和測量數據,如圖4所示。

圖4 雙通道波形顯示Fig.4 Dual-channel waveform display
(2)對波形進行相應的調整
調整后的波形如圖5所示。通過旋轉垂直方向、水平方向的位置調整旋鈕,對正在顯示的數據進行調整,實現位置的上下左右移動。并通過調整電壓、時間靈敏度旋鈕,使顯示的波形縱坐標方向拉長一倍,水平方向拉長5倍,并在此狀態下測量電壓及周期值。
(3)實驗測試結果

圖5 調整后的波形Fig.5 Waveform after adjustment
在測試雙通道2 V/10 ms的正弦波信號中,調整前:電壓顯示誤差為1%,電壓測量誤差為3%,時間顯示誤差為1%,周期測量誤差為5%;調整后:電壓顯示誤差為1%,電壓測量誤差為5%,時間顯示誤差為1%,周期測量誤差為1%;由測試結果可見,測試結果與實物示波器結果幾乎完全一致,誤差都在實驗允許的測量誤差范圍內,因此虛擬示波器完全可代替實物示波器。
遠程虛擬儀器作為遠程虛擬實驗系統的核心逐漸成為儀器技術新的主流,將其集成在Web工程中也成為儀器新的發展方向。在基于Labview的虛擬儀器作為主要實現方法的大背景下,本文提出了一種全新的虛擬儀器設計算法,即基于B/S架構的遠程虛擬示波器設計方法。實現了對實時實驗數據精確的顯示和測量,隨時隨地遠程訪問又滿足了遠程實驗便利快捷的要求,本成果已在北京郵電大學建成應用,使得虛擬示波器有很好的發展前景。
[1] Guimaraes E G,Cardozo E,Moraes D H,et al.Design and implementation issues for modern remote laboratories[J].Learning Technologies,IEEE Transactions on,2011,4(2):149-161.
[2] Swamy N,Kuljaca O,Lewis F L.Internet-based educational control systems lab using NetMeeting[J].Education,IEEE Transactions on,2002,45(2):145-151.
[3] 曹明讓.淺談專業實驗室建設[J].高等工程教育,2003(6):51-53.
[4] 王麗.基于Flex技術的虛擬演示實驗系統[J].實驗室研究與探索,2011(2):64-67.
[5] 孫美香.基于 Internet的遠程虛擬儀器[J].電子技術,2000(12):39-41.
[6]Manavi F,Shayan Y R.Implementation of OFDM modem for the physical layer of IEEE 802.11 a standard based on Xilinx Virtex-II FPGA[C]//Vehicular Technology Conference,2004.VTC 2004-Spring.2004 IEEE 59th.IEEE,2004,3:1768-1772. ■