摘要:為了提高大型實(shí)驗(yàn)設(shè)備的利用率,,在此提出利用Matlab,、數(shù)據(jù)庫(kù)、FPGA和服務(wù)器等軟硬件設(shè)施,,實(shí)現(xiàn)遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)數(shù)據(jù)采集的方案,。該方案中設(shè)計(jì)了基于FPGA的數(shù)據(jù)采集箱,利用數(shù)據(jù)采集箱將大型實(shí)驗(yàn)設(shè)備和基于J2EE平臺(tái)的服務(wù)器相連接,。服務(wù)器將采集到的實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)軟件中,,當(dāng)用戶需要時(shí),可通過(guò)網(wǎng)絡(luò)訪問(wèn)服務(wù)器獲取數(shù)據(jù),。在客戶機(jī)端,,用戶還可以采用Matlab還原實(shí)驗(yàn)數(shù)據(jù),畫出實(shí)驗(yàn)數(shù)據(jù)曲線,。
關(guān)鍵詞:遠(yuǎn)程數(shù)據(jù)采集,;FPGA;J2EE,;Matlab
在科學(xué)技術(shù)發(fā)展過(guò)程中,,資源信息的共享對(duì)科學(xué)研究水平的提高具有重要的意義。目前,,在一些企業(yè),、高等院校和科研機(jī)構(gòu)中,由于管理體制與設(shè)備使用機(jī)制的局限性,,大型實(shí)驗(yàn)儀器的使用率極為有限,,造成了大量的資源浪費(fèi)現(xiàn)象。如果針對(duì)大型實(shí)驗(yàn)儀器使用遠(yuǎn)程控制實(shí)驗(yàn),,一方面用戶可以在任何時(shí)間,,任何地點(diǎn)通過(guò)網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn),有利于用戶合理地安排自己的學(xué)習(xí),、工作計(jì)劃,,而不再受時(shí)間和地點(diǎn)的約束,;另一方面則可以提高實(shí)驗(yàn)室資源的利用率。因此,,構(gòu)建大型實(shí)驗(yàn)儀器共享平臺(tái)是符合科學(xué)技術(shù)發(fā)展要求的,。
1 遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)總體方案設(shè)計(jì)
1.1 系統(tǒng)的功能及需求分析
對(duì)大型實(shí)驗(yàn)共享平臺(tái)而言,由于構(gòu)建的是一種新型的實(shí)驗(yàn)儀器資源共享平臺(tái),,希望能從各種不同設(shè)備中獲取其各自的實(shí)驗(yàn)數(shù)據(jù)或結(jié)果,,以平臺(tái)通用的格式來(lái)傳輸和存儲(chǔ)數(shù)據(jù),便于進(jìn)入平臺(tái)的各個(gè)用戶共享這些實(shí)驗(yàn)數(shù)據(jù)或結(jié)果,。
通常實(shí)驗(yàn)儀器由于功能的不同,、生產(chǎn)廠商的不同,使得獲取數(shù)據(jù)的方式,、數(shù)據(jù)的存儲(chǔ)格式等均不相同,各種實(shí)驗(yàn)儀器基本上采用的都是自己專用的數(shù)據(jù)采集裝置,,不能滿足大型實(shí)驗(yàn)共享平臺(tái)的要求,。因此,在構(gòu)建大型實(shí)驗(yàn)儀器共享平臺(tái)中,,如何完成平臺(tái)中各種不同設(shè)備數(shù)據(jù)信息的采集及處理是實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)交流與共享的關(guān)鍵,。
1.2 系統(tǒng)總體結(jié)構(gòu)
根據(jù)需求分析,遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)如圖1所示,。
在實(shí)驗(yàn)室本地,,利用FPGA體積小,速度快,,內(nèi)部延時(shí)小,,可自由編程,靈活性高等優(yōu)點(diǎn),,以FPGA為核心輔以A/D轉(zhuǎn)換器等設(shè)備,,設(shè)計(jì)出可提供多種接口的數(shù)據(jù)采集箱。數(shù)據(jù)采集箱接口多樣化,,便于同各種不同型號(hào)的實(shí)驗(yàn)儀器相聯(lián),,并且數(shù)據(jù)采集箱可以轉(zhuǎn)發(fā)簡(jiǎn)單的控制指令(如:?jiǎn)?dòng)、停止),。數(shù)據(jù)采集箱采集到的數(shù)據(jù),在FPGA中完成數(shù)據(jù)格式化過(guò)程(將數(shù)據(jù)按照約定編碼成統(tǒng)一的格式)后,,暫存到緩存中,,然后經(jīng)傳輸線路將格式化的數(shù)據(jù)發(fā)送到服務(wù)器端存儲(chǔ)到數(shù)據(jù)庫(kù)中永久保存。數(shù)據(jù)庫(kù)中數(shù)據(jù)主要按時(shí)間段存儲(chǔ),,時(shí)間段的劃分由實(shí)驗(yàn)用戶設(shè)置決定,,可以用一次完整實(shí)驗(yàn)過(guò)程來(lái)劃分時(shí)間段,,也可以用同一個(gè)實(shí)驗(yàn)分割成幾個(gè)時(shí)間片段來(lái)存儲(chǔ)數(shù)據(jù),這樣有利于日后數(shù)據(jù)比較分析,。
在異地,,用戶可以使用PC機(jī)通過(guò)互聯(lián)網(wǎng)登錄到服務(wù)器,發(fā)出控制指令或?qū)?shù)據(jù)庫(kù)中的實(shí)驗(yàn)數(shù)據(jù)下載到客戶端,。用戶即可以用表格的形式顯示數(shù)據(jù),,也可以將數(shù)據(jù)導(dǎo)入到Matlab中,利用Matlab強(qiáng)大的繪圖和分析功能,,對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行更為高效的分析,。
2 基于FPGA的數(shù)據(jù)采集箱設(shè)計(jì)
數(shù)據(jù)采集箱主要完成對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行采集和初步處理的功能。數(shù)據(jù)采集箱可采集的數(shù)據(jù)種類包括溫度,、電壓,、電流、轉(zhuǎn)速等,。為了達(dá)到“萬(wàn)能”數(shù)據(jù)采集效果,,數(shù)據(jù)采集箱還提供了多種接口,不僅提供了高效,、方便的USB接口,,也提供了工業(yè)通用的RS 232接口、IDE接口,。數(shù)據(jù)采集箱有溫度傳感器,、電流傳感器、旋轉(zhuǎn)編碼器,、霍爾傳感器,、A/D等外部器件,如果由普通的單片機(jī)實(shí)現(xiàn),,需要很多的擴(kuò)展芯片,,而且單片機(jī)的時(shí)序性強(qiáng),它很難同時(shí)實(shí)現(xiàn)這些功能,,或者以降低系統(tǒng)精度作為代價(jià),。所以,在數(shù)據(jù)采集箱中采用FPGA芯片來(lái)并發(fā)處理系統(tǒng)的各位部分信號(hào),,這樣不僅可減少PCB板的面積,,增加抗干擾能力,同時(shí)也減少了成本,。數(shù)據(jù)采集箱結(jié)構(gòu)如圖2所示,。
數(shù)據(jù)采集箱的核心:XC2VP30是工業(yè)級(jí)Virtex-II Pro FPGA器件之一,邏輯單元Slice有13 696個(gè),,RAM為2 448 Kb,,136個(gè)18×1乘法器以及8個(gè)數(shù)字時(shí)鐘管理模塊和644個(gè)用戶I/O端口,,以及2個(gè)工作在350+MH4,基于FPGA開(kāi)發(fā)平臺(tái)的BLDCM模糊PI控制器IBM PowerPC 405 RISC處理器和8個(gè)3.125 Gb/s RocketIO收發(fā)器,,能提供多達(dá)120 Gb/s全雙工數(shù)據(jù)傳輸,。Xilinx的FPGA是基于SRAM工藝,因此它們是易失的,,數(shù)據(jù)采集箱采用3塊FLASH XCF04S ISP PROM來(lái)存儲(chǔ)FPGA的配置文件,。
電流采集利用ADS807完成。ADS807是帶采樣/保持的高速12位A/D轉(zhuǎn)換器,,采用流水線技術(shù)并行處理模擬量,。數(shù)據(jù)采集箱中通過(guò)電流傳感器采集到電流值,然后通過(guò)ADS807將其轉(zhuǎn)換為12位數(shù)字信號(hào)傳送給FPGA,。為了降低噪聲的影響,,采用了平均濾波方法對(duì)A/D輸出進(jìn)行濾波?;诖笮蛯?shí)驗(yàn)平臺(tái)的特殊性,,本設(shè)計(jì)采用兩個(gè)獨(dú)立工作的轉(zhuǎn)換器構(gòu)成兩通道的模式。
為了得到高精度的速度信號(hào),,F(xiàn)PGA對(duì)E6B2CWZ6C增量式旋轉(zhuǎn)編碼器的A相脈沖信號(hào)進(jìn)行采集,,被測(cè)對(duì)象每旋轉(zhuǎn)一周,A相將發(fā)出1 000個(gè)脈沖信號(hào),。
由于各種設(shè)備,、接口的傳輸數(shù)率不相同,在FPGA內(nèi)部為每一種設(shè)備或接口開(kāi)辟獨(dú)立的緩沖區(qū),。FPGA對(duì)讀入的數(shù)據(jù),,先編碼,依據(jù)讀入設(shè)備,,添加設(shè)備編號(hào)和接收時(shí)間,;然后將讀取數(shù)據(jù)放入緩沖區(qū);當(dāng)緩沖區(qū)滿,,接收到清空緩沖區(qū)或者發(fā)送指令后,,緩沖區(qū)數(shù)據(jù)經(jīng)網(wǎng)卡發(fā)送到服務(wù)器端。
3 基于J2EE的軟件設(shè)計(jì)
J2EE作為業(yè)界開(kāi)發(fā)企業(yè)級(jí)電子商務(wù)的標(biāo)準(zhǔn)技術(shù),,其組件不僅繼承了Java 2平臺(tái)的優(yōu)點(diǎn),,如平臺(tái)無(wú)關(guān)性、安全性等,,還增加了一系列的企業(yè)應(yīng)用程序編程接口,,如Java消息服務(wù)(Java Messaging Service,JMS),、企業(yè)Java組件(Enterprise Java Bean,,EJB)、Java命名和目錄服務(wù)(Java Naming and Directory Interface,,JNDI),、公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA),、遠(yuǎn)程方法調(diào)用(Remote Method Invocation,,RMI)、Java事務(wù)服務(wù)(Java Transaction Setvice,,JTS),、Java數(shù)據(jù)庫(kù)連接(Java DataBaseCon-nectivity,JDBC)等,。
本系統(tǒng)服務(wù)器端應(yīng)用基于Struts和Hibernate的MVC(Model View Controller)設(shè)計(jì)模式,。該設(shè)計(jì)模式把數(shù)據(jù)庫(kù)封裝起來(lái),對(duì)業(yè)務(wù)層提供統(tǒng)一API訪問(wèn),,節(jié)省開(kāi)發(fā)人員的工作量,,它可使整個(gè)管理系統(tǒng)的結(jié)構(gòu)層次清晰,并實(shí)現(xiàn)了層之間的解耦,,使開(kāi)發(fā)過(guò)程中層與層之間的工作幾乎是完全獨(dú)立的,,極大的提高了系統(tǒng)的開(kāi)發(fā)效率,同時(shí)也提供了系統(tǒng)的可重用性和靈活性,,為日后的擴(kuò)展和維護(hù)留有很大的余地,。
在服務(wù)器端,主要設(shè)計(jì)了用戶管理模塊,,實(shí)驗(yàn)數(shù)據(jù)管理模塊,,通信模塊。用戶管理模塊的主要功能是實(shí)現(xiàn)用戶權(quán)限分級(jí),,防止惡意訪問(wèn),。實(shí)驗(yàn)數(shù)據(jù)管理模塊主要對(duì)接收到的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分類、分時(shí)間入庫(kù),,并建立相應(yīng)的數(shù)據(jù)日志和備份,。通信模塊一方面負(fù)責(zé)與采集箱通信,另一方面負(fù)責(zé)與遠(yuǎn)程客戶端交流,,完成按用戶指令采集實(shí)驗(yàn)數(shù)據(jù),、將實(shí)驗(yàn)數(shù)據(jù)提交給用戶等工作。
遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)的數(shù)據(jù)查看頁(yè)面示意圖如圖3所示,。當(dāng)用戶通過(guò)互聯(lián)網(wǎng)遠(yuǎn)程登錄后,,根據(jù)用戶權(quán)限,可以自由選擇查看特定時(shí)間段時(shí)內(nèi)的某個(gè)端口數(shù)據(jù),,還可以刪除冗余的數(shù)據(jù),。
通常,,數(shù)據(jù)庫(kù)中存儲(chǔ)的實(shí)驗(yàn)數(shù)據(jù)比較龐大,單純的表格有時(shí)難以形象地反映實(shí)驗(yàn)效果,。Matlab是常用的仿真軟件,,廣泛應(yīng)用到各種科研領(lǐng)域,具有強(qiáng)大的繪制曲線功能,,利用這一功能,,本文編寫.m文件,將服務(wù)器端的實(shí)驗(yàn)數(shù)據(jù)下載到本地,,然后利用Matlab繪制出圖形,,進(jìn)一步幫助用戶對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。圖4是經(jīng)轉(zhuǎn)換后,,由Matlab繪制出的電機(jī)轉(zhuǎn)速波形樣圖,。
4 結(jié)語(yǔ)
在此對(duì)建設(shè)遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)的意義進(jìn)行了探討,并設(shè)計(jì)了遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu):以FPGA為核心設(shè)備的數(shù)據(jù)采集箱,,利用J2EE平臺(tái)以B/S模式對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行遠(yuǎn)程讀取,。今后將在遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)方案中設(shè)備可靠性進(jìn)行進(jìn)一步研究。例如:多用戶并發(fā)控制實(shí)驗(yàn)設(shè)備時(shí),,指令發(fā)出的先后順序控制,;用戶發(fā)出錯(cuò)誤指令可能導(dǎo)致設(shè)備工作異常的處理措施等方面,還待進(jìn)一步研究,。