基于STM32单片机的高精度超声波测距系统的设计
- 格式:pdf
- 大小:338.24 KB
- 文档页数:4
电子设计工程ElectronicDesignEngineering第19卷
Vol.19第15期
No.152011年8月
Aug.2011
基于STM32单片机的高精度超声波测距系统的设计
苑洁,常太华
(华北电力大学控制与计算机工程学院,北京102206
)
摘要:提出了一种基于STM32
单片机的超声波测距系统的设计方案。与传统单片机相比,STM32
的主频和定时器的
频率高达72MHz
,提高了时间测量的分辨率。在开启定时器计时的同时,启动PWM
通道驱动超声波发射器和输入捕
获通道捕捉回波信号,提高了测量的精度。在充分分析超声波测距产生盲区和误差原因的基础上,设计了时间增益补
偿电路(TGC
)和双比较器整形电路分别测量远、近距离,并通过软件算法对回波信号进行峰值时间检测,简化了电
路。实验研究表明,该系统测量精度达到了1mm
,盲区低至2.5cm
。
关键词:STM32
单片机;超声波测距;双比较器;时间增益补偿(TGC
);峰值时间检测
中图分类号:TP216
文献标识码:文章编号:1674-6236
(2011
)15-0076-03
Designofultrasonicdistancemeasurementsystem
basedonSTM32microprocessor
YUANJie
,CHANGTai-hua
(NorthChinaElectricPowerUniversity
,Beijing102206
,China
)
Abstract
:AnultrasonicdistancemeasurementsystembasedonSTM32Microprocessorispresented.Comparedwiththe
traditionalmicrocontroller
,thebasicfrequencyandtheTimerfrequencyoftheSTM32microcontrollerreachupto72MHz
,
whichimprovetheresolutionofthemeasuringtime.ThesuperiorityisthatyoucanstartPWMchannelstodriveultrasonic
transmittersandinputcapturechannelatthesametime.Thetimegaincompensation
(TGC
)circuitandthedouble
comparatorplasticcircuitareusedtoreducetheblindareaanderror.Inaddition
,usingthepeaktimedetectingtechnique
throughthesoftwarealgorithm
,thearrivaltimeofultrasonicechocanbecorrectlydetected.Theexperimentsshowthatthe
systemmeasurementaccuracycanreachto1mmandtheblindarealowto2.5cm.
Keywords
:STM32Microprocessor
;ultrasonicdistancemeasuring
;doublecomparator
;time-gaincompensation
(TGC
);
peaktimedetecting
收稿日期:2011-05-28
稿件编号:201105115
基金项目:国家自然基金重点项目(51036002
)
作者简介:苑洁(1982
—),女,山东日照人,硕士研究生。研究方向:检测新技术与自动化装置等。超声波测距是一种典型的非接触测量方式。超声波在气
体、液体及固体中以不同速度传播,定向性好、能量集中、传
输过程中衰减较小、反射能力较强[1]。且超声波测距系统结构
简单、电路易实现、成本低、速度快,所以在工业自动控制、建
筑工程测量和机器人视觉识别等领域应用非常广泛。
超声波测距一般采用渡越时间法[2-4]。超声波测距的实质
是时间的测量,即:用超声脉冲激励超声探头向外发射超声
波,同时接收从被测物体反射回来的超声波(简称回波),通
过精确测量从发射超声波至接收回波所经历的射程时间t
(渡越时间),按下式计算超声波探头与被测物体之间的距离
S
,即
S=1
2ct
(1
)
其中,c
为空气介质中声波的传播速度。
在常温下,超声波的传播速度为340m/s
,但其传播速度c
易受到空气中温度、湿度、压强等因素的影响,其中温度的
影响最大。一般温度每升高1℃
,声速增加约为0.6m/s[5]。
本文采用DS18B20
数字温度计来检测现场温度,用以实现波
速的校准,因很多文献对此都有说明,故本文不做深入介绍。
c=331.4×1+T/273
姨
≈331.4+0.607T
(m/s
)(2
)
式中,T
为环境温度。
1系统组成
超声波测距系统由STM32
单片机、超声波发射电路、接
收电路、放大电路、比较整形电路、测温电路等组成。系统以
STM32
单片机为核心,协调各部分电路工作。STM32
单片机
首先发出一系列频率为40kHz
的方波,输送给超声波发射
电路并激励出超声波。超声波在空气中传播,遇障碍物返回,
进入超声波接收器,然后经过滤波、放大、整形,进入单片机。
系统框图如图1
所示。
-76-
2硬件设计
2.1
超声波发射电路
工作原理为:由STM32
的高级定时器TIM1
输出两路
40kHz
、占空比为50%
的互补的PWM
信号,经过Max232
升
压产生约18Vpp
来驱动超声波发射器T40-16
,并激励出超
声波,每次发射8
个周期脉冲。电路通过三极管Q1
来开、关
Max232
的电源,在开始发射前,打开Max232
的电源,待电路
稳定后开始发射,并在发射结束后关断Max232
电源,这样设
计不仅降低了发射电路对接收电路的干扰,同时也降低了功耗。发射电路如图2
所示。
2.2
双比较器整形电路
超声波发射器发出的超声束角度是0°
到
360
°
,主要集中
在0°
到±60°
,
由于安装
壳的阻挡,超声波不能直接发射到接
收器上。但是因为声波传输的特性,声波会出现未经障碍物
反射就直接回到接收探头被检测到,造成接收器认为是实际
发射收到的回波信号,导致误报。这种现象就是声波的衍射
现象,无法避免。
衍射信号的幅值随着超声波发射探头和接收探头之间
距离的增大而减小,实际设计过程中不会将测距模块设计的
太大,因此超声波收、发探头之间的距离也较小,但是当被测
距离L
比较小时,反射信号的幅值相对于衍射信号大的多,
所以设置合适的近距离比较器阈值,就可以完全屏蔽衍射
波,而只有反射波才能通过。本文对远、近距离的测量采用不
同阈值的比较器。近距离比较器测量2.5~50cm
的范围,远距
离比较器测50cm~4m
的范围。
回波信号由NE5532
放大,经比较器LMV331
整形后进入单片机。回波信号经过一级放大后,一路经过近距离比较
器LMV331
,比较整形后进入单片机。另一路进入增益可控可
调的放大电路。其中,NE5532
是一款双运放、高性能、低噪声
的运算放大器,相比较大多数标准运放,显示出更好的噪声
性能,具有相当高的小信号带宽和电源带宽。电路如下图3
所示。
2.3
时间增益(TGC
)补偿电路
超声波在空气中传播时,声强随着传播距离的增加而减
小,这就是所说的声衰减现象,造成衰减的原因是声束本身
的扩散以及声波的反射、散射等。由于回波信号的幅值随着被
测距离的增大而呈指数规律衰减,远距离目标的回波信号幅
度小,为了提高测距精度,必须对衰减的回波进行增益补偿[6]。
基于此,设计了时间增益补偿电路。时间增益补偿电路(TGC
)
通过电子可调电位器改变输入电阻来实现,如图4
所示。
其中,MAX5161
是一种具有32
级抽头的数字电位器,
端-
端阻值为50kΩ
,具有3
线串行接口,实现阻值的调节。
事先把通过实验获得的与一定距离对应的放大增益换算成
数字电位器的抽头位置,并把这些位置参数固化到E2PROM
中。在测量过程中,单片机通过查表方式获得对应的增益,然
后通过串行设置对应增益。利用单片机控制数字电位器,电
路实现较简单、增益控制范围大且补偿特性能根据需要进行
调整,充分利用了单片机的软件资源。
3软件算法
3.1
基本流程
系统以STM32
单片机为核心,实现对各部分的控制和响
应。测距软件的基本流程:首先使用美国DALAS
公司生产的
DS18B20
数字温度传感器测量环境温度,通过查找事先建立图1超声波测距系统框图
Fig.1Blockdiagramofultrasonicdistancemeasurementsystem
图2超声波发射电路
Fig.2Transmittedcircuitofultrasonicsensors图3放大和比较整形电路
Fig.3Amplifyingandcomparativeplasticcircuit
图4时间增益补偿电路
Fig.4Time-gaincompensationcircuit苑洁,等基于STM32单片机的高精度超声波测距系统的设计
-77-