基于工业自适应的多通道数据采集设备分析

2023-09-14 14:03:22郭浩天苏梦欣张祎冯晨付广春
现代信息科技 2023年13期

郭浩天 苏梦欣 张祎 冯晨 付广春

摘  要:此设备由STM32主控、电压处理电路、电流处理电路、外部FLASH电路以及显示模块组成。该设备使用STM32作为主控,可以实现8个通道的12位电压数据采样和4个通道的电流数据采样,ADC采样周期可以达到10 μs以内。电压采集范围为-40~40 V,电流采集范围为4~20 mA。采集的数据准确且稳定,可以通过显示屏幕进行查看,并且此设备为外部FLASH移植了FatFs文件系统,可以很方便地通过电脑查看数据。

关键词:STM32;ADC;电压采集;电流采集;FatFs文件系统

中图分类号:TP273  文献标识码:A  文章编号:2096-4706(2023)13-0172-05

Analysis of Multi-channel Data Acquisition Equipment Based on Industrial Adaptation

GUO Haotian, SU Mengxin, ZHANG Yi, FENG Chen, FU Guangchun

(Henan Institute of Science and Technology, Xinxiang  453003, China)

Abstract: This device consists of STM32 main control, voltage processing circuit, current processing circuit, external FLASH circuit and display module. Using STM32 as the main control, the device can achieve 8 channels of 12-bit voltage data sampling and 4 channels of current data sampling, and the ADC sampling period can reach less than 10 us. The voltage acquisition range is from -40 V to 40 V, and the current acquisition range is from 4 mA to 20 mA. The collected data is accurate and stable, which can be viewed through the display screen, and this device has ported the FatFs file system for external FLASH, making it easy to view data through a computer.

Keywords: STM32; ADC; voltage acquisition; current acquisition; FatFs file system

0  引  言

此设备主要用于需要长时间采集数据的场景,使用此设备可以检测一个设备的长时间运行状态时,并且将其状态记录下来,可以根据记录的数据分析被检测设备的工作状态是否符合要求,也可以根据情况设置警报值,当数据异常时进行报警。在需要人工长时间检测一个设备时,使用该设备可以后,才可以解放检测人员,使用此设备检测还可以避免人为出现的检测错误。

1  系统总体框图

电压和电流信号分别经过各自的处理电路后输入STM32主控之中,STM32主控在接收到信号后对其进行处理,将处理过的数据存入外部FLASH,最后将采集的数据通过显示模块显示出来,系统总体框图如图1所示。

2  系统硬件设计

此设备由电源电路、电压处理电路、电流处理电路、储存电路和显示接口组成。电压处理电路实现对电压的自適应采集,采集的数据通过数据储存部分保存起来。

2.1  电源电路

电路在接入5 V供电后,使用低压差线性稳压电器AMS1117-3.3将接入5 V电压转换为3.3 V以供STM32主控芯片使用,如图2所示。

使用MAX660为运放提供正负电源,可以实现将+1.5 V到+5.5 V的输入电压转换为相对应的负电压,将AMS11117-3.3输出的3.3 V转换为-3.3 V的电压,如图3所示。

2.2  电压处理电路

2.2.1  电压衰减电路

所需要采集的信号的变化范围宽广,几十毫伏到几十伏都有可能遇到,而STM32的ADC采样范围为0~3.3 V,因此在输入ADC之前需要先将采集的信号进行相应的处理才可以送入后续电路,处理电路如图4所示,输入的信号首先要经过衰减电路,电压衰减电路可以通过继电器HFD4/3-S实现对输入电压的衰减,衰减大小选择,当电压小时,衰减程度小,当电压大时衰减程度大,通过主控来判断衰减大小,当继电器未动作时2和3,6和7相接通,此时输出的信号为原来的47/1 000倍,当继电器动作时3和4,5和6相接通,此时输出的信号为原来的953/1 000倍,当输入的信号小于一定值时继电器动作减小信号的衰减以便于获取更准确的数据,不论继电器是否动作,阻抗都为1 mΩ,因此在需要更大的量程范围情况下可以接示波器探头来得到更大的测量量程。这里的电压衰减的准确度将直接影响结果的准确度,所以这里采用高精度电阻电容。

2.2.2  电压跟随器和钳位电路

经过衰减后的信号的负载能力将会变弱,因此要把经过衰减的电压先送入电压跟随器进行隔离和提高带负载能力,如图5所示经电压跟随器输出后到达二极管钳位电路,钳位电路可以限制电压在一定的范围内,IN4148的正向导通电压为1 V,故钳位电路可以将电压限制在4.3~-4.3 V之间。防止输入电压过高保护后面的电路。

2.2.3  程控放大电路

此时程控放大电路接收的信号可能会十分微弱,在接收到比较小的信号时,将进行放大处理,尽可能地占满ADC的量程,这样做可以最大的利用ADC资源以及使得结果更加准确,程控放大电路可以通过程序的控制来改变信号放大的倍数,如图6所示此电路通过一个运算放大器构成的同相放大器和模拟电子开关CD4051组成。RS8751是一个轨到轨输出的运算放大器,放大器的增益带宽高达250 MHz,完全满足使用需求,由于此运算放大器为轨到轨运放,输出的电压最大将接近供电电压正负3.3 V,此电路构成的同相放大器输出的电压为Vo = (1 + Rf /R12) Vp,其中Rf为CD4051所选择的电阻值,通过主控控制CD4051的A0、A1、A2来控制模拟开关所选择的电阻值进而控制输入信号的放大倍数,一共有5种不同的放大倍数供选择,分别为1倍、2倍、5倍、16倍。需要注意的是在使用CD4051BPWR时,其存在的沟道电容和反馈电阻会形成RC网络,会产生一定的延时使得反馈信号不能及时的传递,这会导致放大器不能立刻检测到其到达最终值的程度,最后会以过快的速度冲向适当电压的方式过度反应,需要多次连续极小性的更正才能够保持稳点。这样就造成的信号的过充和振铃的现象,在延时过大的时候可能会使得在后续过充的更正无限的进行甚至可能产生震荡。为了解决这个问题带来的影响,在运放的输入输出走线时尽量走直线减少输入输出电容,减小反馈电阻可以减小反馈网络带来的影响,最好的解决方案是在反馈电阻两端并联一个电容,当R12×Cx = Rf ×Cc时(Cx为反向输入端子处的电容,Cc为反馈电阻所并联的电阻),反馈网络中将不会出现延迟。在有更高的需求时可以采用此方案来解决放大器反馈延时的问题。

2.2.4  电压调理电路

经过运放放大得到的信号范围为正负3.3 V之间,而STM32得ADC采集电压范围在0~3.3 V之间,因此需要经过电压调理电路将电压值转换到合适得范围内,电压调理电路如图7所示。

根据基尔霍夫定律得到输入电压和输出电压的关系:

整理上式子得:

将电阻值带入得:

分别将正负3.3带入Vin得出Vout为3.08 V和

0 V,可见经过调理电路后输出的电压范围在STM32承受的范围内。

2.3  电流处理电路

电流的采样通常通过电压信号转换为电流信息,而INA199A1通常是用来实现电流电压转换的,如图8所示在工作时将采样电阻R3上的分压放大后送入ADC中,将得到的电压进行处理后便可得到电流信息。电流感应放大器INA199A1可用于精密电流测量,该器件可独立于电源电压的-0.3 V至26 V共模电压下感应分流电阻器上的压降,其增益固定为50 V/ V。由INA199典型电路图可得采集到的电压大小与被采集回路电流的关系:

需要注意的是,输入引脚IN+和IN-必需尽可能地与采样电阻R3靠近,这样可以将走线上的电阻减小到最小,进而减小测量误差。

2.4  储存电路

FLASH电路如图9所示,采集到数据将被储存到外部的FLASH之中,以便在设备掉电后也可以将数据保存下来。外部FLASH采用的芯片为W25Q64,它共有128个块(Block),每个块只中又有16个扇区(Sector),而一个扇区的大小为4 KB,故W25Q64的大小为,128×16×4 KB=8 Mbyte,每次可写入的数据为一页256 byte,擦除的最小单位为一个扇区4 Kbyte,支持的协议为Standard、Dual和QuadSPI,这里我们采用标准SPI协议,其速度最高支持到80 MHz,对于此设备来说完全符合要求。

2.5  显示接口

为了提供友好的交互体验以及方便的数据查看,将一些操作的过程以及采集到的数据通过显示屏来显示出来。显示屏采用ST7735S驱动的1.8寸TFT彩屏,其分辨率为128×160,支持262K色彩显示,通过SPI协议即可控制显示。

3  数据的存储

3.1  FLASH储存规划

W25Q64共有8 Mbyte的储存空间,其中第一个块即64 Kbyte将用来储存显示屏所需要的字库和图片数据,剩余的储存空间用于储存采集到的数据,FLASH储存规划如表1所示

3.2  FatFs文件系统

FatFs是一个专门用于嵌入式通用FAT/exFAT文件系统模块,此文件系统由C89编写,完全分离与磁盘I/O层,因此不依赖于硬件平台。使用文件系统的原因是将数据储存到FLASH中后不方便后续的查看数据并对其进行分析,使用文件系统后便可以將数据存储到txt文件中,十分方便后续的查看以及分析。

3.3  USB接口

STM32F103拥有一个全速的USB 2.0设备,配合FatFs文件系统和外部FLASH可以形成一个虚拟U盘设备,这样便可以通过电脑直接查看采集的数据并进行分析。如图10所示中可以看到电脑可以识别到虚拟U盘并可以对文件进行操作。

3.4  CSV文件格式

CSV文件格式是一种通用文件格式,它可以非常容易的导入到计算机中,CSV文件格式十分简单,只需将每个数据或者字符之间插入逗号,即可形成CSV文件格式,此文件格式可以被电脑上Excel打开,采集得到的数据可以直接通过Excel进行分析。一组数据如图11所示。

如图12所示,将其用Excel打开,可以看到此格式可以被方便的导入到Excel之中,为后续对数据的分析提供极大的方便。

4  程序设计

流程图如图13所示此程序实现了对数据的定时采集储存以及与查看,通过SPI控制外部FLASH,并且移植了FatFs文件系统,可以通过程序在外部FLASH上创建文件,在设定的时间到时开始ADC转换,并将数据处理后送入外部FLASH等待下次的数据采集。除此之外此程序还实现了通过USB外设与电脑的通信,可以直接在电脑上查看采集的数据并进行分析。

5  实验测试

此次测试对设备输入不同的电压电流值,将设备采集到数据与输入的值进行比对,计算出数据的检测误差,电压测试数据如表2所示,电流测试数据如表3所示。

从表中可以看出,采集到的数据与输入的值存在一定的误差,电压最大误差约1%,电流最大误差约为0.8%,满足使用要求。

这些误差是由诸多原因造成的,对于外围采集电流来说,模拟开关CD4051存在一定的导通电阻,这将会影响信号放大的倍数,采样电阻的精度也会影响采集到数据的准确度,还有就是STM32的ADC采样数据本身就存在一些量化误差,同时在对进行数据处理时,中间的计算过程也会存在一定的数据损失。

6  结  论

此设备实现对数据的长时间采集以及简单的分析,拥有多个通道,可以同时采集多个设备的数据,采集的电压范围大,可实现对不同电压的自动适配,可以满足绝大部分的应用场景,此设备拥有外部储存介质,可以实现数据的长时间保存,并且可以作为一个USB设备与电脑通信,方便对数据的导出与分析。

参考文献:

[1] 代勇.基于STM32定时电压采集与报警系统的设计 [J].电子世界,2017(7):179-180.

[2] 蔡志威.基于STM32F4的数字存储示波器的设计 [D].南昌:东华理工大学,2014.

[3] 杨成蒙.一种带金属物体检测的多线圈无线充电系统 [D].上海:东华大学,2014.

[4] 季小榜,孙雷明.基于STM32F103RCT6的虚拟示波器硬件电路设计 [J].河南工程学院学报:自然科学版,2020,32(1):37-40.

[5] 洪岳炜,王百鸣,谢超英.一种易于移植和使用的文件系统FatFs Module [J].单片机与嵌入式系统应用,2008(5):29-31.

[6] 張涛,左谨平,马华玲.FatFs在32位微控制器STM32上的移植 [J].电子技术,2010,47(3):25-27.

作者简介:郭浩天(2001—),男,汉族,河南安阳人,本科在读,研究方向:嵌入式开发。

收稿日期:2023-02-27

基金项目:2022年河南省高校省级大学生创新创业训练计划项目(202210467049)