0 引言
在工业过程、科学实验和理化分析等许多场合,常常需要对微小气体流量进行测量。皂膜式流量计就是这种应用场合下一种良好的选择。它具有结构简单、计量准确等优点。在与单片机技术结合后,可以制作出操作简单、体积很小的便携式测量仪表。
应上海某公司的要求,笔者协助设计了一台基于Intel 8031微处理器的便携式皂膜气体流量计。该流量计成本低廉、性能可靠,可望在一些精度要求不是很高的场合得到广泛的应用。
1 工作原理
如图1所示,整个仪表可分为两大部分。分机部分负责流量信号的采集,主机部分则负责流量信号的处理和显示。

分机部分的具体结构如图2所示。它的主要部件是一根玻璃管。需要测量的气体从该玻璃管进气口进入玻璃管,从其出气口流出。玻璃管的下方配有皂膜发生器(图中未标出),它通过皂膜口与玻璃管相连。在位于进气口和出气口之间的玻璃管段上装有两套结构完全一样的红外传感器A和B。每套红外传感器由发送和接收两部分组成。位于玻璃管一侧的红外发光二极管连续发出红外光。由于位于其前方的狭缝状光阑(图中未标出)的阻隔,只有垂直于玻璃管轴线的一束极窄的光线能够抵达位于玻璃管另一侧的红外接收器,并在那里形成信号。测量过程中,气体从玻璃管的进气口流入,先后流经红外传感器A、红外传感器B、最后从出气口流出。如果在此期间皂膜发生器没有产生皂膜,并将其送入玻璃管,红外传感器A和红外传感器B接收端的信号将是均一的,并不带有气体流动的信息。在实际测量过程中,等到气体速度稳定后,通过皂膜口把皂膜发生器产生的皂膜压入玻璃管内,皂膜就将随气体一起,以与气体完全相同的速度流动。只要玻璃管是垂直放置的,皂膜将呈水平状态,占据整个玻璃管的横截面。当皂膜流经红外传感器A时,它将挡住从狭缝光阑射出的红外光,从而改变到达对面红外接收器的光线强度,接收器的输出也将随之改变。皂膜继续向上流动,离开红外传感器A后,该传感器的信号将恢复正常。而当皂膜到达红外传感器B时,将发生与刚才红外传感器A完全一样的情况。由于传感器A和传感器B的间距是已知的,只要测出皂膜从传感器A流到传感器B所需要的时间,就可以测得气流的速度。又由于玻璃管的截面是均一的、已知的,因此知道气流的速度,也就知道了气体的流量。

流量计算公式为:
Q = KV/T
式中:Q—气体的体积流量;
V—玻璃管A点和B点之间的容积,它等于玻璃管额定横截面乘上A点和B点的间距;
T—皂膜运动的时间;
K—校正系数,它是为适应不同气体种类和情况而设置的常数,通常通过标定来确定。
从式中可以发现,除了K和V为仪表常数外,仪表精度主要取决于对时间的测量。
具体实现方法是这样的:在气流速度稳定后,将皂膜通过皂膜口压入玻璃管内。皂膜随着气体的流动而上升,当上升至A点时,红外线传感器A感应到信号,触发计数器开始计数;当上升至B点时,红外线传感器B感应到信号,计数结束。由于计数脉冲的时间间隔已知,所以就可得到皂膜也就是气流从传感器A流到传感器B所需要的时间。Intel 8031在自动计算时间的同时,将气体流量值用LED显示器显示出来。
2 硬件方面的一些考虑
由于本仪器是作为便携式仪器而设计的,因此选择由一节9伏层压电池供电。主机部分由Intel 8031、LED显示器、外部存储器(EPROM)和复位开关组成。8031负责控制整台仪器的工作、接受分机部分传来的信号,并进行计算和处理。计算结果或错误信息则由三位八段LED显示器加以显示。EPROM里存有汇编程序、计算气体流量和用于控制程序运行的参数。
分机部分主要是红外线发光二极管和红外线接收器以及相应的信号整形电路。红外器件应当选择具有较高的灵敏度和抗干扰能力。仪器还通过软件对红外线发光二极管的工作电压进行了优化控制,使之既能保证正常工作,又能最大限度的节电。由于笔者的工作仅限于软件部分,对硬件部分的描述就从略了。
3 软件设计
本仪器的软件设计流程图见图3。主要分为系统初始化模块、初始信息显示模块、传感器自检模块、测量模块、计算模块和显示模块,其中测量模块是本软件中的核心模块。

以下对这些模块加以简单的说明:
·系统初始化模块
该模块的作用是对Intel 8031芯片里定时器/计数器、电源管理寄存器(PCON)、串行口控制寄存器(SCON)、中断管理寄存器和内存地址进行初始化。
·初始信息显示模块
该模块的作用是通过软件延时的方法,在LED显示器上持续2秒钟的显示开机时的提示信息。
·传感器自检模块
该模块的作用是在测量前分别检查两个红外发光二极管和两个红外接收器的状态。实际是在对红外发光二极管施加额定驱动电流的条件下检测红外接收器的输出,看其是否正常。当发现上述元器件状态不可靠时,在LED屏幕上输出出错信号,并且自动关机。该方法可以有效降低由于元器件的硬件故障,而导致不可靠的测量。

·测量模块
该模块的程序流程如图4所示。它采用了中断采样、循环查询方式。每个查询周期(20毫秒)内,每隔0.1毫秒执行一次中断服务程序,检查传感器的状态。只有在整个查询周期中200次都探测到皂膜信号的情况下,才认为感应到了皂膜信号。此法可有效防止皂膜的抖动和其他干扰,提高测量精度。
该模块的另一个任务是对定时器里的值进行初步的判断。若发现皂膜的速度不在仪器测量范围之内,则在LED上输出相应的出错信息。若皂膜的速度在测量范围之内,则按照低速(0.10-9.99ml/min)和高速(10.0-50.0ml/min)两种模型调整定时器里的数值,从而起到自动调整分辨率的作用。
·计算模块
该模块的任务是将定时器里经过调整的数值,根据预设在EPROM里的参数亦即玻璃管截面值、AB两传感器的间距、计数脉冲的时间间隔以及一些校准常数,经过运算得出气体的流量值。
·显示/输出模块
该模块的作用是,若测量结果是可靠的,则将计算得到的气体流量结果显示在LED屏幕上,并且通过串行口输出。若测量结果是不可靠的,那么在LED屏幕上显示相应的出错信号。
4 仪器的其它功能
除仪器正常的测量功能外,它还具有以下一些功能:
·自动关机
如2分钟内无任何操作、或者在LED屏幕上显示有错误信息,而在10秒钟内又没有按下复位/关机开关,则将自动关机。
·低电量提示
如电池电量不足时,LED屏幕上显示“LOBAT”。
·测量状态提示
在测量过程中,LED屏幕上显示不同的信息,代表不同的含义。详见表1。
表 1
序号信息含义1+皂膜位于两个传感器之间,计数器正在计算2-L-气体流量低于本仪器的测量下限值3-H-气体流量高于本仪器的测量上限值4-b-本次测量结果不可信(BAD reading)
·出错信息
如果测量过程不正常,将在LED上显示各种出错信息,其具体含义如表2:
表 2
序号信息含义1F1仪器打开时,皂膜已经出现在下方传感器处,或下方传感器需要清洁2F2下方传感器周围亮度过高3F3仪器打开时,皂膜已经出现在上方传感器处,或上方传感器需要清洁4F4上方传感器周围亮度过高5F5皂膜通过下方传感器的时间过长6F6皂膜通过上方传感器的时间过长7F7内部错误8F8内部错误9F9同时有多个皂膜通过传感器,或者皂膜在两个传感器之间来回抖动
5 整体性能
该皂膜式气体流量计的量程有两档:流量为0.10-9.99ml/min(小流量)时,相应的分辨率为0.01ml/min;流量为10.0-50.0ml/min(大流量)时,分辨率为0.1ml/min。
测量精度在两种量程情况下均优于示值的±3%。
该仪器具有成本较低,性能可靠,携带方便,使用简便等特点。可望应用于各种对精度要求不是很高的场合。




