文献标识码: A
文章编号: 0258-7998(2012)06-0076-03
对于互联网数据中心(以下简称IDC)来说,良好的环境状态是保证设备正常运转的条件,而对IDC环境状态的检测是使其保持良好环境的重要措施[1-5]。根据电子信息系统IDC设计规范(GB50174-2008),开机时,IDC设备最优的环境是温度为22~24 ℃,相对湿度为40%~55%;停机时,IDC设备环境要求是温度为5~35 ℃,相对湿度为40%~70%。因为IDC的不间断供电系统(UPS)工作时会释放出氢气,可能发生爆炸或火灾等安全隐患,所以为了保证IDC设备的安全运行,除了温度和湿度的检测外,还需检测IDC的空气中氢气密度和烟尘浓度。
系统还可以通过无线通信网络将检测信息与工作人员时刻保持联系。
1 IDC环境检测系统的总体设计
IDC环境检测系统的结构如图1所示,主要由四部分组成:数据采集、STM32主板、无线通信和触摸屏。
1.1 数据采集
IDC环境检测系统采集环境的温度、湿度和空气中氢气密度、烟雾浓度。
由于IDC的空间较小,本系统检测该空间4个点的温湿度。系统选用温湿度一体传感器DHT21,DHT21的温度测量范围是-20 ℃~+60 ℃,分辨率为0.1 ℃。DHT21湿度测量有效范围是20~90%RH,当温度控制在25 ℃左右恒温时,精度可达到±3%RH。DHT21是数字传感器,DHT21与CPU之间单通道串行通信, 传送距离在20 m以上[6]。
普通的环境检测系统只针对空气中的温度测量,由于IDC设备局部空气不流通引起的温度失常则是无法检测到的。IDC环境检测系统选用8路AD590温度传感器,专用于检测容易发生异常的设备的温度。AD590是单片集成两端感温电流源,输出恒流模拟信号,接线的长短不会影响检测到的温度值,这样传感器可以安放在机房内的任何位置。AD590的测温范围为-55 ℃~+150 ℃,在测量范围内,非线性误差仅为±0.3 ℃。
因为空气中氢气和烟雾密度异常的可能性较小,且检测精度要求较低,所以系统只设1路氢气密度和1路烟雾密度的测量。可以选用电压模拟信号的传感器,这样便于软件编程和电路设计。系统分别选用MQ-2和MQ-8这两个空气质量传感器。
1.2 无线通信
IDC环境监控系统采用TC35短消息模块实现无线通信,TC35短消息模块通过RS-232标准接口与STM32通信,通过移动通信网络与工作人员的手机进行通信。工作人员不必时刻守着机房,不仅减少了IDC设备对工作人员的辐射量,同时可以腾出时间做其他工作,提高了工作人员的利用率。
1.3 触摸屏
触摸屏的作用是显示系统的工作信息,对整个系统功能进行调试设置。通过RS-232标准接口与STM32通信。
1.4 STM32主板
STM32是整个系统数据处理中心。机房内用电设备众多,可能会产生多种信号干扰。为了保证CPU的工作正常稳定,必须选用安全可靠的处理芯片并对CPU进行电路隔离与信号屏蔽。
本系统是基于ARM体系型号为STM32F103RBT6微处理器进行设计的。STM32F103RBT6包含2个12 bit的ADC,分12个I/O通道,不需要外部辅助硬件就能实现多路传感器同时提取数据;具有3个USART,满足液晶及远程控制部分的串行通信。
2 STM32主板的电路设计
STM32主板的电路设计主要分为传感器DHT21的电路设计、传感器AD590的电路设计、空气质量传感器MQ-2与MQ-8的电路设计和RS232通信电路的设计。
2.1 传感器DHT21的电路设计
DHT21是数字传感器,DHT21与STM32之间单总线串行通信。DHT21与STM32之间选用单通道的高速光耦合器6N137(如图2所示)。IDC环境检测系统共有4路温湿度一体传感器DHT21,分别连接到STM32的4个普通I/O口。
2.2 传感器AD590的电路设计
AD590的信号转换电路如图3所示。AD590输出电流以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1 μA输出电流。在室温23℃时,其输出电流Io=(273+23)=296 μA。Vo的值为Io乘上10 K,以室温23℃而言,输出值为10 K×298 μA=2.96 V 。当温度在-55 ℃~+150 ℃内变化时,AD590输出是2.18 V~4.23 V的电压信号,通过差分放大电路,把信号调整到0.18 V~2.23 V。然后通过AD7741把电压模拟信号转换成相应的频率信号,经光电隔离,最后连接到STM32的ADC采样引脚。
IDC环境检测系统共有8路温度传感器AD590。为了减少AD590的信号转换电路,IDC环境检测系统对8个温度传感器AD590采用扫描的方式读数。通过CD4028依次对8个温度传感器供电,再通过CD4051依次连接8个温度传感器到模拟信号转换电路。这里STM32输出到CD4051和CD4028的信号速度较慢,选用光电隔离元件TLP521就可以满足要求。
2.3 传感器MQ-2和MQ-8的电路设计
空气质量传感器MQ-2和MQ-8输出电压模拟信号,它们的工作原理相同,这里以MQ-2为例设计电路。因为只有1路MQ-2,所以MQ-2可安装在STM32主板上,不需使用光电隔离,MQ-2的输出信号直接到STM32的ADC口上。RS的变换范围是5 kΩ~20 kΩ,R1=5 kΩ,这样输出点的电压范围是1 V~2.5 V。
2.4 RS-232通信的电路设计
TC35和触摸屏的通信都是RS-232标准接口与STM32通信,IDC环境检测系统选用MAX232芯片实现两路TTL-RS232电平转换。
3 STM32的软件设计
根据IDC环境检测系统的工作要求,设计STM32的主程序流程图如图4所示。
STM32的软件设计主要包括3个部分:传感器数据的采集、与TC35模块的通信以及与触摸屏的通信。
3.1 STM32采集传感器数据的软件设计
3.1.1 DHT21数据的采集[7-8]
STM32与 DHT21之间的通信采用单总线数据格式, 一次通信时间5 ms左右, 一次完整的数据传输为40 bit,高位先出。数据格式为:湿度高8 bit+湿度低8 bit+温度高8 bit+温度低8位+校验和8 bit。
首先初始化STM32的I/O口,使之作为推拉式输出,输出18 ms以上的低电平,然后输出20~40 μs的高电平。然后改变I/O口为上拉式输入, DHT21会发送80 μs的低电平,说明DHT21发送响应信号,DHT21发送响应信号后,把总线拉高80 μs,准备发送数据,每一位数据都以50 μs低电平时隙开始,高电平的长短确定了数据位是0还是1,高电平时间为26~28 ?滋s表明该数据为0,高电平时间为70 μs表明该数据为1。
3.1.2 AD590数据的采集
IDC共有8路AD590,采用循环扫描的方式。首先CD4028的地址引脚DCBA输入0001,CD4051的地址引脚CBA输入001,抬高CD4051的输入使能引脚INH电平,这样开通AD590_1,然后等待200 ms,预热AD590,最后读取一定时间AD7741的脉冲次数。所读取AD7741的次数反映AD590检测温度的大小,这样即读完一路AD590检测的温度值。通过改变CD4028和CD4051的地址重复上述步骤,依次读取8路AD590检测的温度值。
3.1.3 MQ-2和MQ-8数据的采集
MQ-2和MQ-8输出的是电压信号,STM32可以直接通过带有复用功能ADC(模拟数字转换器)的I/O口,把电压模拟信号转换成12位数字信号,通过STM32内部集成DMA控制器,把ADC读取的数字信号传输到STM32内存,每次需要传输200个数据,并求平均值,这样可以保证最后输出的空气中氢气密度和烟雾浓度值稳定。
3.2 STM32与TC35模块通信的设计[8]
使用TC35模块前,要在TC35模块上插入一张SIM卡,确定TC35模块连接上移动网络。STM32与TC35模块之间是通过串口通信的。首先STM32向TC35模块发送初始化指令:AT+CNMI=2,1(指令功能:短信提示),AT+CMGF=1(指令功能:英文方式发送)。初始化之后,如果TC35模块接收到信,向STM32发送指令:+CMTI:“SM”,1(表示有短信接收,存在SIM卡的第1个位置);此时STM32向TC35模块发送指令:AT+CMGR=1;(指令功能:读取SIM卡的第一个位置的短信);然后STM32会接收到:+CMGR:“REC UNREAD”,“+8613*********”,“10/06/07,15:02:08+32”(表示短信未读,短信来源号码,接收时间);abc(表示短信内容);STM32接受到任何短信,识别短讯来源号码是否是事先设定的号码,如果是,则发送:AT+CMGS=“13*********”(功能:向设定好的号码发送短信);STM32等待TC35回复,等收到回复后,发送IDC环境数据信息:ab****** (IDC环境数据);STM32发送信息结束标识:1A;STM32收到指令:+CMGS:11(IDC环境数据发送成功)。
3.3 STM32与触摸屏通信的软件设计[9]
触摸屏用来显示IDC环境数据和设置对应环境值的安全范围。首先要把设计好的背景图片存储在触摸屏的Flash里面,存入触摸屏的控制程序(此程序设定触摸屏按键代码)。
STM32控制触摸屏的主要代码如下:
AA 52 CC 33 C3 3C(清屏指令)
AA 70 01 CC 33 C3 3C(背景图片选择指令,其中01表示图片的地址)
AA 53 00 80 00 F0 32 32 46 35 CC 33 C3 3C(在温度后面显示22.5,其中00 80 和00 F0是显示文字的坐标,32 32 46 35是22.5的ASCII码)
触摸屏按键返回码:
AA 71 00 01 CC 33 C3 3C(其中00 01表示键码)
通过实际测试IDC环境检测系统,系统检测到的环境温度、湿度和空气中氢气密度、烟雾浓度数值稳定,精度符合要求,通过移动通信网络,管理人员就可以随时查看IDC环境状况,减轻了IDC工作人员的负担。IDC环境检测系统的优势已经得到体现,帮助解决了很多IDC环境保障问题,对同类检测系统的实现也有一定的参考价值。
参考文献
[1] 史水娥,杨豪强. 基于ARM9处理器的机房环境远程监测系统设计[J].河南师范大学学报(自然科学版),2010,38(3):57-59.
[2] 王剑锋,林宣雄. 环境监控(监测)建设与发展过程的思考[J]. 中国环境监测,2006,22(5):9-12.
[3] 朱伟. 数据中心机房环境监控系统的研究和应用[J]. 金融电子化,2008(4):53-55.
[4] 陈亮.鹤煤集团机房环境监控的应用与发展[J]. 科技创业,2010(8):189-190.
[5] 姜云安.大中型机房环境监控系统浅谈[J]. 智能建筑与城市信息,2010(8):12-15.
[6] DHT21产品说明书[EB/0L].(2011-02-25).http://wenku.baidu.com/view/d3b37e23bcd126fff7050b38.html?from=rec&pos=0&weight=33&lastweight=13&count=5.
[7] 倪天龙.单总线传感器 DHT11在温湿度测控中的应用[J].单片机与嵌入式系统应用,2010(6):60-62.
[8] 杨小平.基于AT89S52和DHT21的温湿度测量系统设计[J].无锡职业技术学院学报,2011,10(1):62-63.
[9] 张华,高需.基于TC35模块实现短消息收发[J].电脑知识与技术,2010,17(6):4817-4819.
[10] 翟霄翔,郝久玉,郑军.电阻式触摸屏在嵌入式系统中的应用[J].电子测量技术,2006,29(2):36-37.