黄 健
西京学院信息工程学院,陕西西安 710123
盐水浓度检测在水资源保护、食品加工、医疗卫生等方面有广泛应用.常用的测量方法有比重计法和天平法等,近年来也出现了其他电子测量方法,如杨璇等[1]采用超声波测量乙醇溶液密度,对回波信号进行数据拟合分析,测量乙醇溶液密度;吴黎杰等[2]以声速测量为基础,用曲面拟合算法测量盐水质量分数;张述仁等[3]用超声波测量液体中的悬移物质的质量分数,并用蚁群算法进行了反演,测量误差最小达到10%.但是,这些方法均基于超声波进行测量,方法单一,且测量精度不高[4-7],如文献[1]的测量精度达到1.2%,文献[2]的测量误差大于0.1%.同时,算法需对大量数据进行建模分析,算法复杂度较高,可靠性有待进一步验证.为此,本研究提出一种新的盐水质量分数测量方法,基于非接触式电容感测技术,用新型数字式电容传感器FDC2214检测盐水液位和质量分数变化.将单面覆铜板插入盐水中,铜板上的寄生电容会随盐水液位或质量分数的变化而变化.FDC2214传感器能够感知这种微弱变化,并将其转换为28 bit的二进制数,再从集成电路总线(inter-integrated circuit, IIC或I2C)接口输出给微处理器.同时,使用超声波测量液位高度,得到被测液体的体积;使用高精度电子秤测量液体的质量,进而得到液体的比重,融合处理后最终得到输出信号与盐水质量分数的关系.
本研究设计的盐水质量分数检测系统框图如图1.其中,主控采用新型嵌入式微处理器STM32H743IIT6,该处理器基于Cortex-M7架构,主频高达480 MHz,具有丰富的硬件配置和接口.微处理器STM32H743IIT6采用3.3 V的直流供电.
图1 盐水质量分数检测系统设计框图Fig.1 Design diagram of brine mass fraction detection system
将薄铜片插入盐水中作为传感器,FDC2214的通道1与其相连,检测液体环境下铜片上的寄生电容值,并在内部将其转换为28 bit的二进制数,再用IIC接口传送给微处理器STM32H743IIT6.电子秤模块能够准确测量容器质量,测量数据通过模数转换(analog to digital converter, A/D)接口传送给STM32H743IIT6微处理器进行处理.超声波测距模块用于测量液位高度,测量结果通过串口传送至STM32H743IIT6微处理器.采用C语言对微处理器编程,对采集到的数据进行融合,处理结果通过串口传输给电脑或液晶屏.
电容计算公式为
(1)
其中,ε0为真空介电常数,ε0=8.85×10-12F/m;A为一个板极的面积(单位:m2);d为板极之间的距离(单位:m);ε为相对于空气的介电常数[14].常见介电质的相对介电常数如表1.
表1 不同介质的相对介电常数
由式(1)可见,电容容量与相对介质常数ε、 板极的面积A成正比,与板极之间的距离d成反比.介质变化(如盐水质量分数变化)会引起ε的变化,从而引起C的变化[5-8].电容传感器FDC2214能够感知这种变化,并将其转换为数字量输出.FDC2214共有4个通道,标号为通道0~3,对应的数字输出量为DATA0~DATA3,每个通道的工作原理都相同.以通道0为例,电容检测的等效电路如图2.
图2 FDC2214通道0等效电路Fig.2 Equivalent circuit of channel 0 in FDC2214
图2中,感知板1为单面覆铜板,裸露在空气中,其值基本保持不变;感知板2是插入水中的单面覆铜板,当液位或浓度发生变化时,其值发生变化.感知板1和感知板2构成目标检测传感器,二者串联后与电感L和电容C构成振荡电路,振荡频率fs和参考频率fr分别为
(2)
(3)
其中,Cx为感知板1和感知板2的电容Cx1和Cx2串联后的等效电容,C1为图3中通道1的电容,C2为图3中通道2的电容, 1/Cx=1/Cx1+1/Cx2;fclk为FDC2214传感器的输入频率,本研究设fclk=40 MHz;ch0_sel是通道0的分频系数,通过软件设置FDC2214内部寄存器0X14来实现对fclk的分频,本研究设置为二分频.
由于Cx2的变化,会引起Cx变化,进而引起fs的变化,而式(3)中的fr基本不变,因此,转换后的28 bit二进制数为
(4)
本研究设计的盐水质量分数电容感测的原理图如图3.其中,FDC2214传感器外接40 MHz有源晶振,可提高数据采集的速率.为增强盐水质量分数测量系统的可靠性和实用性,需对所处环境进行检测.FDC2214的通道0检测当前空气环境下电容值,通道2检测被测量液体的电容值,将其完全浸入液体中,并以这两个测量值作为参考值.在实际测量中,若当前环境未发生大的变化,则空气环境下电容值和被测量液体的电容会基本保持不变.但若在不同的时间或季节进行测量,温度变化会令测量值发生微小变化,导致盐水质量分数和电容感测值之间拟合曲线的函数关系也会略有变化.本研究正是基于此原因研究温度对盐水质量分数变化测量的影响.通道1连接一个单面覆铜板,将该覆铜板部分插入液体中,部分裸露在空气中,当液位发生变化时,单面覆铜板上寄生电容的容量会发生变化.FDC2214传感器敏锐的感知此变化,并将此变化转换为28 bit的二进制数字量,再通过IIC接口传送给STM32H743IIT6微处理器.
图3 盐水质量分数电容感测原理图Fig.3 Schematic diagram of capacitance sensing of brine mass fraction
称重电路设计采用桥式压力传感器,如图4.重物令压力桥产生形变,导致电阻阻值发生变化,桥式传感器产生电压差并被传送给24 bit A/D转换器芯片HX711-BF,再经内部放大和转换后传送至微处理器STM32H743IIT6.称重电路可检测物体质量,其中,桥式压力传感器测量精度为1 g.
图4 桥式压力传感器电路图Fig.4 Circuit diagram of bridge pressure sensor
HX711-BF模块满量程输出电压为激励电压与灵敏度的乘积.若供电电压为5 V,灵敏度为1.0 mV/V,则满量程为5 mV,相当于有5 kg质量产生5 mV的电压.HX711-BF 模块A通道带有128倍信号增益,输出24 bit A/D转换后的值,而STM32H743IIT6微处理器通过A/D转换接口将24 bit数据读出,该过程可通过以下两步骤进行.
1)计算传感器供电电压.VCC为HX711-BF模块的供电引脚电压,GND为地线.设模块基准电压VBG=1.265 V,R1=20.0 kΩ,R2=8.2 kΩ,则
VCC=VBG(R1+R2)/R2=4.3 V
(5)
2)将HX711-BF输出的A/D转换值转换为质量值.设桥式传感器的量程小于5 kg,并假设压力桥上的物体质量为m(单位:kg),桥式传感器将此质量转换为电压.在将此电压输入H711-BF A/D转换模块,经过内部放大器放大128倍后,转换成二进制数字量.为便于计算此处用十进制表示,即
(6)
则可得桥式传感器上物体质量为
m=D/(429.5×103)
(7)
串口超声波测距模块如图5,采用5 V直流电压供电,数据输出引脚OUT可连接到STM32H743IIT6串口4的RXD引脚PC11.因此,接收到的数据帧格式为:0XFF+H_DATA+L_DATA+SUM. 其中,0XFF为起始字节;H_DATA为测量数据的高8 bit;L_DATA为测量数据的低8 bit;SUM为8 bit的校验和[9-13].测量距离H(单位:mm)通过式(7)计算.测量精度达1 mm,测量范围为2~3 500 mm.
H=H_DATA×256+L_DATA
(7)
图5 串口超声波模块Fig.5 Serial port ultrasonic module
用C语言编写程序,在KEIL MDK开发环境下编译并调试通过后下载到微处理器STM32H743IIT6中.图6为盐水质量分数测量系统的软件流程图.首先,对STM32H743IIT6微处理器的串口、串行外设接口(serial peripheral interface, SPI)、IIC、A/D转换采集接口和定时器等进行初始化,并设置采集次数.然后,判断是否达到采集次数,若没有,则循环读取超声波测距、压力桥和电容感测数据,并对其进行软件滤波处理.若达到采集次数,对所有数据进行融合分析,得到盐水质量分数值与电容感测值之间的函数关系(测试部分给出).最后,将实验得到的信息通过串口发送给电脑或显示屏.
图6 盐水质量分数测量系统软件流程图Fig.6 Software flow chart of brine mass fraction measurement system
为降低误差、提高测量精度,需对电容感测、压力桥和超声波测距的数值进行均值滤波处理.本实验对每组数据均重复采集100次,再按升序排序,去掉最大值和最小值各20个,将剩余数据的均值作为最终值.
图7 盐水质量分数电容感测量系统样品Fig.7 Sample of brine mass fraction capacitance sensing measurement system
按上述原理设计硬件电路并编写程序,调试后制作测试样品,如图7.其中,显示屏幕为4.3 in(1 in=25.4 mm)RGB真彩屏;超声波测距模块放在玻璃容器正上方,用于测量液位高度.实验时将15.0 cm×10.5 cm的单面覆铜板一端插入液体中,另外一端裸露在空气中.玻璃容器是带刻度的圆形器皿,高21 cm,直径为16 cm.
测试时,每次按照表2配置好的不同质量分数的盐水,倒入玻璃容器中,然后读取超声波测距、电容感测FDC2214和压力传感器HX711-BF的数据.如表2.
表2 盐水质量分数电容感测实验结果
由表2可见,随着液位的增高,盐水质量增大,盐水的质量分数亦逐渐增大,而电容感测值逐渐减小.为了得到准确的盐水质量分数和电容感测值之间的关系,继续提升盐水质量分数,并记下测量值,并采用Matlab软件对数据进行拟合分析,结果如图8.
图8 盐水质量分数和电容感测值之间拟合曲线图Fig.8 Fitting curve between brine mass fraction and capacitance sensing value
由图8可见,拟合曲线近似为直线,对应函数关系为
C=-30.48w(盐水)+22 330
(8)
其中,w盐水为盐水的质量分数.可见,在保证液位保持不变的情况下,盐水质量分数和电容感测测量值之间为较好的线性关系.实验中,为保证测量精度,用量程为500 g,精度为0.01 g的高精度电子秤测量盐的质量,用量程为100 mL的量杯盛装水,准确配置出不同质量分数的盐水,将其加入图7的大量杯中进行测量.这样配置的盐水质量分数精度已超过0.1%.若要保证液位高度不变,则每次只需改变盐的质量,调整加水量,即改变盐水质量分数,再进行测量.这种测量方法,可将整个系统的盐水质量分数的测量精度提高到0.1%.
提出一种基于电容感测技术的盐水质量分数测量方法,设计对应的硬件电路和软件,并制作出测试样品.通过融合实测得到的液位高度和盐水质量信息,确定了盐水质量分数和电容感测值之间的函数关系.相比简单的超声波测量技术,本研究测量方法的测量精度更高、抗干扰能力更强.