牛文举, 黄荣玉, 韩建强
(中国计量大学 机电工程学院,浙江 杭州 310018)
微型传感器作为新一代传感器[1],具有体积小、重量轻、成本低、功耗低和可靠性高等优点,广泛应用于汽车电子、医疗设备、无线通信、环境监测以及消费电子产品中[2]。
为了提高采集微传感器输出信号的精度和实时性,需要采集系统具有高精度和高采样率的模/数(analog-to-digital,A/D)转换器以及实时显示和处理等功能[3],因此研究提高采集精度和采集实时性的方法具有十分重要的意义。目前数据采集系统的核心控制器主要采用单片机和数字信号处理器(digital signal processor,DSP)[4]。单片机因指令周期的影响以及在采集中需要频繁中断系统的运行,减弱了系统的运算能力从而限制数据采集的速度和实时性。DSP虽然能够实现高速数据采集,但却大大增加了采集系统的成本[5]。现场可编程门阵列(field programmable gate array,FPGA)拥有高集成度、时序精准和极强并行处理能力等优势[6]。
本文提出一种基于FPGA的数据采集和实时显示系统,将 FPGA 作为系统的核心控制器,利用24位高精度模/数转换芯片ADS1256和RS—232串行接口总线,完成了对微传感器输出的模拟电压信号进行采集,提高了采集系统的精度和速度。采集系统通过A/D转换芯片对模拟信号进行高精度采集,FPGA将采集的数据通过RS—232串行总线传输到上位机(upper PC),再经过滤波后实时地显示出采集的模拟信号。该系统具有采集精度高、速度快、受环境影响小、工作稳定和实时性高等优点。
系统主要由ADS1256模数转换模块、FPGA控制模块和上位机组成,如图1所示。
图1 采集系统框图示意
利用FPGA通过模拟SPI总线协议对ADS1256芯片进行读写控制以及数据缓存,FPGA将缓存的数据进行处理后再经RS—232串行通信接口送入上位机。为了直观地显示采集电压信号的变化情况,采用Visual C++开发平台对操作界面软件进行编写,实现了采集数据的图形化显示,完成了操作界面的设计。
图2 ADS1256读写操作流程
ADS1256芯片转换的24 bit电压数据以二进制的补码格式输出。输出数据的正值的最小值为2VREF/(PGA(223-1)),即采集系统的分辨率。其中,PGA为输出数据的增益值,VREF为ADS1256的基准电压。
为了测量小信号(微弱电压)时能得到较高的分辨率,可以对ADS1256芯片的增益放大器PGA值进行编程设置。PGA值共有7种选择,分别为1,2,4,8,16,32和64。具体选择时取决于待测电压的幅值。通常将2VREF/PGA设置为略大于且接近待测电压的幅值。如当基准电压VREF为2.5 V且待测电压的幅值不超过且很接近±500 mV时,则PGA的值应选为8,此时ADS1256芯片最大量程为±625 mV,便可获得最高的测量分辨率。
电压采集系统的FPGA控制模块采用的是黑金开发板平台,型号为:AX301。通过对FPGA编程,建立不同的程序模块对ADS1256进行控制以及与上位机的通信。包括FPGA控制ADS1256芯片的主要程序模块,和FPGA与上位机通信的主要程序模块。
本文采集系统的FPGA控制模块输入输出接口如图3所示,FPGA通过I/O口读取ADS1256输出的模拟转换数据。FPGA通过与RS—232接口相连,将从ADS1256读取的24bit电压数据传输到上位机,并实时显示出采集的电压数据波形。
图3 FPGA输入输出接口
采用Microsoft公司的Visual C++对电压采集系统的上位机进行开发。该采集系统上位机串行通信默认设置为:波特率256 kbps,无校验、8位数据位、1位停止位。系统采用自定义通信协议,FPGA向PC发送的数据格式如下:
帧头数据1数据2数据3帧尾D1&0xF0+D2&0x0FD1D2D3D2&0xF0+D3&0x0F
其中,数据1、数据2、数据3是ADS1256采集的24 bit电压数据。为了上位机能够准确、快速地从接收到的数据中提取出电压数据,在电压数据前后分别加入了数据帧头和数据帧尾。数据帧头是由数据1的高4位和数据2的低 4位求和得出。数据帧尾是由数据2的高4位和数据3的低 4位求和得出。这样不仅可以简单地校验接收数据的准确性,又可以方便地提取出采集的电压数据进行处理和显示。电压采集系统显示界面如图4所示,界面简洁、操作简单。
图4 采集系统的显示界面
该软件不仅能直观地实时显示电压波形变化,也能将当前显示的电压波形曲线截图保存,还能将显示的电压值进行缓存以便浏览或保存为.TXT文档进行后期查看等操作。通过将程序进行打包,便可以在Windows XP/7/10中文操作系统下安装、运行操作。
为了检验采集系统的可靠性和采集的精度,以MATRIX MPS—300L—3电压源作为直流电压信号源。用Agilent 34401A六位半数字万用表和上述采集系统同时对0~5 V之间的电压进行测量,采集系统采样的绝对误差和相对误差如表1所示。
表1 万用表测量值与采集系统采样平均值比较
从表1中可知:采集系统采集的绝对误差小于70 μV,系统采集的相对误差小于0.03 %。
为了测试采集系统对直流电压信号的采集速度,通过采集不同频率的标准正弦波信号进行测试。以Agilent 33521A函数发生器作为信号源。信号发生器模拟输出正弦波的幅值设置为4 V、偏置为2 V,然后逐渐增大输出频率。经测试,最终得出采集系统最大采样速率为1 500 Hz。上位机测量到的信号发生器输出的300 Hz正弦波波形曲线如图5所示。
图5 正弦波采集
由图5中可看出:采集系统能够准确、稳定地显示出采集的正弦波信号,达到了采集系统的实时性和同步性的采样要求。
根据以上的两步测试结果分析表明:采集系统在采样精度和速度上达到了设计要求,因此,可以对传感器的输出信号进行测试。将实验室设计制作的硅微压阻式加速度计安装在标准振动平台上,使标准振动台以10gn加速度、20 Hz频率振动。惠斯通电桥的桥压设置为5V,电桥的输出经低噪声差分放大器(10倍放大)放大后接入本采集系统的输入端。采集的压阻式加速度计输出电压的波形如图6所示。根据采集的数据分析可知加速度计的输出电压在31.2~34.8 mV之间变化,计算得加速度计的灵敏度约3.6 μV(gnV)-1。
图6 采集系统采集的压阻式加速度计输出电压的变化
本文设计的采集系统充分利用了FPGA和ADS1256的特点,简化了对电压采集的硬件设计。通过自定义与上位机的通信协议,FPGA将采集的数据发送到上位机中并实时显示采集数据变化。采集系统通过对直流电压信号和信号发生器产生的正弦波进行采集和比较,表明该系统能够满足使用需要,且完成了实验室研制的压阻式加速度计的性能测试。本系统不仅应用于微传感器数据采集,还可以应用在相关领域的数据采集之中,具有一定的应用价值。