摘 要: 系统以STM32处理器为控制核心,主要包含超声波发射电路、超声波接收电路、温度补偿模块和液晶显示电路等电路。通过测量超声波发射到遇到障碍物返回的时间差,计算出距离和速度。采用DS18B20检测环境温度,修正超声波传播速度误差。经测试,系统可测量5 m内的距离和100 cm/s内的速度。
关键词: 核心期刊发表,嵌入式处理器,测速测距,超声波,温度补偿
Design of ultrasonic velocity and range measurement system based on STM32
CAI Guang?zhao, HONG Yuan?quan, ZHOU Yong?ming
(Department of Electronic Engineering, Shaoguan University, Shaoguan 512005, China)
Abstract: The system takes the STM32 processor as its control core, and mainly includes ultrasonic transmitting circuit, ultrasonic receiving circuit, temperature compensation module and liquid crystal display circuit. The distance and speed are calculated by measuring the time difference between ultrasonic emission and return. DS18B20 is used to detect the ambient temperature, and correct the ultrasonic propagation velocity error. The testing results show the system can measure the distance within 5 m and speed in 100 cm/s.
Keyword: embedded processor; velocity and range measurement; ultrasonic wave; temperature compensation
随着科学技术的快速发展,测速测距仪在教学、科研和生活中的应用越来越广泛。目前,市面上大多测速测距仪器是基于激光或雷达的,虽然精度高,但价格较昂贵,操作复杂,难以普及应用。而且,在很多场合,测速和测距的精度要求也不高。因此,操作简单、价格低廉、携带方便的自动测速测距仪器有广泛的应用空间。本文介绍了一种基于STM32处理器的超声波测速测距系统的设计,具有操作简单、携带方便、测量快速、性价比高等优点。
1 超声波测速测距原理
谐振频率高于20 kHz的声波称为超声波。超声波为直线传播方式, 频率越高, 反射能力越强, 而绕射能力越弱。利用超声波的这种特性, 常常用做距离或者速度的测量。
超声波发生器发出40 kHz的超声波,以声速[c]在空气中传播。超声波到达被测物体时,反射返回到超声接收器。假设超声波的往返时间为[t]。则被测物体的距离[S]如式(1)所示:
[S=ct/2] (1)
超声波是声波的一种,其速度不是一个固定值,跟温度大小成正比关系。在干燥空气中,声速的经验计算公式如式(2)所示:
[c=331.3+0.606T] (2)
式中:[T]为摄氏气温。常温15 ℃下,声速为340.4 m/s。
测量被测物移动速度时,在等间隔时间ΔT内,先后测量出待测物的距离S1,S2,利用式(3)可算得移动速度[V]:
[V=(S2-S1)ΔT] (3)
可见,超声波测速测距系统中,关键是超声波信号的发射接收以及超声波发射到遇障碍物返回的时间的准确测量[1?3]。
2 系统电路设计
超声波测速测距系统电路主要包含STM32系统接口电路、超声波发射电路、超声波接收电路、温度检测电路等组成[4]。
系统结构图如图1所示。
2.1 STM32处理器及系统接口电路
STM32F103处理器是32位的ARM微控制器,采用Cortex?M3 内核,工作频率为72 MHz。内部集成多达128 KB的闪存,64 KB的SRAM。外设接口丰富,包括2 个12 b 的D/A转换器、3个12位的A/D转换器、3个通用16 b定时器和一个PWM 定时器。该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求[5]。STM32处理器的主要接口电路如图2所示。
2.2 超声波发射电路
超声波发射电路如图3所示。主要由反相器74LS04和超声波发射换能器T 构成,微处理器I/O口PA8输出的40 kHz的方波信号TRIG,一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极。这种推挽连接形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力。上拉电阻R3,R4一方面可以提高反向器 74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间[6?7]。 2.3 超声波接收电路
超声波接收电路如图4所示,主要超声波专用接收芯片CX20106及其外围器件组成。超声波接收探头接收到的超声波信号,送往CX2016的1脚,在芯片内部进行放大、滤波、积分比较和整形后,7脚输出脉冲信号ECHO送往微处理器的PA8引脚进行处理。ECHO信号为高电平时,表示没有接收到超声波信号。一旦接收到超声波,ECHO产生下降沿。如果持续接收到超声波信号,则ECHO信号为周期性脉冲波[8?10]。
3 系统软件设计
系统软件设计的主要任务是控制定时器驱动超声波发送器,并计算超声波发射到返回的时间差,实现测速测距功能。
测速测距的波形图如图5所示,发送波TRIG由定时器TIM2产生,每隔T1时间,产生长度为T1的40 kHz方波,驱动超声波发送器。T1的大小与系统的最大测量距离有关。如果测量距离为5 m,声速按照常温计算,T1至少为29.4 ms,系统设置T1为50 ms。为了计算超声波发送到接收的时间差,从TRIG产生脉冲波开始,启动定时器TIM3,对系统内部72 MHz高速时钟进行计数。一旦回波ECHO产生下降沿跳变,则停止计数。根据计数值,算出T的大小,即为超声波发送到接收的时间差。
软件设计上,采用前后台系统完成程序设计。前台程序负责产生发送波TRIG和时间差T的计算。后台程序负责系统的初始化控制,回波检测,时间差、速度和距离的计算显示。后台控制的程序流程图如图6所示。
4 结 语
基于STM32处理器为控制核心的超声波测速测距系统,反应速度较快,既可以测量速度,也可以测量距离,能满足一般的日常需求。并且加入了温度补偿模块和报警模块,大大地增加的测量的准确性和产品的人性化设计。系统能够精准地测量出5 m内的距离,100 cm/s内的速度,可以广泛地应用于工地测量,管道长度测量,井深等不需要很高精度测量的场合。
参考文献
[1] 胡晓,巴力登.基于AT89C52的超声波测距系统设计[J].工业控制计算机,2014(2):125?126.
[2] 兰羽.基于AT89C51的超声波测速系统设计[J].电子工程,2013(4):137?139.
[3] 兰羽.具有温度补偿功能的超声波测距系统设计[J].电子测量技术,2013(2):85?87.
[4] 楼然苗,李光飞.单片机课程设计指导[M].2版.北京:北京航空航天大学出版社,2012.
[5] 陈志旺.STM32嵌入式微控制器快速上手[M].北京:电子工业出版社,2012.
[6] 刘升平,王剑,葛红.超声波测距系统的开发与研究[J].计算机工程与应用,2009(2):78?81.
[7] 刘凤然.基于单片机的超声波测距系统[J].传感器世界,2000(5):19?21.