一种高精度超声波距离检测方法和系统与流程

文档序号:32214919发布日期:2022-11-16 07:14阅读:184来源:国知局
一种高精度超声波距离检测方法和系统与流程

1.本发明涉及超声测距领域,尤其涉及一种高精度超声波距离检测方法和系统。


背景技术:

2.超声波检测在各个领域都有比较广泛的应用,其应用原理与雷达的检测原理类似,通过电脉冲激励指定频率的超声波信号,并在指定的时间之内检测超声波回波信号,对信号进行分析,从而计算出从激励到回波的间隔时间,再结合超声波速度,计算出目标位置的距离。
3.超声波检测的基本原理看似简单,但由于不同环境(距离、温度)下超声波信号强度的差异太大、超声波频率不稳定,同时由于器件差异、加工过程的不稳定因素,设备的一致性并没办法完全保证。因此采集方法的设计需要考虑多方面的因素。比较常见的采集方法有比较器脉冲捕获、adc原始回波采集等。
4.采用比较器捕获超声波回波信号所生成的脉冲方波,很容易由于回波强度的变化,导致测量到的回波时间相差一个或多个周期,导致出现较大的误差,其中低频超声波信号误差比高频信号更大。由于设备一致性的差异,超声波回波中心线可能存在较大的差异,导致超声波回波信号的脉冲方波的捕获条件没有统一的标准。
5.采用模数转换器adc来捕获较为完整的原始回波,再对其进行计算、鉴别,可以比较有效地避免由于信号强弱变化带来的误差。但是常见的单片机上的内置adc位数有限(如12bit),采样频率不高,可以采集到的原始回波数据精度不够,尤其是高频超声波信号,adc采集到的波形存在失真的问题,所以使用adc方案的测量精度不高。随着测量距离的加大,单片机也需要更大的ram来存储回波数据,超声波频率比较高、测量距离较大时,所耗费的ram空间比较惊人。如果要使用外部高精度adc,则成本大为提高,硬件电路设计也比较复杂;ram的大容量需求也导致单片机的成本提高。


技术实现要素:

6.有鉴于现有技术的上述缺陷,本发明的目的是提供一种高精度超声波距离检测方法和系统,可以通过对单片机内置的adc模块和比较器等资源的组合应用,获得高精度的超声波测距结果,从而大大降低高精度超声波测距系统的成本。
7.为实现上述目的,本发明提供了以下技术方案:
8.一种高精度超声波距离检测方法,基于单片机的定时器、比较器和模数转换器,包括:
9.步骤s1,配置单片机:
10.配置第一定时器,所述第一定时器为高频定时器,触发后工作于捕获模式;
11.配置比较器和模数转换器,配置超声波回波信号的输入,将超声波回波信号同步发送给所述比较器和所述模数转换器;
12.步骤s2,执行测距:
13.超声波回波信号输入,所述第一定时器触发;
14.所述比较器对超声波回波信号进行处理,输出脉冲方波信号,所述第一定时器对脉冲方波信号的上升沿进行捕获,记录捕获时的计数值,记为tim数据;
15.所述模数转换器对超声波回波信号进行采样,输出adc数据;所述adc数据按采样顺序存储于adc数据缓存中,所述adc数据在adc数据缓存中的位次记为adc位置;
16.在完成当次的超声波测距的adc数据和tim数据采集后,根据tim数据和adc数据的adc位置在时间上的对应关系,通过adc数据缓存表示的连续波形查找表示低精度的超声波回波起点的adc位置,再通过对应的tim数据获得高精度的超声波回波起点;
17.根据表示高精度的超声波回波起点的tim数据计算回波时间,然后根据回波时间和超声波速度,计算超声波的回波距离,从而得到当次超声波测距的测距结果。
18.进一步的,所述采样频率大于等于所述超声波频率的4倍,且为所述第一定时器的工作频率的n分之一,其中n为不小于4的整数。
19.进一步的,在步骤s1中,配置第一dma通道,用于将adc数据按序存储到adc数据缓存中;配置第二dma通道,用于将tim数据按序存储到tim数据缓存中。
20.进一步的,步骤s2中,根据tim数据和adc数据的adc位置在时间上的对应关系,通过adc数据缓存表示的连续波形查找表示低精度的超声波回波起点的adc位置,具体包括:
21.步骤s22,根据各tim数据所表示的时间点查找在adc数据缓存中对应的adc数据的adc位置,将tim数据缓存中的tim数据和adc位置一一对应;
22.步骤s24,从adc数据缓存表示的连续波形中检出真实的超声波回波信号,取真实的超声波回波信号的第一个正弦波对应的adc位置为第一超声波回波起点,即低精度的超声波回波起点;
23.步骤s26,根据表示第一超声波回波起点的adc位置反向查找对应的tim数据,以该tim数据表示的时间点为第二超声波回波起点,即高精度的超声波回波起点。
24.进一步的,所述步骤s24具体包括:
25.将超声波的原始波形依超声波频率分为多个周波,设定一个或多个判据,从超声波的原始波形中检出真实的超声波回波信号,选取满足设定判据的超声波回波信号的第一个正弦波,再选取第一个正弦波对应的adc位置为低精度的超声波回波起点,其中所述判据包括:周波的能量值、幅度值、波形形状是否为正弦波或限幅正弦波、周波的周期。
26.进一步的,在步骤22之前,还包括步骤21:计算相邻两个tim数据之间的差值,由第一定时器的工作频率除以该差值,计算脉冲方波信号的频率,当脉冲方波信号频率小于等于超声波频率,则判定为合格,否则为噪声;若判定为噪声,则剔除两tim数据中的待验数据。
27.进一步的,步骤s2中,完成当次的超声波测距的adc数据和tim数据采集的条件是:adc数据缓存满。
28.本发明还给出了以下技术方案:
29.一种高精度超声波距离检测系统,包括单片机,所述单片机包括比较器、模数转换器和定时器,所述单片机接入超声波回波信号并执行如上任一方案所述的高精度超声波距离检测方法。
30.进一步的,所述单片机的时钟频率大于等于50mhz。
31.进一步的,所述第一定时器的工作频率等于或大于所述单片机的时钟频率。
32.本发明实现了如下技术效果:
33.本发明的高精度超声波距离检测方法通过对单片机内置的adc模块、比较器和定时器等功能单元的组合应用,可过滤噪声及获得高精度的超声波测距结果,从而大大降低高精度超声波测距系统的成本。
附图说明
34.图1是本发明的超声波距离检测的功能框图;
35.图2是本发明的超声波距离检测的流程图;
36.图3是adc数据和tim数据的对应波形图。
具体实施方式
37.为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
38.现结合附图和具体实施方式对本发明进一步说明。
39.如图1和图2所示,本发明给出了一种高精度超声波距离检测方法,该方法利用单片机中的定时器模块、adc模块、比较器模块和dma传输控制器等资源,对采集的超声波回波信号进行同步处理形成adc数据和tim数据两种数据,再根据adc数据缓存得到低精度的超声波回波起点,再通过tim数据和adc数据的位置之间的时间对应关系,根据表示低精度的超声波回波起点的adc位置查找到表示高精度的回波起点的tim数据,在通过该tim数据获得回波时间,从而根据回波时间计算回波距离,获得最终的测量结果。
40.在本实施例中,采用stm32f302系列的单片机(stm32f302是采用运行于72mhz的arm cortex-m4内核(带fpu和dsp指令)的混合信号单片机mcu)构成的超声波检测仪进行液位检测。单片机和传感器连接,接收超声波回波信号。在本实施例的应用中,超声波频率选取范围为200khz-500khz。
41.首先对单片机stm32f302的资源做如下设定:
42.(1)将定时器tim1配置成为高频定时器,如stm32f302的输入时钟为72mhz,则将定时器tim1的工作频率配置成输入时钟的倍频(该系列单片机允许的最高频率),144mhz,该定时器由比较器的输出信号触发,在比较器输出上升沿时被触发;为达到较高的测量精度,在具体应用中,选取的单片机的输入时钟频率不小于50mhz,选取的高频定时器的触发频率不小于50mhz,即该单片机至少有一个定时器的工作频率等于或大于(通过内部倍频实现)单片机的时钟频率。
43.(2)配置单片机内的比较器和adc,配置超声波回波信号的输入,将超声波回波信号同步发送给所述比较器和所述模数转换器。
44.(3)配置数据存储器,设置adc数据缓存和tim数据缓存;
45.(3)配置dma1_ch1通道,用于将产生的adc数据直接写入adc数据缓存中;配置dma1_ch2通道,用于将产生的tim数据直接写入tim数据缓存中。
46.超声测距步骤:
47.当单片机接收到超声波回波信号时,将超声波回波信号分两路分别发送给比较器comp和模数转换器adc,同时定时器tim1触发,进入捕获模式。
48.在比较器comp,根据超声波回波信号和数模转换器dac输出的参考电压的比对结果,生成脉冲方波信号。定时器tim1对脉冲方波信号的上升沿进行捕获。定时器tim1使能dma传输控制器,将捕获时刻的定时器tim1的计数值通过dma方式直接写入tim数据缓存中,记为tim数据。
49.同时,模数转换器adc每次采样的输出通过dma方式直接写入adc数据缓存中,记为adc数据,adc数据在adc数据缓存中的位次记为adc位置。在本实施例中,模数转换器adc的采样频率设定为3.6mhz,为定时器tim1的工作频率144mhz的1/40。优选的,定时器tim1的工作频率为adc的采样频率的n倍,其中,n为不小于4的整数。adc数据的存储容量设定为1650个数据点,即1650个adc位置,可记录约0.4583ms的adc数据。在具体应用中,可根据待储存的adc数据的数量和记录的时间长度(或测距范围)选择适合的模数转换器adc的采样频率。
50.可选的,当adc数据缓存满,则当次超声波测距的数据采集结束。
51.采集总时间结束后,对adc数据缓存的adc数据和tim数据缓存中tim数据进行数据处理,得到高精度的超声波回波起点,根据超声波回波起点可得到回波时间t,再根据公式s(行程)=v(速度)*t(时间),计算超声波的回波行程,进而在本实施例中,计算出液位高度h,h=s(行程)/2。其中,v是超声波在传导介质中的传播速度,传导介质根据应用,一般为空气或水等流体。
52.通过以上步骤,单次超声波测距结束,等待再次触发,执行下一次的超声波测距。
53.参考图3和表1所示,具体的,得到回波时间t的方法基于以下原理:
54.定时器tim1捕获比较器输出的脉冲方波信号生成的tim数据与adc输出的adc数据是同时采集的,虽然频率不同,但是时间上有对应关系,每一个tim数据,都可以根据时间上的对应关系在adc数据缓存中上找到对应的adc数据的adc位置。
55.adc采集到的超声波原始波形有一定程度的失真,但由于adc的采样频率仍大大超过超声波频率,优选的,adc模块的采样频率至少为超声波频率的4倍,因此可以用于基本的判断与检索,得到低精度的超声波回波起点。
56.由于定时器tim1采用定时器tim1采用超高频率,采集的数据精度很高,因此,tim数据中包含了更为精确的超声波回波起点位置,或称高精度的超声波回波起点。
57.因此,结合两者的优势,进行综合的判断,根据低精度的超声波回波起点和高精度的超声波回波起点的一一对应关系,可获取高精度的超声波回波起点,从而准确计算出回波时间,进而获得精确的液体高度。
58.具体的,对缓存的adc数据和tim数据进行数据处理,包括:
59.(1)检查脉冲方波信号的频率是否符合指定的频率,此方法可排除脉冲方波信号中的噪声。具体的,在该步骤中,可计算相邻两个tim数据之间的差值(两个tim数据,一个为参考数据,一个为待验数据),tim所采用的定时器频率除以该差值,即为脉冲方波信号的频率,此频率在正常的超声波频率范围内(即脉冲方波信号频率小于等于超声波频率),则判定为合格,否则为噪声。若判定为噪声,则剔除两tim数据中的待验数据。
60.(2)adc数据缓存表示的超声波的原始波形可根据超声波周期或通过过零检测等方式分为若干个的周波,每个超声波的原始波形包含若干数量的adc数据。
61.(3)在频率合格(已排除噪声)的tim数据中,换算每个tim数据所对应的时间点,并根据时间点定位在adc数据缓存中的adc数据的位置,即adc位置。查找各adc位置所在的周波,可设定一个或多个判据,如判断每个周波的能量值、幅度大小,波形形状是否为正弦波或限幅正弦波,同时判断相邻两个正弦波距离是否在合理范围内,即相邻的过零点跟波峰或者波谷的时间间隔是否为正弦波周期的四分之一,相邻的两个过零点之间的时间间隔是否为正弦波周期的二分之一,相邻的两个波谷之间或两个波峰之间的时间间隔是否等于正弦波的周期。可设定其中一个或多个判据(如能量值、幅度值、正弦波等)判断哪几个周波为真实的超声波回波信号(即从超声波的原始波形中检出真实的超声波回波信号),从真实的超声波回波信号的第一个正弦波所对应的adc位置即为低精度的超声波回波起点。根据表示低精度的超声波回波起点的adc位置进行反向查询,该adc位置所对应的tim数据表示的时间点则为高精度的超声波回波起点。如表1中的序号7的tim数据,该tim数据的值为7883,对应的adc位置为197,针对该adc位置的周波进行分析,得到该adc数据所在的周波的幅度值为250,结合对该周波的正弦波判定,可以确定该周波为真实的超声波回波信号,且为真实的超声波回波信号的第一个正弦波,因此根据adc位置反向查询,值为7883的tim数据表示的时间点为高精度的超声波回波起点。
62.表1:adc数据和tim数据对照表
63.序号tim数据tim时间(ms)激励信号adc位置波形幅度首波1450.3125是1无需判断否26804.722222222是17无需判断否3172711.99305556是43无需判断否4536137.22916667否134143否5660245.84722222否165131否6736051.11111111否184137否7788354.74305556否197250是8868560.3125否217250否9924764.21527778否231250否101024371.13194444否25698否111116677.54166667否27984否121232585.59027778否308105否131376095.55555556否344156否1415044104.4722222否376144否1516520114.7222222否41372否1619289133.9513889否48280否
64.(4)此时取出序号7的tim数据换算得到的tim时间54.74305556ms,再乘以已知的超声波速度,最终计算出真实、准确、高精度的液位高度。
65.在本实施例中,测距的分辨率可达0.02mm,综合测量精度可达0.3mm。
66.在图3中,曲线s1为超声波的原始波形,曲线s2为定时器tim1捕获比较器输出的脉冲方波信号形成的高精度脉冲信号。
67.本发明的高精度超声波距离检测方法通过对单片机内置的adc模块、比较器和定
时器等功能单元的组合应用,通过adc模块采集的adc数据得到低精度的超声波回波起点,通过比较器和定时器采集的tim数据得到高精度的超声波回波起点,通过tim数据和adc数据在时间上的对应关系,通过低精度的超声波回波起点可以查找到对应的高精度的超声波回波起点,从而获得高精度的超声波测距结果。
68.本发明还提出了一种高精度超声波距离检测系统,该系统由于采用单片机内部的比较器、存储器、定时器、存储器等资源,通过如上的方法对超声波回波信号进行数据处理,实现高精度超声波距离检测,因此单片机外围器件少,可大大降低系统的硬件成本。
69.尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1