基于STM32 的高精度流体压力变送器设计

2021-05-25 05:26周世年龚元明
软件导刊 2021年5期
关键词:变送器流体供电

周世年,龚元明

(上海工程技术大学机械与汽车工程学院,上海 201620)

0 引言

在工业控制系统中,压力监测必不可少[1-2]。目前市场上采用的压力变送系统测量精度低,响应速度慢,无法在高湿度等恶劣环境下连续测量小信号压力波动。为提高压力变送系统测量精度和响应速度,王金晨等[3]基于MSP430 单片机研究并实现了高精度微功耗数字压力表,采用干电池供电可连续工作3 000h;仝新建等[4]针对4~20mA 工业电流环的测温精度不足问题设计一种电阻温度探测器数字电流环变送器,通过在特定温度区域的温度补偿实现测温的温差小于0.1℃;湛月等[5]针对特种气体制备过程低温监控需求,研究低温铂电阻的测量问题,使用高精度ADS1120 转换器设计基于铂电阻的二线制低温变送器,实现稳定的低温4.2~370K 的测量,系统测量绝对误差小于0.1%;唐德红等[6]为提高传统压力变送系统测量精度和响应速度,针对高温熔体设计一种高精度熔体压力变送系统,该系统检测精度高,测量误差小于2%。

本文针对现有压力变送系统测量精度低、响应速度慢,而水务管网流体压力监测信号小、数据波动不明显、现场监测设备供电困难等问题,基于STM32 微控制器设计一种适用于小信号流体监测的智能压力变送系统。该系统采用锂电池供电,高精度电阻式应变压力传感器和高精度A/D 转换器,通过软件平均滤波方法实现对流体压力的精准监测。

1 压力变送器总体设计

流体压力变送器由采集压力波动的压力传感器、信号处理的A/D 转换器、接收转换数据并处理的STM32 电路和显示数字压力值的OLED 显示屏4 个部分组成[7-8]。

系统独特性体现在以下3 个方面:①将压力传感器输出信号与STM32 的快速处理能力相结合;②通过外接高精度A/D 转换芯片完成对压力传感器输出模拟电压信号的模数转换;③通过软件平均滤波方法对系统输出电压进行补偿,进一步提高系统的检测精度。

压力变送器整体结构如图1 所示。

Fig.1 Overall structure of pressure transmitter图1 压力变送器整体结构

系统工作过程:①压力传感器通过四线桥式电路设计测出水流压力的波动变化;②通过与压力传感器相连的A/D 转换器经桥式电路输入电压模拟信号,经信号处理后,通过SPI 总线传给STM32;③STM32 根据计算公式处理A/D转换器的电压值,并通过OLED 屏实时显示出来。

2 压力变送器硬件设计

系统硬件主要由金属电阻应变式压力传感器、信号处理电路、显示电路以及电源电路组成。电源模块为各模块提供稳定电源,压力传感器先进行数据采集,经A/D 转换电路的信号处理后送入STM32 再次进行滤波处理,最后通过OLED 输出显示数字电压值。

系统硬件框架如图2 所示。

Fig.2 System hardware framework图2 系统硬件框架

2.1 电源供电

考虑到监测水流压力波动时电线供电不方便,所以本文采用3.6V 锂电池给整个系统供电。电池给STM32 和A/D 转换器供电,A/D 转换器的激励电流给压力传感器恒流供电。

2.2 压力传感器选型

根据流体在供水管道中压力波动较小的特点,选用在高湿度环境下能适应小信号的金属电阻应变式压力传感器[9-10]。该传感器具有结构简单、操作方便、采样精度高、受温度影响小等优点,适合高湿度环境下的信号测量[11-12]。本文选用MPM281VC 型压力敏感元件,其为恒压供电、标准输出,且全部为不锈钢材质,适合多种流体介质。

2.3 A/D 转换电路

由于供水流量变化较固定且供水管道压力波动信号较小,所以本文选用一款适合小信号测量的ADS1120 芯片用于供水管道流体压力监测,其精密程度达到16 位,最高采样频率达到512 kHz,多路复用器可实现任意组合通道的数据采集。

为配合压力传感器的四线桥式接口,要设计与之对应的电阻桥式测量电路[13-14]。本文将AIN0 通道作为恒流电压输入端口,AIN2 通道和AIN3 通道分别作为负信号端口和正信号端口,从AIN1 通道处飞线引出,测试ADS1120是否正常工作。STM32 通过SPI 总线接口与ADS1120 进行数据交互。在SPI 通信端口中,ADS1120 的CS 是器件片选端口,DRDY 是数据转换状态的标志端口。硬件电路如图3 所示。

Fig.3 A/D conversion circuit图3 A/D 转换电路

3 压力变送器软件设计

基于硬件进行压力变送器相应的软件设计。首先STM32CUBEMX 对系统时钟和引脚配置进行初始化,然后开启ADS1120 的SPI 通信,由STM32 发送控制命令获取ADS1120 芯片传回的二进制压力数值,最后STM32 处理完数据之后,通过调用OLED 显示函数完成压力数值的实时监测。具体流程如下:①初始化SPI 通信;②选中ADS1120芯片,通过写命令配置4 个寄存器;③通过开始转换命令,使16 位A/D 转换器开始转换;④将得到的二进制压力数值通过SPI 通信传给STM32 微控制器;⑤最后微控制器根据ADS1120 对应的转换公式计算出数字压力值;⑥调用OLED 显示函数实时显示压力值。

3.1 初始化SPI 通信

首先对ADS1120 的SPI 通信进行初始化。SPI 通信配置为:STM32 主模式(ADS1120 从模式)、全双工通信、8 位字节传输,时钟极性和时钟相位,软件控制,MSB(Most Sig⁃nificant Bit)二进制数据的最高位发送等。

部分程序如下:

3.2 寄存器配置

首先下拉CS 引脚选中芯片,然后通过给芯片发送WREG 命令,依次配置4 个寄存器。注意在配置每个寄存器之前都要先给芯片发一个WREG 命令(同时WREG 命令需要考虑到每个寄存器的偏移)。

部分程序如下:

3.3 A/D 转换器工作

首先STM32 发送START 命令,使模式转换器开始工作;然后STM32 发送RDATA 命令与两个0XFF 字节,使模式转换器回传两个数据字节给STM32。

因为SPI 通信使用MSB(二进制数据的最高位),所以STM32 接收到的第一个数据字节是高字节,接收到的第二个数据字节是低字节。

部分程序如下:

3.4 公式计算

STM32 将收到的二进制压力数值转换成数字电压值。桥式电路的LSB size 对应的转换公式如下:

式(1)选用的基准电压Vref 为3.6V,增益倍数Gain 为1。代码如下:

3.5 OLED 显示

调用OELD 显示函数显示数字电压值,代码如下:

4 实验数据分析

为验证压力转换系统的精度和稳定性[15-16],本文分别对A/D 转换电路和压力转换系统精度进行测试。

4.1 A/D 转换电路精度测试

测试AIN1 通道在不同增益倍数及是否开启数字滤波器情况下的数据,测试结果及误差如表1 所示。

测试流程如下:①从ADS1120 的AIN1 通道接入电压;②OLED 显示电压数值;③比较分析接入电压和输出电压的数值,得出误差。

Table 1 Test results and errors表1 测试结果及误差

由实验所得结果可以看出:①A/D 转换电路的单通道测量精度很高;②随着增益倍数的增加,误差越来越小,原因可能是软件代码的精度配置不够准确;③数字滤波器开启使得误差减少。数据表明实验室环境中存在噪声,且数字滤波器对噪音起到了一定的滤波作用。

总体来说,测试结果误差都小于0.1%,A/D 转换电路设计满足了小信号压力值的测试精度要求。

4.2 压力变送系统精度测试

供水管道压力的正常范围一般为0~2.5MPa,在该区间段每增加0.5MPa 记录一次数据,测试结果及误差如表2所示。

Table 2 Test results and errors表2 测试结果及误差

由实验结果可知:①物理量与模拟输出量成比例关系,说明压力传感器在0~2.5MPa 的范围内正常工作,适合流体的小信号测量;②模拟输出量与数字电压量相差3%以下,说明压力变送系统[17-18]测量精度尚可,压力变送系统设计符合预期。

5 结语

本文针对市面上出现的传统压力变送系统存在测量精度低、响应速度慢,而水务管网流体压力监测[19-20]信号量小、数据波动不明显、现场监测设备供电困难等问题,设计了一种基于STM32 的高精度流体压力变送系统。该压力变送系统根据现场水务管道供电困难问题,采用锂电池供电和A/D 转换器激励电流供电,硬件电路设计均使用低功耗芯片,大大延长了电池使用寿命。实际测试表明:压力传感器测得的数据经过A/D 转换和STM32 处理,能够实时准确监测供水管道压力,系统响应速度快、稳定性高,达到了预期的设计目标。

猜你喜欢
变送器流体供电
山雨欲来风满楼之流体压强与流速
战洪魔保供电
XTR105电流变送器在温度传感器中的应用
等效流体体积模量直接反演的流体识别方法
2050年澳大利亚或实现100%可再生能源供电
2050年法国或实现100%可再生能源供电
浙江中控 高精度压力变送器SUPCON新一代CXT系列
供电恢复在提高供电可靠性及改善供电质量的作用
基于WIA-PA的无线温度变送器设计