在2017年的时候写了一篇文章,也可叫工作笔记吧。讲述了在传感器的测量过程中对传感器数据的处理以及传感器使用中的注意事项,也感觉要写个总结性的续好结题,后来拖拖拉拉的放置了好长时间,很是惭愧。

今天就基于一个实际的项目来结题,这个项目是用于替换原有设备的,原始设备采用的是“采集卡+工控机”方式,工控机运行采集卡厂家的软件读取数据。采集卡为6通道16位AD,实际工作采样率11K(可以通过软件设置),文中引用的数据或方式在不涉及知识产权的基础上向各位描述,也算是降密。

项目的基本架构是:传感器 =>信号放大器 => 滤波(抗混叠) => AD采集(FPGA)  => 数据处理(DSP)。本文主要谈论传感器及采集的前端部分设计,后端的数据处理不做过多涉及。

方案架构中滤波之前是模拟部分,后端为数字部分,其中FPGA是负责信号采集、还原信号完整性和阈值判断等,并做了简单的滑动滤波,DSP进行数据的分析处理。

项目采用的是个SPS最高500k的16位AD芯片,AD的基准电压5.0V,采样率20K。第一版硬件没有电压基准芯片,就是AD芯片的工作电源电压作为基准电压,然后做了简单的滤波处理。

芯片的采样率不高,关键就是要并发采集,每个通道的数据量在200~500之间随机不定,采样通道最多10个,一般工作是6个通道,所以选用了FPGA实现AD采集控制和数据处理,并发处理超出本文谈论范畴,包括DSP的数据修正、滤波、数值计算等,这里就不累述,忽略。

由于采用16位AD,理论计算,AD的测量分辨率是0.07629mV。在现场连接传感器和放大器,FPGA获取的传感器数据如下:

传感器数据 Android 传感器数据采集原理_传感器数据 Android

做个说明:放大器的静态输出噪声为5mV,当连接传感器时,测量的噪声信号电压大约 14mV,这个噪声电压包含了前端设备(包括传感器、信号电缆、接插件)和放大器的噪声信号总和,通过软件可以看出这时测量的数值波动就在0.07629mV。

然后实际测量,FPGA采集到的数据导出数据到Excel表格中,数据波形图示为:

传感器数据 Android 传感器数据采集原理_传感器数据 Android_02

为了说明问题,把原始设备采集到的数据也贴出来做个对比。采集卡采集的数据以Excel形式获取,图示如下:

传感器数据 Android 传感器数据采集原理_采集卡_03

 

把这两个AD采集单元做个对比,可以看出设计AD的测量精度较高,数据还原性也较好。

在涉及传感器或测量领域,数据源信号的获取非常重要,当数据源可以真实反映现实情况时,后期的数据处理要轻松多了,对滤波、变换等的处理方法也可简化。当然,你可能是个算法高手,但用上述两个不同的数据源你不可能做不出同样好的设备。

后期的硬件修改基本没有动原始设计,只是对抗混叠滤波的滤波参数做了稍微调整,AD电源部分做了一个LC滤波。