王岳鹏 ,霍修坤 ,权希龙
(1.中科院 嘉 兴无线传感网工程中心, 浙江 嘉 兴 3 14006;2.安徽大学 计 算智能和信号处理教育部重点实验室,安徽 合 肥 2 30039)
无线传感器网络是近几年国际研究的热点问题,而数据采集又是无线传感器网络系统性能评估、应用的基础环节。在数据采集过程中应用虚拟仪器可以尽可能地缩短数据采集的时间,同时降低实验成本,因此虚拟仪器在测控领域得到越来越广泛的应用。传统的前端数据采集设备都是TI公司的数据采集卡,成本高且维修不便。本系统下位机采用NXP公司LPC2378为依托的数据采集电路板,上位机操作系统基于Labview8.5编写,通过串口通信实现了数据的实时采集,可以对采集信号进行处理分析并显示。
数据采集系统分为下位机和上位机2部分,二者通过驱动程序组成采集系统。下位机是指直接控制设备获取设备状况的计算机,一般是PLC/单片机之类;上位机是可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化[1],如图1所示。图中程序部分采用Labview来实现。在数据采集之前,先对下位机采集板卡进行初始化,其中处理器Buffer是下位机采集存储的重要环节。可以采用外部触发(比较精确),也可采用软件触发(容易实现)。由于上位机数据处理阶段要对采集到的一个周期的数据进行处理,所以系统采用软件触发,每个周期采样1 024点。
图1 数据采集系统框图
下位机系统为数据采集硬件平台,主要包括采集卡前端设备即传感器电路、核心处理器(即算法实现电路)、电源模块电路和通信模块电路。
1.1.1 采集卡前端设备
前端传感器采用飞思卡尔MMA7260加速度传感器。相比于老式线圈式振动传感器,MEMS传感器具有量程大、不易溢出、受外界气候因素影响较小等优点。采集原理图如图2所示,在采集信号放大之前进行抗混叠滤波,有效滤除了高频干扰。需要注意的是,探头需要提供+5 V供电才能稳定工作。本系统采集传感器Z轴数据,对探头安装位置没有特殊要求;若要采集X轴数据,必须注意探头X轴方向与地面平行,否则信号会发生畸变。
图2 数据采集前端原理图
1.1.2核心处理器
从价格、操作系统、接口类型、内存大小等条件考虑,该系统设计的处理器采用LPC2378,它是一款基于ARM的微处理器,包含10/100 Ethernet MAC、USB 2.0全速接口、4个UART、2路CAN通道、1个SPI接口、2个同步串行端口(SSP)、3个I2C接口、1个I2S接口和MiniBus(8位数据/16位地址并行的总线)[2]。工作频率为72 MHz,ARM局部总线上有32 KB的SRAM,可以进行高性能CPU访问和简单的算法实现。
1.1.3电源模块
考虑到MEMS传感器最佳工作电压为5 V,所以系统采用ZY2405WHBD-3W型DC-DC变换器,输入电压9~36 V,输出电压为5 V。其他部分主要起稳压作用,其电源模块电路如图3所示。
图3 电源转换原理图
1.1.4通信模块
系统采用串口通信。利用处理器内部的10位D/A转换器,将采集到的模拟信号转换成数字信号,再经过调理电路后送由MiniBus采用RS232协议送达上位机。另外采集板集成了一块单CAN高速隔离收发器CTM1050,可以通过网口通信。串口通信需注意的问题是转换电平,数据采集端供电电平为+5 V,而处理器能接受的电平是+3.3 V,因此系统采用MAX3221电平转换器,以达到处理器要求[3]。另外系统上位机串口名称与下位机一定要设置为同一名称,否则数据不能成功送到上位机,如图4所示。
图4 串口驱动原理图
数据流程如图5所示,数据经下位机采集处理后,由通信模块通过串口发送到上位机,上位机主要包括数据读取、数据验证、数据处理及数据存储4部分。
图5 数据采集流程
1.2.1数据读取
即虚拟仪器设备串口初始化,包括:串口名称设置、超时设置、波特率设置、数据位设置、奇偶校验设置,等等。本系统采用的设置为:超时1 000 ms;波特率115 200;数据位为8位;无奇偶校验;其他采用默认值[4]。
1.2.2数据验证
数据验证包括数据读取、判断是否是有效数据以及数据报头是否正确。数据报头为8个FE,然后紧跟数据包。程序判断读取8个FE时开始读数并显示。
1.2.3数据处理
系统为8通道,一次循环读取16位的数组,将数组第0个元素作为第1通道的低位,第1个元素作为第1通道的高位……,第15个元素作为第八通道的高位,分别显示;当满足采样点位数时,置位重新读取数据。在显示之前对数据进行预处理:去直流、峰值计算、滤波等等,由于Labview程序框图中有Matlab脚本文件,所以可以和Matlab混合编程,在Labview脚本框中直接写Matlab代码。由于程序运行时要调用Matlab控制台,所以混合编程要求控制机必须装载Matlab软件[5]。
1.2.4数据存储
当点击采集数据按钮时,系统提示选择存储路径,并存储为后缀名为‘.lvm’的二进制测量文件。上位机主程序[6]如图6所示。
图6 上位机主程序代码
将8个MEMS传感器并排,然后拍击桌面的信号波形图。8个通道可独立使用,如直接一路传感器,其他通道数据都为0。可手动更改串口名称、波特率、停止位、奇偶校验、流控制、传输数据位和显示信号线的线性、颜色,界面友好,可根据需求添加峰值显示、频谱显示,傅里叶变换等复杂信号处理内容。通道1至通道8信号波形分别用:红、橙、黄、绿、蓝、靛、紫、洋红显示。
1)系统采用了双缓冲技术,即将计算机Buffer分为2个相同区域Buffer1和Buffer2,数据先存往Buffer1,当Buffer1存满时,标志位置位,数据继续存往Buffer2,同时将Buffer1中的数据送往处理器进行处理,完毕后,Buffer1存数,Buffer2发送,如此循环,注意正确设置存储速度和处理速度之间的关系,以保证数据无遗漏。
2)Labview编程与Matlab编程相结合进行数据处理分析。对于Labview中没有的数据处理功能可直接调用Matlab脚本文件,功能更加强大。
3)上位机程序采用条件循环结构和事件结构设置,前面板和程序框图同时执行,最大程度地节省了CPU资源。界面友好,具有良好的可操作性。
本系统主要用于实验数据的采集,由于采用串口通信,所以设备布设简便,方便操作。经实际测试证明系统性能稳定,信号失真度较小,很好替代了NI公司数据采集卡;同时可扩展性强,修改板子处理器ARM程序,采用CAN通信后,结合算法,即可用于工程需要,实时监测待控领域。
[1]白云,高育鹏,胡小江.基于Labview的数据采集与处理技术[M].西安:西安电子科技大学出版社,2009.
[2]广州周立功单片机发展有限公司.LPC23XX用户手册[EB/OL].2008.http://www.zlgmcu.com/philips/arm/LPC23xx/LPC23XX_um.pdf.
[3]AVR与虚拟仪器论坛[EB/OL].2008.http://www.avrvi.com/Labview_start/the_use_of_Serial.html.
[4]National Instrument Corporation.NI data acquisition[EB/OL].2009.http://www.ni.com/dataacquisition/zhs/.
[5]王济,胡晓.Matlab在振动信号处理中的应用[M].北京:中国水利水电出版社,2006.
[6]National Instruments Corporation.NI Labview 8.5 help file[EB/OL].2007.http://digital.ni.com/manuals.nsf/websearch/D8BD63-D1B407864C862571D30072BF2B.