一种高精度超声波测距系统的设计

2012-07-26 11:04李俊兰
自动化仪表 2012年2期
关键词:子程序测距串口

张 禾 李俊兰 葛 亮 胡 泽

(西南石油大学电气信息学院1,四川 成都 610500;中国石油集团工程设计有限责任公司西南分公司2,四川 成都 610041)

0 引言

超声波在传输过程中具有不易受干扰、能量消耗缓慢、在介质中传播的距离较远等优点,因而超声波经常用于距离的测量[1]。因为超声波测距是非接触式的,所以它可以在某些特定场合或环境比较恶劣的情况下使用。如在低渗气藏微流量监测过程中,需要实时对井径进行测量。超声波测距是一种非接触式距离测量的方法,伴随着虚拟仪器技术的发展而发展,它克服了传统的测距方式在井下恶劣环境距离测量中存在的缺陷。因此,结合虚拟技术研究超声波测距技术具有十分重要的现实意义。

1 超声测距原理及系统组成

超声波是指频率高于20 kHz的机械波。为了将超声波作为检测手段,必须产生超生波和接收超声波[2]。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器分为发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化[3]。

超声波测距系统组成如图1所示。

图1 系统组成框图Fig.1 Block diagram of system composition

整个测距系统以单片机为核心,系统开始工作时,由单片机发出一个控制信号去触发发射电路,使发射电路起振,发生器产生振荡波。电能的振荡波通过换能器转变成机械能的超声波,当超声波到达被测目标时发生反射,换能器根据压电原理将超声波信号转换为电能信号[4]。信号经放大滤波电路处理,送至单片机系统进行时间的测量和距离的计算。单片机系统与计算机之间进行串口通信,由LabVIEW软件程序对计算机接收到的数据进行处理,实现数据的实时显示、存储、报警和打印等功能[5]。为实现高精度测量,考虑温度对超声波速度的影响,通过温度变化将声速作相应的处理,对最终测试结果进行校正。此外,为实现近距离的高精度测量,单片机根据距离自动调整超声波频率。

2 硬件电路

2.1 温度检测

超声波测距原理的表达式如下[6]:

式中:V为超声波在空气中的传播速度,0℃时为331 m/s、25℃时为347 m/s;T为环境湿度。由此可见,声速与温度有着密切关系。实际应用中,如果温度变化不大且无特殊要求,可认为声速基本不变,否则必须进行温度补偿[7]。温度测量主要采用测温电路来实现,设计中采用铠装LM35实现[8]。温度传感器将测得的数据送入单片机,单片机就会根据温度变化对声速作相应的处理,并对最终测试结果进行校正。

2.2 发射电路设计

超声波发射电路主要由555振荡器和1个共发射极放大电路构成,如图2所示。555定时器为一多用途模数混合集成电路,本设计利用该特点构造了多谐振荡器,它能产生频率为40 kHz的波形。为了提高测量精度和单片机的计时精度,在555振荡器后面外加了1个共射极放大电路,以作为受控开关使用。

图2 超声波发射电路Fig.2 Ultrasonic transmitting circuit

2.3 接收电路设计

超声波接收器主要由超声波接收探头和红外线检波接收集成电路两部分组成。超声波接收电路如图3所示。

图3 超声波接收电路Fig.3 Ultrasonic receiving circuit

CX20106A是日本索尼公司生产的彩电专用红外遥控接收器,采用单列8脚直插式,超小型封装,5 V供电。当超声波接收探头接收到超声波信号时,压迫压电晶片作振动,将机械能转化成电信号。红外线检波接收集成芯片CX20106A接到电信号后,对所接收到的信号进行识别,若频率在38~40 kHz左右,则芯片将输出低电平,否则将输出高电平[10]。当接收电路输出端产生负脉冲时,单片机INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。

2.4 串口通信

串口通信对单片机而言意义重大,其不但可以实现将单片机的数据传输到计算机端,而且能实现计算机对单片机的控制。由于计算机的串口是RS-232电平,而单片机的串口是TTL电平,因此,要实现通信,两者之间必须有一个电平转换电路。本系统使用的串行通信芯片为MAX3222,在保持RS-232协议输出电平的前提下,MAX3222可确保120 kbit/s的数据传输速率。

3 软件设计

系统软件分为单片机软件和计算机软件两个部分。单片机软件使用汇编语言进行编写,主要实现时间的测量和距离的计算功能。计算机软件使用LabVIEW的图形语言编程,实现数据的实时显示、存储和打印等功能。主单片机软件程序主要由主程序、温度采集子程序、发射子程序、计算子程序、外部中断子程序和定时器中断子程序组成。主程序流程如图4所示。

图4 主程序流程图Fig.4 Flowchart of the main program

主程序完成初始化后调用发射子程序,置单片机P1.0为高电平,发射超声波信号,然后开启计数通道。为防止串绕波,延时1 ms,等待接收回波。当P3.2为低电平时,检测到回波,调用测温子程序,采集超声波测距时的环境温度,并换算出准确的声速v。单片机再调用计算子程序,计算出传感器到目标物体之间的距离。这样即完成一次测量。单片机与计算机进行串口通信,利用LabVIEW图形语言编程实现数据的实时显示、存储、报警和打印等功能。

4 系统测试结果和分析

当距离比较近时,发射探头与接收探头的距离会影响测量的精度。如实际距离为3 cm,两探头之间的距离为3 cm,利用勾股定理可以计算出实际距离应为3.35 cm。随着测量距离的增加,误差将减小。当测量距离大于9 cm时,误差基本不变且保持在1 mm之内。由于接收电路产生的第一个负脉冲宽度为1 ms左右,在负脉冲期间接收到回波时,接收电路无法把两次脉冲分开,使得在距离为18 cm以下时无法测量。测试过程中通过改变超声波发射频率来实现近距离的测量。系统测试结果如表1所示。

表1 系统测试结果Tab.1 Test results of the system

5 结束语

本文设计的高精度超声波测距系统具有结构简单、体积小、抗干扰性强等优点,若要满足更高的精度要求,还需进行适当改进。为实现近距离的高精度测量,单片机根据距离自动调整超声波频率。设计由各个单元模块化组合,可移植或构建到其他系统中,还可以根据需要修改子程序,灵活性较好。此外,系统与虚拟仪器开发软件LabVIEW相结合,达到了直观、方便的效果,实现了功能多样化。

[1]张红莲.基于单片机的超声波测距系统的设计[J].PLC&FA,2008(9):89-91.

[2]黄晓红,范晓志,蔡建平.超声波测量电路设计[J].河北理工学院学报,2002(S1):15 -18.

[3]曹茂永,王霞.超声测距数字信号采集系统[J].电测与仪表,2000(8):26-27.

[4]刘凤然.基于单片机的超声波测距系统[J].传感器世界,2001(5):29 -32.

[5]丁鹭飞,耿富录.超声原理[M].3版.西安:西安电子科技大学出版社,2002:25-33.

[6]张易刚,彭喜元,谭晓昀.CS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2006:45-50.

[7]李严,张民.基于超声波传感器的水位自动控制系统[J].微计算机信息,2009(13):134-136.

[8]李飞,陈峰.基于BP神经网络的超声测距误差补偿[J].传感器与微系统,2006(6):31-33.

[9]张和生,宋明耀.提高超声测距精度的设计[J].电子产品世界,2004(13):87-89.

[10]滕艳菲,陈尚松.超声波测距精度的研究[J].国外电子测量技术,2006(2):23-25.

猜你喜欢
子程序测距串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
基于EM9000工控板高性能双串口通信模型设计与实现
类星体的精准测距
船舶电子设备串口数据的软件共享方法
浅谈超声波测距
浅谈子程序在数控车编程中的应用
基于PSOC超声测距系统设计
子程序在数控车加工槽中的应用探索
相对差分单项测距△DOR