技术文档

单片机超声波原理 STM32单片机的高精度超声波测距系统的设计

小编 2025-08-02 技术文档 23 0

STM32单片机的高精度超声波测距系统的设计

相比于传统的单片机,STM32单片机具有更高的时间测量分辨率,其主频与定时器频率高达72MHz,且该单片机在开启定时器的同时,会启动PWM通道驱动超声波发射器和通道捕捉回波信号,提高了测量的精度和准确性。超声波测距是一种典型的非接触测量方式,在不同的传播介质中具有不同的传播速度其系统结构简单、成本低。只有了解超声波测距的原理、了解STM32单片机才能设计出性能良好的STM32单片机的高精度超声波测距系统。

超声波测距的原理及检测方法

超声波检测技术是基于非接触测量方式而逐渐发展起来的一门技术,这种非接触测量方式会经常出现在材料学、电子科学、测量学等学科当中。超声波的产生是通过机械振动而得到,其传播速庶会随着传播介质的变化而变化。超声波测距的实现主要是通过超声波的产生、传播与接收回波这三个主要过程。

目前,声波幅值检测法、渡越时间检测法和相位检测法是超声波测距的三种主要检测方法。声波幅值检测法,容易受到传播介质的干扰,所以其测量精度较差。渡越时间检测法,与其他两种检测方法相比,成本较低,测量范围较广,且实现简单,因此本文高精度超声波测距系统的设计决定采用渡越时间检测法。相位检测法,在实际测量过程中,其测量精度要高于其他两种检测方法,但测量范围具有一定的局限性田。

STM32单片机的高精度超声波测距系统设计

一、系统组成

STM32单片机的高精度超声波测距系统的设计主要由STM32 单片机、超声波发射电路、接受电路、补偿电路和软件等构成。该系统将STM32单片机作为整个系统的核心,通过协调各部分电路工作,进而实现高精度的超声波测距口。

二、系统硬件设计

1.超声波发射电路

超声波发射电路两个最主要的组成部分就是超声波探头和超声波激励电路。超声波探头不仅是超声波发射电路的一个重要组成部分,更是整个超声波测距系统的重要组成部分。它是超声波测距系统中用以发射或接受超声波信号的主要器件。超声波激励电路的基本工作原理是首先利用相应的机理信号对一特定形式的电压进行处理之后,将其加载到超声波探头上,然后再通过超声波探头压电晶片将其自身所具有的电能转化为超声波信号图。

2.超声波縷收电路

超声波接收电路由超声波信号采集与超声波信号处理两部分组成,该电路主要负责对超声波回波信号进行捕捉。由于电脉冲信号是由超声波传感器在接收到超声波回波信号之后经过转变而形成的,所以在正常情况下,它是无法直接进人到STM32单片机当中的。另外,超声波在传播过程中,往往会有部分超声波因为在辅助介质中传播而发生耗损现象,且超声波回波信号减小的幅度也会随着被测物体距离的增大而增大。

受声波的反射、散射和(2.2.3超声波补偿电路)声束本身扩散等的影响,使得超声波在传播过程中其大小将会随着传播距离的改变而改变,传播距离越大,超声波信号则越小。在STM32单片机的高精度超声波测距系统设计过程中,为了提高测量结果的精度,设计人员通常会对衰减的超声波回波进行时间增益补偿,这就需要将超声波补偿电路加人到系统设计之内,超生波补偿电路的设计基本上都是采用具有时司增益控制功能的接收放大器。

3.超声波补偿电路

受声波的反射、散射和(2.2.3超声波补偿电路)声束本身扩散等的影响,使得超声波在传播过程中其大小将会随着传播距离的改变而改变,传播距离越大,超声波信号则越小。在STM32单片机的高精度超声波测距系统设计过程中,为了提高测量结果的精度,设计人员通常会对衰减的超声波回波进行时间增益补偿,这就需要将超声波补偿电路加人到系统设计之内,超生波补偿电路的设计基本上都是采用具有时司增益控制功能的接收放大器。

4.主控器

该系统的核心组成部分采用STM32单片机,该单片机对主控器主频与定时器的控制是通过PLL进行陪频,从而让主控器的频率可以达到72MHz。主控器拥有如此高分辨率的定时器,可以实现超声波测距的高精度测量巧]。 2.3系统软件设计

STM32单片机的高精度超声波测距系统,其软件设计的主要流程如下:首先,对系统各个馍块进行初始化,通过STM32单片机的 PWM产生频率为40KHz的、具有8个周期的脉冲方波,并将要在漠块中进行捕捉的超声波回波输人到捕捉指令当中;其次,待超声波回波顺利进人到接收电路之后,利用整形电路和放大电路等硬件对其进行相应的处理并传送到STM32单片机内,当STM32单片机捕捉到回波触发信号时,利用软件滤波和峰值时间检测法来计算出峰值时刻回波的到达时间;最后,借助相关计算公式得出被测距离值。

结语

通过文章对STM32单片机的高精度超声波测距系统设计的介绍可知,该系统不仅可以实现距离的准确测量,而且反应速度决、成本低、稳定性高,能够较好的满足各领域的日常需求。利用网络技术和计算机技术等来设计STM32单片机的高精度超声波测距系统,并对超声波检测技术进行不断的完善与革新,在提高STM32单片机性能的基础上,设计出能够适应与满足未来各领域日常生产与发展需要的超声波测距系统,对我国各领域来说都具有重要的意义。

一种新型超声波测距系统信号处理方法

许高斌1,闵 锐1,陈 兴1,马渊明1,金传恩2

(1.合肥工业大学 电子科学与应用物理学院,安徽省MEMS工程技术研究中心,安徽 合肥230009;2.合肥科盛微电子科技有限公司,安徽 合肥230000)

一种新型的适用于工程应用的超声波接收端数字信号处理方案,算法思路是以巴特沃斯IIR数字滤波器作为输入输出端,并结合一种新型的包络检波及下采样处理,文中归结为五步算法。详细介绍了各步算法的实现方法、工作原理以及必要性,并结合五步算法的特性给出了一种新型的计算回波渡越时间的点迹法,避开了软件延时与实时性需求之间的矛盾。综合仿真与实验测试说明,此设计方案不仅可以有效滤除信道噪声的干扰,而且可以准确提取包络信息并记录峰值到达时间,极大地满足了超声波测距系统的稳定性和实时性的需求。

超声波测距算法;嵌入式系统;IIR数字滤波器;峰值包络检测

超声波测距系统以其对外界环境如雾霾天气、沙尘暴天气、雨雪天气等的高适应性而占据了绝大多数的汽车倒车雷达市场。传统的超声波换能器中心频率为40 kHz[1],传统的滤波器以及包络检测设计为RC阻容耦合电路的硬件电路实现[2],但是RC硬件电路存在不稳定性。数字滤波、数字提取包络相对于传统的模拟滤波和硬件提取包络来说,不仅省去了复杂的电路设计,而且处理信号的精确度和稳定性也都有大幅度提高。国防科技大学对回波处理算法进行了细致的研究[3-4],其主体思路是利用伪随机序列的相关运算进行处理,考虑到相关运算中FFT等运算的复杂性以及500 μs的码元长度,其并不适用于短量程的嵌入式测距系统。北京科技大学采用了基于能量重心法和最小二乘法的椭圆中心算法处理回波[5],虽然精度控制在0.2%,但是复杂的运算必须结合上位机才可以实现。国内还有很多关于高精度超声波测距系统的研究[6-8],但是并未提及信号处理的具体实现方案。针对以上设计的不足,提出了一种新型的应对嵌入式系统的超声波测距五步算法,在数字滤波的基础上采用一种新型的包络检测方式,同时在数据处理方面采用了新型的点迹计算法来计算回波峰值点。

1 超声波测距系统框架

系统框图如图1所示,实验采用主控为基于Cortex-M4的ARM芯片。系统的工作流程为:主控芯片通过发出已被编码的正负互补的PWM波形,促使驱动放大器模块输出幅值放大的正弦波。并通过中周模块的稳频,驱动超声波换能器发出中心频率为40 kHz的超声波。当超声波遇到障碍物时返回,经过前置放大电路的放大后,进入ADC模块进行数模转换,转换出的信号通过本文设计的数字通路后被解码,从而被CPU处理。

图1 系统框架图

距离可以通过式(1)计算:

式中,s为障碍物到探头的距离,v为空气中的声速,T近似为超声波在空气中的传播时间,近似程度由算法的延时决定。

2 超声波测距DSP模块设计

超声波数字通路处理从ADC的输出信号开始,实际的数字信号处理模块设计如图2所示。

图2 五步算法框架

DSP模块的五步算法处理流程:从ADC的输出信号经过数字带通滤波器,可以滤除由于在空气中传播而掺杂的高斯噪声。为了避免包络检测的正负抵消,需加入整流器,整流器的输出需要经过峰值提取器,提取采样信号的包络,以计算准确的回波到达时间以及中断触发时间。由于1 MHz的采样率不适用于计算机对数据的运算,则需要一个下采样模块来降低采样率满足计算机的需求。下采样模块的输出信号需经过数字低通滤波器来滤除高频噪声。

2.1 IIR数字带通滤波器的设计

基于MATLAB的IIR数字滤波器的设计有多种方式,经过反复实验,在最大程度节约开发成本、保证滤波效果的情况下,确定滤波器的阶数设定为2,采用模拟滤波器通过双线性变换法转数字滤波器。为了方便ARM内核的移植,同时考虑到倒车雷达用户不需要使用C来设计滤波器,结合实际工程需要,利用MATLAB软件开发与设计滤波器,得到滤波器的传递函数参数,然后再将MATLAB中的filter函数利用C设计实现,即可以达到事半功倍的效果。图3所示为超声波回波信号与带通滤波器的输出,可以看出对于高斯噪声的抑制效果优良。

图3 回波信号及带通滤波器输出

2.2 整流器的设计

由于数字信号后期会进行包络检测,当超声波的接收波形分布在X轴的上下侧,检测出的包络会正负抵消,则无法实现预期的结果。这里的整流器可近似为一个二极管的作用,使处于X轴负半轴的信号屏蔽,以利于后期的包络检测处理。程序上可以通过将X轴下方的数据均赋0来实现。

2.3 包络检测器的设计

在超声波测距系统中,由于超声波的衰减以及超声波换能器压电陶瓷在压电转换过程中的惯性滞后导致超声波的回波信号被拓宽,使得回波到达时间点不确定,同时由于传统设计的比较器阈值固定,增大了误差的发生几率,所以包络峰值检测在判断飞越时间的过程中起着重要作用。通过MATLAB提供的库函数可以方便地提取包络,但是MATLAB库函数用C语言很难实现,而且过于频繁的乘加运算和FFT运算会增大工程算法的延时,对超声波测距带来不利影响,且不便于移植。

峰值提取新算法是利用C语言实现峰值检测,其理论依据为移位算法。如果峰值提取器的输入大于先前的峰值提取器的输出,则峰值提取器的输出被更新,其理论框图如图4所示。

图4 峰值提取算法示意图

其中x是峰值提取器的输入,k是步长,y为输出。在波形上升部分,包络可以很好地提取,其技术难点在波形的下降部分。因为该算法只对比前一数据值更新,而对于过峰值后,波形的包络无法被该算法更新则为一条直线。考虑到短延时的存在并不过多地影响最终的时间检测,所以允许包络相对于峰值点有一定的延迟。

对下降部分单独分析,需结合下采样器的功能:对峰值提取器进行复位清0,同时生成输出。峰值提取器的输出是在下采样器中的定时器到达预定值后生成输出,即输出为峰值点后,再对该输出清零继续进行后面的比较。下采样器中的计数器的预定值,本质上就是下采样的频率缩小为原始输入频率的1/DS,DS亦为每2个输出点之间的采样间隔。该算法的仿真结果如图5所示,可见包络提取满足工程设计的需要,且节约了设计成本和减少了运算延迟。结果显示有少许的相位差,可以通过实际测距过程中的测量统计来纠正。

图5 峰值包络检测的新算法仿真

2.4 下采样器的设计

一个样值序列间隔几个样值取样一次,这样得到的新序列就是原序列的下采样。采样率变化主要是由于信号处理的不同模块有不同的采样率要求。下采样相对于最初的连续时间信号而言,为了防止频谱混叠要满足采样定理,此方案设计已将下采样模块与峰值提取模块进行融合和互补控制,通过下采样模块可以使最后信号的采样率与符号速率相等。这样处理获得的信噪比增益会大幅度提高。下采样方便了后面的低通滤波器的设计,这是相辅相成的。为了迎合低通滤波器的处理效果,经过反复实验分析,下采样寄存器的最佳允许值范围为25~50。

2.5 IIR数字低通滤波器的设计

IIR数字低通滤波器的设计与带通滤波器一致,本文设计的低通滤波器阶数为1,可以满足实际工程应用需求。从ADC出来的信号为幅度变化的高频信号,虽然发射的波形为等幅波形,但是在超声波信号的传输过程中受到噪声的干扰,产生了很多的高频噪声分量,导致接收到的信号为幅度变化的高频波。由于高频回波信号的包络为低频分量,加入低通滤波器可以滤去高频处的噪声,同时也可以滤除由于带通滤波器拓宽带宽而带来的噪声。低通滤波输出亦为五步算法综合输出,其输出图以及频谱对比图如图6所示,可以看出算法的平台通用性和可移植性。

(a)低通滤波器输出

(b)C输出的频谱

(c)MATLAB输出的频谱

2.6 输出数据的处理

对于输出数组的处理,采用一种新型的结合下采样点迹的方式来计算超声波的渡越时间,这种方法可以避开定时器的使用,节约了硬件资源,避免了由比较器的误触发而导致定时器中断的干扰。同时由于数据处理的延时与渡越时间的测量是一对矛盾体,为了提高系统精度,五步算法传递的数据均为浮点数,对于不同的回波数据值,ADC以及五步算法的软件延时累积误差会达到30 μs左右,所以利用点迹计算的方式实现了时间测量与系统软件延时的有效分离。

算法处理方式如下:在低通滤波输出后,得到的包络数据被保存于数组中,可以结合传统的阈值处理以及回波包络的对称性找到回波数据中的峰值点,利用该峰值点在数组中的位置,同时根据下采样的周期t_per计算出超声波发射与接收的时间差。由于五步算法的相位差以及系统硬件的延迟与待测距离无关,为固定值,所以通过板级实验可以测试出总体的时延,在计算实际距离时将误差减去即可。

假设找到的峰值点为数组中的第N点,板级实验测试的总体时延为t_dly,则超声波发送与接收时间差T为:

将T代入式(1),再加上温度传感器的补偿反馈,即可实现测距目的。

2.7 测距算法的板级实验

为了测试所设计的五步算法的可行性,在自主设计的ARM超声波测试板中进行了板级实验。

通过超声波测距系统的量程(20 cm~5 m)固定距离,并以60 cm步进,分别使用本文设计的数字通路五步算法和传统经典的互相关时延算法进行了测距性能的对比,测试结果如表1所示。可以看出,在同等测试环境下,由于码元长度的限制以及包络提取、信道噪声的影响,互相关算法在近距离时出现了较大的误差,相比之下本文算法的精确度更高。

3 结论

本文采用全数字化的五步算法实现对超声波回波信号的处理,通过MATLAB与C程序输出的对比与分析可知,设计方案合理,且便于对嵌入式主控的移植。相对于传统的硬件模拟RC处理电路的设计,本文设计的方案具有更高的稳定性与实时性,通过与互相关时延算法实验比对,本文的测距算法方案具有更高的精度,且更适用于实际工程的应用。

参考文献

[1] 张红莲.基于单片机的超声波测距系统的设计[J].可编程控制器与工厂自动化,2008,21(9):89-91.

[2] 陈云超,程晓峰,郭峰.基于FPGA控制的超声波测距系统设计[J].微型机与应用,2012,31(1):90-92.

[3] 祝琴.扩频技术在超声测距系统中的应用研究[D].长沙:国防科技大学仪器学院,2006.

[4] 潘仲明,简盈,王跃科.基于两步相关法的大量程超声波测距技术[J].电子测量与仪器学报,2006,20(5):73-76.

[5] 陈先中,侯庆文,叶琳,等.超声测距系统的高精度中心椭圆算法[J].北京科技大学学报,2007,29(11):1154-1157.

[6] 陈上挺,谢文彬,游颖敏.基于STM8的红外与超声波测距仪设计[J].电子技术应用,2011,37(9):32-34.

[7] 赵海鸣,王纪婵,刘军,等.一种高精度超声波测距系统的改进[J].电子技术应用,2007,33(4):59-62.

[8] 张禾,李俊兰,葛亮,等.一种高精度超声波测距系统的设计[J].自动化仪表,2012,33(2):62-64.

AET会员年终大福利!

相关问答

51 单片机 避障小车 原理 ?

色对光线的反射率小这个特点,当平面的颜色不是黑色时,反射器发射出去的红外光被大部分反射回来。于是传感器输出低电平0。2.当平面中有一条黑线,传感...51...

基于 单片机 超声波 测距系统的答辩有什么问题?

测速的原理、软件是怎么换算出距离的、测量范围和精读、功耗、系统供电稳压、具体电路的各原件大小选择及功能测速的原理、软件是怎么换算出距离的、测量范围...

51 单片机 外围模块中, 超声波 测距模块上STC11芯片是什么?STC11、TL074和MAX232的作用都是什么?

STC11是一款STC单片机(STC单片机的一个系列,而不是一个具体的单片机型号),在这里的作用是根据收到的发送信号TRIG,发送一端超声波波形给MAX232;还有个...STC...

我要用一块51 单片机 超声波 探头自己搭了一块板子,接上了复...

[最佳回答]我以前也做过.对于超声波探头那4个脚,布线时是很纠结的.如果用单面板,飞线在所难免;双面板回少飞一点.我以前也做过.对于超声波探头那4个脚,布线时...

超声波 测距国内外研究现状,水平及存在的问题有哪些?

[回答]声波测距原理及误差分析一、超声波测距原理超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时...

超声波 液位计和雷达液位计的区别有哪些?

我是电子及工控技术,我来回答这个问题。超声波液位计和雷达液位计在水利部门运用的十分广泛,这两种设备主要是对江河湖泊等的水位进行测量的一种监测仪器。虽然...

超声波 如何测量_作业帮

[最佳回答]发射时单片机定时器工作,接收到定时器停止工作,计算时间差乘以传输速度再除以2就是测量距离了.

单片机 12m如何产生40k频率

当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。...采用AT89C51或AT89S51单片...

温度对 超声波 传播速度有什么影响?如何消除或补偿误差?

温度越高超声波传播速度越快,超声波传播的速度还取决于传播介质的密度大小,一般密度越大也会越快,不过这些影响超声波传播速度的因素也会相互影响的,要综合考...

2——怎样在一个 单片机 上同时使用几个频率不同的 超声波 模...

[最佳回答]对于第一个问题:超声波测距,通常在10米以内,但也有个别厂家做到几十米甚至百米的.超声波测距有以下几个特点:1、频率越高,精度也越高,但检测距离越...

猜你喜欢