天天看點

關于伺服器風扇的接口信号

項目組提了一個需求,要用CPLD做一套風扇的控制邏輯,在BMC挂掉或者未啟動的時候接管風扇的控制,于是研究了一下風扇的控制邏輯。

1、接口

一般伺服器或交換機上的風扇接口都會走以下幾種信号:(1)POWER;(2)GND;(3)PWM;(4)TACH/FG;(5)LED。

關于伺服器風扇的接口信号

(1)(2)POWER、GND:風扇上一般都是12V供電的,紅線接12V,黑線接GND。不過也有風扇是正負54V供電的,為了擷取更強的驅動能力。

(3)PWM:風扇的轉速控制一般是通過PWM來控制的,頻率一般為25K到50K,占空比從10%到100%可調。PWM引腳的輸入比對電路如下圖所示。從圖中可以看出在風扇内部事實上是将輸入端電平比對到了3.3V,是以預設情況下風扇都是滿速轉的。關于PWM對風扇的控制,筆者猜測應該是通過PWM控制内部MOS的開關來調節風扇的輸入電壓,類似于開關電源的方法來控制輸入給電機的電壓值,電壓越高對應的轉速越快。

關于伺服器風扇的接口信号

(4)TACH信号:全稱是tachometer,轉速表的意思,一些說明書裡也被稱為FG(Frequency Generator)信号。Tach信号輸出的是一個頻率可變的方波信号。其原理是,在風扇轉子旁邊布置了一個霍爾傳感器,當電機轉動的時候,電機的轉子的磁體經過霍爾傳感器時,輸出一個高電平,經過信号處理後輸出一個方波。方波的2個周期的時間就是電機轉子轉動一圈的時長。是以,電機轉速rpm=freq*60/2。

關于伺服器風扇的接口信号
關于伺服器風扇的接口信号

另外,對于BMC來說,其讀取風扇轉速的原理是使用24M的頻率進行采樣,設定一個計數器,每一個時鐘周期會對計數器+1,直到計滿2個周期後,将計數器的值儲存在一個名叫TachoValue的寄存器裡,然後程序通過讀取該寄存器的值即可通過換算擷取風扇的轉速。

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

繼續閱讀