超声波由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场。例如:液位、井深、管道长度等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上也得到了广泛的应用。本文介绍一种以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。
1 超声波测距原理
1.1 超声波发生器
超声波是一种频率超过20kHz的机械波。为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波。一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率和声波特性各不相同。
因而用途也各不相同。目前较为常用的是压电式超声波发生器。
1.2 压电式超声波发生器原理
压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图1所示。它有两个压电晶片和一个共振板。发射超声波时,压电传感器中的压电晶片受发射电脉冲激励后产生共振,并带动共振板振动,便产生超声波。接收超声波时,两电极间未外加电,共振波接收到超声波,将压迫压电晶片作振动将机械能转换为电信号。
1.3 超声波测距原理
超声测距从原理上可分为共振式、脉冲反射式两种。由于共振法的应用要求复杂。在这里使用脉冲反射式。
超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时。超声波在空气中传播。途中碰到障碍物就立即返回来。超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为C,而根据计时器记录的测出发射和接收回波的时间差t。就可以计算出发射点距障碍物的距离s.即:S:Ct/2。这就是所谓的时间差测距法。由于超声波也是一种声波。其声速c与温度有关。表1列出了几种不同温度下的声速。在使用时,如果温度变化不大。则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。
声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距系统的机理。
2 系统硬件电路设计
ATMEL公司的AT89C51单片机,是一种低功耗、高性能的、片内含有4KB Flash ROM 的8位CMOS单片机,工作电压范围为2.7~6V(实际使用十5V供电)。
位数据总线。它有一个可编程的全双工串行通信接El,能同时进行串行发送和接收0通过RXD引脚(串行数据接收端)和TXD引脚(串行数据发送端)与外界进行通信。本超声波测距系统以的AT89C51为中央处理器,其系统原理框图如图2所示。
系统上电工作后,由脉冲发生器发出以脉冲信号,该脉冲信号一方面通过驱动的电路推动脉冲发生器发出超声波脉冲,另一方面,触发AT89C51内部定时器T1(由外部中断INT0实现)开始定时;同时由AT89C51控制按时间自动改变放大其增益,即按发射波未到达接收器的传播时问逐渐增大放大器增益。接收到的超身回波经过发大、滤波后,一是直接送给鉴幅器,二是经峰值保持电路提取回波峰值作为阈值的基准信息。AT89C51通过ADC0809采样回波峰值,经过软件加权处理后作为鉴别阈值,再经过DAC0832送给鉴幅器。当回波包络中某个波被鉴别出来时,则立即触发外部中断INT1关闭定时器T1,同时,P1.1设置检测窗口;由TO计数器窗口内鉴别回波个数12,根据n确定下次鉴别给定值的大小,闭环控制至n≤5为止。然后从补偿值表中取出与rl对应的补偿值,对T1的计时时问(实际上这是从发射超身波到接收到第一个鉴别回波之问的计数值,计数周期为lUS,12M品振)进行修正,获得超声波实际的往复传播时问,再通过3字节浮点运算求出距离,由AT89C51串行通信口送LED显示。本系统每隔5s采样一次环境温度,以修正声速,所以在系统还可以加入温度传感器来监测环境温度,把表l所列的数据做到程序中可进行温度补偿。
3 补偿及测距原理
不同形状和位置的对象物,其回波波形大致,只是波幅不通。于是,该系统采用了变阈值鉴幅固定补偿法:
(1)采用微处理器闭环控制自动改变阈值;
(2)在超声回波中鉴别其包络峰附近少于6个波的第一个波,形成关闭定时器的触发信号,并同时设置检测窗口;
(3)计数检测窗口内的鉴别回波格式n(鉴别回波=窗口内鉴别回波数+1)个;
(4)判断n的大小,若n>5,则减小鉴别规定阈值,转到(2)重新检测。 若≤5,则从先验的固定补偿值表中取出与n相对应的补偿值进行修正一其鉴别回波提取及补偿时间表示如图3所示。
补偿修正公式:
可见,不同的At对应不同,作为先验数据先通过实际测试、观察得到,建立补偿值表存在存储器中。
本超声波测距系统的误差主要由系统误差、环境误差、检测误差、定时时间误差、补偿时间误差等组成。该系统采用变闭值固定补偿法后,可以补偿时间误差较小。
提高了检测信号的S/N比,从而提高了超身波测距的精度和范围。
4 超声波测距系统的软件设计
AT89C51单片机和其开发应用系统具有语言简洁、可移植性好、表达能力强、表达方式灵活、可进行结构化设计、可以直接控制计算机硬件、生成代码质量高、使用方便等诸多优点。超声波测距仪就是用A F89C51单片机开发设计的。它采用模块化设计,由主程序、定时干程序、显示子程序等模块组成。在此给出主程序框框图。如图4所示。
5 结论
对固定材料、结构的超声波传感器,其检测波特性不变,即再发射传感在同一激励电压源作用下发射超身波,其反射波的波形变化规律,不会因为对象物类型,距离的改变而变化,只是波幅不同而已。故该系统采用了变阈值鉴幅固定补偿法,减小了误差,从而提高了测距精度。该系统发射脉冲电压为20V,对平面物体做了多次测量发现,测距范围为10m,测距精度为0.2%。可见基于单片机设计的超声波测距系统具有硬件结构简单、工作可靠、测量误差小等特点。
因此,它不仅可用于移动机器人,还可用在其它检测系统中。