楼主最近还看过
超声波在热量表上用的是“差速法”来测量流量的。具体原理是:当超声波在水中与水一起流动时会产生一个时间,而与正常速度相比,就会产生一个时间差,利用时间差来算水的流速,再用流速乘以管径,就得到了流量。所以中“差速法”。这种方法要求严格的时序控制,一般超声波的在水中的传播速度为1500米/秒,时序控制电路要以单片机的周期来计算,一般为10-12秒,毫秒级到不到,稍有偏差,则会影响计量。
下面是一个超声波热量表原理图的例子:
如上图所示,给我们最直观的印象就是,整个测量系统所需要的外部元器件非常少,整个结构很紧凑,除了所必需的简单单片机以及超声波换能器和温度传感器外,外部仅需要2对RC阻容,2个晶振,和一些旁路去藕电阻电容。时间测量上游,下游信号的发射接收以及信号的处理,温度测量等完全在TDC-GP21芯片内部完成,单片机仅需读取TDC-GP21的测量数据,将时间测量结果以及温度测量结果进行热量的转换计算即可。
在单片机方面,MSP430不再是最好的选择,像Silabs的单片机,Renesas的单片机系列等都可以完全适合热量表的应用。由于GP21的测量低功耗以及完全自动的超声波上下游测量,另外通过GP21的管脚可以提供给出一个超低功耗的32k晶振源,可以直接将这个晶振源提供给单片机。GP21本身的测量功耗是否非常低的,在每秒钟一次上下游飞行时间测量的情况下,测量功耗仅为大约2uA左右。
TDC-GP21应用内部比较器测量效果:
为了验证TDC-GP21的性能,我们应用acam GP21演示系统及威海天罡管段进行了零点稳定性测试,应用GP21内部比较器,每次测量3个脉冲,8次平均后的结果,2.5小时无停止,GP21测量功耗大概为14 uA。GP21在每秒钟一次上下游的时间测量功耗仅为大约2uA:
从上图可以看到,上游下游时差零点测量非常稳定,由于应用TDC-GP21内部斩波稳定比较器,时差结果几乎不随时间及温度漂移。
TDC-GP21应用内部自动上下游时间测量的典型流程:
Power on Reset, Reg0-Reg6 settings
Whileloop:
1. send Reg1 ALU计算(0x8121xxxx) ; 为了每一次计算都写入结果寄存器0 会有中断, 但是这个中断不需要关心
2.Init TDC 0x70 ; 初始化,上面的中断会自动恢复
3.send opcodestart_TOF_restart ; 发送自动上下游测量命令
4.wait INTN ; 判断是否收到中断
5.read 结果寄存器reg0 ; 从结果寄存器0中读上游时间测量结果
6.send reg1 ALU计算(0x8121xxxx) ; 下游测量将结果也写到结果寄存器0中,也会有中断,不用关心这个中断
7.Init TDC 0x70 ; 初始化,上面的中断会自动恢复
8. wait INTN ; 判断是否收到中断
9. read结果寄存器reg0 ; 从结果寄存器0中读下游时间测量结果
End Loop
当然每个通道最多可以进行接受3个脉冲,每次上下游都可以一次获得三个结果
推荐个网站:http://www.china1303.cn/