蔡云辉,郑立平,陈 平
(1.合肥工业大学机械与汽车工程学院,安徽合肥 230009;2.安徽安凯福田曙光车桥有限公司,安徽合肥 230051)
服务器是计算机网络中为计算机用户提供文件传输、电子邮件、数据和应用程序等各种服务的高性能计算机。计算机网络需要服务器能够长期可靠地运行,而大型服务器运行过程中,会产生很大热量,导致服务器温度升高,影响服务器的稳定工作,可能导致网络故障,甚至造成服务器的损坏。因此,大型服务器机房需要温度调节设备,使机房温度维持在一定范围内[1]。同时,还需要对其温度进行远程监控,必要时进行人工干预,保证服务器的可靠运行。
文中进行了某大型服务器机房温度远程监控系统的设计。提出应用利用单片机系统和PC机相结合的方式,完成了服务器远程温度监控系统设计。单片机系统进行温度数据采集和现场设备控制,监控人员通过PC机能直观地了解机房内温度变化情况,并利用RS485总线进行单片机和PC机之间的远程通信,可在较远距离监控服务器机房的温度。
该温度远程监控系统由单片机系统电路、RS485总线和PC机和相应软件构成。
单片机系统主要由传感器DS18B20和单片机STC89C52RC组成。DS18B20是一种采用单总线的数字温度传感器,可编为9~12位的A/D转换精度,编程为12位时,4位表示温度数据的小数部分,7位表示温度数据的整数部分,被测温度用符号扩展的16位数字方式串行输出[2]。其温度测量范围为 -55~125℃,精度为0.5℃,使用DS18B20作为温度传感器,可满足机房温度的测量要求的同时,电路设计和编程工作也相应简化。STC89C52RC是51系列单片机的一种,是一款性价比较高的单片机,它具有一个全双工的串行接口,能够实现和PC机之间的异步通信。
PC机通常由一个RS232接口来进行串口通信,由于RS232总线电平与RS485总线电平不一致,可以使用RS232/RS485转换卡完成电平转换。RS232接口的最大传输距离约为30 m,RS485总线的传输距离可达 1200 m[3],信号最高速率为 100 kbit·s-1。由于服务器机房与监控中心的距离一般在1000 m以内,采用RS485总线可满足通信要求。
系统工作原理可用图1进行说明。单片机每隔一定时间,通过单总线向温度传感器读取温度值。同时,单片机经RS485总线向PC机传输温度数据,并接收PC机发送的温度控制指令,直接指挥温度调节设备进行工作。温度调节设备上有数字旋转编码开关,数字编码开关既是温度调节设备的开关,又可旋转来调整调节设备的工作。继电器通过控制电磁阀驱动数字编码开关,使得温度调节设备运行或停止;用联轴器将步进电机输出轴与数字编码开关轴相连,这样步进电机就能够通过旋转来控制温度调节设备。
图1 温度远程监控系统原理示意图
PC机收到数据后,存贮该时刻的温度值,并显示在显示器上;以时间轴为横轴,以温度值为纵轴,这样坐标轴上的点就可以用来描述该温度的发生时刻和大小,由于相邻两点之间在时间轴上相差很小,很多点出现在屏幕上,就成了一条连续的曲线,这样温度变化情况就被温度曲线形象地展示出来,同时,当曲线到达显示器边缘时,曲线将沿横轴正向移动,温度变化情况就被动态表示出来了,如图2所示。
图2 监控系统运行界面
单片机系统电路由单片机STC89C52RC、数字温度传感器DS18B20、串口通信电路、步进电机驱动电路和继电器驱动电路组成,如图3所示。文中使用10个DS18B20可对服务器温度进行多点检测,单片机用一根总线就可实现对所有传感器的数据采集。3端稳压集成电路7805为单片机提供稳定的5 V电源,ULN2003是一个多输入多输出的放大电路,它将单片机输出的信号进行放大可以直接驱动步进电机。集成电路MAX232把单片机的TTL电平转换成RS232电平,这样通过电脑的RS232串行接口,可以直接下载程序到单片机;用RS232/RS485电平转换卡完成电平转换后,就可以用RS485总线进行远程通信。
图3 单片机系统原理图
单片机程序采用C语言和汇编语言混合编写,向温度传感器读指令以及定时部分,由于要求的时序较严格,用汇编语言编程效果较好,数据处理部分用C语言编写相对简单。单片机程序的流程图如图4所示,单片机按照一定的时间间隔,依次从10个数字温度传感器DS18B20中循环读取温度数据,并立刻将其发送到PC机,同时查询是否收到PC机的控制指令,若收到控制指令,则将目标温度值同当前温度值进行对比,从而决定如何调整温度调节设备的工作状态,即改变步进电机位置抑或改变继电器动作。
图4 单片机程序流程图
PC机的主要功能是实现与单片机的串行通信及监控人员查看温度和调节服务器机房温度。单片机将温度数据发送到PC机串行接口时,程序能及时获得该数据,并将温度值呈现给监控人员,同时更新温度曲线的显示,从而以动态的效果表达温度的变化情况。当监控人员需要改变服务器温度时,通过PC机能向单片机发送相应温度控制指令。
PC机程序采用VC6.0进行编写。VC6.0具有一个串口通信控件,开发人员利用它可以方便地完成串口通信部分的程序编写。每当串行接口收到数据时,系统会发生一个接收事件响应,系统就会执行该事件响应所对应的程序,进而完成温度数据的接收与贮存。同时,当监控人员进行温度调节时,使用该控件的发送数据函数,串行接口就向单片机发送相应控制指令。
利用VC6.0的定时器Timer,可以实现温度曲线的定时更新显示。设置一个时间间隔,并使能该Timer控件,每经过一个这样的时间间隔,就会发生Timer事件响应,系统则执行该事件响应对应的程序。因此,在PC机程序中用一个二维数组存贮温度曲线上各点的横轴与纵轴坐标,分别与温度的大小与时刻对应;利用Timer控件,每隔一定时间,把接收的温度值存贮,通过数组中元素的移动,并移入最新温度值对应坐标,从而将二维数组中元素更新,进而更新温度曲线,使曲线总是显示当前时间段的温度。PC机程序的流程如图5所示。
图5 PC机程序流程图
经实际测试表明:该温度远程监控系统对1000 m以内的服务器机房温度进行监控,温度误差在2℃以内,而且依次对10个温度传感器进行数据读取,完成一个循环仅需2 s时间。表明该系统满足了通信距离、准确性和实时性的要求。
系统在合肥某大型超市服务器机房投入使用以来,运行可靠,且由于其直观的温度显示效果,获得用户好评,表明该系统的设计具有较高的实用价值。
[1] 孟凡超,张玲.机房温度监测及报警系统的开发与应用[J].电力信息化,2010,8(11):27 -29.
[2] 李余庆,张华,刘继忠.基于DS1820的无线温度采集系统的设计[J].微计算机信息,2009,25(26):187 -189.
[3] 蒋政宏.基于RS-485总线的水轮机温度监测系统[J].电力自动化设备,2011,31(5):130 -133.
[4] 曲双红,王芳,俞孟蕻.基于VC的串行通讯在温控系统中的应用与研究[J].华东船舶工业学院学报:自然科学版,2003,17(1):82-85.