基于MSP430单片机的称重式液位仪的设计与实现
摘要:本文介绍了以MSP430单片机为核心构成的多路称重式液位测控仪的组成、原理及硬、软件设计方案。系统主要由压力传感器、信号处理电路、电磁阀、输出驱动电路、汉字液晶显示器、键盘、声光报警电路、以及MSP430MCU的主机电路构成,实现了全自动液位监控、超限报警并具有以主-从站模式联网功能。
1引言 液位测控仪是属于智能化仪器仪表的一种(指采用了微处理器的仪器仪表),其发展始于70年代。它是一种集测量与控制于一体的智能化产品,适用于石油化工、冶金、电力、制药、环保等行业中各种介质的液位测量。本仪器主要针对罐体内液体进行测量并能计算其重量,适用于对各种液态物质进行静态和动态测量与监控,并具有超限报警和主-从站模式联网功能。
2 系统设计方案 2.1 液位传感器的选择 一般情况下在液位测量中所采用的传感器有:压力传感器、超声波传感器、浮子式传感器等,由于系统设计中要求在测量液位的同时还要实现液体重量的检测。在液罐内,液体重量P的检测可直接利用计算得到,即P=H*S*ρ(H为液体高度CM;S为圆面积M2;ρ为液体比重),因此只有提高液位测试的分辨率才能保证液体重量测试的精度,本系统中液位测试分辨率为1cm。另外,考虑到压力传感器接口电路相对采用超声波传感器的接口电路要简单,因此确定采用压力传感器。
2.2 MSP430单片机 MSP430单片机为低功耗16位单片机,具有典型的SOC特点,集成大量外设。尤其是其内部集成的波特率微调器,可以使MCU在不低于32768HZ的任意晶振(但不能超过MCU对晶振要求的上限)下工作时,其通信波特率的选择可不受波特率因子不能带有小数的限制,即:在波特率的允许范围内可使用任意频率的晶振。另外,由于MSP430 MCU内部集成了温度传感器,可以很方便的实现对测液位所用的压力传感器的温度补偿。而且MSP430系列单片机针对不同的应用而由各种不同的模块组成,这些微控制器被设计为可用电池工作,并且可以使用很长时间。
2.3 模拟信号转换技术 由于系统的执行部件为电磁阀,易产生电磁干扰,因此为能够可靠的工作必须要使系统具有较高的抗干扰性。 一种方法是直接利用MCU内部的A/D转换器,其特点是:无须外围电路,采样速度快,但抗干扰能力较差。 另一种方法是使用V/F变换器来实现A/D转换。由于V/F变换是利用积分电容的电荷平衡原理实现电压频率转换,因此该方式稳定性好,分辨率高,信号线少,便于实现光电隔离以提高系统的抗干扰性,但转换速度相对较慢。 考虑到压力信号是一个缓变信号,一般无须快速采样,为使系统具有较高的抗干扰性,根据分析对比,选择采用V/F变换器来实现对压力信号的处理,计算处理较简单,在测量精度方面也能达到使用要求,并且易于做到实时控制。
3 系统总体组成结构及工作原理
图1 系统总体构成图 如图1所示,整个系统由单片机主机系统、传感器信号处理电路、液位控制电路、声光报警、键盘、液晶显示、电源模块和通信等模块组成。P1口作为系统的数据线,V/F转换电路的输出信号作为中断请求信号接至MCU的P2.4脚,P2.6和P2.7为执行部件电磁阀的控制信号,分别控制进液、出液电磁阀。声光报警电路的控制信号为P2.5。键盘接口电路通过P3.0,P3.1和P3.2接入MCU用来控制系统的6个按键。系统通过P3.0和P3.3输出信号给74HC245用做LCD汉字液晶显示器的数据接口,P3.0和P3.3用做LCD的控制信号。P3.4和P3.5为MCU的串行通信数据线,经由通信电路与从机连接,用来进行主站、从站之间的串行通信。系统的电源模块产生3.3V、+5V和-5V电压,分别为主机系统和传感器接口电路提供稳定的工作电压。 本系统通过压力传感器进行液体压力的数据采集,经过V/F转换模块进行液位高度和液体重量的标定,实现高精度的测量。当容器内的液位值超过了设定值或警戒值时,系统自动启动报警电路进行声光提示报警。用户可以通过键盘设定液位的上、下限值和进液、出液量等参数,以便使容器内液位保持设定的液位值。系统采用大屏幕液晶汉字显示,可以显示出当前液位值、设定的液位上下限值、容器内当前液体重量和进液、出液阀门的状态等。主站控制8个从站中的任意一个,并完成主站和从站的同步通信,主站具有该系统的所有功能,并且可以对从站中的液位上下限值等进行设置,主站在巡回检测时,可以任意设定要查询的从站数目、从站号和从站容器中的液位高度。当主站、从站中的液位超过警戒限时,主站可以进行声光报警并能显示报警的从站号。同时从站也可以依据通信协议通过通讯模块将从站号、液位值和报警信号传送给主站,并且从站可以接受主站的控制信息并能自动执行,还可以自动报警和解除报警。系统中从站号可以任意设定。同时该系统还可以实时显示工作环境的温度和时间。
4 系统的主要硬件电路设计 4.1 V/F转换电路设计 如图2所示,输入电压经射随器UD1A从LM331的7脚输入,电阻RD7 可以抵消6脚的偏流影响,从而减小频率误差,为了减少LM331的增益误差和由RD10、RD11、CD2引起的偏差,RD13选用51K电阻CD1为滤波电容。当6脚和7脚的RC时间常数相匹配时,输入电压的阶跃变化将引起输出频率的阶跃变化,如果CD3比CD1大的多那么输入电压的阶跃变化可引起输出频率的瞬间停止,6脚的电阻和电容可以差生滞后效应,以获得良好的线性度。
图2 V/F转换电路原理图 4.2液位检测及控制电路 系统通过压力传感器进行数据信号采集,采集到的信号经过运算放大器进行信号放大。放大后的信号送入V/F进行压频转换,将其输出的频率信号作为中断请求信号接至MCU的P2.4脚,由MCU对其进行处理后,将其转换成液位值,并根据液位设定值和上、下限值控制相应的电磁阀,使容器内液位高度与设定值保持一致。为便于电路的调试和观察,每个电磁阀都设有工作状态指示灯,表明当前是出液阀还是进液阀正在工作。其控制电路见图3。
图3 液位测量及控制电路 4.3 声光报警电路设计 声光报警电路由三极管、发光二极管、电阻、电容、蜂鸣器等组成,当所测到的液位值超过所设定的警戒值时,单片机发出报警信号,当收到报警信号后发光二极管OUT被点亮、蜂鸣器发出声音,产生声光报警。
5 系统软件设计 系统的软件采用模块化结构设计,分为六大块即:系统初始化模块、LCD显示模块、按键识别及处理模块、液位检测及控制模块、主从站通信模块。时间、工作环境温度检测模块。 系统通过初始化模块设置显示缓冲区、堆栈指针、操作标志和工作寄存器、各I/O端口的方向、系统定时器模块、通信模块、以及系统中断设置等。键盘模块负责按键的识别和按键处理,当有按键动作时调用相应的按键处理子程序进行处理。可实现对进出的液体量和上、下报警限进行设置,也可利用按键对各电磁阀进行手动控制。当液位超过警戒限时,调用液位检测及控制模块进行相应的控制,以使相应的电磁阀动作。在自动检测和自动控制的同时,将相关数据和控制参数,通过通信模块发送给主站。各从站在进行检测和控制的同时也在不断的侦听主站是否有命令或数据发送过来,如果有则立即处理。
6 结论 本仪器可广泛应用于测量水、油、酸类、酒类、饮料等的液位高度。可根据设定的上下两个极限液位,自动控制进液和排液,并具有多台联网功能。本仪器工作性能稳定可靠,体积小,测量及控制准确灵敏,安装使用方便,功耗低。目前已在一家食品企业中投入使用。
|