基于STM32的红外分光测油仪的设计
2014-03-21叶晓剑吴叶兰廉小亲段振刚
赵 瑾,叶晓剑,吴叶兰,廉小亲,段振刚
(北京工商大学计算机与信息工程学院,北京 100048)
0 引言
长期以来,油类物质一直是重要的水污染源。食用含有石油类物质的水不仅会对人们的健康构成威胁,而且排放到水中的油类污染物会致使水质恶化,严重破坏水体生态平衡。只有了解水质的污染程度才能制定出解决方案,因此准确地检测出水体中油含量是掌握水质变化、治理油污染、保护生态平衡必不可缺的手段[1]。但是,目前我国检测手段相对落后,与国际先进水平还存在一定的差距,难以测出精确的数据。为此,对水污染检测技术进行了相应的研究,研制出了一种基于STM32的红外分光测油仪,它能够对水中矿物油和动植物油的含量进行检测并具有较高的灵敏度和稳定性,为我国各级环境监测站鉴定水质污染程度提供了可靠的技术支持和精确的测量手段。
1 系统总体设计
1.1工作原理
红外分光测油仪的设计是基于光学中的朗伯-比耳定律,该定律可以表述为:当一束平行单色光垂直射入含有吸收物质的溶液时,溶液的吸光度与吸收物质的浓度成正比。朗伯-比尔定律的数学表示式为:
A=log(1/T)=log(I0/I)=K·b·c
(1)
式中:A为待测物质的吸光度;T为透过率,T=(I0/I)×100%;I0为入射单色光强度;I为透射光强度;K为吸光系数;b为液层厚度;c为样品浓度。
通常,油中含有多种有机物,组成成分较为复杂,可以分为石油类和动植物油类。对于特定种类的油,其组分稳定,且各组分的含量一定,所以特定种类的油对特定波长的光的吸收能力也是确定的,即其吸光系数为常量[2]。当液层厚度b一定时,K·b也为常量,由式(1)可知,只要测出入射光强度I0和透射光强度I,便可求出吸光度A.而吸光度A又与浓度c呈线性关系,根据二者之间的关系作图,可以得到相应的标准工作曲线,由该曲线就可以根据吸光度求出样品浓度,这样就把对样品浓度的测量转化成了对吸光度的测量,便于系统设计。
1.2系统整体结构
红外分光测油仪主要由滤光系统、信号处理系统、STM32控制系统和上位机系统4部分组成,系统整体结构如图1所示。
油类物质分子一般含有亚甲基(-CH2)、(甲基-CH3)和芳香环中的(-CH)键,这些-CH键分别对波数为2 930 cm-1、2 960 cm-1和3 030 cm-1的光具有明显的吸收作用,而用来萃取水样中油份的CCl4溶液在这三个波数附近基本不吸收[3]。这样,首先将用作参比溶液的CCl4溶液放到比色皿池中,光源卤钨灯发出的复合光经由凸透镜聚焦到单色器上,由单色器分离成一定波长的红外光。红外光经过CCl4溶液照射到光电转换模块中的热释电偶传感器上,由该传感器将红外光携带的热能转换成电信号,电信号经过放大和滤波处理以后,进入STM32单片机的A/D模块进行模数转化,最后再通过USB串口将转化好的数字信号上传给上位机系统,由上位机系统完成对这些数据的储存。接下来,再将用CCl4溶液萃取好的样品溶液放入比色皿池中,对其对应的光信号进行同样的采集、上传处理。由于CCl4溶液不含可以吸收红外光的物质,而萃取液含有一些可以吸收红外光的官能团,所以红外光经过萃取液时会被吸收一部分。上位机根据这两次A/D采集数据之间的差异,结合朗伯-比尔定律,利用式(1)计算出样品中总油对红外光的吸光度,然后再按照《HJ637-2012》标准中的方法对萃取后的样品溶液进行处理,就可以分别求出水样中总油、石油类和动植物油类的浓度,根据这些浓度指标就可以对水质的污染情况进行判断。
图1 整体结构框图
2 红外分光测油仪系统的硬件设计
2.1滤光系统
为了得到波数为2 930 cm-1、2 960 cm-1和3 030 cm-1的红外光,需要对光源发出的复合光进行波长扫描,滤光系统的设计就是为了达到这个目的。该系统主要由光源卤钨灯、凸透镜和单色器三部分组成,工作原理图如图2所示[4]。系统工作原理为:光源发出的复合光通过凸透镜聚焦进入单色器的入射狭缝处,由球面反射镜M1使入射光变成平行光射向光栅。由于光栅表面有着细密的狭缝,能够将连续的复色光色散成各个波长分离的单色光,单色光经球面反射镜M2反射后汇聚成像在不同的位置。为了使用方便,将仪器的入射狭缝和出射狭缝固定不变,通过步进电机来带动光栅转动,各路出射光的像点也会跟着移动,相应波长的光就会依次从出射狭缝射出,进入比色皿池中。这样只需控制步进电机转动的角度就可以实现波长的自动扫描,得到波数为2 930 cm-1、2 960 cm-1和3 030 cm-1的红外光。
图2 滤光系统工作原理图
2.2信号处理系统
信号处理系统主要由光电转换模块和信号调理模块2部分组成。从比色皿中透射出的光信号首先由光电转换模块转换为电信号;电信号再由信号调理模块进行放大、滤波处理转换成一定电压范围内的模拟信号,该模拟信号最终进入到STM32的A/D模块中实现模数转换。
2.2.1光电转换模块
由红外分光测油仪的工作原理可知,需要测出水样在波数为2 930 cm-1、2 960 cm-1和3 030 cm-1处的吸光度,故选取的热释电偶传感器探测的光谱范围需在3 300.33~3 412.97 nm之间。这里选择红外光电导探测器硒化铅(PbSe)作为传感器,它能将接收到的红外信号转换成电信号,探测范围为1 000~7 000 nm,峰值波长为4 000 nm,能够满足设计要求并且具有较高的响应速度和精准的探测度。由PbSe传感器的工作特性可知,它对光信号进行转换以后输出的物理量是电阻,随着光照强度的不同,输出阻值的大小也随之改变。为了方便这一模拟信号的采集设计了一个恒流电源,将它与PbSe传感器串联就可以将对电阻量的采集转变为电压量的采集。光电转换模块电路见图3。
图3 光电转换模块电路图
由于图3中三端可调的恒流源器件LM334只在恒温时才是恒流的,为了避免电路中温度变化对恒流性能带来的影响,根据其工作特性曲线,在电路中加入了一个二极管1N457和电阻R1[5],利用PN结的负温度系数对LM334的正温度系数进行了相应的补偿,取得了良好的恒流效果,保证了测量的精度。
2.2.2信号调理模块
经光电转换模块转换后的电压信号仅为几十mV,因此需在电路中加入前置放大器将该电压信号放大到STM32电压采集的范围。在这里选用了AD620放大器,它的最大工作电流为1.3 mA,共模抑制比较高为93 dB,具有增益调节方便、噪声低、精度高等优点[6],使用时仅需要一个外部滑动电阻就可以调节1~10 000的增益,方便外围电路的设计。
同时,为了得到需要的电压信号还对放大后的信号进行了滤波处理。传统测油仪对光源的调制都是通过高速电机对光源进行切光操作来实现的,容易产生大量的杂波信号,所以信号处理部分需要设计复杂的滤波电路,而该设计采用了一种新的调制方法。该方法通过软件控制卤钨灯以一定的周期闪烁,单片机在采集卤素灯亮时PbSe传感器获取的模拟量的同时也采集卤素灯灭时的模拟量,然后再将这两个模拟量作差就可以得到光照强度的变化。由于传感器得到的模拟量的变化频率是跟卤素灯的工作频率一样,所以用一个低通滤波器就可以滤除电路中的高频信号。
此外,由于放大电路中AD620放大器的输出阻抗较高,如果后级的输入阻抗比较小,信号就会有很大一部分损耗在放大电路中的输出电阻上。为了避免这种消耗,在STM32的A/D采集口前加入OPA2340单电源运放进行直流电压的缓冲和阻抗的变换。OPA2340是一种单电源输入/输出精密运放,采用了CMOS工艺,输入阻抗高,噪声低,轨上死区极小,可以在单电源供电的情况下实现良好的直流电压缓冲,非常适合A/D采样前的电压缓冲和放大。整个信号调理电路见图4。
图4 信号调理电路
2.3STM2控制模块
控制系统主要包括电源模块、电机复位模块、步进电机控制模块、A/D采集模块、蜂鸣器报警模块和USB接口模块。考虑到主控电路主要实现数据的采集与传输,选用了STM32F103RB芯片作为系统的微处理器。它采用了先进的ARMCortex-M3内核,不仅运行速度高、处理能力强,还自带16通道的12位A/D转换器和USB2.0全速接口[7],不需要外加A/D采样芯片和USB通信芯片,仅需一片STM32F103RB处理器和一些常见的外围模块就可以完成数据的采集与传输,简化了硬件电路的设计,降低了系统成本。当需要采集数据时,上位机系统就通过USB接口模块向STM32控制系统发送采集命令,控制系统接收到命令以后就启动电机复位模块,将步进电机复位到初始位置,便于程序的统一化设计。采集开始时控制系统通过步进电机控制模块控制滤光系统进行波长的扫描,得到特定波长的红外光;红外光被比色皿池中的溶液吸收之后经过信号调理模块的处理进入到A/D采集模块,完成模数转化,转换后的数字信号再通过USB接口模块上传到上位机系统,由上位机系统完成后续对数据的处理。
3 STM32控制系统软件设计
STM32控制系统软件部分在IAR开发环境下,采用C语言编写。为了方便系统的调试和修改,软件程序的设计方面采用了功能程序模块化的设计思路。主要的功能模块包括系统初始化模块、数据采集模块、数据处理模块和数据通信模块。系统的主程序就是在不断地循环调用这些子模块以实现对软、硬件资源的有机管理。
由于水样中油的浓度在短时间内不会发生变化,将入射光和透射光强度的采集间隔设为30 ms,分别采集100次,采集到的数据由STM32处理器送到上位机,然后再由上位机利用中值滤波算法求出平均值,再根据式(1)完成样品中油浓度的计算和标准曲线的绘制。由于篇幅的问题,上位机的软件设计这里不再详述。STM32控制系统主程序流程图和采集模块流程图分别如图5、图6所示。
图5 系统主程序流程图
图6 采集模块程序流程图
4 结束语
随着石油的大量开采和广泛使用,石油类物质对水体的污染已成为一个越来越严重的问题。加强对水中油类污染检测技术的研究,是为人们营造健康的生活环境,保护生态平衡必不可少的措施,具有重要的社会价值。文中在对红外吸收光度法研究的基础上,设计了一种高精度红外测油仪,该仪器采用STM32微控制器,把对样品浓度的测量转化成了对吸光度的测量,可以准确检测出水中总油、矿物油和动植物油的含量,具有较高的灵敏度和稳定性,为水体中油污染的治理提供了可靠依据,具有良好的应用前景和科学研究价值。
参考文献:
[1]张凯,钱东平,王文娣,等.地下(表)水中油类污染物检测系统研究.微计算机信息,2006,22(5-2):97-99.
[2]张凯.基于单片机的红外测油仪的研究:[学位论文].保定:河北农业大学,2006.
[3]孟旭东,龚志广,张立国,等.基于AT89C52的非分散红外测油仪的研制.微计算机信息,2008,24(10-1):227-229.
[4]黄晋卿.光谱光栅仪中高精度快速波长扫描方法的研究:[学位论文].上海:上海交通大学,2010.
[5]杨帆,秦万广,徐舜华.红外光电导探测器硒化铅(PbSe)在油份分析中的应用.松辽学刊(自然科学版),1996 (1):70-71.
[6]陈静,熊继军,沈三民.基于高精度运算放大器的隧道式硅微加速度计信号处理电路.仪表技术与传感器,2008(2):58-60.
[7]王爱林,刘荣华,严顶.基于STM32的CAN-USB转换模块.仪表技术与传感器,2012(6):69-70.