陈 翔,尚 宇,许根源,芮振雷,颜 晨
(中科芯集成电路有限公司,江苏 无锡 214072)
智能传感器作为数字时代的感知层,是集传感芯片、通信芯片、微处理器、驱动程序、软件算法于一体的系统级产品[1]。日常生产与生活中,浊度值可以表明液体的洁净程度[2]。光线在水中传播时被悬浮物阻碍而影响的程度被定义为浊度。浊度值能够直观体现水体质量[3]。浊度传感器能够对水质的浊度进行测量,是水质指标检测的重要部件[4]。
浊度传感器由于对结构与电路精密要求高,存在参数采集精度低和设备组装复杂等问题。这导致浊度传感器成本高、适用范围受限。本文基于CKS32F030,设计了一种低成本、高精度、宽量程的智能浊度传感器。该传感器具有结构简单、操作方便、成本低、测量精度高、数据通信传输稳定等优势,具有良好的应用前景。
浊度传感器测量原理为:依据光在水中的传播特性,采用光学散射法或透射法,将散射光信号或透射光信号通过光电器件转换为电信号,并在单片机中经过算法处理,得到浊度值。低浊度值测量宜采用散射法,而较大浊度值测量宜采用透射法。本文设计的浊度传感器通过智能或手动切换量程的方式同时采集散射光信号和透射光信号[5]。
浊度传感器原理如图1所示。
图1 浊度传感器原理示意图
液体中的悬浮物质越多,则红外光源光线经过待测液体后透射光强度越低。浊度值与透射光强度测量值存在相应关系[6]。参考朗伯特-比尔定律,可以得出透射光强度与浊度的关系如式(1)所示。
A=OeKTL
(1)
式中:A为透射光强度;O为入射光强度;K为比例常数;L为透光层厚度;T为浊度。
光电呈线性转换关系,即透射光转换的电信号与浊度浓度表现为对数关系。当散射光接收器件测量待测液体中悬浮物直径远小于光源入射光波长时,则可以使用瑞利定律表示散射光强度变化规律。
S=BNO
(2)
式中:S为散射光强度;B为比例系数;N为单位体积水中的微粒数。
浊度传感器融合了散射法和透射法。浊度传感器设计采用多个光电采集器件,分时采集单红外光源信号经过待测液体后的光信号,并满足防水要求。硬件设计满足电气特性,同时考虑低功耗、小尺寸、少器件的优化。软件设计采用可靠的采集转换算法、脉冲控制算法,以实现高精度浊度测量并有效延长红外光源器件的使用寿命。
浊度传感器结构如图2所示。
图2 浊度传感器结构示意图
浊度传感器的探头下部为圆柱接头。红外光源及光电采集器件置于圆柱接头内,信息采集与处理板卡置于浊度管中。这样可以有效保护电器件。
浊度传感器硬件总框图如图3所示。
图3 硬件总框图
浊度传感器硬件包括电源转换电路(电源输入电路、DC-DC电路、稳压芯片电路)、主控单片机电路、红外光源驱动电路、多路光信号采集电路、模拟开关切换采样通道及模数转换(analog-to-digital conversion,ADC)采集电路、通信信号输出电路(RS-485芯片、4~20 mA驱动电路)。
传感器圆柱体接头中间留有空隙。传感器放入待测液体后,待测液体将空隙填满。光电器件对空隙中的待测液体进行测量。浊度传感器使用图2中光电采集器件2采集经过待测液体的透射光、光电采集器件3采集经过待测液体的散射光。红外光源上方光电采集器件1为红外光源信号采集器,可实时反馈红外光源的亮度,保证光源调制亮度在设定误差范围内。光源和光电采集器件前端的接头壳体表面涂有专用透光层,用于减少可见光的干扰。浊度传感器有严格的防水措施,测量时将探头放入待测溶液中,从而在通电后得到待测液体的浊度值[7]。
浊度传感器中有多路光信号采集电路。为降低成本,浊度传感器通过一个模拟开关将多路采集电路的采样值传输给高精度24位ADC芯片。
单片机使用CKS32F030C8T6, ARM Cortex-M0内核,最大主频可达48 MHz。芯片内部Flash容量为64 KB,内部静态随机存取存储器(static random-access memory,SRAM)容量为8 KB。总容量工作电压范围为2.4~3.6 V。使用8 MHz晶振电路,可以避免温度漂移带来的影响。同时,硬件设计外部复位、滤波电路与烧录接口。
浊度传感器外部供电为24 V,光源驱动电路需要5 V作为参考电压。由于压降较大,使用降压芯片将24 V转为5 V。
24 V转5 V电路如图4所示。
图4 24 V转5 V电路图
图4中:R3、R4使用1%精度的贴片电阻作为反馈;D1为续流二极管,为L1提供电流回路,以防止降压芯片被击穿。
浊度传感器使用红外光源,需要恒定电流。其输出功率与电流成正比,可以调整输出电流为4~20 mA,以驱动红外光源。恒流光源驱动电路如图5所示。
图5 光源驱动电路图
图5电路主要由放大器KA358A(U8A和U9B)、三极管BCP56(Q3)、二极管LD(D9)等器件组成,通过单片机脉冲宽度调制(pulse width modulation,PWM)算法,经两级低通滤波电路后转为直流电压。根据运放“虚短”原理,可得式(3):
U1=U2
(3)
式中:U1为正向输入端电压;U2为二级运放U9B反向输入端电压。
因为下分压电阻R25与上分压电阻R26为串联,流经电流相同,所以三极管Q3发射极电压U3为:
(4)
同理,上分压电阻R28与下分压电阻R34为串联,流经电流也相同,故可得D9供电电压U4为:
(5)
式中:U0为一级运放输出电压。
负载电流Iload为:
(6)
光信号采集电路采用接收光电二极管作为接收器件。当有光信号时,光电二极管D6内阻产生变化。光信号越强,内阻越小;光信号越弱,内阻越大。当没有光信号时,其内阻最大,几乎没有导通电流[8]。采样信号通过两级运放(U10A和U11B)进行放大,通过高精度ADC芯片CS1237进行ADC。光信号采集电路如图6所示。
图6 光信号采集电路图
采样后电信号UAD1为:
(7)
式中:UAD1为单片机采样电压;U10为U11B输出电压;U9为U11B反向输入端电压;R12为下分压电阻;R13为上分压电阻。
根据运放“虚短”“虚断”原理,可得:
(8)
式中:U7为U10A输出电压;U8为U11B正向输入端电压。
(9)
式中:U5为D6两端压差电压;U6为一级运放U10A反向输入端电压;R14为下分压电阻;R11为上分压电阻。
由式(8)和式(9)可以得出UAD1与U5的关系,单片机可根据ADC采样结果计算出采样值。
通过选通模拟开关芯片,将采集的多路模拟量分时输出到24位ADC芯片,经过ADC将数字量输出至单片机。模拟开关的选通作用,有效避免了每一路模拟量采集都加ADC芯片[9]。
模拟开关及ADC采样电路如图7所示。
图7 模拟开关及ADC采样电路图
浊度传感器在工控领域应用时,用电压信号传输会造成传输线受噪声干扰、产生压降等问题。因为电流对噪声并不敏感,所以本文使用4~20 mA电流信号作为信号输出。R23阻值不变,通过PWM方式控制N-MOS 器件,经过C28、C29、R20组成的π滤波电路以及两个运放控制电路,控制R23电阻两端压差,实现IAO3电流在4~20 mA范围内稳定输出。
电流输出信号4~20 mA电路如图8所示。
图8 电流输出信号4~20 mA电路图
单片机与RS-485芯片进行通信与使能控制。MAX3485是一个3.3 V的低功耗半双工收发器,满足RS-485和RS-422串行协议的规格,最高可达10 Mbit/s。通过RS-485芯片,可满足将单片机逻辑门电平信号转换为符合RS-485电平的要求[10]。RS-485电路如图9所示。
图9 RS-485电路图
浊度传感器软件总体框架流程如图10所示。
图10 软件总体框架流程图
传感器作为Modbus从设备,接收主设备读写命令。其一般工作在两种模式:一种是传感器正常数据采集模式;另一种是工厂模式(数据标定模式)。初始化完成后,如出现异常工作情况,传感器会通过Modbus寄存器将报错代码上传主机设备。同时,硬件板卡上的发光二极管(light emitting diode,LED)警示灯闪烁提醒。浊度传感器通信满足标准Modbus RTU通信协议,能够解析0x05、0x0F、0x06、0x10等命令。Modbus通信处理流程如图11所示。
图11 Modbus通信处理流程图
多路光电感应器件通过模拟开关接入高精度ADC芯片,逻辑上高效分时复用,能够大幅降低硬件成本,同时可以减少器件使用,以缩小硬件板卡尺寸。
浊度传感器数据采集逻辑流程如图12所示。
图12 浊度传感器数据采集逻辑流程图
通过反复试验,本文发现以下两点现象。
①浊度传感器使用过程中会有可见光影响光电感应器采集红外光源发射的光信号。
②浊度传感器采用国产红外光源器件。由于传感器使用环境恶劣且工作时间长,光源器件持续工作会导致器件寿命缩短。
针对上述问题,红外光源设计为PWM,在不同应用场景使用特定开关时间[11]。同时,在红外光源关闭时,光电感应器件测量外界光线在测量液中传播后的信号,在计算算法中将外界光影响因素去除。
传感器校准模式包括对标准溶液浊度值标定校准、对环境温度测量校准、4~20 mA输出校准。
浊度传感器组装过程如下。
①将烘箱设置为50 ℃,浊度传感器接头清洗后放置烘箱内进行2 h烘干,取出后套上密封圈。
②贴光学镜片要求用游标卡尺测量外形尺寸,确保尺寸在(13±0.05)mm。
③分别用密封圈包裹红外光源、光电感应器件,再塞入玻璃保护柱内底部。玻璃保护柱塞入传感器接头孔内,灌入环氧树脂。
④通信线和电源线穿过密封底座与浊度管内硬件板卡连接,拧紧密封底座。在浊度管靠近密封底座部分灌入环氧树脂。将硬件板卡塞入浊度管中,浊度传感器接头螺纹涂抹703胶水后拧上浊度管。浊度传感器整体安装如图13所示。
图13 浊度传感器整体安装图
实验室测试环境由工控触摸屏、浊度传感器连接构成,用于测量待测液体。
试验配置福尔马肼标准浊度液,对传感器进行出厂标定。标定完成后,试验分别取标准浊度50 NTU、100 NTU、200 NTU、300 NTU、500 NTU进行测量[12]。试验使用浊度传感器对每个标准浊度测量5次。浊度传感器测量数据如表1所示。
表1 浊度传感器测量数据
由试验数据计算可知:浊度传感器测得标准液浊度平均值分别为49.91 NTU、99.73 NTU、200.37 NTU、300.15 NTU、500.89 NTU。对应标准偏差分别为0.51、1.12、2.1、2.52、2.18。相对标准偏差分别为1.02%、1.12%、1.05%、0.83%、0.44%。分析可知,浊度传感器整体测量精度高、重复性误差小,且高浊度测量效果优于低浊度测量。
本文设计的浊度传感器已实现量产,并在水质监测和控制的多个场景中应用,得到客户高度认可。实际使用中,传感器镜片表面会有各种形态的污染物堆积,影响测试。在本文浊度传感器设计结构上作调整,增加一个小步进电机,使电机带动小刷子定时对镜片表面进行冲刷,可有效减少污垢。红外光源亮度智能控制、多通道分时切换进行模数采样等措施让传感器具有更便捷、更省电、更精准的优势。在此基础上,浊度传感器增加蓝牙、射频等无线模块,结合低功耗设计,使用电池供电,使浊度传感器的应用场景范围更加广泛,并降低人工维护成本。