资讯 > 正文

基于FPGA的超声波液体密度传感器

发布时间:2009-09-27 来源:www.cechina.cn

        0 引言
        液体密度是许多工业中的重要参数,它可以直接参与生产过程中的控制和决策,因此对 液体密度进行快速而准确的在线检测有着重要的意义。尤其是在石油、化工、食品、医药等 工业领域,对密度的测量直接关系到国民经济和消费者的人身安全。
        1 超声波液体密度计的工作原理
        用超声波来测量液体的密度有多种方法,随着电子技术的飞速发展,借助于声速测量密 度的方法得到了广泛的应用。这是因为超声波在液体中传播时,其声速与液体的密度之间遵 从下面的关系式:

关系式


        式中C 是超声波在液体中传播的速度;ρ 为液体的密度;K 为压缩系数。对于特定的液体, 其压缩系数K 是常数,只要测得超声波在液体中的传播速度,就可以计算出液体的密度。 而速度的测量则可由超声波在液体中所经过的声程以及传播时间所决定。
        2. 基于FPGA 的控制和运算电路的设计
        由于 FPGA 芯片的频率很高,容易设计实现几十兆甚至上百兆的时钟电路,因此很适合 于用来设计高速计时电路。本设计中选用Altera 公司的CycloneⅡ系列芯片,该系列芯片的 工作频率可高达400MHz,足以满足本设计的需要。软件开发平台为QuartusⅡ。电路(包 括模拟、数字部分)的整体系统框图如图1 所示。

整体系统框图


        2.1 方脉冲生成模块
        方脉冲生成模块的作用是产生一定频率的方脉冲用以激励发射探头工作。方脉冲频率的 选择范围应该是探头压电晶片振动频率(本设计中为2MHz)的1/10,因此选择200KHz,其 产生是由基于FPGA 的方脉冲信号发生器来实现[1]。其外部引脚结构如图4 所示,图中输入 信号为clk(时钟) 和en(使能端) ,输出信号为dout[7…0]。
        2.2 高速计数器的设计
        高速计数器的设计是实现精确测量时间的核心。本设计中,为了获得精确的计数频率, 采用了QuartusⅡ中內嵌的锁相环,外部的参考时钟由16MHz 的晶振提供,锁相环所采用的 倍频为6 倍,这样就能获得稳定的96MHz 的内部时钟。整体的原理图结构如图2 所示。锁 相环(PLL3)的频率输出作为计数器的计数时钟,计数器(cnter)由四个十进制计数器组成, 内部设有FIFO,主要用于计数结果的读取,当wrreq(写允许)信号为高电平时,将计数结 果写入FIFO,FIFO 的时钟与计数器的时钟同步;当接收电路的信号经过光电耦合器到达 rdreq(读允许)端时,该端电平变为高电平,同时wrreq 为低电平,此时计数结束,同时将 计数结果送到输出端,输出计数结果。

高速计数器原理图


        2.3 运算、补偿模块
        运算、补偿模块分为计算和补偿两个部分。其作用是根据计数器的计数结果和补偿电路 对温度修正后的结果计算液体的密度。本设计中发射和接收探头之间的距离为2cm;声波在 两探头之间传递的时间可由计数器的计数结果(cntvalue)得到,因为单位计数的时间是计 数频率的倒数,所以有:

计 数频率


        运算器结构如图3 所示。输入c1 和c2 是计数值,经过并行乘法器运算后的结果送入并 行除法器;因为压缩系数K 是常数,但每一种液体的K 都不相同,因此整个密度计需要有 对液体进行选择的功能,图中的sel 模块是实现这一功能的部分,输入信号用来选择待测液 体,本设计中的密度计能够测量300 种液体,因此选择信号为9 位编码的二进制数,选择模 块的实质是一个存储了各种液体压缩系数的存储器,根据选择信号寻找待测液体密度的系 数,其结果也送入除法器。
        图中的 tem 为温度补偿模块。温度对声速的影响很大,在液体中,温度每变化1℃将引 起声速约为2%的变化,而在实际环境中,一般会有40℃以上的温度变化范围,由此造成的 声速8%以上的变化就可能给实际测量引入8%以上的误差。在利用超声波声速对液体密度 进行测量时,为了提高精度,势必就要对温度进行补偿[2]。

运算
控制


        2.4 控制和运算电路
        控制和运算电路的整体结构如图 4 所示。其中pulse 为方脉冲产生模块;count 为高速 计数器;operate 为运算和补偿模块;adc 为A/D 转换控制模块。整个系统的工作过程为:pulse 模块的使能端为高电平时,模块开始工作,产生方脉冲;因为计数器的使能端与pulse 的使 能端共用,所以计数器在产生方脉冲的同时开始计数;pulse 的输出pulse_out 经过处理后 送入后续的模拟电路;计数器(count)在接收到rdreq 端的高电平时停止计数,该信号来自 于接收电路,此时计数结果送入运算补偿模块(operate)进行后续运算,同时,计数器的 clr 端清零,等待下一次计数;adc 模块控制A/D 转换器将温度补偿电路的信号转换成数字 量并且送入到运算补偿模块的补偿部分进行查表运算。运算模块负责最后的运算输出。
        3. 结论
        实验在常温(20℃)、常压(1 标准大气压)下进行,待测液体为常用的水,其压缩系 数K=5×10-5/大气压。通过仿真(图5)可以得到水的密度为1Kg/m3。这与实际结果相同。 由于输入信号多,这里只选择了部分仿真信号。通过对时序的分析,可以得到整个电路整体 上的延时为230ns,可见,系统地响应速度很高。

系统仿真结果


        本文作者创新点:目前在国内的有关杂志中还没有关于用FPGA 来设计超声波液体密度计 的;本文中高速计数器的设计非常有特点,不但利用了锁相环技术,而且在计数器中加入了 FIFO,使得计数输出更为稳定;运算模块中压缩系数选择单元的设计以及温度补偿模块的 加入。
        参考文献:
        [1] 徐文强,任勇峰等. 基于FPGA的高速脉冲信号源的设计与实现[J]. 微计算机信息,2007,
        1-2:251-252。
        [2] 吴玉玉. 超声测量的温度补偿设计[J]. 自动化与仪表,1995,4:9-11。
        作者简介:
        姚明林(1973—),女(汉族),河北唐山市人,唐山学院信息工程系讲师,硕士, 2005 年毕业北京科技大学检测及其自动化装置专业,主要从事传感器及检测方向的 研究。联系地址: 河北省唐山市华岩北路38 号。邮编: 063000 。

标签:传感器,超声波,FPGA,储油

相关文章