前言:我们精心挑选了数篇优质数据采集论文文章,供您阅读参考。期待这些文章能为您带来启发,助您在写作的道路上更上一层楼。
GPRS移动数据传输网络的主要作用就是对无线数据进行传输。在监控对象安装的数据采集点会对数据进行采集,然后经过GSM网络的空中接口模块,同时对数据进行解码处理,然后将其转换为可以在公网传输的格式,最后通过GPRS移动数据传输网络将数据传输至监控中心的服务器。在整个系统中,各个监控点的数据采集模块通过GPRS移动数据传输网络与监控中心相连,数据采集点同意使用STK卡,与此同时,监控中心会对各点进行登记,并在服务器中保存相关资料。各个监控点的数据采集模块中装有数据采集软件,该软件24h在线,对电网中的信息数据进行24h不间断的采集工作。关于信息的传输,使用的是JW0D2系列的GPRS无限透明数据传输终端。该终端基于移动网络,抗干扰能力较强,同时性能较高。此外,该传输终端还提供标准的RS232接口,以便实现与计算机的连接。在传输过程中,速率可以达到172kbps,能满足监控中心与各个监控点的数据采集与处理工作。由于电网数据传输的特殊性较强,因此本系统使用了安全保障,以保证系统运行的稳定性和可靠性。在网络安全方面,经过对信源加密、信道加密、登录防护、接入防护、访问防护等,能有效增强网络安全,加强安全防护。在硬件方面,使用VPN将公网接入到GPRS网中,成本低廉,不用租用专线。此外,使用VPN还可以增强安全性,客户端在链接应用服务器之前,要经过服务器的认证,而且整个数据传输过程均会加密,如此一来,安全性就得到了保障。另外,系统还对用户的SIM卡手机继续鉴别授权,在网络侧对SIM卡号和APN进行绑定处理,只有拥有权限的相关用户才能对专用APN进行访问,没经过授权的SIM卡将无法对APN网络进行访问。
2特点与优势
传输模块的特点主要有:①传输模块采用了工业级的GPRS模块,该模块性能较为稳定,而且其工作温度范围较大。另外,用了嵌入式的CPU作为处理器,功耗低、性能高,还能高速处理协议和大量的数据。②由于该模块的工作方式为multi-tasking,因此实时性较好。③其AT指令的预设简单方便。该模块的通信距离较远,而且具有覆盖面积广的特点,能使终端实时在线,能将无线电无法到达的区域采用GPRS通信的方式进行传输,真正实现了高效传输。此外,该系统还有组网灵活、扩展容易、维护简单、性价比高的特点。
与短消息服务相比,GPRS服务的实施性很强,而且系统不会出现延时的情况,可以对所有数据进行采集。此外,由于GPRS具有双向功能,还可以对采集设备进行反向控制,因此进一步提高了系统的便捷性。本系统的扩展性良好,是大面积覆盖的GPRS网络,所以该系统不存在盲区,而且由于该系统的输出容量较大,数据采集点较多,监控中心要与每一个监控点相连,因此需要系统能满足传输需求。该系统的传输容量较大,能满足突发性数据的传输要求,因此该系统的优点明显。
3结束语
对管内车站客票发售的运行数据进行采集统计分析的首要的条件就是要能联到地区客票中心的数据库,能从地区客票中心的数据库里取到相应的数据,PowerBuilder存取数据库的方式有如下两种:a、通过使用标准的数据接口ODBC(开放数据库连接);b、通过使用一个由Sybase公司提供的专用的直接与数据库相连的接口。本文选择a方式,但连接地区中心的数据库同时也给全地区的数据安全带来了极大的风险,因为地区中心数据库存放着整个地区中心的席位库、售票存根、计划调度命令,以及各种用于客运统计、财务统计和营销分析的所有数据,PowerBuilder作为前端数据库开发工具,提供了当前流行的大型数据库的连接接口同时,还提供一个直观的图形界面和可扩展的面向对象的编程语言PowerScript,用户通过PowerBuilder很松的就可以修改数据库的内容,这无疑会给整个地区客票中心的数据安全带来严重的隐患,是绝对不允许的,所以在取得杭州电算站的同意下,另外开辟一台服务器作为金华车务段的数据库服务器,这样就隔离了对地区中心数据库的破坏,编写工作流脚本每天按时自动从杭州地区客票中心的数据库服务器上将车务段每天的售票存根和基础数据导出,再导入到地区中心车务段的数据库服务器,保持车务段数据库服务器和地区中心的数据库同步,通过铁路专用网,在车务段就可以利用一台PC机利用PowerBuilder通过ODBC接口轻松的连接到地区客票中心的车务段数据库服务器,这样就既不影响杭州地区客票中心数据库的数据安全,车务段还可以利用这些数据进行二次开发。通过PowerBuilder与地区客票中心的车务段数据库服务器连接的方法如图1所示。
2系统设计
2.1设计原则客票数据采集和分析系统是在实现业务需求的前提下,确保软件开发满足高质量软件系统的要求,因此,应该遵循以下设计原则。
2.1.1直观、使用方便用户界面友好、使用简单、操作方便、数据正确完整、分析功能强大。
2.1.2安全可靠考虑到了运输生产数据的敏感性,在代码编制过程中把信息安全放在了第一位,系统中对各个用户权限进行严格分级,并对所涉及的数据库的连接进行加密。确保客票系统核心数据不泄密,确保客票系统运行效率不降低,确保客票系统基础数据不被盗取。
2.1.3可维护性本系统通过ODBC连接到地区中心数据库,并采用Datawindow技术来处理多报表。
2.1.4可扩展性确保客票系统在数据量增长、用户增长以及业务增长时具有良好的可扩展性。
2.2系统构成
2.2.1硬件环境①服务器端:IBMSERVERX3850服务器一台,位于杭州地区客票中心机房,用于存放售票存根和基础数据。②客户端:可联入网络的个人电脑一台、打印机一台。
2.2.2软件环境①服务器端:操作系统采用Unix,数据库服务器采用Syabsel2.3.5数据库。②客户端:操作系统为WINDOWSXP、WIN7,浏览器为IE6.0及以上。
2.3关键技术与实现方法
2.3.1PowerBuilder连接到地区中心的车务段数据库服务器存放在地区中心的车务段数据库服务器是复制地区客票中心数据库服务器的基础数据库和运行数据库,用的都是Sybase数据库管理系统,在车务段可以利用一台安装有PowerBuilder并连入客票网的PC机通过正确配置PowerBuilder的DBprofile,可以连接位于地区客票中心的车务段服务器的Sybase数据库,最后的配置文件内容为。
2.3.2利用数据管道实现数据库之间的同步PB提供强大的数据管道技术,数据管道技术是实现两个数据库之间、数据库内部数据传输的一种常用方法,数据管道技术的调用主要有以下5个步骤:①创建应用程序所需对象;②执行数据管道初始化操作;③启动数据管道;④处理程式运行中移动数据的错误行;⑤执行数据移动完毕后的收尾操作。数据库管道可以在PowerBuilder提供的pipeline画板中创建并定义,需创建一个继承PB管道系统对象的用户对象,再通过这个对象来管理管道操作,编辑支撑对象的PipeMeter事件脚本,实现语句为:St_read.text=string(RowsRead)St_write.text=String(RowsWritten)St_wrong.text=String(RowsInError)保存用户对象,创建支撑用户对象命名为u_pipe,通过定义的u_pipe,可以实现地区客票中数据库中的数据通过稳定的数据管道安全、快速的传送到客票数据采集和分析系统的数据库中。
2.3.3利用DataWindow技术实现嵌套数据报表DataWindow技术是PowerBuilder最具特色最关键的一项技术,其FreeForm风格基本可以代替PB中所给的其他录入控件,达到以假乱真的地步。在数据窗口上显示数据步骤:①利用数据窗口绘图器绘制一个数据窗口对象(DataWindowObject)。②利用窗口绘图器绘制一个窗口对象(WindowObject),并且在窗口上放置一个数据窗口控件(DataWindowControl)。③指定数据窗口对象(DataWindowObject)给窗口上的数据窗口控件(DataWindowControl)。④将所要连接数据库的信息指定给交易对象(TransactionObject)。⑤利用Connect指令连接数据库和交易对象。⑥利用SetTransObject()函数连接数据窗口和交易对象。⑦利用Retrieve()从数据库读取数据PB数据窗口还具有嵌套报表的功能。所谓嵌套报表就是以一个报表为主体框架,根据需要在其中附加一个或多个报表,形成一个整体报表。其中主体框架的报表为主报表,附加的报表为辅报表。嵌套报表的功能体现在客票数据采集和分析系统中就是用户可以根据不同的筛选条件,可以任意组合,根据用户的不同要求展现不同的报表。
3功能模块分析
客票数据采集和分析系统主要有3大模块,分别是:数据采集模块、数据转换挖掘及定制模块、用户服务处理模块。下面就这3大模块分别进行分析说明。
3.1数据采集模块数据采集模块主要功能就是按用户不同的要求从地区客票中心的车务段数据库服务器中采集自己需要的数据并保存在本地数据库中,以供各种分析和统计,比如异地票的统计,按照路局要求异地票手续费收费标准:除动车组列车的返程票、联程票、低于30元的异地票、学生票以及管内动车组列车异地票免收5元手续费外,其余异地票均收5元异地手续费,用Select语句对数据库中sale_record表中的存根进行筛选,然后用Insert将采集到的数据存入到cen-ter库中的study_ydtj表中作为统计分析最基础的数据,当然这部分的工作都是通过运行PowerBuilder脚本在后成的。由于该模块具有数据传输量大、不可干扰性、准确性要求高和无人工干预等特点,因此,把这个模块设计为运行于数据库服务器中的一个后台进程,该进程通过中间件把客票数据采集和分析系统的数据库连接到地区中心Sybase数据库,然后利用数据管道技术定时批量的传输数据到客票数据采集和分析系统数据库中。为了防止数据传输过程中出现差错,该模块另一个功能是实时检查数据连接状态和数据管道的完整性,一旦发现错误,立即自动重启数据连接,并重建数据管道,有效的防止数据传输过程中差错的发生。
3.2数据转换、挖掘及定制模块数据转换、挖掘及定制模块主要功能是对传输到客票数据采集和分析系统数据库中的运输数据进行转换、挖掘及定制等操作,分别进行说明:①数据转换:将从地区客票中心的车务段数据库服务器的数据库获取的数据按照不同业务要求,转换成多种数据格式,满足不同的业务要求,并对错误、不一致的数据进行清洗和加工。②数据挖掘:通过对每个数据的定性和定量分析,从大量数据中寻找其规律的技术叫做数据挖掘技术。客票采集和分析系统存在着海量的历史数据,数据挖掘技术不仅能对历史数据进行查询和遍历,并且能够找出历史数据之间的潜在联系,分析客流,指明营销方向,帮助制定营销策略,给铁路决策层在运输生产决策中提供必要的建议。③数据定制:可以按照特定用户的特殊要求,把数据库中的相关数据进行抽取、分类和汇总,并存入特定数据表中,根据需要以Excel电子表格的形式提供给用户。
3.3用户服务处理模块用户服务处理模块主要用于资料分发,客票数据采集和分析系统给不同需求的用户提供齐全的客票信息和数据分类对比电子表格,用户服务处理模块将这些信息定时分发给需要的人,比如:站长、客运值班员等。
4结束语
硬件系统为:监控层、数据采集层、现场层〔2〕。
1.1监控层监控层采用总线形网络结构,在总线上挂接的设备主要有:数据采集I/O服务器、IH数据库服务器、关系型数据库服务器、APP服务器、Web服务器、调度操作站、工程师站等。1)数据采集I/O服务器,分为电力、动力、水三个系统,采用冗余配置,服务器安装IFIX5.1组态软件,在IFIX5.1的SCU中配置IGS、PFC、IEC驱动同数据采集站通讯,具体通讯方式如下,采集西门子PLC系统数据的,则以工业太网为桥梁,IFIX通过IGS驱动与其实现实时通讯;采用RTU采集系统数据的,IFIX通过PFC驱动与其实现实时通讯;采集申瑞765G综保管理机系统数据的,IFIX通过IEC驱动与其实现实时通讯。2)GPRS服务器,能控无线远传站通过柜内S7-200、SINAUTMD720-3GPRS调制解调器、天线和GPRS通信管理软件SINAUTMICROSC构成GPRS网络,最后通过OPC驱动与能控中心GPRS服务器实现通讯连接。3)IH数据库服务器,IH数据库服务器上安装GE公司的ProficyiHistorian实时数据库软件,IH通过配置Collector采集器软件从数据采集I/O服务器抓取数据,采集的数据周期以秒、分为单位刷新。4)关系型数据库服务器,安装有DB2和Oracle两种关系型数据库软件,完成数据的长期归档以及数据的压缩和数据的备份。5)APP服务器和Web服务器,APP服务器运行基础能源管理模块,Web服务器用于Web。6)调度操作站,通过调度操作站能控调度可以对能控系统的相关数据及设备的运行状态进行监控,而且能够通过B/S(客户端/服务器)的方式访问APP服务器的基础能源管理模块,使用自己权限所分配的功能。
1.2数据采集层数据采集层有124个数据采集站,包括西门子S7-300PLC82套、通讯柜41套,力控RTU(Remo-teTermialUite,远程终端单元)46套,覆盖工源厂区、东风厂区、南芬露天矿及歪矿,地域分散。同监控系统的通讯方式有有线方式和无线方式。其中有兴安解冻库、四水源等十个站点敷设电缆困难且条件恶劣,增加了建设和维护的成本,因此采用GPRS无线通信方式;有线方式采用环网加星形的网络结构,整个环网有7个主站,从EMS01到EMS07分别是能源中心、焦化仪表室、朱庄柜、六高炉主控室、4#转炉机房、维检中心、冷轧机房,环网将7个主站点连接起来,再由主站点以星形的结构向外辐射用于连接所有的数据采集站。
1.3现场层1)本钢现场层的设备现状现场一次仪表有电磁流量计、超声波流量计、差压流量计、涡街流量计,提供4~20mA标准信号,PLC和DCS系统有西门子S7、施耐德、AB、ABB、浙大中控JP-300XP、Honeywellpks系统HoneywellHC900等系统,电力综保系统有北京四方、上海申瑞、清华紫光等厂家,电度表有湖南威胜和黑龙江龙电两种型号。信号类型分为计量点和工艺点,计量点只对数据进行采集;工艺点包括数据的采集和设备的控制。2)采集方案的确定针对现场设备的实际情况确定了如下的数据采集方案:(1)RTU采集方式,此种方式只对数据进行采集。对于支持RS485协议的超声波流量计,例如本溪新宇超声波流量计,将该表通过串口通讯线接入到RTU的串口,通道协议选择ModbusMaster,端口选择Serial。采集原有西门子PLC系统数据的,将系统通过以太网方式接入RTU的网口,RTU配置软件中通道协议选取西门子PLC,通讯口:TCPClient,IP地址为所通讯的PLC地址,端口号为102。原有系统为DCS,例如十一加的HoneywellHC900,将系统通过以太网方式接入RTU的网口,通道协议为ModbusTCP,通讯口:TCPClient,IP地址为所通讯的DCS地址,端口号为502。浙大中控的JP-300XP系统,如发电厂32号机和氧气厂4#制氧机。将系统通过以太网方式接入RTU的网口,是通过OPC协议进行数据采集,在原有系统中安装OPCTunnellerServer,然后在另外一台计算机上使用OPCTunneller驱动进行采集,在RTU中通道协议中选择OpcTunnellerMaster。与电力综保通讯,将系统通过以太网方式接入RTU的网口,通道协议选择IEC104,需要说明的是采用此种通信方式的只有清华紫光和北京四方,不包括上海申瑞,申瑞通过综保管理机765G直接同电力服务器通信。智能电表的数据采集,威胜龙电两种电表都有网口,同威胜的电能采集器通讯,采集器通过以太网方式接入RTU的网口,通道协议选择威胜WFET2000s,IP地址为电能采集器端设置的IP,端口号为9001。(2)I/O采集方式,数据的采集和设备的控制。计量点,新增的或原有的需接入能管中心的点通过仪表提供4~20mA标准信号接入到PLC柜或I/O柜的AI输入模板。工艺点,例如燃气厂五加、六加、九加等煤气加压站既有采集数据的要求,还有对现场阀门进行控制要求的,系统则通过在原有西门子S7-300或400系统中加装CP模板的方式进行数据的采集和设备的控制。新增加的CP模块规划的IP地址同原有系统的IP地址不在同一个网段,为两个独立的网段,可以实现数据采集控制功能和对病毒隔离功能。
2系统功能
本钢能管中心数据采集监控系统从试运行以来,实现了以下功能:1)数据采集设备控制对电力系统的电量、电流、电压、功率、功率因数等,燃气系统、热电系统、氧氮氩系统的流量、压力、温度、柜位等,水系统的流量、压力、水位等进行采集,对电力系统的开关、燃气系统的加压机、水系统的泵等重要能源设备进行远方操作控制和实时调整。2)报警功能监控中心汇聚大量的数据,系统根据故障程度和重要性,设置了重故障、轻故障和事件三种报警类型,提示调度员进行相应的操作。3)操作记录对重要设备的操作进行记录,当故障发生后可以为事故的原因分析提供依据。4)数据处理包括流量累计、计算煤气热值、多个数据之和或差等,例如混合煤气的和。5)数据归档对于短时归档数据,提供过程曲线显示;长时归档数据,可按信号内容、起/讫时间、时间粒度(分钟/小时/天/月)、数值类型(Min/Max/Ave/Sum)进行历史数据查询,并可进行曲线显示。6)Web用户可通过IE浏览器来访问Web服务器,获取现场设备的状态和运行参数,在Web画面上不能进行参数设定等操作。内容包括各系统的工艺画面,重要的报警画面。
3结论
1.1系统的整体结构设计整个系统采用了模块化的设计,各模块布局合理,整体的结构紧凑。主要功能是数据的传输和程序下载,USB转TTL模块的作用是给单片机供电以及上位PC机和下位单片机之间的电平转换,其原理图如图1所示。单片机与PC机是使用USB转TTL模块进行串口通信,它可以将USB虚拟成一个串口,解决笔记本电脑用户无串口的烦恼。此模块传输速度、传输准确性都满足实验需求,而且价格便宜,使用方便。
1.2系统各部分的功能介绍模拟信号采集部分的目的是为了采集所需要的原始的数据,即本系统中所需要的电压和电流。下位机以AT89C52RC单片机为控制单元,16路A/D转换芯片AD7705采集电压和电流信号转换为相应的数字信号,便于单片机后续的处理并以一定的协议将数据通过串口发送至PC机,最终通过运行在上位PC机的程序对接收到的数字信号进行处理和显示。微控制器STC89C52RC以一定的的协议将数据通过串口发送至PC机。单片机的晶振电路和复位电路是单片机正常工作的先决条件。PC机通过串行USB转串口接收单片机发送的数据,并进行实时处理和显示。
2系统硬件部分设计
2.1MCU芯片的选择STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗和超强抗干扰的CMOS8位微控制器,采用经典的MCS-51内核,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。工作电压:5.5~3.3V(5V单片机)/3.8~2.0V(3V单片机)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHZ,用户应用程序空间为8k字节。
2.2A/D转换器选择及采样设计模数转换器,是把经过与标准量(或参考量)比较处理后的模拟量转换成以二进制数值表示的离散信号的转换器,简称ADC或A/D转换器。本系统模数转换器采用的是芯片AD7705,AD7705是AD公司推出的16位Σ-ΔA/D转换器,该转换器采用SPI兼容的三线串行接口,能够方便地与各种微控制器和DSP连接,也比并行接口方式大大节省了CPU的IO口,能直接将传感器测量到的多路微小信号进行AD转换。这种器件还具有高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压低功耗等特点,非常适合仪表测量、工业控制等领域的应用[7]。本系统是采集两路信号(电压和电流),AD7705芯片精度为16位(Δ=(5/65536)V≈0.076mV,其精度满足实验需求),高精度A/D转换芯片AD7705有两个双端模拟信号输入通道,分辨率为16位无丢失代码,增益、信号极性以及更新速率等可由软件设置[8-10]。片内可编程增益放大器的增益范围为1~128,这使AD7705可与多种传感器直接相连,无须外接放大器,并且内置可编程的自校准电路,通过对零点和满度的校准,可有效去除零点漂移和增益误差的影响。接口为SPI串行总线,因而与单片机的接线大大减少,简化了硬件的设计。在测量电流时,我们对两种实验方案进行了比较,第一种是利用电流变送器进行电流的测量;第二种是利用采样电阻进行电流的测量。采用了第二套方案,原因是其价格低、精度满足实验要求。
3系统软件部分的设计
PC端主程序框架如图2所示。
3.1数据采集PC端软件设计PC端软件是基于MFC对话框进行程序的编写,其主要包括以下几部分:1.窗口界面的绘制(包括开始界面绘制、控件绘制、坐标系绘制、网格绘制、LIST表格绘制等);2.串口通信控件的连接、初始化和设置;3.数据库的嵌入(包括数据库的连接、读写、修改等);4.采集数据时的动态响应(包括动态图形绘制、动态数据表数据显示等)。
3.2界面介绍首先是开始界面,如图3所示。1.菜单栏区域:包括串口设置、开始采集、暂停、停止采集(同时关闭串口)四部分是本程序所有功能的体现;2.绘图区域:包括两个TABLE,一个是励磁电流不变、励磁电流变化两个子窗口。每个窗口中包含一个二维坐标系进行图形的绘制;3.数据表区域:包含一个LIST控件,对实时采集的数据进行显示;4.系统控制区域:与菜单栏区域功能相同,都是对采集整个过程进行控制,同时能够实时的对数据进行一个显示、也能够对偏差的数据进行手动删除,避免实验错误对绘制出的图像造成的影响,而影响实验效果。根据端口信息,选择串口端号,点击打开串口后,绿灯变为红灯,打开串口按钮变为灰色,表示串口已经连接,可以进行串口通信(即采集可以开始)。选择两种模式,“励磁电流不变”、“励磁电流变化”,并点击进入相应的子窗口。然后就可以进行采集。传输电流电压时,图像会实时显示,数据表也会同时显示。图5显示了励磁电流不变时,工作电流和霍尔电压之间的关系曲线。
4结论
通过对电极形状、数目的选择,接地屏蔽层的合理设计和对传感器结构参数的比较优化,最终确定传感器模块采用16极板的ECT系统传感器。为便于在设计中及时发现错误并改正,提高工作效率,设计了基于FPGA的数据采集系统,该方法能够根据需要实现系统的重构。另外,为了有效地抑制杂散电容干扰,采用锁相环技术实现相干检测,进一步完成了对C/V转换电路的设计。计算机成像模块通过接口电路将数据缓存区的数据传输给计算机,采用迭代算法实现对图像的重建。
2传感器模块
ECT系统由均匀安装在管道表面的电极对组成,目前常用的有8极板、12极板、16极板等模型,极板数目越多,则可以获得的测量数据就越多,数据源的增多将提高重建图像的显示质量,然而也会引入信噪比降低、边缘效应增大等隐形问题。综合考虑采用16极板的传感器系统。
3数据采集系统设计和处理模块
结合航空发动机实际工作情况,可知此数据采集过程需满足高速率、高精度、大存储量以及对环境适应性强的性能要求,基于以上比较,本文选取FPGA芯片作为核心的逻辑控制器件。该器件选用Xilinx公司的Spartan—3系列FP-GA芯片,其核心芯片为XC3s500E。选用LTC1407型A/D转换器,VerilogHDL语言作为描述语言实现了对整个系统的采样、数据处理等过程的控制,并以XilinxISEDesignSuite13.1软件为平台,仿真验证了这一系统的可行性。
3.1C/V转换电路
电容作为一个特殊物理量,测量系统中存在的杂散电容值往往要大于被测电容值,而基于ECT技术的测量系统对微小电容的检测存在一定的局限性,因此,应系统要求,本文选择了抗杂散电容能力较强的物理电路。
3.2A/D转换电路
本系统采用的A/D转换电路是一个双通道的模拟信号采集电路,它由可变增益放大器LTC6912—1和A/D转换芯片LTC1407—1两部分组成。通过外部调节,自主改变可变增益放大器的放大倍数可以为芯片提供合适的电压信号,从而提高整个系统的转换精度。
3.3系统流程控制
考虑到FPGA不善长流程控制,在本文设计中引入了MCU软核,用于数据采集过程的流程控制。
4计算机成像模块
图像重建基本思想是依据有限的投影数据,采用简单有效的图像重建算法以实现Radon逆变换的过程。其主要数学理论基础是基于Radon变换和Radon逆变换,奥地利数学家Radon于20世纪初期在其发表的论文中证明,任何N维物体可以通过其N-1维投影来重建。
5仿真结果与验证
由于航空发动机尾气是多相流介质,且各项介质具有不同的相对介电常数。一旦发动机尾气内组分浓度发生变化,相应地就会引起多相流混合介质等价介电常数发生变化,并导致极板间电容值和实时采集的投影数据皆更变的连锁效应,为模拟管内充满相对介电常数为1的物质时所测得的120个电容测量值。如果其中掺杂进去相对介电常数为3的物质流,便可得到120组新的电容测量数据,由数据通过计算机成像便可重建出管道内物质分布,如图10所示,图中四幅图像表示发动机管中存在相对介电常数为3的物质流由汇聚到摊开的形状变化过程。结果表明:当设计管道内放入两相或多相介质时,通过本系统能够成功采集数据,并经USB接口传送给计算机能实现图像重建,最终重建出飞机发动机中介质分布图像,验证了本设计的可行性。
6结束语
1.1传感器电路设计外部电容与片内电阻一起构成一个低通滤波器,用于限制ADXRS646速率响应的带宽。3dB频率由和设置:可以精确控制该频率,因为在制造期间被调整至。在RATEOUT脚(1B,2A)和SUMJ引脚(1C,2C)之间连接的任何外部电阻将导致:由于陀螺仪的18kHz谐振频率会造成解调时的高频噪声,因此在陀螺仪的输出管脚由电阻和22nF电容(2.2kHz极点)组成低通RC输出滤波器,以衰减解调尖峰引起的高频噪声。
1.2控制电路与模数转换电路设计选用C8051F410单片机对整个系统进行控制,C8051F410具有与8051兼容的高速CIP-51内核,与MCS-51指令完全兼容。C8051F410资源丰富,具有24个I/O引脚,同时还具有时钟振荡器等功能模块。ADS1274是TI公司生产的24位无失码高性能模数转换器,具有最高144kSPS数据采样速率,功耗低,在52kSPS(高精度模式)采样速率下,单通道功耗仅为31mW,工作温度范围广,最低温度-40°C最高温度+125°C,非常适合应用于条件苛刻的工业控制领域。该芯片模拟前端具有4个单端输入通道,模拟部分采用5V供电,内核为3.3V或者1.8V供电。模拟输入电压为———0.3V~6V。采用THS4521作为AD转换器的驱动器,THS4521极低功耗轨至轨输出全差动放大器,带宽高达145MHz,数据转换速率高达490V/μs,直流开环增益为119dB,宽范围供电电压:+2.5V~+5.5V,单通道电流仅为1.14mA。C8051F410与ADS1274通过标准SPI接口进行通信,设计采用3线制的主、从方式。C8051F410控制ADS1274,C8051F410通过SCLK时钟管脚提供并控制ADS1274提供SPI的时钟信号。单片机的MOSI引脚与ADS1274的DIN引脚相连,向ADS1274发送数据,实现配置寄存器,设置工作模式等功能。C8051F410的MISO引脚与ADS1274的DOUT相连,接收AD转换的数据。ADS1274的RDY引脚与单片机的P0.3引脚相连,当ADS1274完成模数转换以后,RDY引脚有高电平变为低电平,通知单片机模数转换完成,准备读取数据。
1.3恒流电源电路LM2904系列运算放大器是TI公司生产的低功耗双运算放大器。ADXRS646型MEMS陀螺仪需要的供电电压为6V,由LM2904构成的放大电路可以产生两路稳定的6V电压,输出抖动小于5mV,输出电流可以达到40mA,满足MEMS陀螺仪的供电要求。由LM2904构成的基本电压放大电路。放大电路的输入电压5V,电压的放大倍数为1.2倍,由此可以得出两路输出A和B均为6V。
2软件设计
数据采集装置上电后首先对C8051F410进行初始化设置,通过配置寄存器,设置SPI通信模式、内部振荡器的工作频率以及看门狗的监测时间。然后对ADS1274进行AD采样率、工作模式和通信模式等模块的初始化。选择ADS1274的差分模拟输入通道AIN1、AIN2、AIN3进行数据采集,模拟电压输入范围为0~5V,数据寄存器配置为24位。向ADS1274发送开始转换命令,单片机开始计时,计时时间未结束,传输采集的数据;计时时间到,继续开始AD转换。采集后的角速率数据经过单片机简单处理后,由RS232串口输出。
3实验分析与结论
云定制的使用方便大批量采集控制服务器的集中管理,尤其在批量采集策略变更时为集中更改提供便利。广播电视音视频采集广泛分布在各无线频段和有线网络之中,采集种类多,数据存在差异,采集地域分布广,通过专网将采集前端设备、集中控制服务器等连接起来,并反馈给数据处理服务器。云定制屏蔽了采集前端设备的差异性、分散性,将其集中在同一个云之中,实现定制服务的远程控制和自由变更。如图3所示。
通过架设云定制服务器Web服务端作为云端,依靠B/S系统结构,使用者仅需在专网之中使用任意一台计算机设备即可连接云端,进而连接所有采集前端,其优点主要体现在无需安装软件,便可通过浏览器登陆广播电视音视频采集云定制系统,对所有前端设备、控制服务器进行操作。云定制服务器基于C#语言,基于Socket通信协议编写通信模块,与前端采集控制软件通信,接收并汇总采集端控制软件返回的结果,下发采集服务定制的命令至采集端控制软件进行变更操作,并预留二期开发接口,方便其他系统对云定制切换服务的调用。采集集中控制服务器与采集前端系统通过采集端控制软件接收来自云端的命令,并反馈采集状态与命令执行状态,执行云端下发的采集策略,变更采集方案,实现所有广播电视音视频数据按需分类、分时采集。软件测试阶段,发现前期测试始终存在指令丢失的情况,后经反复测验,发现本策略对网络时间同步、数据可靠传递要求较高,需要引入GPS校时系统,以解决网络设备时间不统一的问题。在自动切换策略时间的过程中,专网网段采用统一的GPS校时服务器,并在采集端C/S软件嵌入校时功能,确保整个网络内设备时间一致。同时对Socket通信数据进行编码校验,采用8位2进制数顺序累加做校验,一旦校验失败便启用数据重传机制,确保数据传输稳定、可靠,无指令数据丢失或错乱。指令收到后,返回执行状态,以使云端准确收到各设备采集端切换策略的执行情况。
2自动切换策略的实现
在实际应用中,广播电视音视频采集策略会根据业务需求变化,业务需求又分为周期性变化与临时性非周期变化。云策略变更的命令下发后,采集集中控制服务器接收采集前端的命令,并将采集策略转化为采集指令,根据采集策略规定的时间启用或停止某一类广播电视音视频数据采集。同时使用C#Process类对采集服务进程进行实时监测,以掌握采集命令执行是否成功,采集端进程是否正常启用或者关闭,并将所有进程终止与启动情况记入前端log文件,并阶段性回收至云端数据库。前端采集服务存在一定的差异性,硬件不同,驱动不同,使用C#语言,依托不同硬件的DLL封装文件,将采集服务最小分割,并打包存储,由采集端控制软件集中调用。在采集集中控制服务器存储config配置文件,将周期性、预期性采集策略的变更存储其中,依靠定时器触发采集策略的变更,实现自动切换采集策略。采集策略一旦变更,需要对采集数据进行抽样测试,如发现数据开启采集仍未回传、数据关闭采集仍有回传等切换失败的情况,需要对采集进程进行2次校验操作,即回复之前策略,校验数据采集状态,再重新执行采集切换策略。
3采集状态实时监测、记录与预警
广播电视音视频采集对实时性与采集质量要求很高,一旦因前端软件或设备故障影响采集,势必影响下游业务,因此需在采集前端控制软件中增加监测、记录与预警的功能,对采集进程实时监控,一旦采集进程卡死或进程终止,需立即激活采集服务重启响应采集任务。同时将所有采集状态通过Socket通信反馈至云端服务器,云端服务器将所有采集设备的运行状态计入数据库中,形成采集状态记录并报警,便于对采集前端的设备软件故障进行及时处理,同时也有利于积累长期的采集数据,用于日后数据汇总分析。在测试中发现,采集策略切换失败主要由前端C/S软件通信数据堵塞、软件卡死、内存溢出、config配置文件读写错误等问题引起,一般重启前端软件后即可恢复正常。多次测试发现,广播电视音视频数据采集量大,采集时间长,设备一直满负荷运转,因此需要对前端软件定时重启。后期完善中,增加采集端软件进程监视模块,并在每天23:59:59对前端软件自重启,对16台前端设备分组测试,累计测试7天,A组使用定时重启功能,B组不使用该功能,测试结果表明,A组7天内未发生切换失败故障,B组7天内仍有2次切换故障,故引入定时重启可确保软件运行正常。
4总结
关键词:EPPCPLDFIFO数据采集
数据采集系统中,通过微机COM端口的RS-232串行通讯及通过微机并行端口的并行通讯具有开发使用方便的特点,前者可与工作于11.0592MHz晶振下的8052单片机在波特率115200时,实现10ksps(samplespersecond)的连续数据采集和传输而不丢失数据,若要达到更高速率的数据采集,可以通过并行口通讯方式实现。当前微机均可通过配置CMOS,将基地址为378H的并行口设置为EPP模式以支持通过数据口双向传输通讯,并由芯片硬件自动产生握手信号,实现高速传输的目的。
为充分实现EPP模式的高速特性,外设应当及时响应EPP的握手信号,当数据采集系统工作于非实时多任务的WIN98操作系统环境下,为实现数据高速、均匀性采样,还需要在外设配置必要的数据缓冲存储器。如果数据采集速率低于EPP模式数据读入平均速率,就可能实现数据的连贯有效性。有资料[1]说明在EPP模式,可实现500kBytes/s以上的传输速率,这表明通过EPP模式,可以实现500ksps的数据采集系统。通过对EPP模式的深入实验分析,发现要实现500ksps,外设硬件及微机软件程序均要采取一些策略:硬件上必须配置FIFO数据缓冲存储器,才能协调数据采集严格的时间间隔要求与数据传输给微机的非实时、非均匀性之间的矛盾;软件程序方面应当采取双字读的方法,否则EPP模式下仅能实现250kBytes/s数据读取可行性。
1EPP模式读取速率的实验分析
图1为实验EPP模式读取速率的电路,实验程序为
Delphi结合内嵌汇编语言,涉及EPP读取的关键代码如下:
FUNCTIONREADDATA:BYTE;
VAR
STARTTIME,STOPTIME,DELAY:INT64;
NUMBER:LONGWORD;
QUERYPERFORMANCECOUNTER(STARTTIME);
FORNUMBER:=0TO999999DO
BEGIN
ASM
MOVDX,$37C
INAL,DX
MOVRESULT,AL
END;
END;
QUERYPERFORMANCECOUNTER(STOPTIME);
DELAY:=STOPTTIME-STARTTIME;
END;
此为循环1000000次读取EPP数据口程序,循环仅为方便用计时及示波器观察而设,并在执行前后分别读取系统计数值,DELAY值除以1.2后为执行花费的时间(单位为微秒),执行前先通过对地址379H的D0位写入高,使该位为低(注意:对该位写入低通常不能达到使该位变为低的目的,只有采取写入高才能使该位变为低),以清除EPP超时位,当A、B点均为低时,可实现最快的EPP握手,若A为高、B为低时,由于EPP周期开始时满足WAIT为低的要求,EPP自动在DATASTB处输出低,但因WAIT没有出现表示应答的高状态,EPP在延时10μs后,将DATASTB恢复为高以结束该次EPP访问过程,并置超时位。稍后因WAIT为低再次开始一次EPP访问过程,如果B为高,则WAIT为高,不能满足EPP的开始条件,故DATASTB保持为高,EPP在延时10μs后结束该次EPP访问过程,并置超时位。在发生超时情况下,数据仍然可正确读入
(这一特性与笔者所查资料[1]有出入),此结论可通过对比循环前后时间差来及实际读入数据值证实。
注意程序循环中并未执行清除EPP超时位的指令,根据笔者实验,即使已发生EPP访问超时,也不影响下一次的EPP读周期(包括对37BH的地址读及对37CH的数据读),但超时对EPP写周期有影响,在清除超时位之前,EPP写周期无效(因本文不涉及EPP写周期的内容,此处不再展开探讨)。在图2所示意波形中,当有正确握手的EPP读周期执行时间约为1.5μs,此时间是字节模式下一次有效EPP访问所需最短时间,在这段时间内,“INAL,DX”这一条指令占据了约90%以上的访问时间,验证此点仅需临时屏蔽“INAL,DX”指令,并比较所花费的时间差别即可。1.5μs相当于接近700kBytes/s的数据读速率。如果以“INEAX,DX”替代“INAL,DX”指令,可以充分利用EPP模式下硬件将4个8位数自动合并为1个32位数的特性,在一次I/O访问中由硬件自动产生4个DATASTB负脉冲从而实现4个字节的输入。因为一次字节模式的I/O访问所费时大约间需要1.5μs,减少这类指令的执行次数有利于实现更高速的EPP访问过程,经实验发现以4字节方式访问的EPP过程可以在3.2μs内读取一次,即平均每字节需0.8μs,相当于1.2MBytes/s,此实验结果是基于外设可以连续不断的输送数据理想前提,实际上要实现有效的数据传输,可得到的速率要低于该值。
2WIN98下高速EPP接口的构成
在WIN98环境下,由于非实时多任务的特性,运行于RING3的应用程序频繁作系统打断,这决定了靠软件无法实现连续均匀的数据采样,只有在硬件上配置数据缓冲存储器并及时传入微机以免数据缓冲存储器溢出。只要保证一定深度的数据缓冲存储器,且满足数据传输平均速率大于数据采样速率,就能将所采集的数据传入微机的大容量内存,以备处理。在硬件构成方面,为以较低代价获得大容量的FIFO数据缓冲存储器,采取CPLD器件结合512KB的SRAM方式,实现,由CPLD器件完成读写控制的FIFO特性及EPP模式的应答握手信号。接口结构及CPLD内部功能模块见图3所示,数据在CPLD控制下,以2μs的固定速率存入SRAM环状连续增量地址,因为EPP模式读取速率与数据采样的固定速率是异步的,控制逻辑为保证2μs的固定采样速率,当采样时间点到达时,不论当前是否处于EPP应答处理期间,优先执行数据采样,因为处理是在系统时钟脉冲驱动下的硬件行为,仅存在固定的传输延时,故两次采样间隔是严格保证的。
EPP模式的读取平均速率必须高于数据采样速率,一旦FIFO数据读空必须让微机正确处理,由前述实验可知,每次字节方式I/O执行时间约为1.5μs,如果通过在EPP的状态口(379H)的保留位输入代表FIFO读空的信号,则每完整读取均要执行两次I/O指令:EPP数据读及EPP状态读,至少需3μs完成读取一个字节,这也是通常方式能达到的最快有效读取速率。当采用双字读读及EPP状态读的方式时,需4.8μs完成4个数据字节读取,但此方式需要处理的一个问题:由于双字方式EPP数据读由硬件自动产生4个EPP数据读周期,当其执行完毕,执行EPP状态读发现FIFO已空,微机软件无法判别在从第几个EPP数据读周期开始FIFO为空,从而影响对数据队列的正确排序,故CPLD逻辑应当在FIFO队列还有至少4个未读数据时必须发出读空信号,微机程序应当在每次EPP开始前执行读取状态口的指令,以决定是否可以开始EPP数据读周期,从上分析可以看出为实现有效的EPP数据读取,平均每字节至少需要1.2μs,即可
以获得最快约800kBytes/s的数据传输速率。因500ksps的数据采集设计速率仅略低于800kBytes/s的数据传输速率,考虑WIN98工作环境,配置大容量的FIFO十分必要,采用大容量SRAM与CPLD器件构成FIFO,具有成本较低的优点,通过使用VHDL的行为描述,经CPLD器件开发软件的编译、综合、仿真、适配、下载,实现所需要的控制逻辑。根据设计,当数据锁存输出的下一个时钟脉冲(即83ns后),WAIT将输出为高电平,EPP在此时读取数据口信号,如果不采用外部缓冲驱动器,数据上升过程将耗时80ns,对EPP数据接收可靠性有不容忽视的影响,为减小电缆电容的影响,数据输出使用了74ALS574芯片作缓冲,其高电平输出能力达15mA,是ispLSI1032高电平输出能力的3.5倍,在电缆电容有100pF时,23ns可达到3.5V的逻辑高电平,保证数据接收可靠性。
仿真波形参见图4,出于方便,仿真时钟设置为12.5MHz。系统每24个时钟脉冲产生一次数据采集,仿真采样速率521ksps。数据由DIN[7:0]输入,通过CPLD内部数据输入触发时钟(该时钟同相缓冲后形成RAMOE脉冲,持续宽度为两个系统时钟)的上升沿锁存,并控制地址选择器将写地址输出到ABUS上,在RAMOE为高期间,DBUS开放三态数据触发器输出使能,使被锁存的8位数据经DBUS输出,数据输入触发时钟过后一个系统时钟,RAMWR产生一个系统时钟宽度的负脉冲,控制SRAM将DBUS上的数据写入,再下一个系统时钟的上升沿,RAMWR变高,RAMOE变低使SRAM输出有效,三态数据触发器恢复为高阻状态,ABUS变为待读数据地址,完成一次数据采集、存储过程。微机软件执行EPP数据读前先读取状态口(379H)以判别READ_EN是否有效,当READ_EN为高时,可以执行EPP数据读周期,CPLD在同步DATASTB_IN的下降沿后,产生一个宽度的OUTCLK输出锁存脉冲,其上升沿将相应待读地址的SRAM数据锁存于外部74ALS574,下降沿使WAIT_OUT上升,形成EPP模式的应答握手信号。WAIT_OUT在DATASTB_IN的上升沿异步复位以响应下一次EPP模式访问。数据写入优先于数据读取,当到达固定的采样间隔点时,CPLD总是推后OUTCLK及WAIT_OUT的执行,待采样并存储完毕才继续被暂缓的EPP应答,在设计中,数据的采样及存储需要两个系统时钟周期共167ns,远低于EPP的超时参数,故有充分的时间正确地完成EPP握手。图4仿真了数据读空状态,在图中部,READ_EN信号存在一个低电平区域,此负脉冲前,根据RAMWR个数可知当时采样了11个数据,根据OUTCLK个数可知读取了8个数,剩下3个数不足以提供EPP执行双字读的操作,如果此时微机需要访问EPP,在其对状态口的读取中,因得知READ_EN无效而暂缓EPP的执行,当再次完成一次数据采样后,达到至少存在4个未读数据的条件,READ_EN重新变为有效,可供微机读取。
关键词:通用串行总线实时数据采集设备固件驱动程序
在现代工业生产和科学技术研究的各行业中,通常需要对各种数据进行采集。目前通用的通过数据采集板卡采集的方法存在着以下缺点:安装麻烦,易受机箱内环境的干扰而导致采集数据的失真?熏易受计算机插槽数量和地址、中断资源的限制,可扩展性差。而通用串行总线USB(UniversalSerialBus)的出现,很好地解决了上述问题,很容易实现便捷、低成本、易扩展、高可靠性的数据采集,代表了现代数据采集系统的发展趋势。
1系统硬件设计与实现
1.1硬件总体结构
基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,其硬件总体结构如图1所示。多路模拟信号经过模拟开关传到A/D转换器转换为数字信号?熏单片机控制采集,USB接口芯片存储采集到的数据并将其上传至PC,同时也接收PC机USB控制器的控制信息。
1.2PDIUSBD12芯片
USB接口芯片采用Philips公司的一种专用芯片PDIUSBD12(以下简称D12)。该芯片完全符合USB1.1规范,集成了SIE、320B的多配置FIFO存储器、收发器、电压调整器、SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等,支持双电压工作、完全自动DMA操作、多中断模式,内部结构如图2所示。
单片机通过8位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎SIE立刻对数据进行处理,包括同步模式识别、并/串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定,处理完毕后数据由模拟收/发器通过D+、D-发送至PC。上述过程遵循USB1.1协议。D12与89C51的具体实现电路如图3所示。
2系统软件设计与实现
系统软件包括USB设备固件编程、驱动程序和应用程序。其中设备固件是整个系统的核心,它控制芯片D12采集数据、接收并处理USB驱动程序的请求和应用程序的控制指令。
2.1USB设备固件程序设计与实现
设备固件是设备运行的核心,用C语言设计。其主要功能是控制A/D模块的数据采集;接收并处理驱动程序的请求,如请求描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB1.1标准请求;控制芯片D12接收应用程序的控制指令等。其程序主框图如图4所示。单片机检测到D12后进入主循环。此时PC机先发令牌包给D12,D12接收到令牌包后给单片机发中断,单片机据中断类型设定标志位Status;最后执行相应标志位的中断服务程序。单片机通过A/D模块的中断入口控制A/D模块的数据采集。
2.2驱动程序设计与实现
USB系统驱动程序采用分层结构模型:较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由通用串行总线驱动程序模块(USBD)和主控制器驱动程序模块(HCD)组成。
图3PDIUSBD12与89C51的具体实现电路
为使驱动程序具有通用性,也为简化应用程序的开发,编写了供应用程序调用的动态链接库。这样应用程序只需调用此库提供的接口函数即可完成对USB设备的操作。USB函数层(USBD及HCD)由Windows98提供,负责管理USB设备驱动程序与USB控制器之间的通信、加载及卸载USB驱动程序等。目前Windows98提供的多种USB设备驱动程序并不针对实时数据采集设备,因此采用DDK开发工具设计专用的设备驱动程序。其由四个模块组成:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。
初始化模块提供一个DriverEntry入口点执行一系列的初始化过程。
即插即用管理模块实现USB设备的热插拔及动态配置。当Windows98检测到USB设备接入时,查找相应的驱动程序,并调用它的DriverEntry例程,PnP管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备;然后驱动程序为USB设备建立一个功能设备对象。在此过程中,驱动程序收到一个IRP_MN_START_DEVICE的IRP,包括设备分配的资源信息。至此,设备被正确配置,驱动程序开始与硬件进行对话。电源管理模块负责设备的挂起与唤醒。
I/O功能实现模块完成I/O请求的大部分工作。当动态链接库提出I/O请求时调用Win32API函数DeviceToControl向设备发出命令;然后由I/O管理器构造一个IRP并设置其MajorFunction域为IRP_MJ_DEVICE_CONTROL。USB设备驱动程序收到该IRP后取出其中的控制码,并利用一个开关语句找到对应的例程入口。
2.3应用程序设计与实现
应用程序采用VisualBasic6.0编写。由于其只需调用动态链接库,故开发较简单。主要功能包括检测USB设备、开启/关闭USB设备、设置A/D状态和数据采集端口、显示并分析实时采集的数据。主框图如图5所示。
由于D12的端点1的FIFO为16字节,端点2的FIFO为64字节,当缓冲区存满后自动将数据打包,由SIE自动发送数据包。程序获得数据包后需延迟至下组数据包准备完毕,从而保证程序与数据采集同步。另外程序还发出停止采集和关闭USB设备的命令。
3系统特点
基于USB总线的实时数据采集系统严格遵循USB1.1协议,有以下特点:
(1)易于扩展。最长传输距离5m,采用USBHub可达30m;最多可同时接127个设备。
(2)电磁干扰影响极小。本系统放置在计算机外部,不受板卡间的电磁干扰影响;若在电磁干扰极强的环境下工作,需专门为其设计电磁屏蔽方案。
(3)安装方便,支持即插即用。克服了以往数据采集板卡需要打开机箱的麻烦。
VantagePro电子气象站是美国戴维斯公司(DavisInstrumentsCorp.)面向气象服务、面向移动服务的小型气象站[5]。体积小,重量轻,功耗小,集成度高,安装简单,长期工作稳定可靠。气象站由传感器单元(ISS)、显示控制器(CONSOLE)和记录器软件(WeatherLink)组成[6,7]。有线站传感器(ISS)上的信号由有线传送到显示控制器上,电缆线长度30米;无线站传感器(ISS)上的信号由无线传送到显示控制器上,距离大约200-300米。VantagePro也是目前国内外天文领域应用得较广的全自动气象站之一,在远程自主观测等方面应用较广。VantagePro可以测量空气温度、空气相对湿度、风向、风速、雨量、气压、太阳辐射和紫外辐射,组成8要素电子气象站。还可扩展对土壤温度、土壤湿度及叶面湿度等气象要素进行观测。与一般的气象站不同,VantagePro采用了所谓的一体化传感器单元(ISS),通过ISS接口板接收数据并转发至CONSOLE(显示控制器)或连接的计算机中,其中温湿度传感器在白色百叶式防辐射罩内,翻斗式雨量计的翻斗在雨量筒内。各传感器信号线均接入到ISS接口板中。ISS通过其外部所带太阳能板供电,盒内装有一块3伏锂电池,用于夜间及无日照时的供电[8]。CONSOLE显示控制器,用来在未连接计算机单独显示气象信息时的状态。但由于当前MUSER采用计算机实时采集,因此CONSOLE并不需要配置。
1.1通信协议VantagePro中数据传输和命令控制使用串行通信协议,即RS232C串口通讯协议标准。RS232C串口通信协议的包含,8个数据位,1个起始位,1个停止位,无奇偶校验位。通信协议中的波特率设置为4800比特。用RS232C串口通信协议中的DB9(9针D型串口)。VantagePro的串行端口的命令格式可以表示为下面的格式:<参数名称—十进制数字><参数名称—十六进制数字><参数名称—二进制数字>这三种格式。十进制和十六进制数字可以用ASCII替换。二进制数字发送字符值。每个命令之后都要紧跟着一个换行符(\n)。
1.2数据格式VantagePro通过串口获取气象数据,实际传送的气象数据为99个字节的数据包,如表1所示,从1-99对数据包编号,提取的数据用括号给出了注释,括号中逗号之前的内容表示字段含义,逗号之后的内容表示测量值的单位。数据包的具体格式如表1所示。
2实时气象数据拆分与归档
在MUSER的应用中,将各个ISS采集的气象因子数据直接通过RS232C串口通信协议将采集的数据传到操作系统为LINUX的计算机,通过该接收机器上的数据请求与拆分程序将RS232C传送的气象因子数据包实时拆分出需要的气象因子并归档到MySQL数据库和Redis高速缓存中。同时数据合并程序自动合并同价值的数据,将最新的数据存到Redis中。系统整体结构如图1所示。
2.1初始化串口数据的接收和归档以驻留程序方式运行在服务器上,图2显示了实时气象数据拆分与处理的初始化流程。气象因子的记录器对象主要暂时存储拆分处理后的气象数据,气象因子读取器对象负责读取数据包中记录的特定气象因子的测量值。由于VantagePro气象站测量的气象因子的值与要归档值的单位不一致,因此也需要气象因子的修正器对象来对测量的原始值进行修正。
2.2数据的拆分与处理系统的初始化后,采集程序定时从串口接收数据,首先获得采集时间并转换为1970年到现在的秒数,并向VantagePro请求一个数据包,接着就是处理收到的气象数据包。PC上实时气象数据的拆分与处理的流程如图3所示。图3中的时间秒数的定义为从1970年1月1日0时0分0秒到此时的秒数。相邻的两个时间秒数之间相差60秒,即1分钟。数据的采样周期也是1分钟。时间秒数用来唯一表示气象因子的采集时间或采样时间,同时也作为Redis存储中可分类的集合中Score的值。
2.3气象数据的存储将采集的气象数据保存到MySQL数据库中,同时为了提高查询速度,使用Redis作为高速缓存。MySQL数据库中数据表的定义如表2所示。Redis是一个Key-Value存储系统[10]。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。Redis的功能可以理解为一个Key-Value的数据结构操作,数据都保存在内存中定期刷新到磁盘,以及提高的读写效率。Redis数据库通过两种方式可以实现数据持久化:使用快照的方式将内存中的数据不断写入磁盘和将操作记录记录在磁盘文件中。因为需要在Redis执行范围查询,我们使用有序集合SortedSets存储气象数据,集合结构中使用时间秒数作为score,气象数据的实际值为其value值。而Key的值为气象的统计因子,如温度(temperature)、湿度(humidity)等。比如将2015年1月29日16时26分05秒采集的温度的值17℃存储到Redis的命令为:redis127.0.0.1:6379>zaddiss.temperature142252110017。
2.4拆分存储实例在如下的气象数据拆分与归档的例子中,以测量室外温度的传感器iss.temperature为例。其它气象因子数据的拆分与归档和气象因子(室外温度)的处理情况类似。步骤如下:1)开始采样时间为2015年1月29日16时26分05秒,将该时间转换成1970年以来的时间秒数,为1422521100。2)向VantagePro发送命令LOOP1命令,请求一个99字节的数据包。接收端到气象站响应的数据包,数据包的内容如图5所示。3)传感器iss.temperature的读取器从数据包中偏移量为12的位置读取2个字节,其十六进制值为001d。读取器对象将001d转换成十进制的29。4)传感器iss.temperature的修正器将传感器的29F修正为2.900000F,然后再将2.900000F转换成-16.166667℃。(温度传感器记录的测量值是实际测量值的10倍,其它值的倍数详见表1)5)传感器iss.temperature的记录器将-16.166667℃更新到记录器对象中。6)将传感器的值归档到MySQL和Redis中。7)更新下一次采用时间,循环步骤1-7。
3气象数据合并与快速检索
3.1气象数据的合并一般情况下将采集到的气象数据处理成特定格式后直接追加到数据库中,然而随着时间的积累,数据库中的记录数会急剧增加。相应地检索某一个时间段的天气状态所需的时间也会增加,不能满足MUSER的高效数据处理的要求。由于连续时间段的天气状态可能相同。例如在2014-6-610:00:00到2014-6-610:00:59这一分钟采集到的天气状态为晴天,而在接下来的59分钟的时间内采集到的天气状态都为晴天。通常情况下是将这60条记录全部存储到数据库中,然而改进的归档方法是合并这60条记录为一条记录。当检索落在这一合并后的时间段天气状态时,仍然可以检索到要检索时间段的天气状态为晴天,这样做和从60条记录中检索到的天气状态一样都是晴天,保证了合并后的数据仍然是有效的。如果一天要归档的所有采集到的天气状态都一样,那么采用合并方法,数据库中存储一条记录就可以记录这一天的天气状态。但是如果采用传统的数据归档方式,记录一天的天气状态就需要24*60条记录,这样不仅浪费了存储空间,同时影响到检索效率。
3.2快速检索数据合并一定程度上可以加快检索速度,但对于具体值的气象采集因子,如需要在每个UVFITS文件中存储的温度,湿度值,是无法采用数据合并的,数据量仍非常大。为了进一步提高查询速度,使用Redis作为高速缓存。数据查询时首先访问Redis,只有当Redis访问失败时或者在Redis中找不到数据时才访问MySQL,并将从MySQL获得的数据更新到Redis中。MUSER中最常用的气象数据查询模式是根据观察时间查询气象数据,因此使用有序集合SortedSet,SortedSet是Set的一个升级版本,它在Set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的MySQL表,一列存储具体的值,一列存顺序,也就是气象数据的时间。操作中key理解为zset的名字。查询时根据观察时间和气象因子可以获得该时刻的具体气象数据。比如查询时间2015年1月29日16时26分05秒的温度的值,首先将该时间转换成1970年以来的时间秒数,为1422521100,在Redis上执行如下查询命令:redis127.0.0.1:6379>zrangebyscoretemperature1422521100+infLIMIT01这条命令的意思是在键值为temperature的SortedSets中查找大于时间点1422521100的第一个值。+inf在Redis中表示正无穷大。
4结论
加速加载试验条件下,选定的主要动态力学技术指标需要考虑路面结构设计中设计指标及其对路面结构疲劳和永久变形的控制作用。下面从技术指标的选择、传感器选型和埋设原则与数据采集等方面进行讨论。
1.1技术指标的选择依据在加速加载试验过程中,监测的动力学指标主要包括如下4项:(1)面层底部弯拉应变对通车初期的沥青路面,路面结构整体刚度较大,层间结合良好,此时在重复荷载的作用下,沥青面层以受弯拉应变作用为主而呈现出明显的拉压应变交替状态,监测面层底部的弯拉应变将贯穿于整个加速加载试验过程,进而作为评价沥青路面发生疲劳损伤的标志性力学指标之一。(2)基层顶部竖向压应变用于评价沥青路面车辙变形的力学指标。(3)面层底部水平横/纵向剪应变对于半刚性基层沥青路面来说,面层与基层的层间黏结性能较差,面层底部的水平横纵向剪应变可以破坏面层和基层的联结导致面层失去基层的水平约束,成为滑动状态,此时不但增加面层底部的弯拉应变,减小疲劳寿命而且增大沥青混凝土的流动性,容易形成裂纹等多种破坏形式。(4)面层/基层中间水平横/纵向最大剪应变在横/纵向剪应变的作用下,沥青混凝土和水泥稳定类材料产生横/纵向流动变形,此项指标用于评价面层和基层因材料的流动变形导致的各种破坏。
1.2传感器选型的基本原则传感器的选择受到传感器测量原理、封装材料、工作条件规格等因素的限制,成为了系统设计至关重要且颇具难度的问题。选择沥青路面结构力学响应监测的传感器应考虑的问题包括如下3方面:(1)传感器的结构和尺寸规格不能影响道路的使用性能J.RichardWillis在总结美国路面加速加载试验中路面内部参数采集的实践经验时认为结构内部的参数采集对于加速加载试验的成功具有重要意义,因埋设传感器造成压实度不足,有可能引起路面结构产生早期损坏[1]。引起传感器附近压实度不足的原因,一是因为传感器封装材料不耐热、不耐压,需要施工后埋设,进而导致埋设传感器位置的混合料与周围路面混合料存在着明显的离解面,二是因为传感器的结构和尺寸规格超出了沥青面层或基层的厚度限制,影响了压实的均匀性。(2)传感器需具有较高的成活率、准确性和重复性Sebaaly等从传感器选型、安装、检测的角度认为,传感器的自身成活率、结果准确性、重复性、稳定性、成本等是选择传感器的标准;对于施工过程中埋设和工后钻芯埋设两种方法,认为工后钻芯埋设的方法,由于采用了树脂作为粘结剂,明显增大了结构强度,造成测量结果不准确。
1.3FBG传感器在路面动力监测中的应用FBG传感技术是十多年来发展最为迅速的传感技术,具有灵敏度高、体积小、防水、抗电磁干扰、能进行长期实时在线监测、易于集成形成传感网络等特点,目前在土木工程、航空航天等领域得到了广泛的应用。王川基于PP-OFBG传感元件[2],通过设计PP树脂基体模量与沥青混凝土模量相当,研制开发出主要针对于沥青路面应变监测的PP-OFBG埋入式应变传感器,并进行了传感性能试验研究。通过进行沥青混凝土梁的四点弯曲静载及动载试验并与理论计算进行了对比研究,发现这种传感器能够很好地反映出沥青混凝土的变形特征。刘艳萍针对传统的光纤光栅传感器模量大、尺寸大,直接拿来用于沥青路面的测试,不能反映沥青路面的真实应变的缺点,研发了一种橡胶封装FBG竖向应变传感器用于测量沥青路面的竖向应变[3]。结果表明,橡胶封装FBG应变传感器的自身的传感性能良好,但是用于实际沥青混凝土路面的埋设工艺还有待进一步研究。通过对近几十年来国内外路面内部检测手段的调研发现,在路面结构内部埋设传感器来监控路面内部的工作状态是路面领域一种经典的研究手段,测量结果可用于标定路面响应模型、进行施工质量监控、养护政策制定、新型结构与材料评价等。测量结果的代表性与准确性对后续工作有着决定性的影响。
1.4FBG动力响应监测系统基于FBG传感器灵敏度高、体积小、防水以及测值稳定、能进行长期实时在线监测等优点,本文选用FBG力学传感器监测沥青路面的动态力学响应。项目搭建的FBG动态力学响应监测系统如图2所示。系统由数据采集仪、通道扩展模块和传感器组成,其中传感器包括FBG水平、竖向应变传感器和FBG土压力传感器。
1.5传感器的布设和埋置设计传感器布设方案所遵循的原则如下:(1)选用的传感器需全面反映路面结构各层位敏感位置(结构层底部和中部)各项力学性质;(2)埋设传感器的数量需考虑传感器成活率,以同方向、多断面方式布设多组传感器以保证成活率;(3)考虑路面结构各层位相似位置的动态力学特性的比较,传感器的埋设在深度方向上需按相同平面位置布设。依据上述原则,传感器布设方案示意图如图3所示。由图3可见,在路面结构内部共计布设3层、8个断面的力学传感器,分别安置于面层底、基层底和垫层底三个位置,其中面层底部和基层底部包括压应变传感器、水平横向传感器和水平竖向传感器,垫层底部包括压应变传感器和土压力计。按此传感器布设方案埋设传感器,在路面施工完成后,还需要检测传感器的成活率。
1.6弯沉数据的采集由于FWD的应用较为广泛且较为成熟,国内外对于FWD的测量均有相关的操作规程或规范予以规定,因而在加速加载数据采集过程中无需特殊考虑FWD检测如何与加速加载试验的配合,但是需要注意的是:(1)FWD测点在加载内需均匀分布并且沿着加载带的纵向中轴线排布,测点数量不易较多,一般取6~8个为宜;(2)FWD侧点的位置需避开结构内部力学传感器的位置,以免结构内部的力学传感器影响FWD的测量精度;(3)为了考虑FWD数据的后续处理中对温度影响的修正,除了在加载段内排布测点外,还需在加载带外设置测点,测点数量取3~4个为宜;(4)对弯沉数据的处理需要进行反算模量的转换,为此FWD需要具有9个传感器。按照上述FWD测量需要考虑的问题,辽宁省半刚性基层路面的FWD测点设置如图4所示。FWD的测量按照《公路工程路基路面现场测试规程(JTGE60-2008)》的规定实施。通常,试验过程中,每加载10万次测量1次弯沉,有时可根据实际需要增加测量频次。
2表面服务功能数据采集
表面服务功能的评价指标,包括摆值、构造深度、渗水系数和车辙深度,这些技术指标的检测方法均按照《公路路基路面现场测试规程(JTGE60-2008)》相关规定实施。各项技术指标的测量要求和测量频次具体如下所述。
2.1车辙断面的测量试验记录的车辙断面形态如图5所示。采用MLS66开展加速加载试验,将抗车辙能力测试与抗疲劳和水损害测试分别选取两个加载段。为了研究路面全寿命周期内车辙深度的发展变化规律,在抗车辙能力测试和抗疲劳测试过程中都需要检测不同加载阶段的路面车辙断面。在抗疲劳测试过程中,无横向轮迹分布的情况下,加载位置固定,在两个加载轮的轮迹处的路面易于形成凸起,由此影响车辙深度的计算,因此,需根据实际情况选绝对车辙深度和车辙深度作为抗车辙能力的评价指标。试验按照《公路路基路面现场测试规程(JTGE60-2008)》中的方法测量车辙断面,选择的断面位置应遵循在有效轮迹带内均匀排布的原则,选取2~3个断面位置,每加载10~20万次测量1次,取各断面车辙深度计算结果的平均值作为最后的测量结果。
2.2抗滑和防水性能的测量测量方法按照《公路工程路基路面现场测试规程(JTGE60-2008)》的规定,每加载10~20万次测量1次,均匀选取轮迹带内4个位置,取各测点测量结果的平均值作为最终测量结果。
3路面工作条件
路面工作条件是指自然环境条件和行车荷载。加速加载试验条件下,通过加热和降水装置实现自然环境对路面作用的模拟。进行动载条件下路面性能分析需要考虑路面结构内部温湿度的分布状态,因此,试验过程中需要定期监测路面结构内部的温湿度数据。同时,试验过程中,需经常确认加载轴载是否稳定在预设轴载及其误差范围之内,路面工作条件检测还包括对加载轮轴载的实时监测。
4结论与展望
1虚拟仪器的特点和构成
1.1虚拟仪器的特点
与传统仪器相比,虚拟仪器具有高效、开放、易用灵活、功能强大、性价比高、可操作性好等明显优点,具体表现为:
智能化程度高,处理能力强虚拟仪器的处理能力和智能化程度主要取决于仪器软件水平。用户完全可以根据实际应用需求,将先进的信号处理算法、人工智能技术和专家系统应用于仪器设计与集成,从而将智能仪器水平提高到一个新的层次。
复用性强,系统费用低应用虚拟仪器思想,用相同的基本硬件可构造多种不同功能的测试分析仪器,如同一个高速数字采样器,可设计出数字示波器、逻辑分析仪、计数器等多种仪器。这样形成的测试仪器系统功能更灵活、更高效、更开放、系统费用更低。通过与计算机网络连接,还可实现虚拟仪器的分布式共享,更好地发挥仪器的使用价值。
可操作性强,易用灵活虚拟仪器面板可由用户定义,针对不同应用可以设计不同的操作显示界面。使用计算机的多媒体处理能力可以使仪器操作变得更加直观、简便、易于理解,测量结果可以直接进入数据库系统或通过网络发送。测量完后还可打印、显示所需的报表或曲线,这些都使得仪器的可操作性大大提高而且易用、灵活。
1.2虚拟仪器的构成
虚拟仪器的构建主要从硬件电路的设计、软件开发与设计2个方面考虑。
硬件电路的设计主要根据用户所面对的任务决定,其中接口设计可选用的接口总线标准包括GPIB总线、VXI总线等。推荐选用VXI总线。因为他具有通用性强、可扩充性好、传输速率高、抗干扰能力强以及良好的开放性能等优点,因此自1987被首次推出后迅速得到各大仪器生产厂家的认可,目前VXI模块化仪器被认为是虚拟仪器的最理想平台,是仪器硬件的发展方向。由于VXI虚拟仪器的硬件平台的基本组成是一些通用模块和专用接口。因此硬件电路的设计一般可以选择用现有的各种不同的功能模块来搭建。通用模块包括:信号调理和高速数据采集;信号输出与控制;数据实时处理。这3部分概括了数字化仪器的基本组成。将具有一种或多种功能的通用模块组建起来,就能构成任何一种虚拟仪器。例如使用高速数据采集模块和高速实时数据处理模块就能构成1台示波器、1台数字化仪或1台频谱分析仪;使用信号输出与控制模块和实时数据处理模块就能构成1台函数发生器、1台信号源或1台控制器。专用接口是针对特定用途仪器需要的设计,也包括一些现场总线接口和各类传感器接口。系统的主要硬件包括控制器、主机箱和仪器模块。常用的控制方案有GPIB总线控制方式的硬件方案、MXI总线控制方式的硬件方案、嵌入式计算机控制方式的硬件方案3种。VXI仪器模块又称为器件(devices)。VXI有4种器件:寄存器基器件、消息基器件、存储器器件和扩展器件。存储器器件不过是专用寄存器基器件,用来保存和传输大量数据。扩展器目前是备用件,为今后新型器件提供发展通道。将VXI仪器制作成寄存器基器件,还是消息基器件是首先要做出的决策。寄存器基器件的通信情况极像VME总线器件,是在低层用二进制信息编制程序。他的明显优点在于速度寄存器基器件完全是在直接硬件控制这一层次上进行通信的。这种高速通信可以使测试系统吞吐量大大提高。因此,寄存器基器件适用于虚拟仪器中信号/输出部分的模块(如开关、多路复用器、数/模转换输出卡、模/
数转换输入卡、信号调理等)。消息基器件与寄存器基器件不同,他在高层次上用ASCII字符进行通信,与这种器件十分相似是独立HPIB仪器。消息基器件用一组意义明确的“字串行协议”相互进行通信,这种异步协议定义了在器件之间传送命令和数据所需的挂钩要求。消息基器件必须有CPU(或DSP)进行管理与控制。因此,消息基器件适用于虚拟仪器中数字信号处理部分的模块。
软件的开发与设计包括3部分:VXI总线接口软件、仪器驱动软件和应用软件(软面板)。软件结构如图1所示。
VXI总线接口软件由零槽控制器提供,包括资源管理器、资源编辑程序、交互式控制程序和编程函数库等。该软件在编程语言和VXI总线之间建立连接,提供对VXI背板总线的控制和支持,是实现VXI系统集成的基础。
仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序,也即模块的驱动软件,他的设计必须符合VPP的2个规范,即VPP3.1《仪器驱动程序结构和模型》和VPP3.2《仪器驱动程序设计规范》。
“软面板”设计就是设计具有可变性、多层性、自、人性化的面板,这个面板应不仅同传统仪器面板一样具有显示器、LED、指针式表头、旋钮、滑动条、开关按钮、报警装置等功能部件,而且应还具有多个连贯操作面板、在线帮助功能等。
2虚拟仪器在数据采集中的应用
利用虚拟仪器制作数据采集器可以按照硬件设计、软件设计两个步骤来完成。
2.1硬件设计
硬件设计要完成以下内容:
1)模/数转换及数据存储
设置具有通用性的数据自动采集系统,一般应满足能对多路信号尽可能同步地进行采集,为了使所采集到的数据不但能够在数据采集器上进行存储,而且还能及时地在采集过程中将数据传送到上位机,选用存储量比较适中的先进先出存储器,这样既能满足少量数据存储的需要,又能在需要实时传送数据时,在A/D转换的同时进行数据传送,不丢失任何数据。)VXI总线接口
VXI总线数据采集器通常可以利用两种VXI总线通用接口消息基接口和寄存器基接口。消息基接口的作用是通过总线传送命令,从而控制仪器硬件的操作。通用寄存器基接口是由寄存器简单的读写来控制仪器硬件的操作。利用消息基接口进行设计,具体消息基接口的框图见图2。
3)采样通道控制
为了满足几种典型系统通道控制的要求,使通道的数量足够多,通道的选取比较灵活,可以利用寄存器电路、可预置计数器电路以及一些其他逻辑电路的配合,将采样通道设计成最多64路、最少2路可以任意选择,而且可以从任意一路开始采样,也可以到任意一路结束采样,只要截止通道号大于起始通道号就可以了。整个控制在虚拟仪器软面板上进行操作,通过消息基接口将命令写在这部分的控制寄存器中,从而设置计数器的初值以及采样的通道总数。
4)定时采样控制
由于不同的自动测试系统对采样时间间隔的要求不同,以及同一系统在不同的试验中需要的采样时间间隔也不尽相同,故可以采用程控的方式将采样时间间隔设置在2μs~13.0ms之间任意选择,可以增加或减少的最小单位是2μs。所有这些选择设置可以在虚拟仪器软面板上进行。
5)采样点数控制
根据不同测试系统的需求,将采样点数设计成可在一个比较大的范围中任意选择,该选择同样是在软面板上进行。
6)采样方式控制
总结各种自动测试系统的采样方式不外乎软件触发采样和硬件触发采样。在硬件触发采样中又包括同步整周期采样和非同步整周期采样,这2种采样又可以是定时进行的或等转速差进行的。所有这些采样方式,对于数据采集器来说都可以在软面板上进行选择。
2.2软件设计
软件是虚拟仪器的关键,为使VI系统结构清晰简洁,一般可采用组件化设计思想,将各部分彼此独立的软件单元分别制成
标准的组件,然后按照系统的总体要求组成完整的应用系统,一个标准的组件化的虚拟仪器软件系统,如图3所示。
应用软件为用户提供了建立虚拟仪器和扩展其功能的必要工具,以及利用PC机、工作站的强大功能。同时VPP联盟提出了建立虚拟仪器标准结构库(VISA)的建议,为虚拟仪器的研制与开发提供了标准。这也进一步使由通用的VXI数据采集模块、CPU/DSP模块来构成虚拟仪器成为可能。
基于虚拟仪器的数据采集器的软件包括系统管理软件、应用程序、仪器驱动软件和I/O接口软件。以往这4部分需要用户自己组织或开发,往往很困难,但现在NI公司提供了所有这四部分软件,使应用开发比以往容易得多。
下面简单介绍以NI公司的LabWindows/CVI为开发环境,来进行VXI虚拟仪器的驱动程序开发的方法。
第一步:生成仪器模块的用户接口资源文件(UIR)。用户接口资源、文件是仪器模块开发者利用LabWindows/CVI的用户界面编辑器为仪器模块设计的一个图形用户界面(GUI)。一个LabWindows/CVI的GUI由面板、命令按钮、图标、下拉菜单、曲线、旋钮、指示表以及许多其他控制项和说明项构成。
第二步:LabWindows/CVI事件驱动编程。应用程序开发环境LabWindows/CVI中设计一个用户接口,实际上是在用户计算机屏幕上定义一个面板,他由各种控制项(如命令按钮、菜单、曲线等)构成。用户选中这些控制项就可以产生一系列用户接口事件(events)。例如,当用户单击一个命令按钮,这个按钮产生一个用户接口事件,并传递给开发者编写的C语言驱动程序。这是运用了Windows编程的事件驱动机制。LabWindows/CVI中使用不同类型的控制项,在界面编辑器中将显示不同类型的信息,并产生不同操作的接口事件。在LabWindows/CVI的开发平台中,对事件驱动进行C程序编程时可采用2种基本的方法:回调函数法和事件循环处理法。
回调函数法是开发者为每一个用户界面的控制项写一个独立的用户界面的控制函数,当选中某个控制项,就调用相应的函数进行事件处理。在循环处理法中,只处理GUI控制项所产生的COMMIT事件。通过GetUserEvent函数过滤,将所有的COMMIT事件区分开,识别出是由哪个控制项所产生的事件,并执行相应的处理。
第三步:应用函数/VI集与应用程序软件包编写。应用函数/VI集需针对具体仪器模块功能进行编程,应用程序软件包只是一些功能强大、需要完善的数据处理能力的模块才需要提供,如波形分析仪模块、DSP模块等。
3结语
本文探讨了虚拟仪器的基本组成,以及实际的虚拟仪器软硬件设计的一般方法,这些方法经过实际设计工作运用证明是可靠的,可供系统工程技术人员在组建具体的基于VXI总线的虚拟仪器数据采集、测试时参考使用。
参考文献
1]赵勇.虚拟仪器软件平台和发展趋势[J].国外电子测量技术,2002,(1)
2]陈光禹.VXI总线测试平台[M].北京:电子科技大学出版社,1996
3]孙昕,张忠亭,薛长斌.集成VXI总线自动测试系统的方法[J].测控技术,1996,15(4)
1CY7C68013芯片
Cypress公司的EZ-USBFX2系列中的CY7C68013,是目前市面上比较少的符合USB2.0标准的USB控制器之一。与其它同类芯片相比,它提供了4KB的FIFO和一个功能十分强大的GPIF(GeneralProgrammableInterface)模块。后者相当于一个可编程状态机,正是由于它的存在,使得CY7C68013比其它同类芯片具有强大的互联能力。CY7C68013芯片的结构,其主要特点如下:
·CY7C68013内部集成了一个增强型的51内核,其指令集与标准的8051兼容,并且在多方面有所改进。例如:最高工作频率可达48MHz,一个指令周期为4个时钟周期,两个UART接口,三个定时计数器,一个I2C接口引擎等。
·CY7C68013提供了一个串行接口引擎(SIE),负责完成大部分USB2.0协议的处理工作,从而大大减轻了USB协议处理的工作量,并且提供了4KB的FIFO保证数据高速传输的需要。
·为了满足与各种不同类型外设的互联需要,芯片中集成了一个GPIF模块,让用户可以按照外设的时序进行波形编辑,而不需要复杂的程序描述,就可以保证GPIF与内部.FIFO的协调工作,实现芯片与高速设备之间的逻辑连接和高速数据传输。这对于开发者来说是相当友好的。笔者就是利用这一特性,实现数据的高速同步采集及传输。
2同步高速数据采集芯片AD7862
2.1AD7862的结构
AD7862是AD公司推出的高速、低功耗、双极性12位的A/D转换芯片,其中包含了两个独立的快速ADC模块(允许同时采样和转换两路信号)、4路模拟输入信号(VAl、VA2、VBl、VB2)、2.5V的内部电压基准以及一个12位的高速并行接口。芯片正常运行时功耗只有60mW,当使用节电方式时,只有50μW,对于自带电源的USB设备这种低功耗无疑是一种优点。该芯片的内部结构如图2所示。每个ADC都有一个两通道的多路选择器,芯片通过地址信号A0分别选通VAl、VA2或VBl、VB2,当一个CONVST信号到来时,同时转换地址A0选中的两路信号。
关键词:USB2.0EZ—USBFX2同步数据采集
随着计算机技术的迅速发展,对外部总线速度的要求越来越高。通用串行总线(UniversalSerialBus,即USB总线)凭借其即插即用、热插拔以及较高的传输速率等优点,成为PC机与外设连接的普遍标准。在许多便携式电脑上,已经找不到RS-232接口。迄今为止,常用的USB总线标准有1998年的USBl.1版本和2000年的USB2.0版本。其中1.1版本支持两种传输速率:1.5Mbps和12Mbps,主要应用在低速传输要求的场合;而2.0版本面向高数据率传输的场合,支持480Mbps的传输速度,并向下完全兼容USBl.1协议。在实际应用中,通常会遇到一些突发信号,需要对其进行高速采集,对数据进行高速传输,所以USB2.0标准自然成为首选。以Cypress公司的EZ-USBFX2系列中的CY7C68013芯片作为核心控制器,设计开发了一套符合USB2.0标准的高速同步数据采集器。
1CY7C68013芯片
Cypress公司的EZ-USBFX2系列中的CY7C68013,是目前市面上比较少的符合USB2.0标准的USB控制器之一。与其它同类芯片相比,它提供了4KB的FIFO和一个功能十分强大的GPIF(GeneralProgrammableInterface)模块。后者相当于一个可编程状态机,正是由于它的存在,使得CY7C68013比其它同类芯片具有强大的互联能力。图1是CY7C68013芯片的结构示意图,其主要特点如下:
·CY7C68013内部集成了一个增强型的51内核,其指令集与标准的8051兼容,并且在多方面有所改进。例如:最高工作频率可达48MHz,一个指令周期为4个时钟周期,两个UART接口,三个定时计数器,一个I2C接口引擎等。
·CY7C68013提供了一个串行接口引擎(SIE),负责完成大部分USB2.0协议的处理工作,从而大大减轻了USB协议处理的工作量,并且提供了4KB的FIFO保证数据高速传输的需要。
·为了满足与各种不同类型外设的互联需要,芯片中集成了一个GPIF模块,让用户可以按照外设的时序进行波形编辑,而不需要复杂的程序描述,就可以保证GPIF与内部.FIFO的协调工作,实现芯片与高速设备之间的逻辑连接和高速数据传输。这对于开发者来说是相当友好的。笔者就是利用这一特性,实现数据的高速同步采集及传输。
图1
2同步高速数据采集芯片AD7862
2.1AD7862的结构
AD7862是AD公司推出的高速、低功耗、双极性12位的A/D转换芯片,其中包含了两个独立的快速ADC模块(允许同时采样和转换两路信号)、4路模拟输入信号(VAl、VA2、VBl、VB2)、2.5V的内部电压基准以及一个12位的高速并行接口。芯片正常运行时功耗只有60mW,当使用节电方式时,只有50μW,对于自带电源的USB设备这种低功耗无疑是一种优点。该芯片的内部结构如图2所示。每个ADC都有一个两通道的多路选择器,芯片通过地址信号A0分别选通VAl、VA2或VBl、VB2,当一个CONVST信号到来时,同时转换地址A0选中的两路信号。
2.2AD7862的控制时序
AD7862的控制时序如图3所示。在USB2.0同步高速数据采集器中,利用GPIF实现图3所示的时序控制。其中CONVST是转换开始启动信号,下降沿触发两路ADC开始装换;BUSY信号在CONVST信号触发后;变成并保持为高电子状态,直到两路ADC转换完毕,才又回到低电平;地址A0用于对两路模拟信号的选择,CS信号和RD信号分别是芯片使能信号以及读允许信号。两者第一次同为低电平时,读出第一组ADC转换的数据;在第二次为高电平时,读出第二组ADC转换的数据。使用AD7862值得注意的一点是该芯片提供了电源管理功能,当芯片将第二组数据读出后,CONVST信号继续保持低电平,芯片进入休眠模式。这时芯片的功耗只有50μW。这一点对于现在的便携式设备十分重要。
3同步高速数据采集器的硬件设计
传统的高速数据采集卡一般都采用PCI总线设计,但是笔记本电脑以及大部分便携式设备是没有PCI插槽的。利用USB2.0技术,不仅保证了较高的数据传输率(传输率最大可以达到480Mbps),同时还具有便携和无需外加电源等优点。图4是系统的结构示意图。它的工作原理是:在GPIF模块的控制下,由AD7862对目标进行等间隔采样,然后将采样结果通过GPIF传送到CY7C68013的内部FIFO中缓存;当采集一定量的数据后,CY7C68013自动将数据打包(不需要8051的介入),通过USB总线传输到PC机中进行数据处理。由于有GPIF的硬件支持,CY7C68013中的8051内核只是在很少的时间内,对控制进行了辅助处理,大部分工作由GPIF硬件完成。这样8051还可以与其他外设进行互联等工作。在高速数据采集器上附加了两路RS-232接口,用于将GPS数据和高精度智能测深仪的数据中转到主控计算机上,大大方便了新近推出的笔记本电脑与传统外设之间的联系。因为新近推出的笔记本电脑大多不具有RS-232接口,而那些野外观测仪器大多只能通过RS-232接口进行数据交换。
对于CY7C68013来说,其配置和固件都是软的,存储在外部的E2PROM中,上电时从I2C总线自动装载到片内RAM中,修改起来十分方便,便于固件升级。由于CY7C68013提供了丰富的I/O口,所以进行功能扩展也是很方便的,例如增加一个GPIB数据口等。
4软件设计
USB设备的软件设计包括三方面:固件设计、硬件驱动程序设计以及高级应用程序的设计。
4.1固件(firmware)设计
Cypress公司为CY7C68013提供了一个开发框架,可以在KEILC51环境下开发。由于开发框架的引入,从而大大缩短了用户的研发周期。该框架由以下几部分组成:
(1)FW.C中包含了程序框架的MAIN函数,管理整个51内核的运行,因为Cypress对这个部分的功能进行了精心划分,一般是不用改动的。
图3
(2)用户必须将PERIPH.C实例化,它负责系统周边器件的互联。固件的设计主要针对这个文件,用户必须根据自己系统的需要,实例化这个文件,以实现自己的功能。在这个文件中有几个函数是比较关键的,在这里做一下特别说明:
·TD_Init函数,负责对USB端点进行初始化设置。本设计中将端点6设置为1024个字节,缓存深度为4级,模式设为自动输入方式。
·TD_Poll函数,负责系统中循环任务的处理。它主要是对各个端点的状态进行查询,处理各种OUT或IN端点的交互。值得说明的一点是,这种处理只是辅质的,大部分工作由硬件自动完成。
·DR_VendorCmnd函数,主要负责用户自定义命令的译码工作,用户请求通过端点O传输给内核。由于CY7C68013上SIE硬件的支持,用户只需查询固定地址单元即可获得当前的命令代码。
·GPIFINIT.C,其中只有一个Gpiflnit函数;它是GPIF模块的初始化函数,一般在TD_Init函数中调用。这个函数是由Cypress公司提供的一个GPIFDesigner开发工具根据用户设计的波形生成的,用户不需要自己设计波形查询表,减轻了设计者的工作强度。
·DSCR.A51是描述表文件,负责USB设备的描述工作,CY7C68013在上电后自动利用其中的VID和PID取代默认的VID和PID。
·两个包含文件EZUSB.LIB和USBJMPTB.OBJ,前者是EZUSB函数库的二进制文件,后者是USB的中断向量表。
固件调试,使用Cypress提供的EZ-USBcontrolpanel,具体的操作读者可以参考其自带帮助。
4.2驱动程序的设计
驱动程序负责对底层硬件的访问。在本设计的驱动程序开发中,使用的开发工具是Jungo公司的WinDriverv6.03,它支持多种操作系统。利用WinDriver开发的优点是用户不需要了解操作系统内部的具体工作机理,同时也不需要了解各个系统DDK(DevelopingorDebugginginKernel)的开发工具,用户只需使用WinDriver提供的开发平台,即可完成驱动程序的设计工作,剩下的底层细节由WinDriver内核统一处理,从而降低了对开发者编程能力的要求,同时也大大缩短了开发周期。下面就使用WinDriver开发驱动程序的步骤做一个简要说明(以在Windows操作系统下的开发为例):
(1)启动WinDriver的DriverWizard工具;
(2)利用DriverWizard检测硬件是否正常;
(3)在DriverWizard中选择所使用的开发环境,这里使用VB6.0开发环境,并生成驱动程序代码;
(4)对生成的代码进行修改,使其符合系统的需要;
(5)在WinDriver环境的用户模式下,调试驱动程序;
(6)如果程序需要内核访问,以提高驱动程序的效率,进入内核开发。
4.3高级应用程序的设计
关键词:USB软件狗加解密技术反破解
在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及422卡、485卡、采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备;而用串行总线USB(UniversalSerialBus)能很发地解决以上这些冲突。
利用89C51设计基于USB总线的数据采集设备,还可与MAX485结合起来实现数据的远程采集。该系统具有可靠性高、性价比高和多点采集等优点。
1系统硬件设计
USB数据采集系统硬件模块主要由串行A/D转换器、89C51芯片、USB接口芯片和多路模拟开关等组成。硬件总体结构框图如图1所示。
USB接口芯片采用NationalSemiconductor公司的一种专用芯片USBN9602。该芯片内部集成微处理器接口、FIFO存储器、时钟发生器、串行接口引擎(SIE)、收发器和电压转换器,支持DMA和微波接口。
多路模拟输入信号经多路模拟开关控制将其中的一路接入串行A/D转换器,A/D转换器经光电隔离后串行输出到移位寄存器,移位寄存器将此结果转为8位并行数据。89C51系统通过8位的并行接口传送A/D转换器采集的数据,存储在FIFO存储器中;一旦FIFO存满,SIE立刻对数据进行处理,然后89C51系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送至主机。USBN9602与89C51的具体接口电路如图2所示。图中USBN9602的CLKOUT与89C51的XTAL1相连,即USBN9602的时钟输出为89C51提供时钟输入。USBN9602的复位端接RC电路,以保证复位电路可靠地工作。由于晶振频率较高,结合USBN9602内部网络,在XOUT端串接100μF电容及470μF电感,起稳定内部振荡频率的作用。
2系统软件设计
系统软件包括设备固件、USB设备驱动程序和应用程序。
2.1设备固件(firmaware)设计
此处固件是指固化到89C51Flash中的程序。其主要功能是:①控制A/D转换器的采样;②控制芯片USBN9602接受并处理USB驱动程序的请求及应用程序的控制指令。现主要介绍89C51系统如何控制USB控制器(USBN9602)与主机的通信。
89C51系统对USB控制器的操作是严格按照USB协议1.1进行的。按照USB协议1.1的规定,USB传输方式分为4种:控制传输、块传输、同步传输和中断传输。在实际开发中使用了控制传输和块传输。控制传输主要完成主机对设备的各种控制操作,也就是实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的功能驱动程序对设备的各种控制操作。块传输主要完成主机和设备间的大指数据传输以及对传输数据进行错误检测(若发生错误,它支持“重传”功能)。
89C51系统控制USB控制器的工作工程可以简单地概括为:当USB控制器从USB总线检测到主机启动的某一传输请求后,USB控制器通过中断方式将此请求通知89C51系统;89C51系统通过访问USB控制器的状态寄存器和数据寄存器,获得与此次传输有关的各种参数,并根据具体的传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作,以完成主机的传输请求。理解了以上的工作过程就可以进行相应的固件设计。
2.2USB设备驱动程序设计
USB系统驱动程序的设计是基于驱动程序模型WDM(WindowDriverModel)的。WDM采用分层驱动程序模型:较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线模块(USBD)和较低级的主控制器驱动程序模块(HCD)。
目前,Windwos98提供了多种USB设备驱动程序,但并不针对数据采集设备,因此需用DDK(设备驱动程序开发包)开发工具设计专用的USB设备驱动程序。目前,写USB驱动程序的软件也很多,它们均提供用于生成USB驱动的代码生成器,用户按照提示可以定义设备的配置和功能,然后做功能的修改即可。利用软件中提供的例子进行修改也是一个比较好的捷径。可以把USB设备驱动程序的功能划分成4个不同的模块来实现:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。
初始化模块提供1个入口函数DriverEntry(),整个驱动程序的入口点为DriverEntry例程。在DriverEntry中,需要提供一个AddDevice例程,把驱动程序添加到驱动程序堆栈中去。另外,所有对各种IRP(I/O请求包,如:IRP_MJ_CREATE,IRP_MJ_WRITE,IRP_MJ_CLOSE,IRP_MJ_READ,IRP_MJ_DEVICE_CONTROL等)的处理例程都在此入口函数中作为定义,如:
DriverEntry(INPDRIVER_OBJECTDriverObject,…)//驱动程序入口
{
DriverObject->DriverExtension->AddDevice=USBAddDevice;
DriverObject->DriverUnload=USBUnload;
DriverObject->MajorFunction[IRP_MJ_READ]=USBRead;
DriverObject->MajorFunction[IRP_MJ_WRITE]=USBWrite;
…
}
图2USBN9602与89C51接口电路
即插即用管理模块用来实现USB设备的热插拔及动态配置。当硬件检测到有USB设备接入时,Windows98查找响应的驱动程序,并调用它的DriverEntry例程。PnP(即插即用)管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备。在此处理过程中,驱动程序收到一个设备启动请求(IRP_MN_START_DEVICE)的IRP。同理,当要拔除时,PnP管理器会发出一个设备删除请求(IRP_MN_REMOVE_DEVICE)的IRP,由驱动程序进行处理。通过对这些PnP请求的处理,可支持设备的热插拔和即插即用功能。
电源管理模块负责设备的挂起与唤醒。
I/O功能实现模块完成I/O请求的大部分工作。若应用程序想对设备进行I/O操作,它便使用WindowsAPI函数,对WIN32子系统进行WIN32调用。此调用由I/O系统服务接收并通知I/O管理器,I/O管理将此请求构造成一个合适的I/O请求包(IRP)并把它传递给USB设备驱动程序。USB设备驱动程序接收到这个IRP以后,根据IRP中包含的具体操作代码,构造相应的USB请求块并把此URB(USB请求块)放到一个新的IRP中。然后,把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所含的URB执行相应的操作(如从USB设备读取数据等),并把操作结构通过IRP返还给USB设备驱动程序。USB设备驱动程序接收到此IRP后,将操作结果通过IRP返还给I/O管理器。最后,I/O管理器将此IRP中操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。
2.3应用程序设计
用户态的应用程序是数据采集系统的中心,其主要功能为:开启或关闭USB设备、检测USB设备、设置USB数据传输管道、设置A/D状态和数据采集端口、实时从USB接口采集数据、显示并分析数据。
由于USBN9602提供的FIFO不超过64字节,当它存满后,USBN9602自动将数据打包即时请求读入数据,由SIE自动发送数据包。另外,当系统启动A/D模块后,便会创建两个线程:采样线程和显示存盘线程。采样线程负责将采集数据写到应用程序提交的内存;而显示存盘线程负责给应用程序发送显示和存盘消息。当应用程序接收到此消息后,便从它提交的内存读取数据并显示和存盘。此处需要注意的是,采样线程和显示存盘线程在读写应用程序提交的内存时要保持同步。
3远程数据采集系统设计
传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十m,这对工业现场而言显然太短了。现在,工业现场有大量采用RS-485传输数据的采集设备,其优点主要为传输距离可达到1200m以上,并且可以挂接多个设备;但传输速度慢,且需要板卡支持,安装麻烦。将RS-485与USB结合起来,可以优势互补,产生一种快速、可靠、低成本的远程数据采集系统。
设计这样一个系统的关键设备是RS-485~USB转换器,可以采用USBN9602+89C51+MAX485实现这一功能。整个系统的基本思想是:将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传。RS-485~USB转换器在主机端接收485的数据。并通过USB接口传输到主机处理;而主机向USB发送数据时,数据通过RS-485~USB转换口转换为485协议向远端输送,从而实现远程数据的双向传输如图3所示。软件方面的设计与上面所述类似。