嵌入式设备在中小型机房监测中的应用
2014-08-07刘冬敏
刘冬敏
(中州大学 工程技术学院,郑州 450044)
1 引言
随着我国信息化进程的加快,各单位计算机系统及通信设备的数量都在不断增加,机房已经成为单位的重要组成部分。机房有许多配套设备,包括配电、空调、消防设备、漏水检测设备等。对于中小型机房来说,最关心的是温湿度、烟感、UPS监测,由于中小型机房在信息化项目中所占比重很多,因此有必要针对这类机房的实际使用情况,设计一套经济型的监测系统。
机房监测系统设计的目标是通过通讯及数据标准接口和一体化通讯网络,将各个子系统集成到一个计算机支持的平台上,建立起整个机房的集成监测和管理界面,通过统一的图形化人机界面,实现各子系统的实时监视和管理,并在发生故障时向管理员报警,以便管理员进行补救工作。
目前,市面上对于机房监测的大型成套设备有许多,也有比较成熟的整体解决方案。这些系统一般是基于组态模式设计的[1],在界面上组态效果很好,但对于硬件的支持单一,必须采用厂家的硬件设备,而且成本不菲,不适合经济型中小型机房所应用。对于中小型机房,能否在保证机房监测的核心功能前提下,降低总成本呢?比如直接采用TCP/IP协议组网,利用服务器硬件资源运行监测系统;不需要专业工控机和多串口卡,减少硬件成本;使用量身定制的嵌入式设备和监测软件,缩减不必要的功能,提高软件的可靠性,降低系统的总费用,并能为用户所接受。本文将试图采用低成本的解决方案,重点围绕嵌入式设备在中小型机房监测系统的应用,描述如何实现嵌入式设备的软件、硬件、传感器的设计及实现,其他辅助模块只做简要介绍。
2 系统构成
经济型中小型机房监测系统主要由控制软件、嵌入式设备、传感器等三部分组成。控制软件与嵌入式设备的通信采用TCP/IP协议,不再采用传统的RS485总线,不再需要专业的计算机和硬件设备,提高系统的可靠性,同时也降低费用。
控制软件采用Delphi 7.0编写,由于信息系统中一般都有商业数据库服务器,不再需要重新购买相关的软件和硬件,该控制软件支持Oracle 9i 、SQL Server 2000等主流数据库,历史运行状态和报警记录可以通过数据库进行记录,方便用户查询和打印报表。报警输出通过短信接口模块,将报警信息发送到相关管理人员的手机上。嵌入式设备采用ARM7TMDI为内核的高性能CPU,搭载网络控制芯片,提供TCP/IP通信服务,利用各种传感器将采集到的信息发送到控制软件。机房监测系统的结构如图1所示。
图1 经济型中小机房监测系统网络拓扑图
3 嵌入式设备设计
嵌入式设备主要分为三种功能,一是机房采集温湿度,使用高性价比的温湿度传感器;二是烟感传感器,通过GPIO口采集烟雾探测器的开关量输出;三是UPS状态采集,它是通过RS232串口与UPS进行连接,通过UPS通信专用协议获取UPS运行信息。
3.1 硬件部分设计
S3C44B0X是以ARM7TMDI为内核的高性能CPU,是ARM公司最早为业界普遍认可并且赢得最广泛应用的处理核。S3C44B0X的推荐最高工作频率为66 MHz,采用0.25um工艺的CMOS标准宏单元和存储编译器。它的低功耗精简和出色的全静态设计特别适合于对成本和功耗敏感的应用。
采集终端温湿度处理模块通过I2C总线协议进行通信。温湿度传感器采用SHTll型数字式温湿度传感器芯片,湿度测量范围0~100%RH,温度测量范围-40~123.8℃,湿度测量精度±3.0%RH,温度测量精度±0.4℃,响应时间<4S 。UPS的传感器也就是专用的通信协议UPSCodeII,该协议是智能不间断电源的通讯协议,广泛应用于Powerwrare,Fiskars,IBM等大型厂商的产品中。烟感传感器采用市面上常见的JTY-GD-DG311 联网型火灾探测器,它采用特殊结构设计的光电传感器,具有灵敏度高、稳定可靠、低功耗、美观耐用、使用方便等特点。电路和电源可自检,可进行模拟报警测试。
烟感信息是一个开关量信号,通过两个I/O口(PC0、PC1)S3C44B0X采集烟感信息; CPU通过I2C总线采集温湿度传感器的相关信息;再通过串口1与UPS设备进行通信。考虑到经济、实用,该设备目前只接一个温湿度传感器、两个烟感和一台UPS设备,控制部分模块设计原理图如图2所示。
通过串口命令参数设置该硬件设备的类型,比如嵌入式设备是配置成UPS设备信号采集终端还是配置成温湿度或者烟感采集终端,也还是三者的混合模式。这个需要根据现场施工情况进行配置,一般情况下烟感可以和温湿度进行混合配置,由于串口通信距离短,UPS需要单独配置一个采集终端。采集到信息经过设备上的网口发送到控制软件。
图2 硬件控制部分原理图
3.2 嵌入式软件设计
在嵌入式软件开发中,选用ARM公司提供ADS1.2开发工具进行开发和调试,ADS l.2提供完整的Windows界面开发环境,它使Windows平台的开发人员快速适应该软件功能。该软件的C语言编译器效率极高,能同时支持C以及C++语言,使软件、硬件工程师可以很方便地使用C语言进行开发。为了提高调试速度,增强批量调试各函数的功能,可以将函数的关键状态变量输出到串口,通过上位机保存各个调试状态,再离线分析。本项目中嵌入式设备按功能可以分为三类,其嵌入式软件按其大的模块划分可以分为两大模块,一是通用软件模块,一是专用软件模块。通用模块处理参数配置、设备初始化、通信等功能,专用软件模块处理温湿度监测、烟感监测和UPS监测功能。
3.2.1 通用软件模块
嵌入式设备在网络中与控制软件通讯采用“客户端-服务器”模式,嵌入式设备作为客户机,双方通过TCP协议进行通信。因此在终端上需要运行一个嵌入式TCP/IP协议栈[3-4],并且每个终端需要配置一个唯一的IP地址、设备号,以实现与控制软件点对点的通信。[5]
嵌入式设备加电后,由汇编语言编写的引导程序经过硬件参数配置后,引导到Main.c文件中的Main(void)函数开始执行,系统控制权开始交由C语言编写的程序。在Main函数中执行串口参数配置模块,参数存储在I2C总线的E2PROM芯片中,通过串口配置本平台的一些常用参数,比如设备的ID、IP地址、设备类型、控制服务器端的IP地址和端口以及心跳间隔时间等参数。如果在三秒钟内没有检测到用户输入,系统跳过本模块开始执行通信处理模块,构建一个TCP/IP协议栈,建立与控制软件的实时通信连接。在正常工作模式下,各个类型的采集终端定时发送实时采集到各种信息,如果传感器或者串口通信出现故障,需要发送设备故障信息,由控制中心实时报警。除此之外,采集终端每隔一定间隔(可设为120秒)必须发出心跳激活信号,把当前的状态信息报告给控制中心,以示其正常工作,提高整个系统的可靠性。通用软件模块的功能流程图如下图3所示。
图3 通用软件模块流程图
3.2.2 专用软件模块
整个嵌入式设备专用软件模块分为三个,分别是温湿度处理模块、烟感处理模块和UPS处理模块,三个模块按顺序串行执行,执行的频率可以通过参数进行设置,如果该设备没有配置该类型的模块,可以直接跳过此模块执行下一个模块,专用软件模块的功能流程图如图4所示。由于S3C44B0X自带有I2C总线,这就极大的简化了用软件模拟I2C总线的麻烦,提高了CPU的使用率。微处理器对SHTll的控制是通过5个5位命令代码来实现的。SHTll可通过DATA数据总线直接输出数字量湿度值。该湿度值称为“相对湿度”,需要进行线性补偿和温度补偿后才能得到较为准确的湿度值[5-7],具体的补偿过程参见文献[6]。采集到正确的温度和湿度数据放在缓冲队列中,由主程序通过点到点协议发送到控制软件。
采集终端烟感处理模块主要任务是通过两个I/O口(PC0、PC1)读出JTY-GD-DG311 联网型火灾探测器开关量输出状态。为了消除干扰因素,采用多次读取的办法,每查询一次报警的输出量,系统在1秒的时间内连续读10次,如果有一个状态不一致,该次读取无效,需要再次读取。如果在规定的次数(3次)内不能完成任务,需要给控制中心发送“设备故障”命令信息。读出到正确的烟感信息之后,数据放在缓冲队列中,由主程序再通过点到点协议发送到控制软件。
采集终端UPS处理模块采用串口处理UPSCodeII协议,该协议实际上是一组规定好的命令名称,通过串行通讯方式来进行上下行数据传送,不同的机器命令集略有不同,发送到UPS的命令通常由一个到二个部分组成,即第一行为命令,是以回车为结束标记的4字节ASCII字符,其中前两个字符通常是UP,后两个为特定的命令;如果一个命令包含两个部分,那么第二部分通常是与该命令相关的参数,同样也是以回车符号为结束标志,具体长度并不确定。例如状态监测命令“UPSS(cr)”显示UPS当前工作状态; 状态监测命令“UPDS(cr)”返回UPS的完整状态及参数;设置命令“UPDV(cr)”显示当前UPS设置值和容限;命令“UPCL(cr)”显示本机支持的所有命令,其他命令这里不再一一列举了,需要参考UPS厂家的通信协议规范。在本模块中,采集终端通过状态监测命令“UPSS(cr)”和状态监测命令“UPDS(cr)”即可查询到当前UPS运行的状态,返回的UPS状态按具体厂家协议进行解析,数据放在缓冲队列中,再通过点到点协议由主程序发送到控制软件中,进行实时显示和监测。
图4 专用软件模块流程图
4 控制软件设计
控制采用Delphi 7编写,通过Windows的Socket与各个嵌入式设备进行通信。控制软件的运行状态和报警信息都保存在Oracle 9i或者其他主流数据库中。用户通过访问历史监测界面和报警查询界面,可以查询到相关的状态,报警信息通过短信模块输出到管理人员的手机上,相关报表支持导出到Excel文件中。控制软件端口设置为5151,软件运行后启动服务器端Socket,为嵌入式设备提供实时通信服务。能实时处理、显示各个终端设备发送过来的采集信号,再通过与预设的参数进行比较,如果超过阈值就进行报警,报警模块考虑到项目的目前已有基础,采用联通公司提供的短信接口(数据库消息队列),报警短信数据的传输可以通过该接口进行发送或者读取,不再使用短信模块,降低使用费用。报警短信通过轮询的方式,逐一发送给每个管理人员的手机。控制软件的流程如图5所示。
5 结束语
本文针对中小型机房设备实时监测的需求,设计一种低成本机房监测系统,主要阐述整个系统的构建和关键部分设计。系统中核心的嵌入式设备采用S3C44B0X处理器,通过温湿度传感器、烟感、UPS协议采集机房相关监测数据,嵌入式软件采用模块化设计,互换性好。该系统的设计思路为中小型机房的监测提供了一条新路径,同时也可为大型机房的监测提供一定的借鉴。
图5 控制软件流程图
参考文献:
[1]沈娣丽.小型集散控制系统组态软件设计[D].华中农业大学,2005.
[2]鲁力,张波.嵌入式TCP/IP协议的高速电网络数据采集系统[J].仪器仪表学报,2009,30(2):405-409.
[3]何一鸣,鲍玉军,钱显毅,等.基于LPC2214的传感器网关设计[J].南京航空航天大学学报,2012,44(6):911-916.
[4]明五一,刘武发.基于ARM点到点通讯协议的设计及实现[J],才智,2009,7(3):243-244.
[5]姜连祥,许培培.温湿度传感器SHT11的感测系统设计[J].单片机与嵌入式系统应用,2007(4):49-51.
[6]宋继军.基于单片机的智能温湿度控制系统设计[J].科技广场,2013(10):91-93.
[7]陈树成,杨志勇,王建佳,等.低功耗农业大棚温湿度测量仪设计[J].农机化研究,2014(8):62-66.