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