引言
在工业生产中,经常要对温度进行实时监测,虽然可以利用串行通信标准RS232和RS485等实现短距离监测,但遇到高温、高噪声或者空间狭小等温度环境时,由于协议自身传输速率和传输距离的限制,很难达到实现远程、实时监测的目的。为彻底解决该问题,本系统采用Microchip公司的以太网接口模块ENC28J60,将温度信息通过以太网络传输到远程主机,实现高速、实时的远程温度监测。
1 系统结构
图1 系统结构框图
如图1所示,系统由温度传感器、报警电路、LCD显示电路、ATmega128单片机[1]、ENC28J60接口模块、网络设备以及监测计算机等部分组成。系统的核心是Atmel 公司的高档8 位AVR 单片机ATMega128,晶体振荡频率为11.059 2 MHz,实现与计算机间的精确通信。ATMega128 具有128 KB的系统内可编程Flash,4 KB的SRAM 和4 KB的EEPROM。由于其存储器空间较大,故不需外接存储单元就可以满足LCD 字库和TCP/IP数据帧的存储需要。
在对小范围温度进行监测时,通过把两个温度传感器放置在相对的两侧[2],对所测得的两温度取平均数就得到该环境的平均温度。
2 硬件系统设计
2.1 温度采集传感器DS18B20接口电路
DS18B20芯片是美国Dallas公司推出的一种单线数字式温度传感器[3],采用1wire总线接口,抗干扰性强,测温范围为-55~+125 ℃,精度可达±0.5 ℃,最大转换时间为200 ms。DS18B20能够直接读取被测物体的温度值,体积小,电压适用范围宽(3~5 V),用户还可以通过编程实现9~12位的温度读数,即具有可调的温度分辨率。DS18B20与单片机的接口简单,只需将信号线与单片机的一位双向端口相连即可。如图2所示,系统中DS18B20采用外接电源方式,VDD端用3~5.5 V电源供电。由于其测温分辨率较高(12位),因此对时序及电特性参数要求较高,必须严格按照时序要求操作。其数据的读写是由主机读写特定时间片来完成的,包括初始化、读时间片和写时间片等。
图2 DS18B20与单片机的连接图
2.2 以太网远程接口模块ENC28J60
Microchip公司生产的ENC28J60以太网接口模块是带有SPI接口[4]和RJ45接口的独立以太网控制器,SPI 接口最高速度可达10 Mb/s;具有兼容IEEE 802.3,集成MAC 和10 BASET PHY,支持全双工和半双工模式,可编程填充和CRC 生成,内含8 KB 发送/ 接收数据包双端口SRAM,可实现硬件管理的循环接收FIFO,硬件支持IP 校验和计算等多方面的优点。该模块体积小,传输速率高,可完全满足对温度实时监测的要求。
ENC28J60接口模块通过RJ45网线接口、交换机等网络设备接入网络,其通过SPI接口与AVR单片机连接,在程序配置、控制下与以太网络进行数据帧交换,与远程主机进行基于TCP/IP网络协议的数据传输,根据不同需要可采用高速的UDP通信或者稳定可靠的TCP通信。
2.3 LCD显示功能
LCD 采用12864 型,共有128 行,64列[5]。主要显示的内容包括:当前时间,格式为年/月/日/时/分/秒;设定温度和采样温度;时间和温度设定界面;当前温度曲线显示等。本系统可以动态地在LCD 上显示温度变化曲线[6],由于LCD显示范围的限制,其精度为2 ℃/格,时间范围为2 min,使用者可以了解温度在此时间段内的变化情况。
3 软件系统设计
3.1 远程TCP/IP协议通信系统设计
程序流程如图3所示。
图3 程序流程
3.2 LabVIEW上位机设计
上位机程序采用美国NI 公司的图形化编程语言LabVIEW7.1 编写,系统总体界面如图4 所示,后台控制程序如图5 所示。按照功能模块划分可分为:UDP/TCP通信模块、数据包解析模块、温度数据显示和存储模块等。
图4 监测界面
图5 后台控制程序
4 结论
在ENC28J60以太网接口模块的基础上,实现AVR单片机与远程PC主机进行远程温度信息传输的远程温度监测系统,主要优点为:系统以温度为主要参数,采用高档AVR 系列单片机和数字温度传感器DS18B20进行1wire通信,单总线上可挂多个传感器,降低了引脚消耗;单片机控制系统自动运行,能够与远端PC 机进行TCP/UDP高速通信,系统实时性好;人机交互界面均由LabVIEW 软件开发,数据分析处理方便,界面友好美观;作为监测系统,有效利用普遍分布的网络资源,成本较低,可以作为独立器件方便地接入局域网环境进行远程监控。除用于温度监测外,在系统中的AVR单片机外围接入控制电路、其他性能的传感器甚至摄像头等,还可以实现多种其他特殊需要[6]的远程监测及控制,如水位监测、视频监控等,具有十分广阔的应用前景。