1 引言
计算机和网络技术的发展,引发了远程监测、监控领域深刻的技术变革。系统结构向网络化、开放性方向发展将是技术发展的主要潮流。以太网作为目前应用最广泛的局域网技术,凭借其开放性好、成本低廉、数据传输率高等诸多优势,在工业自动化和过程控制领域得到了越来越多的应用。依靠以太网技术实现信息共享,给办公自动化带来很大的变革,对系统设计产生了深远的影响。本文以温度控制为研究对象,以AT89S52单片机为核心,以ZNE-100T模块为以太网接口,设计了一个基于以太网的远程温度控制系统。
2 系统组成及原理
基于AT89S52单片机的以太网远程温度监控系统的硬件电路如图l所示。
系统工作原理:先由DSl8820单线数字温度传感器负责实时采集现场温度信号,并把温度信号直接以数字形式传送给AT89S52单片机。AT89S52单片机取得相应的数值后经主程序分析与设定值比较,根据实际情况输出信号控制输出电路各端口的电平,以驱动外围的控制电路工作,实现对被控制对象的控制。同时单片机通过UART0串口连接到ZNE-100T,通过以太网与上位机连接,实现基于以太网的远程通信。
3 系统硬件设计
本系统硬件主要包括单片机的最小系统、温度采集电路、显示电路、告警电路、外围控制电路和以太网接口模块等。本系统AT89S52作为核心处理器。AT89S52是Atmel公司生产的低功耗、高性能CMOS8位单片机,片内含有8k字节的EPROM和256字节的RAM。具有ISP(在系统编程)功能。它具有灵活性高、使用方便、价格低廉等优点。因此,该芯片在嵌入式控制系统中得到了广泛应用。本系统采用Dallas单线数字温度传感器DSl8820现场采集温度数据,打破了传统的热电阻、热电偶再通过A/D转换采集温度的思路,用Atmel公司的Flash单片机AT89S52对数字进行处理和控制,通过RS-232串口,经过以太网传到PC机实现远程控制。利用AT89S52的ISP(在系统编程)功能,很方便地把编好的程序写到单片机中,并且调试、修改和升级很容易。本系统监控的温度范围为0℃~+90℃,温度值显示的精度为0.0l,不但可以利用十进制实时显示温度值,还可根据需要设置控制温度的上、下限,当温度超过设定值时,系统自动产生告警指示。以下是各部分的电路功能:
(1)AT89S52单片机
AT89S52是整个系统的核心处理器,单片机首先把通过传感器测到的现场温度与预先设置的温度进行比较,如果大于或小于预先设置值,就输出信号去控制加热器的工作,从而实现温度控制。AT89S52还负责液晶显示、告警,同时通过以太网与上位机进行通信等工作。[nextpage]
(2)温度传感器
温度传感器是该系统的关键器件,本文选用的是美国Dallas半导体公司生产的数字化温度传感器DSl8820,它支持单总线接口,其内部使用了在板(ON-BOARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。其测量温度范围为-55℃~+125℃,在一10℃~+85℃范围内,精度为±0.5C。温度传感器DSl8820采集到的现场温度直接以单总线的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品(世界上第一片支持单总线接口的DSl820温度传感器)不同,它支持3.0V~5.5V的电压范围,使系统设计更灵活、方便,而且DSl8820价格更便宜,体积更小。DSl8820的内部结构主要有4部分:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其温度检测电路图如图2所示。DSl8820管脚GND为电源地,DQ为数字信号输入/输出端,VDO为外接供电电源接入端(用寄生电源方式时接地)。在本系统中用外接电源,DQ接到AT89852的P2.0端,Rl为信号和5V电源之间的上拉电阻。在实际中,若需要多点检测时,可在单总线上挂多个DSl8820。
本系统是以炉温作为温度检测对象,电阻炉的温度变化范围为30℃~150℃。系统设定温度为35℃~80℃,温度越限时产生告警。由于温度变化惯性大,因此,系统选用固态继电器作为温控元件。固态继电器是由固体元件组成的无触点开关元件,利用电子元件的开关特点来控制电路的断开与接通,工作可靠、寿命长,开关速度快,能实现较为理想的控温较果。系统采用的固态继电器是TOSHIBA的TSSl6J4lS。系统选用了PID调节器。当电阻炉的温度一旦越限,PID调节器使固态继电器TSSl6J4lS接通或断开,从而实现控制加热器,使电阻炉温度被控制在设定的温度范围内。
(3)以太网接口电路设计
系统的以太网功能是通过ZNE-100T模块实现的。ZNE-100T是周立功公司开发的一款嵌入式以太网转串口模块,它内部集成了TCP/IP协议,配有32位ARM7CPU、16KB RAM、128KB FLASH和10M以太网接口,支持RS-232和RS-485接口,支持动态或静态获取IP地址,有TCP Server,TCP Client,UDP,Real COM driver,Group Mode等多种工作方式,可使用网页浏览器进行配置,提供通用配置函数库,方便用户使用VC、VB、Delphi和C++Builder开发应用程序。由于ZNE一100T以太网模块能够实现串口设备和以太网设备之间数据的透明传输,利用它可以轻松完成嵌入式设备的网络功能。ZNE-100T以太网模块的波特率、开始位、停止位以及工作方式通过配置软件来设计。在本系统中,设置其波特率为9600b/s,开始位为1位,停止位为1位,工作方式为TCP Sever。
由于AT89S52单片机本身提供了一组全双工串行传输口,由TXD引脚来传送串行数据,而由RXD引脚来接收数据,可是其工作逻辑电平皆为TTL电平(0V,5V)。而ZNE-100T模块配置的是RS-232标准串行接口,电平为(+12V,-12V),二者的电气规范不一致,因此要完成单片机与PC机的数据通信,必须对单片机输出的TTL电平进行电平转换。本系统采用MAXIM公司生产的MAX232电平转换芯片来实现RS-232标准接口通信。[nextpage]
(4)控制电路
驱动电路采用继电器驱动方式。通过控制继电器在控制周期内通断的时间,实现对加热器的开关控制。从而实现控制温度。由单片机I/O口输出的控制信号,经NPN晶体管放大,驱动继电器工作。
(5)告警电路
本设计采用蜂鸣器告警电路,它由晶体管和蜂鸣器组成。由单片机I/O口输出信号控制晶体管的导通或截止,晶体管导通,则蜂鸣器告警。
4 温度监控的实现
系统工作时先由使用者设定预期达到的两位温度值(该值为十进制,单位为摄氏度,范围35℃~80℃),温度值输入后,打开电源,单片机自动复位,进行初始化,这时LED显示器显示设定温度,以便操作人员核对设定温度,然后温度检测电路将测点的温度输入单片机,经软件滤波后作为实测温度,此后显示器将一直显示实测温度。本系统的温度设置也可通过远程监控端的上位PC机设定,上位PC机通过ZNE一100T模块,将给定量和各设定参数传递给AT89S52单片机,DSl8820温度传感器也将现场实时检测得到的电阻炉的温度传递给AT89S52单片机,AT89S52单片机获得DSl8820温度传感器传送的温度后经主程序分析,并把它与设定值比较,若实测温度高于设定温度时,则通过驱动电路关上加热器并告警;若实测温度低于设定温度时,则通过驱动电路打开加热器并告警;若在设定温度范围内,则加热器状态不变。
5 系统软件设计
系统采用AT89S52作为核心处理器件,把经过DSl8820现场实时采集到的温度数据,存入AT89S52的内部数据存储器,送液晶显示,并与预先设定值进行比较,然后由单片机输出信号去控制加热器。进行温度控制程序的设计应考虑如下几个问题:•实时采集温度;•温度显示;•与上位PC机通信程序;•越限告警和处理。软件设计主要有:主程序、初值设定子程序、温度读取子程序、液晶显示子程序和输出控制子程序等。初值设定子程序完成对温度初值的设定及数据保存;温度读取子程序完成对温度传感器数据的读取,并通过液晶显示子程序显示温度值;输出控制子程序则根据温度的数值完成对输出口的控制。AT89S52的具体软件主程序和串口通信中断程序分别如图3和图4所示。
在以太网通信中,PC机为主机,单片机为从机。单片机与ZNE-100T模块之间采用RS-232串行接口,通信波特率为9600b/s,数据帧格式为l位起始位,8位数据位,1位停止位,无奇偶校验位。 [nextpage]
6 远程监控端的软件设计
远程监控端的管理软件是采用Visual Basic 6.0V为开发设计语言,进行程序编写,以Microsoft Access数据库格式存储数据。该系统可运行于Windows操作系统平台上,方便以后的修改和使用。主要由通信控制部分、串口参数设定部分、采集数据写入数据库部分、采集数据显示及告警显示部分和数据库维护部分等组成。远程监控端数据库是由Access软件生成的,包括三个表:表1是保存采集数据表,表2是保存操作人员及密码表,表3是保存各监测地址。远程监控端的应用软件提供了一个良好的界面,使维护人员能通过界面上的数据表方便地观测各远程监测点的工作状态,通过菜单对全系统进行有效的维护,其组成框图如图5所示。
远程监控端的部分软件功能如下:
(1)通信控制部分软件主要负责监视串口,接收来自单片机的字符或向单片机发送字符。
(2)采集温度显示及告警显示部分软件主要是在主界面上显示接收的监视温度数据。当监视现场的采集温度超过告警界限时,在主界面告警面板上显示告警地点及告警内容。
(3)采集温度写入数据库部分软件负责将接收的信息字符解码,提取出时间、地点及采集的温度数据,并分析上述数据的合法性,如果合法则存入数据库的表。
(4)串口参数设定部分软件负责设定使用哪个串口,串口的波特率、校验位、停止位。
7 结语
本文以AT89S52单片机为核心,利用ZNE-100T以太网模块,设计了一个简单实用的以太网远程监控系统,经实验验证,数据通信正常,检测数据完全符合系统设计的要求。由于该系统,硬件简单、成本低、集成度高、稳定性好、调试方便以及抗干扰能力强,并且能实现温度的远程自动控制,具有一定的实用价值。