基于单片机的高精度水位监控仪的设计,Water Level Monitor
关键字:基于单片机的高精度水位监控仪的设计
1 引言
水位监控仪广泛应用于水利、石油、化工、冶金、电力等领域的自动检测和控制系统中。目前有些水位监控仪在运行过程中存在着一些问题,如:系统不稳定、抗干扰能力差、精度低、输出控制或显示信号不满足要求、现场更改程序或程序升级麻烦及通信能力差等。本文设计的智能水位监控仪是吸收了国内外最新智能化仪表的设计经验,采用工业控制单片机,集水位采集、存储、显示及远程联网于一体,适用于各种液位测量及闸门开度的测量。
2 系统硬件总体设计
本系统硬件部分主要考虑的功能有:模拟量的变换;模拟量的采集;高精度16位模数转换器AD7705在系统中的应用;精确时钟芯片DS1302的应用;四路继电器报警,继电器驱动芯片采用ULN2003;4~20mA电流环输出数模转换器AD421的应用以提供系统检测信号;用于与上位微机通讯的接口实现。系统框图如图1。
图1 系统硬件原理图
在本系统中,我们选用的主控芯片是高集成度MCU芯片C8051F021。C8051F单片机是完全集成的混合信号系统级芯片(SOC) .具有与8051兼容的高速CIP-51内核和与MCS-51完全兼容的指令集;片内集成了数据采集和控制系统中常用的模拟、数字外设及其他功能部件;内置FLASH程序存储器、内部RAM;大部分器件内部还有位于外部数据存储器空间的RAM,即XRAM;C8051F单片机具有片内调试电路,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试。
2.1 SPI通讯接口设计
在系统设计中,有两个外部芯片应用了SPI接口方式:AD7705和AD421,单片机和这两个外围芯片构成了一个SPI总线系统。其中单片机的NSS端悬空并被片内上拉电阻置为高电平连接,因为AD421是一个4~20mA输出的数模转换器芯片,所以它与单片机的数据线连接只有主设备输出从设备输入,即MOSI。水位监控仪中SPT系统的连接如图2所示。
图2 SPI接口系统原理图
2.2 模数转换设计
在本次设计中,我们选用了两种模数转换电路,第一种是利用单片机片内的12位ADC,在可变电阻器通道中用的是该电路:另外一种是片外的高精度模数转换芯片AD7705,该芯片的精度达16位,应用于压力传感器通道的数据采集中,下面计算得出具体应用中能达到的精度。在水位监控仪的设计中,我们忽略模拟电路的前端误差,那么可精确到的毫米数可由式1计算得出:
(1)
计算可得,当测量量程a=10m时,如果采用12位的ADC,测量精度为2.44mm;如采用16位ADC,测量精度可达0.153mm。
我们的设计要求为精确到2 mm,所以如采用16位的ADC完全能符合我们的设计要求。在设计中由于可变电阻器法本身测量精度较低所以使其采用了单片机片内的12位ADC,为尽量提高测量精度,减小测量误差,我们还用单片机的另一通道对可变电阻器的供电电源电压进行了采集,在软件中两者进行了适当融合处理,在此不再详述。压力传感器通道我们选用了片外的ADC转换芯片AD7705, AD7705芯片正好有两路模拟通道,供我们的两路压力传感器通道使用,在软件中进行通道的切换。
2.3 报警电路设计
本系统中四路报警电路的设计是采用单片机的I/O口加达林顿驱动芯片ULN2003实现的,然后将输出接到继电器的控制端。ULN2003由7组达林顿晶体管阵列和相应的电阻网络及钳位二极管网络构成,具有同时驱动7组负载的能力,是单片双极型大功率高速集成电路。继电器选用的是G6B-1174P型号的产品,24V供电电压。电气内部结构连接示意如图3。
本系统设计中采用四路继电器信号输出报警,包括高水位一、高水位二、低水位一、低水位二,这四个报警水位高度可通过下位机按键或上位机界面中人为设定和修改。以高水位一为例进行说明,当水位值在高水位一和高水位二之间时,单片机发出开关量控制信号,使其对应的继电器常开触点接触导通,具体报警方式可灵活选择,可在外电路中串接报警灯或报警铃,当该继电器动作时,相应报警开始(表现为灯亮或者铃响)。
图3 报警电路原理框图
2.4 4-20mA电流环输出数模转换电路与时钟电路的设计
在微机工业测控现场中,经常会出现待测模拟电压信号与测量设备之间有较远的距离的情况,把该待测模拟电压信号直接通过很长的线路送入测量设备显然是不合理的。通常采用的方法是:在测量现场对待测模拟信号进行放大、滤波等预处理,再经过变换后进行远距离传送,在测量设备附近再反变换成电压信号进行测量。适合工业测控系统远距离传送的信号一般有电流源或频率信号。为了把待测模拟电压信号变换成电流源信号传送,常常使用电压/电流变换电路。本系统采用一种高性能数字模拟变换器AD421,变换器输出信号为4~20mA电流环。
单片机应用系统中,为了使系统具有实时性,需由一时钟电路给系统提供时钟信号(年、月、日、时、分、秒)。我们选用了DALLAS公司的DS1302芯片。水位监控仪中用的主控芯片C8051F021共有两个串行口,该我们的设计中,一个用于与上位微机的通讯,另一个用于与编码器通讯,因此,在时钟模块与单片机的接口设计中只能采用第二种接口方式,即用普通I/O口模拟工作时序。该时钟芯片对时序要求非常严格,时序的确定是跟硬件紧密相连的,芯片内部的寄存器、锁存器等都对时序有严格的要求,所以充分体现了在研制过程中软硬件相结合的重要性。在程序设计过程中也遇到了因时序问题引起的数据传输错误,但最终都顺利解决。
2.5 串行通讯部分电路的设计
在本次设计中,下位机与上位微机通信的串行口部分我们采用了两种通信方式:第一种采用RS-232通信方式;第二种采用了RS-485通信方式。
本次设计中RS-232通信电平是用转换芯片MAX202来实现的。MAX202适用于噪声严重环境下的RS-232通信,每个发送器输出和接收器输入勿需封闭均可抗±15kV静电放电(ESD,Electro-Static Discharge)冲击,MAX202有两个驱动器和两个接收器,MAX202芯片是为在缺少±12V电源的情况下进行RS- 232C与TTL/COMS电平转换而设计的双向转换芯片,MAX202的供电电源是+5 V,电平转换速度的最大值不小于120kbps。MAX202芯片的外围器件很少,只需用4个0.1μF的电容,因而进一步降低了成本和减小了占用的空间。
在我们的设计中,采用了SN65LBC184电平转换芯片,SN65LBC184是SN5176行业标准范围内的差分数据线收发器,它带有内置高能量瞬变噪声保护装置,这种设计特点显著提高了抵抗数据同步传输电缆上的瞬变噪声的可靠性。差分驱动器设计集成了由转换率控制(slew-rate-controlled)的输出端,足可以250kbps的速率传送数据,转换率控制比之不受控制可允许更长的无终止电缆运转和来自主干线的更长的短截线长度以及更快的电压转变速度。独有的接收器设计可在输入端处于漂浮(开路)时提供高电平输出失效保护,SN65LBC184接收器包括一个高输入电阻,该电阻等效于1/4单位的负载,允许在总线上挂接最多128个类似器件。SN65LBC184的工作温度为-40℃至+85℃,因此足可以满足工作温度环境要求。
为了防止上位机和下位机的之间互相的干扰,采用光电隔离器件是一种简单而有效的方法。在RS-485的接口电路中我们选用的也是高速光电耦合器6N136。连接电路如图4所示,其中图中电源标号+5(2)表示从DC-DC模块输出的+5V电源。
图4 RS-485接口电路图
3 水位监控仪系统的软件设计
在我们本次水位监控仪设计中,所选用的软件调试环境是Cygnal IDE,它是为C8051系列微控制器量身定制的集成开发环境,我们将Kei18051编译环境的工具集成到Cygnal IDE中,从而形成了一个集成了编辑、编译、下载代码、在线调试等一系列功能的开发环境,很方便单片机程序的开发。
在我们的系统中将整体程序设计分为两个大的模块:初始化模块和循环执行模块。相应的子程序为:系统初始化子程序和循环子程序,在主程序调用了这两个子程序。系统初始化子程序中对I/O、外部振荡器、AD/DA、定时器、DART, SPI以及中断系统都做了初始化的工作。循环子程序是一个死循环,它包括了对显示部分的初始化和循环体内容,在循环体中我们不但完成显示部分的功能,还做了一些系统应该一直查询的信号量,比如按键、通道对应的中断使能切换、继电器输出信号的控制处理等。
本文作者创新点:本水位监控仪在精度上能够满足1mm的设计要求;在可靠性上基本上能够克服外界的干扰,实现稳定运行;在功能上具有多功能的设计,符合多种使用方式,可根据具体要求对功能进行选择;能够方便的实现人机操作,进行各种参数的设定和修改,在一定程度上满足了智能化的要求。
|