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