文章中用通俗易懂的比喻去阐述,本文主要阐述时间测量方法。
超声波流量计/超声波水表主要分为两个部分:超声波飞行时间测量、基于飞行时间计算流量。本文主要说明目前已知的时间量的核心方法:电容充电法、阀值比较门电路延迟法、高速ADC相关法。本文将以测量一个水龙头的打开、关闭时间(都是测量时间)为来描述其测量方法的不同。
1、电容充电法:受半导体芯片性能线性,我们无法及时的发现水头打开或者关闭的,有可能水龙头打开1秒后,才发现水龙头被打开了,显然此观测速度无法达到要求。伟大的攻城狮们想到了一个绝妙的方法,既然无法观测水龙头的具体动作,那么我们就不观测他了。本文假设水龙头被打开后,水流的速度是一定的,如果我们用一个桶去将水龙头流从打开到关闭阶段流出的水全部接住,然后用一把称去称这里桶里有多少水,这可以反推出水水龙头从打开到关闭的时间了,即使我们花10秒钟去完成一次称重的动作,也不影响测量水龙头的动作时间。这种方法优点很显然,用一个低俗的设备去反推高速设备的动作,局限线性较大,受以下因素影响:水龙头生锈(无法完全打开)、管道生锈(水流速度不一样了)、盛水用的桶生锈(导致称的水重量发生变差),称重用的称精度发生变化。
电容充电法,基本是用模拟电路完成搭建,对硬件要求很高,且容易受到外界环境干扰而导致测量不准,目前已经很少使用了,此项技术只掌握于极其少数的几个公司。
2、阀值比较门电路延迟法:此方法使用***简单,感谢半导体技术的飞速发展,将超声波流量计的开发大大简化了,不需要过多的***知识。还是以测量水龙头打开、关闭为例子,该方法就相当于我们有一个高精度的秒表,水龙头打开启动秒表,水龙头关闭停止秒表,通过秒表直接读取秒表时间即可,很神奇哈。此种方法的***缺陷在于,如何判断水龙头打开、关闭状态,因为水龙头是个连续量,可能要拧动一圈或者圈才能完全打开,同时随着时间推移,水龙头可能不能像新的水龙头完全打开。所谓阀值比较,就是使用一定的圈数(0.5圈或者1圈),来判断水龙头的状态(打开、关闭),其主要缺点在于如果水龙头可以转动的圈数小于其判断阀值了,则永远无法启动秒表了。这个就是为啥很多水表买到农田灌溉,尤其是西部地区,一段时间后就趴窝的原因,而处理方法很简答,只需要将水表卸下来,把传感器擦***了。
相对于电容充电法,阀值比较仅仅受到水龙头的转动圈数影响,稳定性大大提升,同时开发难度降低了很多,直接读取数据就好。阀值比较的主要代表芯片有D-Flow, MS1030,MS1022,GP30(自带CPU),GP22,EL703.15(周立功主推,自带个MSP430)。3、高速ADC相关法:此方法前两种方法完全不同,具有本质的区别,使用高速ADC对信号进行采样,通过数学的方法计算出时间。此方法类似于,我们拥有一个相机,不停的在拍摄水龙头照片,当然拍照速度有一定的要求,但是拍照速度远远低于高精度的秒表速度,而我们又需要秒表的精度,形成了博弈哈。相关法的精髓在于分析照片的变化程度,通过变化程度来判断水龙头的转态,或者说相关法不需要判断水龙头的完整转态,只需要分析其变化率,通过变化率来间接的分析水龙头的打开关闭时间,也就是说相关法,是从很多张照片中寻找***相似的照片(打卡位置一张、关闭位置一张),然后通过拍照的时间来求取时间。有人会问不是拍照速度不够吗,如何***求取时间?这个时候数学方法就有用了,我们可以通过几张照片的变化趋势。反推出其水龙头变化速度,使用几张照片变成N张照片,直到N达到所需要的精度。
高速ADC相关法,使用相似原理,就像女儿像爸爸一样,其相像是本质的,不会因为升高和年龄的不同而改变,从这一点就可以看出与阀值比较的本质区别了,可以理解为阀值通过身高或者年龄来判断两个人的相关性,而相关法则依据其体型、外貌特征来判断其相关性。
高速ADC相关法对CPU计算要求较高,基本需要DSP或者带DSP指令的ARM内核CPU,对开发者的数学功底要求较高,此项技术大多集中于国外公司,如西门子、基恩士、弗莱克森,国内用的不多;同时此方案目前只有TI推出了集成方法,如使用其他的CPU则需要自己搭建发送、接收电路,进一步加大了开发难度。
后续内容为纯技术的描述了,没有兴趣的可以跳过和无视哈。
上一篇文章“互相关计算时差方法(信号传输***)”引起了部分技术开发的共鸣,同时也了一些疑问和疑惑,其主要归类如下:精度、功耗、成本、生产等因素,本文在这里做一个简单的对比,对比前,我们必须做一下严正申明,本文所写文档不包含有任何商业目的,同时只针对已经完全公布的文献和芯片做对比,其对比结果如下:
从对比图可以看出,基于ADC相关法的流量计可以实现高精度、低功耗测量,而且作者认为基于TI的芯片所做的水表应该是性能***好的(芯片自带高速ADC,可编程运放)。
还有一个问题,使用相关法ADC运算,ADC需要多高的采样速度。依据TI的文献,8MHz的ADC可以直接驱动2.5MHz的传感器,也就是说采样频率只需要为传感器频率的3.2倍即可;对于1MHz的传感器,使用3.2MHz的ADC即可以满足需要,下图为7.2MHz的ADC采样1Mhz的传感器波形,数据没有做任何处理,*点为ADC采样的数据点,用软件把采样点连接起来了。
下图为TI相关文献的部分性能截图,供参考
后续内容将具体描述电容充电法、阀值比较法、相关法上一篇已经描述,不写多写哈。
电容充电法的核心思想为:使用一个恒流源对一个电容充电,通过ADC采集电容两端的电压,反推出充电时间,这个充电时间就是超声波的飞行时间。其基本方法如下,使用一个12位的ADC即可以达到皮秒级的测量:
阀值比较门电路延迟法,此法***简单,大大简化了开发难度,直接测量开始和结束时间,方法如下:
电容充电法缺点比较多,这里不多讨论,目前使用很少了。阀值比较有以下两个大的缺点:比较电压选择、抗干扰性不强。如果比较电压选择不当,则可能造成接收信号的时间的错波,有人会争论说可以通过软件的方法可以避免错波,但是如果上游和下游接收信号幅值不一样的(没有来过传感器是完全一样的,只是差异的大小而已),就完全抓瞎了,这也是为啥经常有人问,流量跑着跑着又跑回去了的原因,流量一大,就变小了。阀值比较还有一个缺点是就是,当干扰比较严重是,其噪声信号可能就已经高过的阀值比较的***大时间,比如MS1022只有几十mV,当然MS1030可以到127mV,相对提升较大。
开发难度:ARM/DSP > TI(MSP430FR6047) >D-FLOW(资料太少了)> MS1030/MS1022/G22,电容充电法已经过时了,不做比较。
版权所有©2024 产品网