摘 要 :介绍一种基于AT89C51单片机开发的便携式多功能量水仪,该仪器能测量明渠的水位、流量,可满足多种输入量的要求,通用性较强。着重介绍了系统的软、硬件设计。 |
| |
| 关键词: 便携多功能 AT89C51单片机 量水仪 |
| |
| 目前普遍使用的量水仪(或水位仪),要么功能单一(或功能较少),在实际应用时还需要额外的辅助设备;要么功能较全,但体积较大,不方便携带,功耗也较大,供电设备还要额外配置。基于单片机开发的各种量水仪,以其成本低、方便实用、精确而被广泛应用在水利工程中。为此,笔者结合实际的需要,开发研制了一种基于AT89C51单片机的便携式多功能量水仪。该仪器功能集中,不仅能实现信号的自动调理,而且还能实现数据的通信、报表打印、密码及K/N参数的设置以及掉电保护等多种功能。更为突出的是,该仪器能与多种液位传感器直接接口,携带方便,供电简单,功耗比较低。 |
| |
| 1 系统的硬件设计 |
| |
| 系统的硬件主要由AT89C51单片机、增益调节电路、LM331V/F转换器、81C55 I/O口扩展器、两片ICM7211四位液晶显示器、CD4051八选一模拟开关、CD4052双四选一模拟开关、4′ 4薄膜触键及六位液晶显示器LCD等组成,其框图如图1所示 |
| |
| |
| |
| 1.1 信号增益调节电路 |
| |
| 增益信号是由程序控制的,它根据待测量信号幅值的大小来改变放大器增益,以使不同幅值范围的输入信号都能放大到A/D精确转换所需的幅值范围。本仪器设计的输入量程为0~ 5V,分辨率是1.0mV。为了保证测量精度的一致性,设计了以一片CD4051八选一模拟开关、若干高精密电阻和一个低功耗运算放大器OP07等组成程控增益放大电路。鉴于实际场合中常用的液位传感器输出满量程电压一般为60mV、200mV、2V、5V等几种,故设计了0~ 5V的量程,具体电路组成如图2所示。其中N1、N2组成同相关联差动放大器,N3为电压跟随器,主要用来抑制共模信号,N4是输出差动放大器,整个电路的增益可通过改变权电阻网络R0~ R7来调节。 |
| |
| |
| |
| 1.2 信号A/D转换电路 |
| |
| 为了适应便携式仪表电池供电、功耗低等特点,采用了功耗低、高精度、供电简单的V/F转换芯片LM331组成电压-频率(10V-100kHz)的A/D转换电路,其输出频率与输入电压的关系为 |
| |
| |
| |
| 通过AT89C51的T0计数器(其中T1作定时器用)计算出fOUT,从而得到输入Vin,进而算出水位值Hi(Hi~ Vin),具体如图3所示。 |
| |
| |
| |
| 在该电路中,电阻R16为80kW ± 10%,它主要是使LM331的输入端7脚产生偏流,以抵消6脚偏流的影响,从而减少频率偏差。R39和可调电位器RW3的作用是调整LM331的增益偏差和由R23、R25及C6引起的偏差。当6脚、7脚的RC时间常数匹配时,输入电压的阶跃变化将会引起输出频率的阶跃变化,如果C8比C9小得多,那么输入电压的阶跃变化可能会使输出频率瞬间停止。6脚的47W 电阻R23和1.0m F电容器C9并联用以产生滞后效应,使V/F转换获得良好的线性度。 |
| |
| 1.3 低功耗设计 |
| |
| 该仪器全部芯片均选用CMOS低功耗芯片,其余外围电路采用了低功耗设计,并设计了4×4触摸薄膜键盘及六位LCD液晶显示器作为人—机接口。在软件设计上,整个系统采用了等待和掉电工作的节电运行机制,功耗较低。 |
| |
| 2 系统的软件设计 |
| |
| 软件是系统的指挥中心,由它来配合控制完成各种预定功能。为了充分发挥AT89C51优越的性能价格比,在设计上尽量做到硬件“软化”,使系统硬件设计得到简化。系统软件采用MCS-51汇编语言编写,采用了模块化结构设计。为增强系统的实时性,对那些偶发事件采用中断方式处理。 |
| |
| 2.1 系统的软件算法 |
| |
| 在明渠量水建筑物中,较为典型的是巴歇尔水槽。在自由流情况下,巴歇尔水槽的水位H和流量Q关系是简单的二值函数。利用回归分析技术,可以求出H~Q 流量经验公式。为了便于分析和应用,我们在水工实验中主要是针对自由流情况的,从而得到大量的H~Q 曲线数据组。 |
| |
|
|
| 然后,利用实测的大量独立(H,Q)数据,求出回归系数a、b的最小二乘估计量 (亦即为a、b的无偏估计量),从而得到回归函数的估计 |
| |
| |
| |
| 用以检验线性回归效果的显著性水平。符合实际要求后,则得到流量系数K、N的估计值。有了流量经验公式,系统就可根据所测的水位 H值来计算出流量值Q。 |
| |
| 2.2 系统的主程序设计 |
| |
| 主程序主要用于系统的控制和管理。系统加电后,AT89C51自动上电复位,开始运行主程序,主程序框图见图4所示。系统首先显示“0-××××”,表示系统在进行自检和自校零工作。此时要求操作员不断地调节调零电位器,直到校零达到精度要求时为止,然后按回车键表示校零完成(理想情况下显示为“0.00000”)。接着显示“1-××××”,表示系统在进行满度校正工作。同样,操作员需要不断地调节满度电位器,直到满度校正达到精度要求时为止,然后按回车键表示满度校正完成(理想情况下显示为“5.00000”)。接着系统依次显示“L”、“E”等提示符号,要求操作员输入流量系数K、N值。当输入正确后,系统进行初始化T0、T1。一切处理完毕后,系统开始正常的运作过程,并进入待机低功耗工作状态。 |
| |
| 需要说明的是,仪器还具有简单的密码设置功能。当设置密码后,要进行流量系数修改时,必须首先输入正确的密码,否则系统不予以响应。这样能在一定程度上保证流量系数K、N的安全性。 |
| |
| |
| |
| 中断采集服务程序 |
| |
| 系统在此环节完成V/F信号采集、自动量程转换、流量计算及显示水位H、流量Q等参数。其中K/N、W(总流量)参数显示采用了复用键,由软件设计的奇偶次切换决定。一般情况下,系统自动循环地显示H-Q值。 |
| |
| 该模块在运行时,首先保护现场,进行初始化设置,启动T0定时器(T0的定时时间为100ms,时间常数为3CB0H)和T1计数器,由T1记录V/F转换输出的脉冲数。然后,系统连续采样10次,利用数字滤波技术得出当前的有效采样值。接着,判断系统是否已经进行了自校正,若没有,则先进行系统的自校正;若已完成了自校正工作,则继续后续程序块,计算水位H、流量Q、总流量W值。最后根据控制命令显示这些参数,调用功能键处理模块,巡查有无控制命令,恢复现场、中断返回。 |
| |
| 此外,系统还设计了串行口通信程序,实现与上位机之间的数据通信,上传H、Q、K、N、W等参数值及接受上位机对参数的修改和控制。 |
| |
| 3 量水仪的精度问题 |
| |
| 该仪器充分利用了AT89C51具有高性价比的特点,在不增加硬件资源的前提下,尽量做到硬件“软化”,提高了仪器的测量精度。 |
| |
| 3.1 数字调零和增益自校正 |
| |
| 仪器在测量前首先进行自校正工作,即依次选通差动输入接口芯片CD4052的Y0、Y1输入端口(其中Y0端接地,Y1端接标准+5V电源),然后调节相应的微调器使仪器自校正达到设计要求。在正式测量时,设选通Y0输入端时,仪器测得V/F计数值为X0,选通Y1输入端时,测得计数值为X1,设测得传感器信号输入的计数值为Xi,则每次测量的计算公式为 |
| |
| Hi =(Xi-X0)/(X1-X0)* Hst (7) |
| |
| 式中Hst为标准5V时的水位值。 |
| |
| 这样,Hi与放大器的漂移及增益误差无关,不仅可提高仪器的测量精度,还可降低对器件精度的要求。 |
| |
| 3.2 采用模糊量程档位 |
| |
| 程控量程自动转换是由信号放大增益档位的选择实现的,这里采用了增益步进法,即将增益由小到大逐步提高,直至选择最佳的放大倍数。但是,由于器件转换灵敏度的局限性,测量有时会不够准确(尤其是在量程档位临界区),从而导致量程选择出现错误,甚至进入换档死循环。考虑到这一点,我们在相邻两个量程临界区设置± 5%量程选择模糊区,当测量的输入值落入量程模糊区时,则不改变放大器的当前增益。经过实验表明,采取模糊量程区能有效地防止放大器的增益来回跳动现象。 |
| |
| 3.3 数据放大处理 |
| |
| 在硬件上做到使测量精度达到均一化的同时,在软件设计上也进行相应的数据“放大”处理。在计算Hi值过程中,先将数据“放大”,精度提高到0.1mm。然后进行二进制乘运算,最后再统一转化为三字节浮点数进行浮点数运算,从而避免精度较低的直接二进制除运算。程序运算中采用了三字节浮点数及四字节BCD码浮点数进行流量计算,补偿修正后输出显示,使仪器的测量精度达到小数点后四位。 |
| |
| 3.4 信号隔离处理 |
| |
| 对检测信号通过LM331进行了硬件上的信号隔离;输入环节上增加滤波电容及输入保护电路。系统的硬件设计遵循“一点接地”的原则,减少系统因电环路形成的干扰。 |
| |
| 3.5 可靠性设计 |
| |
| 在软件上进行了可靠性设计,在每个模块后和程序PROM的空白区加了软件陷阱。并在一些重要的跳转指令之间进行软件冗余设计。此外,还设计了溢出报警,避免显示错误的信息。 |
| |
| 表1的一组数据是采用本仪器测出的实际流量Q和理论计算流量Q的比较,其中流量系数K=2.3215、N=2.2406。Q值理论计算为 |
| |
| Q = K * exp { N * lnH} (8) |
| |
| |
| |
| 从表1可以分析出,采用此仪器测量出的流量Q与理论计算出的流量Q之间的误差小于 0.5%,已满足了实际应用的精度需求。 |
| |
| 4 结束语 |
| |
| 该仪器功能较全,携带方便,供电简单。系统已留出部分硬件资源,以备将来扩展系统的功能(如构成主从式渠系运行监测系统)。若进一步改进,该仪器能有效地应用于水利工程或其它类似工程中,以实现快速、灵活的参数测量,有着较高的实用推 广价值。 |
| |
| 参 考 文 献 1 何为民. 低功耗单片微机系统设计. 北京:北京航天航空大学出版社,1994 2 周航慈. 单片机应用程序设计技术. 北京:北京航天航空大学出版社,1991 3 李兰友. 单片机开发应用十例. 北京:电子工业出版社,1994 4 赵纯. 便携式多功能测温仪的设计. 电子与仪表,1997.5 5 罗本成. 渠系自动化运行监测系统的研究与开发. 武汉水利电力大学硕士学位论文. 2000.2 6 庄楚强. 应用数理统计基础. 广州:华南理工大学出版社, 1993
|