APP下载

基于STM32的收发一体式超声波测距系统

2014-03-22夏继强郑健峰

仪表技术与传感器 2014年8期
关键词:子程序测距超声波

夏继强,郑 昆,郑健峰,沈 忱

(北京航空航天大学机械工程及自动化学院,北京 100191)

0 引言

超声波检测技术在机器人避障、车辆的定位与导航等领域应用广泛[1]。目前,国内超声波测距系统主要是以51单片机为处理芯片或采用收发分体式探头。因51单片机资源不足,故需对超声波回波外接比较处理电路和温度补偿电路,再接入51单片机进行处理,同时因收发分体探头测距角度范围较小,在宽角度多路测量方面不能很好地应用。

1 超声波测距原理与超声波探头

超声波测距主要有3种方法:相位检测法虽然精度高,但检测范围有限;声波幅值检测法易受反射波的影响;渡越时间检测法工作方式简单直观,在硬件控制和软件设计上非常容易实现,其原理为检测从发射传感器发射超声波,经气体介质传播到接收传感器的时间,这个时间就是渡越时间[2]。

若已知渡越时间以及超声波在空气介质中传播速度,便可测得的障碍物与测试点的距离S:

S=ct/2

(1)

式中:c为超声波在空气中的传播速度;t为超声波在空气中传播的时间。

文中采用的收发一体式超声波传感器同时起到发射超声波和接收超声波的作用,具有较大的测距角度。其本质是一种超声换能器,既可以把电能转换为声能,又可以把声能转换为电能。换能器在电脉冲激励下可将电能转换为机械能,向外发送超声波;反之,当换能器处于接收状态时,将声能(机械能)转换为电能[3]。

因超声波传感器在发射超声波时,会施加高强度的脉冲电压作为激励,虽然脉冲的持续时间极短,但激励结束后,传感器上仍会存在一定的余振。如果在发射脉冲结束后立即转入接收状态检测回波,会被传感器上产生的余振干扰,系统无法做出正确的检测。因此,必须等到余振信号削弱之后,才能对回波信号做出正确的处理,保证系统测量的可靠性[4]。为避免余振对系统造成的影响,系统在软件设计上予以考虑。

由于超声波在空气中传播时,超声波散射与其频率的4次方成正比,被空气吸收的能量与其频率平方成正比,超声波频率越高所能测量的距离越短,因此在测量较远距离时,超声波频率不可过高[5]。系统采用的收发一体式超声波传感器工作中心频率为40 kHz.

2 系统设计及工作原理

文中介绍的超声波测距系统,采用收发一体型超声波传感器、STM32单片机,采用渡越时间检测法,并采用了温度补偿技术,同时因STM32资源丰富,故采用其ADC模块确定渡越时间及其自带温度传感器进行测温。系统主要由STM32单片机,超声波发射电路、接收电路、放大滤波电路等组成,系统框图设计如图1所示。其中STM32为核心,协调各部分电路工作,STM32首先发出频率为40 kHz的方波,经发射电路输送给超声波传感器激励出超声波,超声波在空气中传播,遇到障碍物返回,进入超声波接收电路,经放大滤波电路进入STM32的ADC通道,计算处理后通过串口向上位机发送结果。

图1 超声波测距系统框图

3 硬件设计

3.1超声波发射电路

系统的超声波发射电路主要工作原理为:考虑到收发一体式探头的余振效应,由STM32发出的激励信号不应过多,经过试验最终确定由定时器发出8个频率为40 kHz、占空比为50%的方波,经过一级三极管放大,再经过升压变压器作用到超声波传感器上。采用三极管和变压器是为了避免回波对发射电路的影响,同时变压器具有功率放大的作用。超声波发射电路如图2所示。

图2 超声波发射电路

经过试验可得最终超声波传感器激励发射信号峰-峰值为60 V,实验效果如图3所示。

图3 超声波传感器激励发射信号

3.2超声波接收和放大滤波电路

因系统采用的是收发一体型超声波探头,超声波信号遇到障碍物反射后作用到传感器上,从而转换为电信号,再经接收电路处理,放大滤波最终进入STM32的ADC通道。

3.2.1超声波接收电路

由于采用了收发一体传感器,因而收发信号之间会产生干扰,发射波和回波同时存在,较大能量的发送信号和较弱的回波直接进入放大滤波电路会使电路工作不稳定[3]。为此接收电路接入三极管和二极管,以保护后面的放大滤波电路,提高系统稳定性。接收电路如图4所示。

图4 超声波接收电路

经过接收电路处理后的回波波形如图5所示。其左侧波形为发射波,右侧的小波形为回波。从试验效果可知,在距障碍物40 cm处,经接收电路处理后的回波峰-峰值在100 mV左右。

图5 经接收电路处理后的波形

3.2.2超声波放大滤波电路

由于经过接收电路处理后的回波信号比较微弱,需经过放大处理。考虑到回波信号中有干扰噪声,故采用高通滤波电路和带通滤波电路两级处理,高通滤波电路主要去除回波中低频的信号,同时具有放大作用,二级带通滤波电路主要是让中心频率为40 kHz的回波通过,同时具有放大滤波的作用。具体设计电路如图6所示。

图6 放大滤波电路

经放大滤波电路处理后的波形如图7 所示。右侧为回波波形,从实验效果可知在距障碍物40 cm处,经过放大滤波电路处理后回波峰-峰值达到6 V左右,说明放大滤波效果明显。为了将回波信号接入到STM32单片机,故在放大滤波电路之后进行降压处理。具体电路是图6的右侧部分。最终接入STM32单片机ADC通道的波形如图8所示,右侧波形为距障碍物40 cm时回波。

图7 经放大滤波电路处理后的波形

图8 进入STM32单片机ADC通道的波形

3.3渡越时间的确定

如何检测到回波中的第一个波,是确定渡越时间的关键,一般超声波电路主要采用比较器检测回波的方式,需要外接比较处理电路。系统采用STM32单片机的ADC模块,其具有12位的分辨率,达到设计精度要求。

将回波信号输入到STM32的ADC,与设定好的软件阈值比较,如果ADC采集的电压值大于阈值,判断其为第一个回波。则从开始发射超声波到接收到回波的第一个波为渡越时间t.为了保证可靠性,采用均值滤波的方法来确定是否为回波,即采样8次取平均值。由于STM32的系统时钟为72 MHz,以及ADC采样频率为1 MHz,足以保证采样的准确性。

3.4温度补偿

由公式(2)计算可得,超声波在25 ℃空气中传播速度为346.24 m/s,在0 ℃时降为331.4 m/s,所以超声波在媒介中的传播速度和温度关系很大[6]。为提高测量精度,需引入温度补偿。已知超声波声速与温度的关系如下:

(2)

式中T为环境温度。

一般超声波测距采用外接温度计检测环境温度,增加了硬件负担,系统采用STM32自带温度传感器,其可用来测量器件周围温度,因系统没有处理较大的程序,不存在芯片发热量较大的情况,故芯片周围的温度即可作为环境温度。

4 系统软件设计

系统采用模块化程序设计,包括主程序、温度采集子程序、超声波发射子程序、回波接收子程序、距离计算子程序、定时器中断子程序等。

系统开始后首先初始化,然后调用超声波发射子程序并打开定时器TIM2,TIM2用于计算渡越时间。由于传感器发射超声波后会产生余振,为避免其对精度的影响,故在超声波发射子程序结束后打开TIM3和TIM4(TIM3用以延时1.5 ms,TIM4用于延时25 ms),同时调用温度采集子程序,测量环境温度,并计算此时超声波声速c,TIM3定时结束后调用回波检测子程序,因采用ADC检测回波,故当采集到回波的电压大于设定好的阈值则判断其为回波,检测到回波后立即读取TIM2的计数值,并转换成时间t,然后调用距离计算子程序计算出结果以串口发送给上位机,如果在25 ms内未检出回波则超时,直接进入下次循环。程序流程图如图9所示。

图9 系统流程图

5 试验结果和误差分析

STM32单片机的系统时钟可达72 MHz,这样从处理程序速度方面会提高测量的精度。

因有余振的存在,故在发射波发射结束后需延时一段时间才能接收回波进行处理,经过试验可得延时1.5 ms具有较好的效果,此时在室温30 ℃下理论上盲区为30 cm,由式(1)、式(2)可得:

S=ct/2

=26.2 cm

因回波的强度随着距离增加而变弱以及超声波在空气中传播存在衰减,经试验可得在当障碍物超过3.5 m,此时超声波传播时间为20 ms,就无法测量到障碍物,为保证可靠性,在发射波结束后25 ms内没检测到回波,则认为该次检测结束。

为了验证系统的测量效果,在实验室进行了测量。室温为30 ℃,分别正对210 mm×297 mm、100 mm×150 mm纸张表面在30~150 cm范围进行测量,实验测量结果见表1、表2,表中实际距离是用卷尺测量得到的,测量距离为3次测量平均值。

表1 正对210 mm×297 mm纸张实验测量结果

由表1、表2可知,该测距系统存在盲区,因障碍物反射面较小时,反射回波较弱,会存在误差,经对比表1、表2可知,障碍物较小时测量的误差较大,但在0.3~1.5 m内最大测距相对误差为0.9%,能满足工业精度要求。

6 结束语

文中提出了一套超声波测距方案,其结构简单、体积小,采用高速单片机STM32微处理器,利用其内部的

表2 正对100 mm×150 mm纸张实验测量结果

自带的温度传感器测量温度及采用ADC检测回波的方法,避免了外接温度计和回波比较电路,简化了外设硬件,同时具有较高的测量精度。这种收发一体式的测距系统是一种较好的非接触检测方式,可应用与汽车倒车系统及智能机器人的避障等系统中,应用范围较广,又因STM32中还有其他丰富资源如(DMA、CAN等),可方便在系统上进行进一步开发研究,同时相对于普通的51单片机,系统可方便地外扩为多路探头测量,下一步将在多路探头测距上进行研究,在测量精度和稳定性方面,还可以采用一些改进措施,尽量减少系统的测量误差。

参考文献:

[1]卜英勇,王纪婵,赵海鸣,等.基于单片机的高精度超声波测距系统.仪表技术与传感器,2007(3):66-68.

[2]奠石镁.超声波测距在汽车倒车防撞系统中的应用.电脑知识与技术,2007,1(4):1083-1085.

[3]简盈,王跃科,潘仲明.超声换能器驱动电路及回波接收电路的设计.电子技术应用,2004(11):31-34.

[4]张海鹰,高艳丽.超声波测距技术研究.仪表技术,2011(9):58-60.

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

[6]童亮.基于CAN总线的智能超声波测距系统.仪表技术与传感器,2007(12):34-36.

郑昆(1990—),硕士,主要研究领域为智能仪表执行器技术。

E-mail:zhengk12@126.com

猜你喜欢

子程序测距超声波
类星体的精准测距
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
浅谈超声波测距
蝙蝠的超声波
超声波流量计的研究
浅谈子程序在数控车编程中的应用
基于PSOC超声测距系统设计
子程序在数控车加工槽中的应用探索
相对差分单项测距△DOR