剖析CPU风扇的监控
硬件周刊
一般人可能会这样认为,CPU风扇监控的原理就是监视风扇的转速,当风扇停转时发出报警。实现起来也比较容易,用一个带有特定电路的三线、三插针风扇,在主板上或芯片组内设计一个数字式计数装置,最后通过软件完成计数和在屏幕上显示。事实上果真如此简单吗?
问题1:不知道大家注意到没有,当你把CPU风扇监控功能打开之后,屏幕上显示风扇的转速是4000转/分,你一定会认为风扇工作正常,但假如风扇此时出现故障,转速正在降低的话,屏幕上显示的却依然为4000转/分。这是什么原因呢?
问题2:也许你还有这样的经历,原来的主板虽然带有风扇监控功能,但所配的是一个两插针的普通风扇,升级电脑时,换了一个新的三插针风扇,安装在主板上之后,却发现监控装置显示其提速缓慢,无论怎么换,结果还是一样。这又是怎么回事呢?
我们先来了解CPU风扇监控功能的原理。大家知道,当要监控风扇的旋转时,首先需要将旋转的每一周转换成为一个电子脉冲信号,然后经过放大、整形后将其转换成一个个脉冲信号串,这部分工作用带有霍尔电路的三线风扇即可办到。接下来再用电子计数器,将每一个脉冲信号逐一计数,最后经软件处理传给显卡和显示器,显示具体的转速。因为目前各种风扇的转速还没有超过10000转/分,所以只要使用四位的计数器电路,指示范围从0~9999转,就可基本满足对目前市场上各类风扇的监控要求。
不过一般风扇所标明的转速,是以该风扇每一分钟内所能够稳定达到的转速作为标准的。因此为了准确、稳定地显示风扇的转速,电子计数器应该做到:在规定的一分钟时间内开启计数,而超过了这一分钟计数时间后,计数器将关闭,并开始通过显示电路显示具体的计数数值。在这一时间段内,被监控的风扇转速无论发生任何变化,都将无法被计数电路所获得。只有等显示电路显示时间后并重新进入计数状态时,才能够重新开始进行新的计数过程。也就是风扇转速的显示数值,明显滞后于风扇转速的变化,专业一点地说,就是采样时间或频率影响显示的即时性问题。
上文第二个问题与显示时间的长短有直接的关系。显示时间的长短与两个因素有关:一个是屏幕显示数值的稳定性,另一个是风扇转速监控的准确、及时性。例如我们把计数时间设定为一分钟,而显示时间也同样设定为一分钟。风扇当时的实际转速是2000转/分的话,那么显示的转速值也应该是2000转/分。但是,当计数器停止计数,转入显示的这一段时间之内,如果风扇转速发生了变化,比如转速提高到了2200转/分,由于此时的计数器正在处于封闭计数的显示阶段,所以它的显示值依然是2000转/分,只能等待显示时间结束后重新进入计数状态,且计数时间满一分钟之后,才能完成对于转速变化的计数过程,并在下一个显示周期内响应2200转/分的显示。换句话说,就是显示时间过长,不能即时监控显示。因此,当你在这种主板上,换一个新风扇之后,由于风扇从启动到稳定运转需要一个过程,在这一时间段内风扇转速并不稳定,一般的情况下转速较低,但是经过一段时间后,会逐渐加速到标准转速,而此时计数器已完成了不稳定转速的记录,并进入了显示时间段,给人的直觉就是风扇的提速较慢,但是,只要耐心地等待一段时间,它便会显示出风扇的正确转速值。
那么,为了尽量提高转速显示的即时性,是不是把显示的时间设定得越短越好呢?非也。如果我们把显示时间调整得过短的话,由于计数的时间较长而显示的时间过短,显示的数值将无法稳定下来,甚至会出现数值显示不全的现象,因此一般情况下显示时间大约在25秒左右。
既然这种风扇监控电路存在着上述缺点,我们如何才能够克服它呢?我们知道,影响显示即时性的主要因素是计数器的计时时间较长造成的,因此降低计数时间是唯一的解决方法。如果我们将某一标准转速为4000转/分风扇的转速值除以60,得到的结果大约是66.6转左右,它是该风扇在1秒钟时间的转速,在主板上或芯片组内另外设计一个计数器,显示时再将结果乘以60,即是该风扇的真实转速。如此一来就可以很好地解决显示即时性的问题。当然,这样做会提高主板的生产成本。