关于服务器风扇的接口信号

项目组提了一个需求,要用CPLD做一套风扇的控制逻辑,在BMC挂掉或者未启动的时候接管风扇的控制,于是研究了一下风扇的控制逻辑。

1、接口

一般服务器或交换机上的风扇接口都会走以下几种信号:(1)POWER;(2)GND;(3)PWM;(4)TACH/FG;(5)LED。

关于服务器风扇的接口信号_第1张图片

(1)(2)POWER、GND:风扇上一般都是12V供电的,红线接12V,黑线接GND。不过也有风扇是正负54V供电的,为了获取更强的驱动能力。

(3)PWM:风扇的转速控制一般是通过PWM来控制的,频率一般为25K到50K,占空比从10%到100%可调。PWM引脚的输入匹配电路如下图所示。从图中可以看出在风扇内部事实上是将输入端电平匹配到了3.3V,因此默认情况下风扇都是满速转的。关于PWM对风扇的控制,笔者猜测应该是通过PWM控制内部MOS的开关来调节风扇的输入电压,类似于开关电源的方法来控制输入给电机的电压值,电压越高对应的转速越快。

关于服务器风扇的接口信号_第2张图片

(4)TACH信号:全称是tachometer,转速表的意思,一些说明书里也被称为FG(Frequency Generator)信号。Tach信号输出的是一个频率可变的方波信号。其原理是,在风扇转子旁边布置了一个霍尔传感器,当电机转动的时候,电机的转子的磁体经过霍尔传感器时,输出一个高电平,经过信号处理后输出一个方波。方波的2个周期的时间就是电机转子转动一圈的时长。因此,电机转速rpm=freq*60/2。

关于服务器风扇的接口信号_第3张图片

关于服务器风扇的接口信号_第4张图片

另外,对于BMC来说,其读取风扇转速的原理是使用24M的频率进行采样,设置一个计数器,每一个时钟周期会对计数器+1,直到计满2个周期后,将计数器的值保存在一个名叫TachoValue的寄存器里,然后进程通过读取该寄存器的值即可通过换算获取风扇的转速。

换算公式是RPM=24M*60/(2*TachoValue*TachoClkDivision)

你可能感兴趣的:(学习总结,硬件基础)