BMC的风扇控制 (Fan speed control)

本文介绍了服务器风扇控制的重要性和基本原理,包括PWM信号用于设定风扇转速,TACH信号用于反馈风扇实际转速。重点讲述了PID控制算法,通过比例、积分和微分三个部分调整风扇转速,以保持系统温度稳定。同时提到了Stepwise控制作为对比,以及在实际应用中防止过热和过度冷却的策略。

BMC的风扇控制算一个蛮重要的功能,那这个功能包含了"TACH"和"PWM"这两个常用讯号怎么解读,还有最常用的控制演算法"PID(closed loop)"和"Stepwise(openloop)",而Error control ,因为每家做法不同,就不会在这边作介绍

##实作代码是来自Facebook的openBMC

Why and how to do fan speed control ?

在服务器中的风扇是非常高速也耗电的,根据统计在数据中心的运维成本上,电费占了7成,并且如果让风扇长期处在全转状态也会有噪音和耗损度的问题。

目前CPU可以达到单一耗电量200W以上,伴随而来的高热也会使个晶片老化速度加快,当然服務器中的SSD, NIC card, E1.S等装置也是有同样的情况,因此我们希望能根据这些高热的元件温度来决定风扇的转速,达到省电和正常运作的效果

风扇控制的做法如下:

  1. Thermal team(热流部门) 通常会提供一个fan table,里面会详细描述风扇要怎么转
  2. BMC (controller) 会透过PWM讯号去设定风扇转速
  3. 风扇也能透过TACH讯号来回传目前的转速

PWM(Pulse-Width Modulation)

PWM是透过平均电压来传递类比讯号,简单来说就是在一个cycle中,高电为占百分之多少,就表示他要传递的值是多少

例如在一个周期中,如果高电位占25%,低电位占75%,这样表示我们要传递的值是25%,风扇就会转25%

那如果今天我们都一直是high (高电位),这样风扇就会全转,因此在线路图的review过程中,都会注意PWM有没有pull high,避免在BMC更新过程或是死掉后,机器过热

那每个周期的时间是多少呢?  PWM的传递频率会定义在风扇的spec中,每一颗风扇的接收频率有可能会不一样

TACH (Tachometer)

我们可以透过Tach来传递风扇的转速,有修过机械方面的课程就会知道,马达会有n个机械原点,传一圈的话会产生n个pulse,一圈会产生几个pulse也是定义在风扇的spec中

假如今天风扇转一圈会产生两个pulse,我们在一秒内收到1000个pulse,这样表示风扇一秒转了500圈,风扇转速是用rpm(一分钟转几圈)表示的,因此500*60 rpm就是我们要求的值

TACH的讯号大概就长得像底下这样,只要统计一秒钟有几个讯号,就能得到风扇的转速

Picture provided by: http://www.angelfire.com/super/ghettoretta/m90/windowswitch.htm
Picture provided by: http://www.angelfire.com/super/ghettoretta/m90/windowswitch.htm

System Control  

在传统控制(Classical Control )理论中,通常会用有没有feedback 来区分open loop control 和 closed loop control,前者通常就是我们常说的stepwise,后者就是工业控制中广泛使用的PID control,他们的示意图如下,接下来会分别介绍这两个算法的的内容

Open loop control  演算法 (Stepwise)

Open loop,会根据input来直接求出output并输出,不会参考feedback或任何的actuatin

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值