基于DirectX技术的机房温度远程监控系统的实现
摘 要:服务器能否正常运行,机房温度是首要问题。采用虚拟仪器的思想,将热敏电阻和555时基集成电路构成的振荡电路的输出作为声卡MIC的输入信号,通过DirectX编程对声卡的采样信号进行计算,实现温度的实时采样。这种方法硬件实现简单,充分利用了计算机声卡的模数转换能力,可以较为精确地实现机房温度的采样,然后将采样温度写入数据库,最后通过网页编程或手机短信等形式就可以实现机房温度的远程监控。
关键词:DirectX;声卡;时基集成电路;热敏电阻
中图分类号:TP311 文献标识码:B 文章编号:1004373X(2008)1600602
Realization of Room Temperature Long Distance Monitoring System Based on Directx
WEI Ran,LI Xinlei
(Library,Henan Normal University,Xinxiang,453007,China)
Abstract:Room temperature is the most important issue in server′s normal work.Using virtual instrument thinking,thermistor and 555 time base oscillator circuit consisting of IC output as a MIC input audio signal through DirectX programming on the audio signal sampling,the realization of the realtime temperature sampling.Hardware implementation of this method simple,and making full use of the computer sound card analogdigital conversion capability and can be more precise achieve room temperature sampling,and then into the database,the final via the web programming or SMS,or other forms can be achieved room temperature remote monitoring.
Keywords:DirectX;sound card;timer IC;thermistor
声卡是多媒体计算机系统中最基本、最常用的硬件之一,其技术发展已经十分成熟,它具有A/D,D/A 转换功能,被广泛应用于声音信号的采集和虚拟仪器系统开发设计。555时基集成电路因其结构简单、使用灵活、定时精确、可靠性高且价格低廉而被广泛应用。Visual Basic2005是一种跨平台的面向对象编程语言,有运行速度快、多线程、安全可靠性高等优点。DirectX 为软件开发者提供硬件无关性,为硬件开发提供策略。微软的DirectX 软件开发工具包( SDK) 提供一套优秀的应用程序编程接口(APIs) ,这个编程接口可以提供开发高质量、实时的应用程序所需要的各种资源。
1 基于声卡采样温度信号的硬件设计
声卡是计算机中对声音进行A/D或D/A转换的器件,该器件的输入有MIC和LINEIN两种,输入电压通常在5 V以下。因为是对声音信号进行处理,所以它的输入部分是一个带通滤波器,通带频率通常是200 Hz~35 kHz。热敏电阻是开发早、种类多、发展较成熟的敏感元器件。热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化。若电子和空穴的浓度分别为n,p,迁移率分别为μn,μp,则半导体的电导为:σ=q(nμn+pμp)。因为n,p,μn,μp都是依赖温度T的函数,所以电导是温度的函数,因此可由测量电导而推算出温度的高低,并能做出电阻温度特性曲线。这就是半导体热敏电阻的工作原理。热敏电阻包括正温度系数(PTC)和负温度系数(NTC)热敏电阻,以及临界温度热敏电阻(CTR)。热敏电阻的主要特点是:灵敏度较高,其电阻温度系数要比金属大10~100倍以上;工作温度范围宽,常温器件适用于-55~315 ℃,高温器件适用温度高于315 ℃(目前最高可达到2 000 ℃),低温器件适用于-273~55 ℃;体积小,能够测量其他温度计无法测量的空隙、腔体及生物体内血管的温度;使用方便,电阻值可在0.1~100 kΩ间任意选择;易加工成复杂的形状,可大批量生产;稳定性好、过载能力强。
555无稳态多谐震荡电路采用5 V作为Vcc时,其输出为3.3 V左右,在声卡输入电压范围内,且输出为很整齐的方波,十分方便通过采样计算频率或周期。如果将555震荡电路(见图1)中的R2替换为合适的热敏电阻,那么其震荡频率将随着温度的变化而变化。选用合适的电阻(R1)和电容(C1),即可将555震荡电路的震荡频率控制在声卡能够处理的范围之内。由计算机的USB口提供5 V的电源,将555震荡电路的输出Vo作为声卡的输入,完成了温度采集的外围电路设计。
2 基于声卡采样温度信号的软件设计
2.1 DirectX概述
DirectX是微软公司针对Windows操作系统的非实时性而推出的一个开发库,目的是让图形图像、动画、多媒体和游戏程序开发人员能够轻松确定计算机的硬件性能,然后设置与之匹配的程序参数,使得多媒体软件程序能够在基于 Windows 的具有 DirectX 兼容硬件与驱动程序的计算机上运行,同时可确保多媒体程序能够充分利用高性能硬件。
DirectSound是DirectX的声音组件,是由基于组件对象模型(COM)的对象和接口组成的。DirectSound通过硬件抽象层(HAL)访问声音硬件,而不是直接操作硬件。HAL 是一个软件层,DirectSound是由HAL扩展的Windows设备驱动程序。实际上,可以将DirectSound看作对音频缓存的管理,它会尽量使用硬件的最高性能,如果当前硬件不具备某类特性时,DirectSound会使用软件进行仿真。
2.2 利用DirectSound从声卡采集555振荡电路的输出信号 DirectSound支持声音的捕捉。一般情况下可以遵循以下原则:生成DirectSound对象;设置Directsound对象的优先级别;枚举声音捕捉设备;生成DirectorSoundCapture对象;生成基于初级缓冲的CaptureBuffer;生成一个次级缓存用来输出;进行数据捕获和播放、存储。根据上述步骤用Visual Basic 2005通过编程实现对555振荡电路所产生的方波的捕获(对DirectSound编程的代码可参考DirectX SDK里CaptureSound的例程)。这里详细介绍对于555时基电路产生的方波的采样及其频率的计算方法。
当DirectSound使用48 000 Hz的采样频率对555时基电路所产生的方波(不大于10 000 Hz)进行采样时,根据采样定理(当采样频率fs大于信号中最高频率fmax的2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,采样定理又称奈奎斯特定理)可知,555时基电路产生的方波被采样后将可以被无失真的恢复出来。采样过程如图2所示,其中T代表方波周期,t代表采样周期,n代表采样次数,如果对方波进行采样1次,则T = nt,但这样误差较大。为了精确起见,可以对方波采样多个周期再取平均周期作为方波的周期,从而有:T = n t / m。
2.3 建立温度对照表,获取环境温度
根据555振荡电路周期公式:T = (R1+2R2)·Cln 2可知:R2 = (T/(Cln 2)R)/2。利用Visual Basic2005编程计算出R2,并将R2与将热敏电阻(这里用的热敏电阻为S103D)的温度/阻值对照表对照,即可获得当前机房温度,将该温度变量写入数据库或文本文件。当该温度超过某一阀值(可以自己根据情况设定)即可通过串口发送短信的方式将机房温度及时发送给机房管理人员,从而实现了机房温度的远程监控。
3 结 语
机房设备是否能够安全运行,是一个很严重问题,机房如果断电,空调设备停止运行,由于UPS的支持服务器和阵列继续工作,短短的1个小时,就可以使机房温度上升到40 ℃,服务器等设备在这种高温下运行是非常危险的。在此使用简单的555电路结合Visual Basic2005编程就能实现机房温度的远程监控,为管理人员能够及时发现机房环境的变化、消除隐患、
节约资金、防止不必要的损失提供了可行的解决方案。
参 考 文 献
[1]Bill Evjen,Billy Hollis.VB.NET高级编程\.3版.北京:清华大学出版社,2005.
[2]傅宇旭.DirectorX 7.0高级编程\.北京:科学出版社,
2000.
[3]阎石.数字电子技术基础\.4版.北京:高等教育出版社,2001.
作者简介 魏 然 男,1978年出生,河南新乡人,助理工程师,学士,毕业于河南师范大学电子信息工程专业,现就职于河南师范大学图书馆。研究方向为数据库与软件开发。
李新磊 男,1978年出生,河南新乡人,助理工程师,学士,毕业于河南师范大学计算机学院,现就职于河南师范大学图书馆。研究方向为数据库与软件开发。