超声波流量计的高精度算法以及系统详细说明

超声波流量计的系统设计:
  经查阅大量文献,发现超声波流量计仍然存在着波形检测不准确,到达时间检测不,运行速度慢等缺点[71][72]。本文根据以上几点,提出以下几个方案并进行实施。,针对波形信号检测不准确的缺点,提出了双阈值和周期相结合的边沿检测算法,提高了波形信号识别的准确度[73][74]。第二,针对到达时间检测不的特点,提出了改进的脉冲计数算法以实现在同等的硬件条件下的高精度的时间检测[75][76]。经过计算(第四章节将详细介绍),超声波到达时间精度***好达到 MHz 级别,那么就要求参考计时脉冲频率达到 GHz 级别,那么计数器的位数必然很大,消耗更多的内部资源[77][78]。本文确定的脉冲计数法测量传播时间,通过边沿检测算法实现在不增加计时脉冲频率的情况下来提高测时精度[79][80]。第三,针对运行速度慢的缺点,提出了单片机和 FPGA 相结合的硬件结构,其中 FPGA 有较高的晶振频率并采用的是并行处理结构,在高速信号接收和高速的信号处理方面有着明显的优势。因此,采用 FPGA 作为信号接收和处理的芯片。
  而单片机有大量的数据线和地址线,可以实现与其它硬件相结合,作为整个系统的控制芯片。因此,采用单片机作为发射和接收超声波信号电路转换、与 PC 机之间的串口通信的芯片。下面,本文就到达信号检测算法和到达时间检测算法进行具体的介绍。考虑本文是基于 C8051F122 为主控芯片和和以 FPGA 为检测芯片的硬件结构对超声波流量计进行改进的,因此本文的超声波流量计的设计的整体方案可设置为如图 3.1 所示。 
图 3.1  整体系统结构图
图 3.1  整体系统结构图 

  从系统硬件结构图中可以看到,整体系统分为:C8051F122 的控制芯片作为蓝牙通信和上位机通信,换能器驱动电路,信号接收处理电路,通道切换电路,A/D 转换电路,D/A 转换电路,FPGA 信号处理系统,数据处理和上位机连接等的主控芯片。FPGA 系统主要有高速数据采集,通道切换控制,正弦信号发生器和数据处理等部分组成。 
1 超声波信号发送模块。  如图 3.1 所示,
FPGA 的正弦信号发生模块经 DA 转换电路以输出正弦信号,再经过 FPGA 的驱动电路实现对超声波发生电路进行选择。顺流时的信号从换能器 A 发出,换能器 B 接收;逆流时的信号从换能器 B 发出,换能器 A 接收。
2 接收信号处理模块。  超声流量计中的超声波发出后经过流体后幅值会大幅度衰减,因此接收信号的电路中有信号放大电路。由于超声波在传播过程中伴随着噪声,因此接收信号的电路中有滤波电路。
3 传播时间的测量。  超声波传输信号时间测量分为顺、逆流传播时间测量。传播时间是从超声波发射时刻到超声波接收时刻之间的时间,本文设置发射电路连续发送 8 个正弦波信号作为超声波的发射信号,接收到的信号进行硬件滤波和软件滤波后,对信号进行进一步的处理,得到超声波的到达时间。
4 FPGA 模块。  实现正弦信号的发射和高速信号的采集和处理,实现了信号的主要处理部分。C8051F122 模块  实现信号的存储,上位机通信和蓝牙通信,以实现数据传输。 

1、超声波流量计高精度算法:

  本文研究的超声波流量计是应用于农田水渠的环境,现场捕获的信号具有十分重要的作用。这些信号的主要特点是:瞬时性、数据变化速率高、数据量庞大、处理过程复杂。为了能够完整、准确地捕获超声波流量计的信号和及时处理信号,本文需要的监测系统必须具有迅速连续采集和存储的功能,并且保持持久稳定的高效传输性。本文采用的单片机具有可编程的晶振,交叉开关的 I/O 引脚、功能强大、可以保证时序控制、运行速度较快、可外接多个硬件电路等特点,因此采用 C8051F122 作为其核心控制模块。
  本文采用的 FPGA 芯片具有并行处理特点,具有捕获信号和迅速处理数据的特点,因此采用 FPGA 作为信号检测和处理的芯片。不仅如此,流量计的接收模块很容易接收到外部环境、内部电路等噪声信号。因此,提高超声波流量计的测量精度,必须要做好两点工作:一是捕获超声波信号,确定到达时间。二是正确的处理超声波噪声信号以确保回波信号的准确性,达到获得超声波信号的到达时间。下面就如何获取准确的超声波信号和检测准确的到达时间进行介绍和分析。 

2、信号捕获算法:

  模块设计方案:FPGA 的 8 通道的模拟信号经过放大、滤波后,再经过 A/D 模数转换电路后将超声波换能器的声信号转变为电信号。单片机通过前期数据采集的长度和周期自调当前的采集信号周期。信号采集的算法是基于超声波流量计回波信号的特点设置的。超声波的发射是基于单片机的定时开关电路设计的,因此超声波的发射时间可以准确的得到。
  超声波信号的到达时间的检测是超声波流量计的研究的重点。在查阅大量文献后,发现以往的算法都是根据阈值法检测超声波,算法的原理是设定一定的阈值 A,通过比较检测到的信号的幅值与 A 相比,一旦大于阈值 A,则认为超声波信号已经到来,进行信号的捕获与处理,如图 3.2 所示。阈值算法在一般情况下比较适用,有些情况下则不太适用。比如说,在超声波信号到来之前,噪声信号的幅值大于阈值 A,本文就认为超声波信号已经到来,一旦对判断错误的超声波信号进行处理,那么测量结果肯定存在误差。本文在此基础上提出了,双阈值算法与周期算法相结合的算法。 
图 3.2  传统捕获算法示意图

图 3.2  传统捕获算法示意图 

因此本文采用的算法是双阈值与周期相结合算法如图 3.3 所示,
A0 是过零检测脉冲信号,
A1 是较小的幅值检测脉冲信号,
A2 是较大的幅值检测脉冲。根据图 3.3,发现 A0 信号是根据接收的信号与 0 相比得到的,高于 0 的信号被置高,低于 0 的信号被置低,
A0 就是判断振幅正负的信号,并且图 3.3 中 t1、t2 就是两个到达的超声波信号的周期。A1,
A2 是两个幅值检测信号,
A1,
A2 的建立标准是当信号的幅值高于 A1 或高于 A2 则置低,否则置高,与周期比较的A0 建立标准正好相反。在单片机捕获信号的时候,只需要检测 t1,t2 时间长度是否符合超声波的周期,检测 A1,
A2 是否满足,当 A1 次为低平信号时,
A2 为高电平信号。当 A1 第二次为低电平信号时,
A2 也为低电平信号。同时满足这几个条件的信号就是接收到的初始超声波信号。 

图 3.3  双阈值与周期相结合的算法示意图

图 3.3  双阈值与周期相结合的算法示意图 


3、高精度测时算法:

  要想提高超声波流量计测量精度,必须提高检测到达时间的准确性。脉冲计数法是计算超声波到达时间***基本的方法,适合测量频率较低的待测信号的。但是脉冲计数法因为其测量精度的局限性,无法满足高精度测量的要求,因此人们在处理此种计数方式都采用将误差量化并将量化误差变小,实现高精度测量。 脉冲计数法是用参考时钟来量化待测时间,脉冲计数法是一种粗测时方法,它的精度取决于计数脉冲的频率的大小,当频率大时,脉冲分辨率就高,测时精度也就越高。工作原理如图3.4 所示,待测时间长度为xT ,参考时钟周期为0T ,脉冲数为0N ,那么计算得到的待测时间为:  x0 0T N T  (3.1) 实际待测时间为:  x0 0T N T  T  (3.2) 
图 3.4  脉冲计数法
图 3.4  脉冲计数法 
  从上面的公式可以看出,脉冲计数法的测量误差为 T ,由图 3.4 可以看出参考时钟周期0T会影响测量到达时间的精度。从减少计算得到的时间和实际待测时间 T 的方面着手,方法大致分为两大类。 

(1)提高参考时钟 本文采用的超声波频率达到 KHz 级别,因此时钟频率必须达到 MHz 以上,FPGA 的内部晶振达到 MHz 级别,内部有 PLL(锁相环路)分频倍频设置***多可以达到 100MHz,但是参考时钟越高,电磁干扰越大,硬件要求越高,因此本文将频率设置为 50MHZ。
(2)转化量化误差 T  转化量化误差 T 的方法比较多,比如游标内插法、相位关系转化法。通过某些物理量与测量时间的关系来测量误差 T ,或者将量化误差 T 进行二次量化。这里主要介绍下二次量化的算法—游标内插法。 游标内插法是基于游标卡尺测量原理设计出来的,首先设置两个周期相差较小的时钟信号,通过两个频率相差很小的参考时钟之间的周期差作为测量待测时间的***小基本单位,通过类似游标卡尺中的“主尺”和“游标尺”来进行测量。具体工作原理如图 3.5 所示。 

图 3.5  游标卡尺法

图 3.5  游标卡尺法 


4、高精度测时算法实现过程:

  边沿检测算法是将检测信号与参考信号设置在同一个时间点开始,检测两个信号是否同步。如果检测到的信号与参考信号不同步时,则继续检测,直到检测到同步信号为止。通过此种计算方法可将误差转换到参考时钟的周期的整数倍。本文将此种边沿检测算法运用到超声波流量计的信号的检测中,将得到更加准确的检测结果。 那么基于 FPGA 的超声波信号的边沿检测过程是:C8051F122 发射超声波脉冲的同时,同时启动 FPGA 进行超声波传播计数和发射次数计数。
  超声波传播时间是将参考时钟周期乘以传播计数的次数,发射计数器计数了总的传播时间内超声波发射的次数。检测分为两个方面,一方面是当接收端接收到超声波信号的时候,立即通知发射端使其继续发射超声波信号。另一方面是检测参考时钟与发射信号1S ,接收信号2S 是否同步。如果不同步,则继续发射超声波,进行下一组信号的边沿检测。图 3.6 表示了边沿检测算法的具体过程。 
图 3.6  到达时间检测算法

图 3.6  到达时间检测算法 
  假定 P 时刻,本文检测到的发射信号2S 与参考时钟同步时,那么立刻关闭超声波信号发射次数计时器和超声波传播时间计数器。那么记录下传播时间计数器的值为tN ,发射次数计数器的值为sN ,参考时钟 0 的周期为0T 。那么在 P 时刻,超声波传播的总时间为  01tN  T ,那么在总的传播时间内,发射超声波sN 次,换句话说,这段时间其实是sN 次声程的总传播时间。如果此刻本文用iT 代表超声波从发射到接收的单次声程的时间差,并且假定在接收到的超声波后再发射超声波的间隔时间为 ,那么边沿检测到的单程传播时间可以表示为式(3.3)。     01 1t ssN T NTN    (3.3) 边沿检测算法是检测参考时钟与接收信号时钟的同步性,若不同步则继续检测,直到检测到同步为止。根据多次发射超声波时间和接收超声波时间之差,将误差转换到两者之差中,进一步提高了超声波流量计的测量精度。 

本章小结:

  本章结合周期检测算法和双阈值检测算法以提高波形检测的精度。采用了游标卡尺的原理高精度测量了超声波的到达时间,摒弃传统的芯片倍频方法,占用更少的主控芯片内存,提高了主控芯片的效率。 

相关文章:
TDC7200高精度超声波流量计 
基于脉冲群相关法的时差式超声波流量计
超声波流量计结构特点及合理选型

相关产品:

相关新闻

返回顶部
0517-8699 6066 欢迎来电咨询
Hello. Add your message here.