摘要:为了提高大型实验设备的利用率,在此提出利用Matlab、数据库、FPGA和服务器等软硬件设施,实现远程实验系统数据采集的方案。该方案中设计了基于FPGA的数据采集箱,利用数据采集箱将大型实验设备和基于J2EE平台的服务器相连接。服务器将采集到的实验数据存储到数据库软件中,当用户需要时,可通过网络访问服务器获取数据。在客户机端,用户还可以采用Matlab还原实验数据,画出实验数据曲线。
关键词:远程数据采集;FPGA;J2EE;Matlab
在科学技术发展过程中,资源信息的共享对科学研究水平的提高具有重要的意义。目前,在一些企业、高等院校和科研机构中,由于管理体制与设备使用机制的局限性,大型实验仪器的使用率极为有限,造成了大量的资源浪费现象。如果针对大型实验仪器使用远程控制实验,一方面用户可以在任何时间,任何地点通过网络进行实验,有利于用户合理地安排自己的学习、工作计划,而不再受时间和地点的约束;另一方面则可以提高实验室资源的利用率。因此,构建大型实验仪器共享平台是符合科学技术发展要求的。
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是经转换后,由Matlab绘制出的电机转速波形样图。
4 结语
在此对建设远程实验系统的意义进行了探讨,并设计了远程实验系统结构:以FPGA为核心设备的数据采集箱,利用J2EE平台以B/S模式对实验数据进行远程读取。今后将在远程实验系统设计方案中设备可靠性进行进一步研究。例如:多用户并发控制实验设备时,指令发出的先后顺序控制;用户发出错误指令可能导致设备工作异常的处理措施等方面,还待进一步研究。