信息机房温度在线实时监测系统的设计与实现
2013-07-31杨献伟
杨献伟
(西山煤电(集团)公司官地矿,山西 太原 030022)
随着信息化的不断深入和发展,信息机房中设备对环境的要求也越来越高,尤其是机房温度对核心设备通信效率有着较大的影响。目前,大部分机房中的空调系统,虽然在设定一定的温度后,会自动进行调节机房温度,但是对于值班人员来说,如果想要了解机房温度的实时情况,须进入机房进行观测,这对机房环境中的恒温状况会引起一定的扰动,导致破坏机房现有的恒温环境,对核心设备造成一定的影响。
本文设计的信息机房温度在线实时监测系统,主要以DS18B20为温度芯片,ATMEGA16L为单片机控制单元,LCD1602为显示器件,利用RS485总线配合上位机程序与PC机进行通信,实现机房温度在线实时监测。
1 主要芯片选型
1.1 DS18B20芯片
DS18B20是美国DALLAS半导体公司生产的单总线数字式温度传感器,它是通过对其内部温度系统振荡器输出的脉冲信号计数来测量温度,并在芯片内部将温度信号转换成串行数字信号后,通过外部微处理器对其进行一系列的读写操作来取得温度值,它的测温范围为-50℃ ~+125℃,这个温度范围对于机房来说,是完全可以满足的。DSl8B20的内部结构图见图1。
图1 DS18B20内部结构示意图
1.2 ATMEGA16L 芯片
ATmega16L芯片是基于增强的AVR RISC(精简指令集)结构所设计,属于低功耗8位CMOS微处理器,是比51单片机功能更为强大的微处理器,其指令在单时钟周期内就可执行完成,所以ATmega16L的数据吞吐率高达1 MIPS/MHz,对于本系统中的数据处理量来说,也是可以满足的,所以选择该芯片用于主控芯片。
2 系统电路设计
本系统是由AVR最小系统、测温系统、显示系统和通信系统等主要部分组成。
AVR单片机由ATMEGA16L为主控单元,外部8 M晶振提供振荡源,配有复位电路以及外接5 V恒流源等,实现了AVR最小系统的运行,是该温度监测系统的核心控制部分。
测温电路是为DS18B20数据线串接10 kΩ的电阻后与ATMEGA16L的PA0相连,通过严格的时序与其通信,启动并获取其实时的温度。
显示系统是通过4组按键设定上限温度和下限温度,并保存在AVR的EEROM中,系统启动后将对其实时温度进行显示,并做出判断,若越界,则能使蜂鸣电路发出报警。
通信电路是通过RS485接口每隔100 ms向上位机发一次温度信息,上位机将接收到的数据,利用上位机程序实时地在PC机上显示温度曲线。
3 软件设计
3.1 DS18B20时序逻辑
由于DS18B20采用的是单总线协议方式,有严格的时序逻辑,所以读写时序显得尤为重要。其复位、读和写时序图见图2~4。
操作DS18B20的所有时序逻辑都是将ATMEGA16L芯片作为主设备,DS18B20芯片作为从设备,每一次命令和数据的传输都是从ATMEGA16L发送指令,主动启动写时序开始,在进行写命令后,ATMEGA16L再发送相应指令启动读时序完成数据接收。所有的数据和命令的传输都是遵循低位在先的原则来进行的。
3.2 程序逻辑
温度监测系统启动自检完成后,初始化各部件,然后进行主循环。在主循环中,读取温度—〉显示温度—〉向上位机发信息—〉判断及是否报警。其中的中断部分是按键中断程序,用来设定监测温度的上下限阈值。
3.2.1 初始化部分程序
3.2.2 向DS18B20写操作部分
3.2.3 读取DS18B20计数部分
3.2.4 转换计数为温度值
3.2.5 串口通信部分
3.2.6 上位机部分
上位机程序采用VS2005中的C#进行WINDOW FORM编程,利用图形组件实时地显示出温度的波动曲线。部分程序如下:
该程序段仅显示出接收AVR单片机的数据部分,曲线显示温度部分程序代码较复杂,限于篇幅,在此未列出。
4 总结
AVR单片机以其结构简单,功能强大,协议支持多,在实际生产和科学研究中有着较为广阔应用前景。本系统利用DS18B20芯片作为温度传感器,只需要1根数据线就可完成与单片机的通信。RS485总线将采集到的温度数据实时地传输给值班室的监测主机,值班人员在电脑前便可实时了解机房内部温度的波动情况,保障了机房核心设备对环境中温度无较大波动的要求。该系统的成功应用,不仅提高了工作效率,而且会使机房管理更为有效、规范和完善。