王必成 胡劍凌 周敏 孫一帆 游善紅 曹洪龍



摘 ?要: 虛擬實驗室利用遠程真實資源或虛擬設備資源構建實驗系統,并通過實驗教學資源的集中網絡存儲及數據庫的統一管理來改善資源獲取與信息交流方式。文中采用JSP Web,Android應用開發,MySQL數據庫等技術設計一個基于云的開放式信號處理虛擬實驗系統,實現對現有實驗室資源的網絡化與虛擬化。該系統采用TCP協議與自定義應用層協議構建內部網絡,通過云端服務器管理虛擬實驗,使用應用網關監控實驗板卡,并通過手機APP,Web瀏覽器為用戶提供交互界面,用戶接入網絡即可進行實驗操作。
關鍵詞: 虛擬實驗; 信號處理; 實驗教學; 網絡化; 虛擬化; 實驗系統
中圖分類號: TN911.72?34; G434 ? ? ? ? ? ? ? ? ? 文獻標識碼: A ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2019)11?0113?04
Abstract: The remote real resources or virtual device resources can be used to build the virtual experiment system of virtual laboratories, and the centralized network storage of experimental teaching resources and unified management of database are used to improve the resource acquisition and information exchange mode. The JSP Web technology, Android application development technology, MySQL database technology are used to design the cloud?based open signal processing virtual experiment system, which can realize the networking and virtualization of existing laboratory resources. The system uses TCP protocol and user?defined application layer protocol to build the internal network, manages the virtual experiments with the cloud server, adopts the application gateway to monitor the experimental boards, and provides a friendly interactive interface via App or Web browser. Users can perform experiment operation while accessing the network.
Keywords: virtual experiment; signal processing; experiment teaching; networking; virtualization; experiment system
0 ?引 ?言
虛擬實驗的概念最早可見于1989年美國弗吉尼亞大學William Wolf教授提出的虛擬實驗室(Virtual ?Laboratory)[1?3]。它有如下三個特點:以網絡為基礎,可以在邏輯上進行限制,但沒有物理空間的限制;能夠在計算機支持下聯合多人完成多件事項;可以充分地實現資源共享。
實驗教學是虛擬實驗一個重要的應用領域,為貫徹《教育信息化十年發展規劃(2011—2020年)》,國內眾多高校將虛擬技術應用到實驗教學當中[4?5]。包括北京大學的地球科學、考古專業,清華大學的自動化系統專業,以及上海交通大學醫學虛擬仿真實驗教學中心等,教育部近三年已批準了200項國家級虛擬仿真實驗教學中心。虛擬實驗室給實驗教學領域帶來了許多益處:提升教學質量,將理論結果與實際結果相比較,從而驗證理論;提升開放性,彌補課堂教學的不足;提高現有資源利用率,減少實驗儀器損壞率;實現網絡化管理與遠程實驗教學[6?7]。
信號處理虛擬實驗系統是針對電子信息類信號與系統、數字電路等課程實驗教學工作而設計的,可支持用戶隨時隨地登錄系統進行網絡遠程虛擬實驗,并提供實驗內容的說明及實驗結果的考核[8?10]。該系統具備以下優勢:
1) 低受限:支持地理位置分散的用戶,除了要考慮時區,不具有時空上的限制;
2) 可存儲:操作步驟和實驗數據被云端服務器記錄在數據庫中;
3) 多訪問:支持數百名用戶同時請求實驗,由實驗管理系統進行監視;
4) 高安全:實際動手實驗可能具有潛在人身安全危險,而虛擬實驗系統可充分保證人身安全;
5) 低維護:減少高成本、高耗損設備的維護費用。
本文設計一個用于信號處理教學的虛擬實驗系統,可實現信號發生、數據采集等實驗內容。該系統由云端服務器、數據庫、網關和實驗板卡組成,實現對實驗板卡、實驗操作和數據的跟蹤與管理,不僅支持瀏覽器訪問,還支持移動終端進行實驗。
1 ?信號處理虛擬實驗系統的構建
基于云的信號處理虛擬實驗系統由Android APP、Web瀏覽器、實驗系統數據庫、云端服務器、虛擬實驗應用網關以及信號處理實驗板卡等部分組成,其系統架構如圖1所示。

系統各組成部分的具體功能如下:
1) 終端實現了APP與Web瀏覽器的實驗界面設計,支持用戶自由選擇便捷的實驗途徑。
2) 架設于云端的虛擬實驗管理系統連接著數據庫,向上接收用戶實驗操作指令,向下管理各應用網關對應的虛擬教室及實驗板卡,將實驗信息記錄在數據庫中。
3) 應用網關管理與之連接的實驗板卡,負責與板卡的直接數據交互,監測其狀態并將結果上傳到云端。
4) 底層實驗板卡針對信號處理實驗課程設計,采用LWIP協議與應用網關通信,解析實驗參數、執行實驗操作、采集實驗數據并上傳至網關。
2 ?系統各部分的分析與設計
2.1 ?用戶端設計
用戶端以提供友好實驗界面為主要目標,為用戶提供登錄、注冊、注銷、實驗類型選擇、實驗執行、結果繪圖等功能。
虛擬實驗系統前端Web瀏覽器和Android APP分別采用JSP Web技術和標準Java接口(Java.net.*)實現界面設計。APP采用TCP/IP協議與系統進行通信,開發時結合Thread和Handler方法優化多線程技術,減少響應延遲。
用戶端主要工作流程如圖2所示。用戶登錄系統后獲取來自云端服務器的訪問碼,從而具有選擇系統內實驗板卡的權限。確認實驗類型后,由云端服務器檢索庫中空閑板卡并自動分配給用戶,板卡匹配成功后進入實驗界面,用戶指令最終會通過應用網關傳遞給信號處理實驗板卡,由現有的實驗板卡執行實驗操作并返回數據。為實現數據的可視化,創建視圖模型來實時繪制實驗波形。

2.2 ?基于云的虛擬實驗管理系統設計
實驗管理系統(LIMS)是虛擬實驗系統的中樞部分。為了同時支持Web和APP的實驗操作,采用混合架構設計,總體框架如圖3所示。

LIMS包含系統數據庫與云端服務器兩部分,采用Java+MySQL技術,以Eclipse for JEE為平臺開發服務器應用程序,并使用Navicat輔助工具設計基于MySQL5.7的數據庫管理系統。
云端服務器采用繼承Thread類的阻塞式多線程Socket通信,添加三級線程池管理服務線程,實現數據庫運行,并根據系統自定義的應用層通信協議解析與處理指令。它具有以下特征:
1) 采用多線程技術。云端服務器監測到Socket連接時,從池中取出線程為該用戶服務,并將通信連接的Socket類通過參數傳遞到子線程中,使服務器可以為大量用戶或應用網關服務,而不會出現數據覆蓋問題。
2) 采用池化線程管理技術。用戶端與服務器通常只構建短連接,每次執行完實驗操作,服務線程就會被釋放。線程池使JVM節省了線程創建、撤銷造成的開銷,同時限制了最大線程數,保證了在線用戶的響應速度。
3) 各線程I/O阻塞式通信。I/O阻塞使用戶服務線程處于指令等待狀態,此時該線程將釋放CPU的占用,從而使云端服務器合理地為各用戶分配CPU資源,避免過長時間的響應等待。
2.3 ?虛擬實驗應用網關設計
基于C#設計的虛擬實驗應用網關,將不同網段里的實驗板卡與用戶端連接起來,相當于連接局域網和外網的轉接口,可以實時將接收的實驗板卡數據和用戶數據進行傳輸轉發,構建外網和內網中指定板卡通信的鏈路。
在本系統中,網關既要負責與板卡的直接數據交互,還與服務器和用戶終端進行通信,為此,它配備了雙網卡。網關的工作界面如圖4所示,其內部執行的功能如下:監聽板卡在線狀態并上傳至服務器;處理用戶端實驗請求,下傳實驗參數并上傳實驗數據。

2.4 ?信號處理實驗板卡設計
為滿足信號處理實驗需求,并支持虛擬實驗系統的網絡架構,本文設計了專用的實驗板卡,其結構見圖5。

板卡以STM32F107VCT6為核心,集成了2路AD/DA、以太網PHY控制器DP83848CVV、網絡接口、USB口及JTAG接口。采用LWIP協議與應用網關通信,并使用內置的高精度DAC產生指定類型、頻率、幅度的信號,或利用ADC以指定頻率采集信號,并定時向應用網關發送心跳包。
3 ?虛擬實驗系統的實現與成果
完善的模塊間數據交互機制是魯棒系統的基本要素。為此,本文在服務器、網關和板卡間建立了心跳機制,使管理系統能實時監測虛擬教室和板卡的狀態。
通過瀏覽器登錄系統,用戶可以對操作記錄、實驗板卡等對象進行訪問和管理,如圖6所示。

為了提高CPU利用率,服務器將連接但沒有傳輸數據的通信線程放置在I/O阻塞狀態,以等待客戶端發送數據。每當服務器收到用戶使用板卡的申請,就先將請求存放在數據庫中,當收到相應的應用網關發送來的心跳包時,將請求以反饋的形式傳遞給應用網關。這樣的等待延遲主要取決于心跳包的周期,將周期設置為秒級,對于實驗用戶來說是可接受的。
用戶端發起實驗后,打開APP觸發與服務器的連接,并進入用戶注冊/登錄界面,如圖7a)所示。登錄成功后,服務器將開始跟蹤用戶訪問記錄,同時為其生成一個唯一的訪問碼。用戶獲取訪問碼后,才可進入實驗選擇界面,并將實驗請求發送給服務器,如圖7b)所示。服務器會根據用戶請求分配可用的虛擬教室與信號處理板卡,并將板卡使用申請添加到數據庫緩存表中,等待應用網關審核,如圖7c)所示。下一次心跳包到來時,云端服務器以反饋形式將待處理事件告知應用網關。網關與板卡協商后,給予指定用戶使用板卡的權限,然后服務器將所選網關IP地址及板卡號發送給用戶,APP即可與應用網關建立連接,如圖7所示,并進入實驗界面。用戶將設定的實驗內容和參數發送到應用網關,由網關傳遞給板卡。板卡執行實驗操作后,采集實驗數據并最終上傳給APP并采用圖形方式顯示在界面上,如圖7d)所示。

用戶執行完實驗任務后,自動通知應用網關釋放板卡,同時云端服務器將釋放相應線程。如果用戶在實驗過程中強行退出,服務器超過等待時間也將跳出阻塞狀態釋放服務線程并通知應用網關釋放綁定的板卡。
使用Intel[?] i7?4510U @2.00 GHz處理器、4.00 GB內存的計算機作為服務器,對該虛擬實驗系統進行性能測試。結果表明,該系統可支持150~200個并發用戶,響應延遲低于1 s,且無丟包現象。考慮到現實中并非所有在線用戶并發數據,可支持的在線用戶數可達到200~500人。為避免丟包現象,系統訪問上限為500人。
4 ?結 ?語
本文設計了一個信號處理虛擬實驗系統,介紹了系統的結構框架、各模塊的設計方案,以及一個典型的信號處理實驗流程。測試結果表明,該系統可以為數百名用戶同時提供虛擬實驗服務,是一個具備低受限、可存儲、多訪問、高安全和低維護等優勢的實驗系統。
目前,該系統支持信號發生和信號采集實驗,信號處理實驗板卡設計時留有擴展接口,未來有望用于更多數字電路等課程的實驗。
注:本文通訊作者為胡劍凌。
參考文獻
[1] HERADIO R, TORRE L D L, GALAN D, et al. Virtual and remote labs in education: a bibliometric analysis [J]. Compu?ters & education, 2016, 98(C): 14?38.
[2] WANG C P, KOVED L, DUKACH S. Design for interactive performance in a virtual laboratory [J]. ACM SIGGRAPH computer graphics, 1990, 24(2): 1?5.
[3] SANCHEZ J, MORILLA F, DORMIDO S, et al. Virtual and remote control labs using Java: a qualitative approach [J]. IEEE control systems, 2002, 22(2): 8?20.
[4] 劉亞豐,蘇莉,吳元喜,等.虛擬仿真教學資源建設原則與標準[J].實驗技術與管理,2017,34(5):8?10.
LIU Yafeng, SU Li, WU Yuanxi, et al. Principles and standards of constructing virtual simulation teaching resources [J]. Experimental technology & management, 2017, 34(5): 8?10.
[5] KUGURAKOVA V, ABRAMOV V, ABRAMSKIY M, et al. Visual editor of scenarios for virtual laboratories [C]// 2017 International Conference on Developments in Systems Enginee?ring. [S.l.]: IEEE, 2017: 242?247.
[6] HERADIO R, TORRE L D L, DORMIDO S. Virtual and remote labs in control education: a survey [J]. Annual reviews in control, 2016, 42: 1?10.
[7] 領兄.基于物聯網的圖形化虛擬仿真實驗平臺設計[J].現代電子技術,2017,40(1):32?35.
LING Xiong. Design of graphical virtual simulation experiment platform based on Internet of Things [J]. Modern electronics technique, 2017, 40(1): 32?35.
[8] LI Z. An interactive virtual experiment platform for digital logic education [C]// 2016 International Conference on Digital Home. Guangzhou: IEEE, 2016: 238?242.
[9] AHMAD A, NORDIN M K, SAAID M F, et al. Remote control temperature chamber for virtual laboratory [C]// 2017 IEEE International Conference on Engineering Education. [S.l.]: IEEE, 2017: 206?211.
[10] VAUGHAN A S, LEWIN P L, MACDONALD A M. Virtual experiments: providing students with a unique online laboratory experience [C]// 2016 European Workshop on Microelectronics Education. Southampton: IEEE, 2016: 1?4.