基于ATMEGA8的低成本超声波测距仪设计

2012-08-29 12:06许红梅刘相华
装备制造技术 2012年8期
关键词:电平测距超声波

许红梅,刘相华

(山东省东营市垦利县供电公司,山东 垦利 257500)

近些年来,随着超声技术研究的不断深入,再加上其具有的高精度、无损、非接触等优点,超声的应用变得越来越普及。目前,已经广泛应用在机械制造、电子冶金、航海、航空、宇航、石油化工、交通等工业领域。

目前常用的测距方式,主要有雷达测距、红外测距、激光测距和超声测距4种。超声波测距,多应用于汽车倒车雷达、机器人定位[1]、建筑工地以及一些工业现场的位置监控,如液位、井深的测量等场合。石油石化行业对油库和水箱液面的精确测量和控制的要求,越来越严格。

基于以上需要,笔者以ATMEGA8单片机为控制核心,设计了一种低成本的小型化超声波测距系统[2],并介绍了系统的硬件和软件设计方法。

1 超声波测距基本原理

超声波测量技术,是基于蝙蝠等无目视能力的生物防御及捕捉猎物生存的原理[3],利用超声波(20 kHz以上的机械波)借助空气媒质传播,通过遇到障碍物反射回来的时间间隔长短,及被反射超声波的强弱,判断障碍物性质和位置的方法。

本系统采用时间间隔检测法,即测距时,超声波发射器有规律发射超声波,遇到被检测对象后,反射回来,通过超声波接收器接收到反射波信号,并将其转变为电信号,测出从发射超声波至接收到反射波的时间差(时间间隔t),如图1所示。

图1 超声波发射和接收时差

t 与超声波传播速度c 相乘,可求出被测距离s,即

由于超声波的声速和温度有关[4],如果温度变化不是很大,认为声速基本不变。如果测距精度要求很高,那么可以通过温度补偿的方法,来加以校正。不同温度下,超声波在空气中的传播速度,随温度变化关系为

式中,T 为实际温度;c 的单位为m/s。

2 超声波测距系统设计

根据超声波的工作原理,结合现场的使用需要,设计了一种低成本、低功耗的超声波测距系统。超声波测距系统框图如图2所示。

图2 超声波测距系统框图

2.1 超声波测距系统硬件设计

结合应用要求,根据超声波测距原理,以ATMEG8单片机为核心[5],利用ATMEGA8单片机自带PWM输出40 kHz超声波信号,通过相应放大电路后发射超声波。反射回来的超声波,经过前置放大、带通滤波、检波比较和波形整形后,送入ATMEGA8单片机,其中发射和接收信号间的时间差利用ATMEGA8单片机内部定时器进行测量,最终计算得到相应的距离。

采用AVR系列8位单片机ATMEGA8为核心控制器件,控制超声波的产生、超声波反射信号接收、数据处理和测量结果显示等。ATMEGA 8是一款采用低功耗CMOS工艺生产的基于AVR RISC结构的8位单片机,自带3路PWM输出和比较和捕获模式的16位定时/计数器,其可以达到接近1MIPS/M的性能,运行速度比普通CISC单片机高出10倍,执行指令时间短,集成度高,价格更低。

超声波发射电路,主要由缓冲反向器CD4049和超声波换能器构成。CD4049为六反相缓冲器,具有可以仅使用单一电源,就可实现电平转换的功能,其输入电压为-0.5~+18 V。

为了进一步增大输出的功率,满足超声波换能器的最佳发射电压要求,由PB1发出的PWM波,经过三极管9013做电平转换之后,在CD4049的第3脚所加电平,就可转换为12 V的高低电平。在经过反相器的并联推挽之后,在超声波发射头的两脚上所加的电压峰峰值就为24 V,有效提高驱动能力,延伸测量范围。超声波发射电路如图3所示。

图3 超声波发射电路

超声波接收电路,由音频放大器NE5532和比较器LM311组成。音频放大器NE5532进行前置放大后,由电平比较器LM311产生检测输出信号。具体超声波回波接收处理电路图如图4所示。

图4 超声波接收电路

超声波传感器接收到的微弱信号,首先由NE5532的U3:A进行一级放大,根据R4与R1的电阻比值,可知这一级放大约为100倍,;C5为高频干扰滤波电容,增强抗干扰能力,一级放大后由C6隔离送入第二级放大,同样约放大100倍,这时的信号已经达到了1V左右,可以送入比较器LM311进行后续信号比较了。

LM311作为宽电源电压的通用电平比较器,拥有较高灵敏度与抗干扰能力。LM311的第2脚输入为经过NE5532放大后的超声波回波信号;而LM311的第3脚输入为比较电平,通过调节可变电阻RW1的阻值,可使比较电平在0~12 V之间变化。为保证每次接收信号,都能被准确的鉴别出来,转换成数字脉冲去触发单片机的外中断引脚,通常采用某一固定电平或滑动门限电平作为比较电平。以零电平作为比较电平是行不通的,因为放大后的信号中,含有一定幅值的噪声,这样一来,即使没有接收信号,也会造成比较器反复触发,从而无法判断那个信号是真正的接收信号。若采用某一高于一般噪声峰值的固定电平,就可以削除一般噪声的影响,而且比比较电平固定,可以实现对电路信号的准确检测。

温度测量选用DALLAS公司的DS18B20数字式温度传感器,其通过输出9位(二进制)数字来直接表示所测量的温度值,温度值是通过DS18B20的数据总线直接输入CPU,无需A/D转换,而且读写指令,温度转换指令,都是通过数据总线传入DS18B20,无需外部电源。

2.2 超声波测距系统软件设计

整个超声波测距系统超声波信号的发射和接收、数据的传输以及计算,都是由单片机内部程序完成的。

程序采用的是时间间隔测量法[6],由ATMEGA8控制芯片内部PWM发生器产生40 kHz的超声波信号,每次测量发射的脉冲数至少4个完整的40 kHz脉冲。发射信号前要打开定时/计数器,以保证发出超声波脉冲数目满足要求。

满足一定值后,再开启检测回波信号,以避免余波信号的干扰。采用外部管脚比较和捕获功能对回波信号进行检测(回波信号送到单片机的为方波脉冲)。

接收到回波信号后,立即读取计数器中的数值,此数据即为需要测量的时间差数据。

考虑温度和发送脉冲波持续时间对系统测量精度的影响,需要根据当前温度和发射脉冲持续时间,对测量结果进行修正。为减小测量数据的误差,每次测距都需要测量多次,在获取多组数据后取其平均值,作为测距最终值,具体程序流程图如图5所示。

图5 超声波测距系统程序流程图

3 实验结果分析

在实际测试时,充分考虑现场应用环境和系统测量范围的要求,测距范围是30~120 cm之间,在此范围内,每隔5 cm进行一次测量、修正,选取10组测量数据,如表1所列。

表1 超声波测距系统试验结果

以上测量数据,经过MATLAB进行处理比较,其对应曲线如图6所示。表明实际测量时存在一定的误差,该误差主要来源于系统产生PWM即超声波发出与接收的时间差计算,以及反射回波开始反射的位置等。

图6 基于MATLAB的结果处理曲线

4 结束语

本系统在实际实验中,充分利用ATMEGA8单片机内部的软件资源,利用其脉宽调制功能产生40 kHz的超声波,使整个系统电路结构简单、精度较高、软件的升级和更新方便,较好的满足了现场的测量要求。

[1]纪良文,蒋静坪.机器人超声测距数据的采集与处理[J].电子技术应用,2001,(9):23–27.

[2]潘宗预,潘 登.超声波测距精度的探讨[J].湖南大学学报,2002,29(3):18–21.

[3]李茂山.超声波测距原理及实践技术[J].实用测试技术,1994,(1):12–20.

[4]李 彬,李庆坤.基于温度补偿的超声波测距设计[J].计量技术,2007,(7):12–14.

[5]马 潮,詹为前,耿德根.Atmega8原理与应用手册[M].北京:清华大学出版社,2003.

[6]孙 杰,潘继飞.高精度时间间隔测量方法综述[J].计算机测量与控制,2007,15(2):145–148.

猜你喜欢
电平测距超声波
三电平PWM整流器下的地铁牵引供电系统探讨
类星体的精准测距
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
三相三电平PFC(VIENNA)控制策略研究
浅谈超声波测距
三电平H桥逆变器差模干扰源研究
蝙蝠的超声波
超声波流量计的研究
基于PSOC超声测距系统设计