1、高精度超声波测距系统设计时间:2009-03-31 14:26:06 来源:现代电子技术 作者:宋永东,周美丽,白宗文引言利用超声波测量距离的原理可简单描述为:超声波定期发送超声波,遭遇障碍物时发生反射,发射波经由接收器接收并转化为电信号,这样测距技术只要测出发送和接收的时间差,然后按照下式计算,即可求出距离: 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此,广泛应用于倒车提醒、建筑工地、工业现场等的距
2、离测量。目前的测距量程上能达到百米数量级,测量的精度往往能达到厘米数量级。本文在分析现有超声波测距技术基础之上,给出了一种改进方案,测量精度可达毫米级。2 系统方案分析与论证2.1 影响精度的因素分析根据超声波测距式(1)可知测距的误差主要是由超声波的传播速度误差和测量距离传播的时间误差引起的。对于时间误差主要由发送计时点和接收计时点准确性确定,为了能够提高计时点选择的准确性,本文提出了对发射信号和加收信号通过校正的方式来实现准确计时。此外,当要求测距误差小于 1 mm 时,假定超声波速度 C=344 m s(20室温) ,忽略声速的传播误差。则测距误差 st0.000 002 907 s,即
3、 2.907 ms。根据以上过计算可知,在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于 1 mm 的误差。使用的 12 MHz 晶体作时钟基准的 89C51 单片机定时器能方便的计数到 1s的精度,因此系统采用 AT89S51 的定一时器能保证时间误差在 1 mm 的测量范围内。超声波的传播速度主要受空气密度所的影响,空气的密度越高则超声波的传播速度就越快,而空气的密度又与温度有着密切的关系。温度与超声波的速度之间的近似公式为:式中:C0 为零度时的声波速度 332 ms ;T 为实际温度 ()。由此可见,测量精度与温度有着直接的关系,本文采
4、用 DS18B20 温度传感器,对外界温度进行测量,并在软件中实现温度补偿。2.2 整体方案设计本文主要采用单片机控制技术,实现精确的超声波测距方案,整个系统由超声波收发单元、波形校准单元、温度测量单元、显示单元和控制单元 5 个单元组成。其中,超声波收发单元主要实现超声波的接发送和接收;信号处理单元主要实现去除干扰、波形整形、锁相环等功能,便于实现准确计时;温度测量单元主要测量外界温度,实现温度补偿;显示单元实现测量数据的显示;单片机为控制单元,完成指令发送,接收数据,进行计算等任务。3 系统硬件设计3.1 超声波发射部分本文中脉冲发射采用软件方式,利用 AT89S51 的 P1.0 口发射
5、 40 kHz 的方波信号,经过 74HC04 放大后输出到超声波换能器,产生超声波。74HC04 是一个高速 CMOS 六反相器,具有放大作用,具有对称的传输延迟和转换时间,而相对于 LSTTL 逻辑 IC,它的功耗减少很多。对于 HC 类型,其工作电压为 26 V,它具有高抗扰度,可以兼容直接输入 LSTTL 逻辑信号和 CMOS 逻辑输入等特点。 本系统将 40 kHz 方波信号分成两路,分别由 74HC04 经两次和一次反向放大,从而构成推拉式反向放大。电路图如图 2 所示。 3.2 超声波接收部分超声波接收部分采用集成芯片 CX20106A,这是一款红外线检波接收的专用芯片。内部电路
6、由前置放大器、自动偏置电平控制电路、限幅放大器、带通滤波器、峰值检波器和整形输出电路组成。可以利用它作为超声波检测电路。接收的回波信号先经过前置放大器和限幅放大器,将信号调整到合适的幅值;再经过带通滤波器滤波得到有用信号,滤除干扰信号;最后由峰值检波器和整形电路输出到锁相环路,实现准确的计时。CX20106A 的外部接线图如图 3 所示。 图 3 中 1 脚是接收信号输入端,2 脚是调节接收信号灵敏度,电阻越小,灵敏度越高。电容越大,灵敏度越高。电容一般取 1F,电阻 50300 的,在干扰较大的场合增加电阻阻值可将灵敏度调低,干扰小的场合减小阻值将灵敏度调高。5 脚主要用来调节中心频率,这里
7、取 200 k,7 脚接上拉电阻,这里取 1 k左右。3.3 显示部分显示部分采用共阴极数码管,由单片机实现控制,单片机的 P0 口输出段码,P2 口用作位码,用 PNP 型三极管驱动(本设计采用 9018),由于单片机 IO 口的驱动能力非常小,P0 口需外接上拉电阻来增加驱动能力,应用时要注意,在低电平时,可能由于电流直接经电阻流进 IO 的灌流太大而烧毁单片机,所以提升电阻一般取 6001 000 。实验证明,数码管亮度合适。其原理图如图 4 所示。3.4 温度测量部分DS18B20 数字温度计是 DALLAS 公司生产的 1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来
8、组成一个测温系统,具有线路简单,将其数据线与单片机的 P1.3相连,就可以实现温度测量。测量的温度精度可以达到 0.1,测量的温度的范围在-20 +100。电路如图 5 所示。4 系统软件设计测距系统软件采用汇编语言,由发射脉冲子程序、用中断实现回波接收子程序、计算距离子程序、数码管显示子程序和计时单元延时子程序几部分组成,采用模块化编程。其软件流程图如图 6 所示。 程序首先初始化需要用到的寄存器,内存单元,设置中断触发方式,并初始化DS18B20,然后控制 P1.0 口输出 12s的高电平,再输出 13s的低电平,循环 10 次便可发射 10 个频率为 40 kHz 的脉冲信号。经过一段延
9、时后,CPU 开放中断,开始计数,将计数器初值设为延时所经过的距离,计数器每过一个计时单元加一。中断产生,停止计数,最后将计数器中的值数据处理后显示到数码管上。如果计数器中的值小于预定值就由软件产生一定频率的信号到蜂鸣器报警,并启动报警灯。当需要所存数据时,由外部中断判断键盘是否按下,通过不断显示上次测量数据来锁定数据。当检测到键盘再一次按下时,按取消锁存,并继续测量距离。5 结语应用本系统 3 mm20 m 内的目标做了多次测量,测量结果为,其最大误差为 1.5 mm,且重复性好。可见基于单片机设计的超声波测距系统具有硬件结构简单、工作可靠、测量误差小等特点。因此,它可用于许多对测量要求精度高,测量范围适当的设备和各种检测系统中。