(湖南铁道职业技术学院 铁道供电与电气学院,湖南 株洲 412001)
超声波在距离、液体流量、气体的浓度、压力、环境的温度等相关检测过程中有相当广泛的应用,而超声波在检测以上参数中的关键技术是超声波在传输介质中的传输速度的测量。因此,对超声波在不同介质和不同温度环境下的传输速度的准确测量、测量信号的传输、存储与信号处理是实现超声波检测系统智能化应用的必经之路[1-11]。
超声波在任何传输介质中传输时很容易被外界的传输条件所干扰,其中超声波的衰减特性与传输速度是两个最容易被外界环境(传输介质、环境温度等因素)干扰的因素[2]。超声波在传输介质中的传输速度会跟随超声波传输介质的不同特性、传输介质的温度等相关因素的改变而改变[1]。国外关于超声波在不同传输条件传输速度测量的研究现状如下, M.Khelladi,0.Seddiki,F.T.Bendimerad等人在2009年借助实验验证并研究了超声波传输速度与传输介质、介质温度以及压力等相关影响因素之间的具体变化关系[1-3]。Y.Kono[4]在2019年以二氧化硅作为超声波的传输介质,借助实验验证并研究了在高压(>2 MPa)的极限条件下,超声波在二氧化硅中的传输速度和压力之间的变化关系[1]。当然,国外还有诸多学者对超声波传输速度的测量进行广泛的理论、实验或者实证研究,在此不做一一阐述。国内关于超声波在不同传输条件传输速度测量的研究现状如下,中北大学的王健设计了在高温环境下(高达1 600 ℃)的超声波传输速度测试系统,并探讨了温度与超声波传输速度之间的关系[1]。中国计量学院的杨玉杰,实验研究了在零压力与高压力(1 MPa)环境下,温度和超声波传输速度之间的关系[5]。通过对国内相关超声波传输速度测试文献的研究发现,国内诸多相关学者主要超声波的衰减特性等的相关研究比较多,而对超声波传输速度的特性研究相对较少[1]。本文设计了一款由微控制器(STM32F103ZET6)、测温系统、超声波发射电路、超声波接收电路、显示系统等部分组成的超声波介质传输速度测试系统,为超声波在距离、液体流量等相关检测的应用提供借鉴和参考。
基于嵌入式系统STM32的超声波介质传输速度测试系统的设计由微控制器(STM32F103ZET6)、测温系统、超声波发射电路、超声波接收电路、显示系统等部分组成。测温系统采用DS18B20温度传感器,实现对介质温度的测量;超声波发射模块首先通过STM32F103ZET6产生频率为40 kHz、占空比为50%的PWM信号,并通过L298N电机驱动芯片搭建放大电路,实现信号的放大,并通过超声波发射探头发射信号。超声波接收探头接收到回波信号后,通过放大器放大接收信号,再通过电压比较器对放大后的回波信号进行比较,通过设置合适的参考点电压就能计算出回波信号的时间,以及传输距离。最终通过LCD12864进行速度和温度的显示。该测试的系统如图1所示。
图1 测试系统总体框图
超声波是指谐振频率>20 kHz声波称的统称。超声波传感器根据构成机理有机械式、电气式2种类型,根据接、发信号的不同有超声波发射探头和接收探头2中。超声波发射发射、接收探头的作用都是是实现电能与声能之间的转换,因此,超声波传感器的本质是换能器。基于嵌入式系统STM32的超声波介质传输速度测试系统压电式超声波换能器,当超声波发射探头的两极外加PWM脉冲信号,如果外加PWM脉冲信号频率与压电晶片的固有振荡频率相等时,发生共振进而产生超声波。超声波接收探头两电极间不需要外加电压,当超声波接收探头接收到超声波时,压电晶片产生振动,进而将机械能转换成电信号[1]。
基于嵌入式系统STM32的超声波介质传输速度测试系统采用一端发射另一端接收检测法测速。现在若已知发射点与接收点的距离s(m),回波到达时刻和发射波时刻之间时间差为t(s),就可以算出在介质中的传输速度c=s/t(m/s)。
采用ST公司生产的STM32F103系列芯片[6]。超声波介质传输速度测试系统的STM32最小系统电路主要包括晶振电路(其中XTAL1频率为32.768 kHz,XTAL2频率为8 MHz)、JTAG下载器电路、按键(K1)复位电路以及I/O口接排线座等4大模块电路组成。
基于嵌入式系统STM32的超声波介质传输速度测试系统的超声波发射原理如图2所示,由光电偶合芯片P521、电机驱动芯片L298N、超声波发射探头组成,其中核心器件是电机驱动芯片L298N。先由微控制器STM32F103给电路提供一定幅度的PWM信号,该PWM信号的频率为40 kHz、占空比为50%,发出的PWM信号经过光电耦合加到L298N的控制端IN3引脚,IN4引脚接低电平,使能端ENB接高电平。超声波发射探头就会发射足够功率的40 kHz超声波信号。
图2 超声波发射电路原理图
基于嵌入式系统STM32的超声波介质传输速度测试系统的超声波接收原理如图3所示,其由集成运算放大器(TL-0821)构成的同相输入放大电路和LM393构成的单值电压比较器组成。由于超声波接收探头接收到的回波信号很微弱,所以电路由电压比较器TL-082I构成同相比例放大倍数可调的放大电路,因为回波信号会因为管道侧璧影响会存在“假的”回波信号,所以再加一级电压比较器LM393,通过设置参考电的点位,可以比较得出超声波回波最高点的信号,这就是接收到的最远距离的回波信号。最后送至MCU控制器处理。
超声波接收探头(R)接收到超声波发射探头(T)的40 kHz的超声波信号,经电容C3耦合到集成运算放大器(TL-0821)的同相输入端u+(3脚),进行40 kHz的超声波信号放大处理。该集成运算放大器(TL-0821)构成同相输入放大电路,其放大倍数为1+RW4/R17,变化范围为[1,101]。而电路中R15(10 K),R16(10 K)的作用是将电源电压分压,其作用是使得电路在静态时集成运算放大器(TL-0821)的同相输入端u+(3脚)、反相输入端u-(2脚)和输出端uo(1脚)均为电源电压(+5 V)的一半,最终实现将双电源供电转换为单电源供电。集成电压比较器LM393的主要作用是将TL-0821放大后的40 kHz的超声波信号与参考电压值进行比较。TL-0821将放大后的40 kHz的超声波信号输入到LM393的同相输入端(3脚),同相输入端的电压与反相输入端的参考电压(2脚)进行比较,决定LM393的输出电压。其中,LM393反相输入端(2脚)的参考电压由电源电压(+5 V)、电阻R18(20 K)和电位器RW1(20 K)组成,调节电位器RW1即可改变电压比较器参考电压的大小,其变化范围是[0 V,2.5 V]。
图3 超声波接收电路原理图
基于嵌入式系统STM32的超声波介质传输速度测试系统的温度检测模块电路的主要作用是实现传输介质(空气、水等)的温度的测量,其核心器件是DS18B20,DS18B20作为数字式温度传感器,其测量范围为-55~125 ℃,内部有非易失的可擦除EE-ROM,存储的数据断电后也不会丢失。在9位分辨率时最多在93.75 ms内把温度值转换为数字量,12位分辨率时最多在750 ms内把温度值转换为数字量,测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU[7]。温度检测电路连接如图4所示,其中DS18B20的1脚接地,3脚接电源(VCC),2脚输出接嵌入式系统STM32F103的I/O端口(PG12)。
图4 18B20温度检测电路
基于嵌入式系统STM32的超声波介质传输速度测试系统的显示模块电路的主要作用是显示超声波传输速度和超声波传输介质的温度,其核心器件是LCD12864,LCD12864显示模块显示数据时,具有清晰度高和功耗小的特点,且每次最少可以显四位测量数据。因此选用LCD12864进行传输介质温度和传输速度的显示。基于嵌入式系统STM32的超声波介质传输速度测试系统的显示模块电路的电路连接图如图5所示,其中,LCD12864的1脚、20脚接地(GND),2脚、3脚、15脚和19脚接电源VCC(+5 V),4脚到14脚分别接嵌入式系统STM32F103 I/O端口的JF0-RS、JF1-R/W、JF2-E、JE0-D0、JE1-D1、JE2-D2、JE3-D3、JE4-D4、JE5-D5、JE6-D6、JE7-D7和LCD-PSB(说明:JF0-RS为JE0-D0到JE7-D7的数据显示和指令数据显示的控制端,LCD-PSB为串/并口方式的选择端)。17脚接嵌入式系统STM32F103 I/O端口的JF3/RST,其主要作用是实现液晶显示模块LCD12864的复位功能。
图5 LCD12864显示模块电路
基于嵌入式系统STM32的超声波介质传输速度测试系统的硬件电路使用嵌入式控制芯片STM32F103,在完成嵌入式系统STM32的超声波介质传输速度测试系统的硬件设计与连接后,使用美国Keil Software公司出品的Keil5编写系统程序。该软件是常见的C语言编程软件,页面设计简单明了,软件功能强大,在使用时有较大的便利性。对于该控制系统,程序量较大,梳理结构,程序模块化设计,是利于程序实现和调试的重要因素。图6是系统总程序流程图,图7是温度检测子流程图。
图6 总程序流程图 图7 温度检测流程图
主程序执行流程如下,首先对微控制器STM32F103、液晶显示系统电路等相关的硬件电路进行初始化处理,微控制器STM32F103发射40 kHz的超声波,超声波发射电路对微控制器STM32F103输出的40 kHz超声波信号进行放大、比较等处理信号处理完成后经超声波发射探头输出,而后判断超声波接收探头是否接收到超声波接收电路处理后的回波信号,如接收到回波信号,则进行信号处理,并计算出传输速度及速度显示功能。如果没有接收到超声波接收电路处理后的回波信号则延时等待,延时等待后接收到超声波接收电路处理后的回波信号,进行后续处理。如果延时等待后还没有接收到超声波接收电路处理后的回波信号,则,微控制器STM32F103重新发射40 kHz的超声波,进而重复上述过程。
利用该系统进行了相关参数的测试,选择典型频率40 kHz的超声波作为测试对象,测试超声波在不同温度、不同介质(主要进行了空气和水2种介质的测量)情况下超声波的传输速度,测试结果如表1所示。并将测试结果与超声波在空气和水2种不同的传输介质在不同温度下的传输速度的标准值进行了比对,比对发现基于嵌入式系统STM32的超声波介质传输速度测试系统的测试值与标准的相对误差小于1.25%,因此基于嵌入式系统STM32的超声波介质传输速度测试系统能有效实现超声波在不同温度、不同介质情况下的传输速度的测量。
测试结果表明:在40 Hz超声波的条件下,测量了在空气和水2种介质温度在10 ℃,60 ℃内的传播速度,测量精度准确,达到了超声波介质传输速度测试系统的设计目的。
表1 测试结果
基于嵌入式系统STM32的超声波介质传输速度测试系统由微控制器(STM32F103ZET6)、测温系统(数字式温度传感器DS18B20)模块电路、超声波发射电路(光电偶合芯片P521、电机驱动芯片L298N、超声波发射探头)、超声波接收电路(集成运算放大器TL-0821、电压比较器LM393)、显示系统(液晶LCD12864)电路等部分组成。首先微控制器STM32F103ZET6输出40 kHz的方波信号,再通过信号调整(增大输出功率)电路送到超声波发射探头(T),超声波接收探头(R)采集到超声波发射探头(T)的回波信号,并通过集成运算放大器TL-0821、电压比较器LM393构成的信号处理电路进行整形,然后送入MCU控制器进行处理得到超声波在传输介质中的传输速度和传输介质的温度,并通过LCD12864构成的显示模块进行超声波的传输速度。通过数字式温度传感器(18B20)采集环境(传输介质)的温度,并通过STM32F103ZET6控制器对采集温度传感器的信号进行处理分析,得到环境温度(传输介质),并通过显示模块显示传输介质温度。测试结果表明达到了超声波介质传输速度测试系统的设计目的。同时,该基于嵌入式系统STM32的超声波介质传输速度测试系统具有测量精度准确、可靠性强等特点,为超声波测距仪、流量计等相关超声波应用产品的开发和测试提供借鉴和参考。