微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于单片机设计的高精度超声波测距系统的改进

一种基于单片机设计的高精度超声波测距系统的改进

时间:01-07 来源:互联网 点击:

MAX5400是一种具有256抽头的数字电位器,端-端阻值为,温度系数小于5ppm/℃,并带有SPI接口。在本文中管脚3、4、5与单片机相连,实现电阻阻值的变化,管脚1、8与AD620AN的1、8端相连,从而实现增益的调节。

事先通过实验,在0~3米的距离内,每隔30厘米测量一次,把较为理想的放大倍数换算成数字电位器的抽头位置,并把这些位置参数列表并固化到E2PROM中。单片机以计时器中断的方式来设置增益,到了一定时刻就由内部定时器产生一次中断,中断服务子程序通过查表方式获得对应的增益,然后通过SPI接口设置对应增益。

3.3 温度补偿

超声波在固体中传播速度最快,在气体中传播速度最慢,而且声速c与温度有关[3]。如果环境温度变化显著,必须考虑温度补偿问题。空气中声速与温度的关系可以表示为:

式中,T为环境摄氏温度℃。

为了提高系统的测量精度,本文设计了温度补偿电路。系统采用数字温度计DS1820采集温度。DS1820是美国DALAS公司推出的单线串行数字温度计,可直接与单片机连接,并且接线形式简单[4],测量范围为-55~+125℃,在-10~+85℃范围内测量精度为0.5℃。传感器输出的是用9位二进制编码表示的温度值。根据实际温度的值,利用公式(3)可计算补偿声速。

3.4 绝对值变换和包络电路

本系统的绝对值变换和包络电路原理图如图4所示。


绝对值变换电路中,当输入信号Vin为负时,D7导通,U13B为倒相放大器;Vin为正时,D8导通,U13A为非倒相放大器。无论输入信号的电压极性如何,其输出总是正电压,且幅值不变[5]。如前所述,回波信号经过绝对值变换电路以后,负电压被翻转为正电压,且频率倍增,然后通过二极管D9、电容C56组成的检波电路对新波形进行包络。根据超声波回波起伏特性,频率倍增后包络曲线更加平滑。在本电路中,检波电路中的电容值要匹配合适,绝对值变换电路中集成运算放大器选用TL082。波形包络原理如图5所示。


3.5 微分电路和过零检测

回波包络信号通过微分电路,电压峰值点处取导数为零,过零检测电路在信号的过零点时刻发送脉冲信号给单片机外部中断INT0,单片机停止计时,从而捕捉到回波信号到达时刻。包络信号微分和过零检测原理如图6所示。


4 系统软件设计

本测距系统软件包括主程序、温度采集子程序、发射子程序、计算子程序、数码显示子程序、外部中断子程序和定时器中断子程序。主程序完成初始化后调用发射子程序,由P1.0口发射1个脉冲,驱动超声波传感器发射超声波,并关外部中断,计数器T0、T1同时开始计时;为防止虚假回波的干扰,在延时一段时间后,开中断,此时判断计数器T1有否溢出中断,单片机根据不同的时间,以查表的方式设置自动增益控制电路的增益;当有外部中断信号时,单片机就停止T0的计时,计算出渡越时间t并存储到E2PROM中;然后调用测温子程序,采集超声波测距时的环境温度,并换算出准确的声速c,存储到E2PROM中;单片机再调用计算子程序,计算出传感器到目标物体之间的距离,最后把测量结果存储并通过数码管电路显示出来,完成一次测量。主程序流程如图7。


本超声波测距系统采用新的设计方法,并在实验室环境中进行测量,测量精度较高。由于采用收发一体式的测距电路,换能器振子必须在余震消除后才能进行接收,因此该测距系统有很大的盲区。因为电路的延迟及包络峰值点后移,导致测量计时有所增大,进而导致测量数据的偏大。本系统采用前置放大器、AGC电路、过零检测等电路对接收信号进行处理,取得了良好的效果。在近距离测量范围内,这种方法可以达到厘米级。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top