代 成,葉 焱,劉太君,鄭靜靜
(寧波大學(xué)信息工程學(xué)院,浙江寧波315211)
電子技術(shù)的快速發(fā)展,推動(dòng)了相關(guān)測量技術(shù)的發(fā)展,現(xiàn)代儀器逐步走向智能化。程控儀器的逐步普及給實(shí)驗(yàn)室研究工作方便,推動(dòng)了科學(xué)技術(shù)的發(fā)展。在通信領(lǐng)域的發(fā)展過程中,為了適應(yīng)通信發(fā)展的要求,對通信信號測量要求越來越高,測量的對象以及測量的要求也越來越復(fù)雜,精度要求也越來越高。因此單個(gè)實(shí)驗(yàn)儀器的測量已經(jīng)不能滿足通信發(fā)展的需要,實(shí)驗(yàn)系統(tǒng)也逐步從單個(gè)的測試儀器逐步演變成為了由多臺(tái)實(shí)驗(yàn)儀器聯(lián)合起來的綜合型的測試平臺(tái)。多個(gè)實(shí)驗(yàn)儀器的聯(lián)合使得測試平臺(tái)在網(wǎng)絡(luò)化控制中由于平臺(tái)操作復(fù)雜而引起諸多操作上的不便[1-3]。
目前對于實(shí)驗(yàn)室儀器平臺(tái)的控制主要可以分為3種方式:①手動(dòng)控制,常用于基礎(chǔ)實(shí)驗(yàn)階段,目的是讓學(xué)生去實(shí)地體驗(yàn)實(shí)驗(yàn)室的儀器,了解基礎(chǔ)實(shí)驗(yàn)室儀器的使用,常用于教學(xué)實(shí)驗(yàn)平臺(tái)上;②遠(yuǎn)程手動(dòng)控制,遠(yuǎn)程手動(dòng)控制的專業(yè)的開發(fā)平臺(tái)是Lab-View,主要是實(shí)現(xiàn)高端儀器資源的網(wǎng)絡(luò)化共享上;③遠(yuǎn)程網(wǎng)絡(luò)控制,遠(yuǎn)程網(wǎng)絡(luò)控制平臺(tái)是在資源共享的基礎(chǔ)上實(shí)現(xiàn)簡單化操作[4,5]。
在實(shí)際的研究和工業(yè)應(yīng)用過程中,由于系統(tǒng)平臺(tái)操作比較復(fù)雜,科研人員由于不熟悉而導(dǎo)致使用效率低下。為了更好地實(shí)現(xiàn)資源有效的共享,給出了一種網(wǎng)絡(luò)遠(yuǎn)程自動(dòng)測試的方案,簡化了實(shí)驗(yàn)測試流程,提高了測試的效率。
數(shù)字預(yù)失真平臺(tái)是一個(gè)通信信號測試系統(tǒng)平臺(tái),主要包含了矢量信號發(fā)生器、射頻功率放大器、定向耦合器、負(fù)載、可變衰減器和頻譜分析儀等組成的一系列的測試儀器。在儀器發(fā)展過程中,計(jì)算機(jī)技術(shù)的引進(jìn)使得智能儀器擁有了更加先進(jìn)的連通性,目前常見的儀器有2種外部接口:一種采用的是GPIB接口,另一種是LAN接口。GPIB接口的單一性不便于多人操作,同時(shí)LAN接口的組網(wǎng)成本比GPIB的組網(wǎng)成本要低,而無線網(wǎng)絡(luò)的普及和便利使采用LAN接口一樣方便。因此在開發(fā)采用LAN口進(jìn)行通信[6]。數(shù)字預(yù)失真的基本結(jié)構(gòu)圖如圖1所示。
圖1 數(shù)字預(yù)失真的基本結(jié)構(gòu)圖
矢量信號發(fā)生器E4438C和頻譜分析儀E448A都是安捷倫公司開發(fā)的高精度的信號產(chǎn)生和測試儀器,具備SCPI指令編程控制功能,為遠(yuǎn)程自動(dòng)控制實(shí)驗(yàn)儀器是奠定了基礎(chǔ)。
根據(jù)系統(tǒng)設(shè)置的需求,整個(gè)的遠(yuǎn)程控制系統(tǒng)主要可以分為3個(gè)部分,分別是客戶端部分、數(shù)據(jù)處理部分和數(shù)據(jù)存儲(chǔ)部分。
①客戶端控制部分:是人機(jī)交換的界面,主要負(fù)責(zé)用戶信息的采集,實(shí)驗(yàn)參數(shù)的設(shè)置操作,視頻信息設(shè)置操作以及數(shù)據(jù)信息的采集功能模塊;
②數(shù)據(jù)處理部分:數(shù)據(jù)處理部分是整個(gè)系統(tǒng)的信息的中心部分,數(shù)據(jù)處理部分將客戶端的參數(shù)經(jīng)過處理之后轉(zhuǎn)換為底層可以識(shí)別的語言,通過接口程序傳遞到底層實(shí)驗(yàn)儀器從而實(shí)現(xiàn)對底層硬件的控制,實(shí)現(xiàn)網(wǎng)絡(luò)和底層硬件之間的通信;
③數(shù)據(jù)存儲(chǔ)部分:在實(shí)驗(yàn)室資源共享的條件下,實(shí)驗(yàn)過程中大量實(shí)驗(yàn)結(jié)果的處理并不能當(dāng)場進(jìn)行分析。通過私有云存儲(chǔ)平臺(tái),可以通過網(wǎng)絡(luò)將數(shù)據(jù)信息和用戶信息都存儲(chǔ)到Mongodb構(gòu)建的私有云庫下,等待下一步的數(shù)據(jù)分析,整個(gè)系統(tǒng)的架構(gòu)如圖2所示。
圖2 遠(yuǎn)程自動(dòng)測試平臺(tái)的系統(tǒng)架構(gòu)圖
VISA(Virtual Instrument Software Architecture)是由美國國家儀器公司開發(fā)的用來與各種儀器總線進(jìn)行通信的高級編程接口。在實(shí)際的開發(fā)過程中VISA庫文件是鏈接儀器和控制端計(jì)算機(jī)的一個(gè)中間件,由于不受平臺(tái)、總線和環(huán)境的控制,編程人員可以很容易的實(shí)現(xiàn)跨平臺(tái)開發(fā),而SCPI(Standard Commands for Programmable Instruments)指令是一套建立在IEEE基礎(chǔ)上,遵循多重標(biāo)準(zhǔn)的標(biāo)準(zhǔn)化儀器編程語言。因?yàn)镾CPI指令只是定義了命令格式而沒有具體的通信方式,所以在實(shí)際的開發(fā)中支持PXI、RS232、USB、GPIB和TCP/IP等多重的底層通信協(xié)議,將VISA和SCPI結(jié)合起來進(jìn)行開發(fā)可以大大節(jié)省開發(fā)者的時(shí)間和精力。
在開發(fā)中這里采用的是10.01版本,在實(shí)際的架構(gòu)中依托Visual Studio 2008開發(fā)平臺(tái)開發(fā)的程序通過IOLibrary和儀器上的LAN口鏈接實(shí)現(xiàn)軟件和硬件實(shí)驗(yàn)儀器之間的通信。IOLibrarySuite是一個(gè)集成的庫的套件,其中包含了4個(gè)IO庫文件,在整個(gè)的通信過程中起到一個(gè)連接作用,很容易將開發(fā)端的計(jì)算機(jī)和實(shí)驗(yàn)儀器的通信鏈路連接起來。其中VISA和VISACOM的為后臺(tái)控制端的軟件的開發(fā)奠定了基礎(chǔ)[7-9]。
在后臺(tái)和硬件儀器組成的網(wǎng)絡(luò)架構(gòu)上,采用的通過路由器組成一個(gè)簡單的局域網(wǎng),通過簡單的幾根網(wǎng)線將矢量信號發(fā)生器和頻譜分析儀組成一個(gè)簡單的局域網(wǎng),配置他們的IP分別為10.10.10.9和10.10.10.10。后臺(tái)的控制計(jì)算機(jī)通過安裝IOLibrarySuite可以實(shí)現(xiàn)和底層儀器之間的通信。后臺(tái)控制端的網(wǎng)絡(luò)架構(gòu)如圖3所示。
在底層通信程序的開發(fā)過程中VISA庫函數(shù)主要用到的就是以下的幾個(gè)庫函數(shù),實(shí)際的儀器程控開發(fā)過程主要結(jié)構(gòu)可以分為3個(gè)步驟來實(shí)現(xiàn):
viOpenDefaultRM(sesn);
圖3 后臺(tái)儀器儀表控制結(jié)構(gòu)圖
viOpen(sesn,rsrcName,accessMode,timeout,vi);
第一步,用上述的函數(shù)來初始化資源管理器并且打開實(shí)驗(yàn)儀器建立通信;
第二步,通過函數(shù)viPrinf(ViSession vi。ViString writeFmt,)調(diào)用SCPI指令來有效的控制硬件儀器的操作;
第三步,當(dāng)相應(yīng)的操作完成以后,就通過vi-Close(ViObject)函數(shù)關(guān)閉通信,同時(shí)關(guān)閉濟(jì)源管理器。
為了實(shí)現(xiàn)不同底層語言和服務(wù)器端的通信,采用了JNA技術(shù)實(shí)現(xiàn)底層C++語言和后臺(tái)的JAVA語言的通信。
在Vistudio2008開發(fā)平臺(tái)進(jìn)行開發(fā)的時(shí)候,首先將底層的C++函數(shù)進(jìn)行封裝成為功能函數(shù)生成DLL(Dynamic-Link Library),根據(jù)控制模塊的需要設(shè)置相應(yīng)的參數(shù),將每個(gè)模塊所需的功能函數(shù)做成一個(gè)DLL文件。其次,為了能讓后臺(tái)的JAVA程序能夠訪問DLL里的功能函數(shù),需要在功能函數(shù)前面加上標(biāo)示符_declspec(dllexport),在開發(fā)工程的頭文件添加標(biāo)示符和函數(shù)頭,編譯之后產(chǎn)生后綴名的.dll的編譯文件。
系統(tǒng)的服務(wù)器端是整個(gè)遠(yuǎn)程控制系統(tǒng)的核心部分,是連接客戶端和底層硬件的一個(gè)中心橋梁。整個(gè)的后臺(tái)服務(wù)器的架構(gòu)可以描述為應(yīng)用服務(wù)器、流媒體服務(wù)器、數(shù)據(jù)庫服務(wù)器以及WEB服務(wù)器。整個(gè)的系統(tǒng)架構(gòu)如圖4所示。
圖4 服務(wù)器端架構(gòu)圖
①應(yīng)用服務(wù)器模塊采用JAVA語言開發(fā)的功能測試函數(shù),每個(gè)模塊對應(yīng)著底層的C++編寫的控制儀器的DLL,一方面實(shí)現(xiàn)了底層的通信,另一方面也是數(shù)據(jù)處理的中心,將實(shí)驗(yàn)得出的數(shù)據(jù)結(jié)果通過API接口存儲(chǔ)到數(shù)據(jù)庫中,采用了JNA技術(shù)有助于實(shí)現(xiàn)網(wǎng)絡(luò)化控制底層的硬件平臺(tái),同時(shí)提升了編譯效率;
②流媒體服務(wù)器模塊將實(shí)時(shí)記載著本地實(shí)驗(yàn)的情景,并將攝像頭拍攝的文件流化進(jìn)行發(fā)布,保證了實(shí)驗(yàn)觀看的實(shí)時(shí)性,同時(shí)流媒體服務(wù)器的文件將錄取的視頻文件存儲(chǔ)到數(shù)據(jù)庫中。便于后期處理實(shí)驗(yàn)結(jié)果的時(shí)候進(jìn)行復(fù)查;
③WEB應(yīng)用服務(wù)器中的客戶端是人機(jī)交互的一個(gè)接口,遠(yuǎn)程實(shí)驗(yàn)者進(jìn)行訪問的時(shí)候,功能界面就可以直觀地展現(xiàn)在用戶面前,用戶可以在不了解使用原理的情況下,只需要在按照要求設(shè)置相應(yīng)的參數(shù)就可以進(jìn)行實(shí)驗(yàn),采用flex開發(fā)平臺(tái)能夠?qū)⑿Ч鎸?shí)的展示;
④數(shù)據(jù)庫服務(wù)器是數(shù)據(jù)存儲(chǔ)中心,在實(shí)驗(yàn)過程中,由于出現(xiàn)多種不同的類型的數(shù)據(jù)包括視頻文件,文檔文件等不規(guī)則的文件,與此同時(shí)為了便于用戶的管理,采用NoSQL數(shù)據(jù)庫MongoDB構(gòu)建了私有云存儲(chǔ)架構(gòu)[10,11],如圖5所示。
圖5 MongoDB的Replica Sets+Sharding架構(gòu)
用戶在進(jìn)行訪問的過程中,首先會(huì)將注冊信息存儲(chǔ)在私有云庫的用戶管理數(shù)據(jù)庫中,并為用戶自動(dòng)創(chuàng)建一個(gè)私有的數(shù)據(jù)庫供用戶使用,MongoDB私有庫將非結(jié)構(gòu)化的數(shù)據(jù)很方便地存儲(chǔ)在數(shù)據(jù)中心,并隨時(shí)隨地進(jìn)行訪問。
遠(yuǎn)程自動(dòng)控制系統(tǒng)采用了基于WEB的應(yīng)用開發(fā),在實(shí)際的工程中,通信過程主要分為3步進(jìn)行:
①用戶在進(jìn)入實(shí)驗(yàn)界面之前,用戶都必須先進(jìn)行注冊,注冊之后,后臺(tái)會(huì)直接在云存儲(chǔ)平臺(tái)上給用戶創(chuàng)建一個(gè)私有庫,用來存儲(chǔ)信息;
②用戶在人機(jī)交互界面上設(shè)置相對應(yīng)的參數(shù),并TXT信號文件通過網(wǎng)絡(luò)上傳到底層的實(shí)驗(yàn)儀器,并通過按鈕進(jìn)行相應(yīng)的操作;
③可以通過視頻模塊,實(shí)時(shí)了解視頻信息。了解信號的特點(diǎn)并進(jìn)行調(diào)整,并通過按鈕實(shí)時(shí)采集相應(yīng)的信息和截圖保存在后臺(tái)的私有庫中;
④采集的信息存儲(chǔ)之后,能在專門的信息欄,用戶可以隨時(shí)登陸網(wǎng)站,通過在自己的私有庫中進(jìn)行數(shù)據(jù)信息的調(diào)取。
通過上述的操作,用戶可以結(jié)合開發(fā)的人家交互界面,非常清楚的獲取資料信息,主要開發(fā)了數(shù)據(jù)采集模塊,視頻模塊,人機(jī)交互模塊,數(shù)據(jù)下載模塊,每個(gè)人進(jìn)入自己的賬號之后,都能下載自己數(shù)據(jù)庫的信息。
基于WEB的數(shù)字預(yù)失真測試平臺(tái)遠(yuǎn)程自動(dòng)測試系統(tǒng)的研究及實(shí)現(xiàn),能夠?qū)崿F(xiàn)聯(lián)合測試系統(tǒng)遠(yuǎn)程操作的簡單化,在現(xiàn)實(shí)應(yīng)用中具有重要的意義。本文針對遠(yuǎn)程自動(dòng)測試技術(shù)提出了一種新的方案,同時(shí)對于數(shù)據(jù)部分我們結(jié)合著最新的云存儲(chǔ)技術(shù),對每個(gè)用戶都能建立一個(gè)自己的私有庫進(jìn)行處理,能夠很好的將數(shù)據(jù)進(jìn)行管理。本文采取的設(shè)計(jì)模式大大簡化了后期的學(xué)習(xí)時(shí)間,同時(shí)增強(qiáng)了數(shù)據(jù)的處理能力。
[1]HURLEY W G,LEE C K.Development,Implementation,and Assessment of a Web-Based Power Electronics Laboratory[J].IEEE Transactions on Education,2005,48(4):567-573.
[2]RESTIVO M T,MENDES J.A Remote Laboratory in Engineering Measurement[J].IEEE Transactions on Industrial and Electronics,2009,56(12):4836-4843.
[3]田雪詠,常天慶,史少華.基于多Agent的自動(dòng)測試系統(tǒng)測試儀器模型設(shè)計(jì)[J].自動(dòng)化與儀表,2011(4):14-16.
[4]陳小紅.虛擬實(shí)驗(yàn)室的研究現(xiàn)狀及其發(fā)展趨勢[J].中國現(xiàn)代教育裝備,2010(17):107-109.
[5]CHANDRA J A P,VENUGOPAL C R.Novel Design Solutions for Remote Access,Acquire and Control of Laboratory Experiments on DC Machines[J].IEEE Transactions on Instrumentation and measurement,2012,61(2):349-357.
[6]HE Zhi-yong,GE Jian-hua,GENG Shu-jian,WANG Gang.An Improved Look-Up Table Predistortion Technique for HPA With Memory Effects in OFDM Systems[J].IEEE Transactions on Broadcasting 2005:1-5.
[7]田耕,阮林波,渠紅光.基于VISA技術(shù)的自動(dòng)測試軟件研制[J].核電子學(xué)與探測技術(shù),2009,29(6):1397-1400.
[8]HUANG Jing,QIAO Lei-ling,ZHANG Han-bo.Research of Automatic Digital Multimeter Interface Technology based on UART[C]// 2012 Third International Conference on Networking and Distributed Computing,ZheJiang,2012:108-110.
[9]LI Jian-min,ZHENG Bin,WEN Hou.Design of Supervision Software for Programmable Power Supply Based on Virtual Instrument Development Environment[C]//2009 World Congress on Computer Science and Information Engineering USA,2009:301-305.
[10]GU Gen-qiang,LI Qing-chun,WEN Xiao-long.An Overview of Newly Open-Source Cloud Storage Platforms[C]//2012 IEEE International Conference on Granular Computing,ZheJiang,2012:142-147.
[11]LIU Yi-meng,WANG Yi-zhi,JIN Yi.Research on the Improvement of MongoDB Auto-Sharding in cloud environment[C]//2012 7th International Conference on Computer Science and Education,Australia,2012:851-854.