基于STM32的互联网数据中心环境检测系统

2012-08-13 06:10沈剑峰丁金华
电子技术应用 2012年6期
关键词:电路设计触摸屏传感器

沈剑峰,丁金华,董 宇

(大连工业大学 机械工程与自动化学院,辽宁 大连116034)

对于互联网数据中心(以下简称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.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所示。

图4 IDC环境检测系统主程序流程图

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.

猜你喜欢
电路设计触摸屏传感器
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
PLC和触摸屏在卫生间控制系统的应用
Altium Designer在电路设计中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
负反馈放大电路设计
浅析投射式多点触控电容触摸屏
皮肤“长”出触摸屏
开漏输出比较器的峰值检测电路设计