60 秒速答
选 PWM 控制,如果...
- 主机是单片机、BMC、PLC(有 PWM 输出脚)
- 需要 0-100% 连续变速
- 要跟 FG 配合做闭回路控制
- 4-pin 业界标准
需要 FG / RD 回授,如果...
- 需要监测风扇是否运转正常
- 要做风扇故障报警(医疗、服务器、电信)
- 要做闭回路转速控制(FG)
- 只要有/没有运转的二进位状态(RD)
用 0-10V 模拟,如果...
- 主机是建筑 HVAC BMS 或旧工业模拟控制系统
- 原生输出 0-10V 或 4-20mA
- 建议改用 EC 风扇(DC 风扇多数不原生支持 0-10V)
为什么工业 DC 风扇需要信号线
2 线(只有 +V 跟 GND)的 DC 风扇是最原始的设计 — 通电就以满速转动,断电就停。对于消费性电子或低成本机台这样就够了,但工业环境有三个额外需求:
- 变速:机柜温度低时降速省电 + 降噪音、温度升高时加速;单一速度设计不是太吵就是散热不够。
- 监测:风扇是机械零件、会老化会卡死,主机需要知道每颗风扇的运转状态,故障时即时警报、不要等到关键设备过热才发现。
- 集成:风扇要跟主机的控制系统(PLC、BMC、HVAC 控制器)对话 — 不能只靠人工调速。
这三个需求催生了四种标准信号:PWM 处理变速命令、FG 跟 RD 处理回授监测、0-10V 处理跟旧模拟系统的兼容。下面逐一展开。
PWM(脉宽调制)— 主流速度命令
运作原理
PWM 是 Pulse Width Modulation 的缩写。主机端送一个固定频率(业界标准 25 kHz)的方波,方波在「高电位」跟「低电位」之间切换,高电位占整个周期的比例(duty cycle)就是速度命令:
duty cycle = 100%→ 一直高电位 → 满速duty cycle = 50%→ 高低各半 → 约 50% 速度duty cycle = 20%→ 多数时间低电位 → 最低速
关键:不是用电压高低控速,是用「时间比例」控速。所以即使主机只能输出固定 3.3V 或 5V,也能传出 0-100% 的连续速度命令。
为什么选 25 kHz?
- 高于人耳听觉上限(人耳极限约 20 kHz)— 避免变速时听到啁啾声
- 低於单片机 PWM 产生极限 — Arduino、STM32、ESP32 等主流单片机都能轻松产生 25 kHz
- 跟风扇驱动 IC 设计带宽匹配 — 马达控制 IC 在这个频段滤波最干净
少数老型号用 5 kHz 或 1 kHz,这类设计变速时容易产生人耳听得到的啁啾噪音,现代工业设计几乎都用 25 kHz。采购时建议明确要求「Intel 4-Wire PWM Fan Specification 兼容」即可确保 25 kHz。
PWM duty cycle 对应实际转速
线性对应只是理想情况。实务上多数工业 DC 风扇的行为:
| Duty cycle | 实际转速行为 |
|---|---|
| 0% (一直低电位) | 多数型号强制最低转速(30-40% 满转),避免完全停止后无法重启 |
| 10-20% | 不确定区间,可能无法稳定启动,建议避开 |
| 20-100% | 线性对应 30-100% 实际转速 |
| 100% (一直高电位) | 满速 |
* 上述对应关系为一般业界行为描述,不同厂商不同型号的低 duty 行为(最低速强制值、无法启动门槛)会有差异。实务建议:把 PWM 控制范围规划在 20-100% 之间运用,避开不确定区间;具体型号的低 duty 行为请以该型号 datasheet 公布值为准。
主机端怎么产生 PWM
- 单片机(Arduino、STM32、ESP32、Raspberry Pi Pico):用 Timer 模块产生硬件 PWM,几乎所有主流 MCU 都支持
- BMC(服务器主控):芯片组原生 PWM 输出,BMC 固件控制 duty cycle
- PLC:多数工业 PLC 支持 PWM 输出模块,但要确认频率可达 25 kHz;旧型号可能只到 1-5 kHz,需转接
- 专用风扇控制器:自带温度传感+PWM 输出逻辑的小型 IC(如 MAX31790、EMC2301),常见于成本敏感应用
FG / TACH — 转速回授信号
运作原理
FG(Frequency Generator)也叫 TACH(Tachometer),是从风扇传出来给主机读的信号(跟 PWM 方向相反)。风扇内部 Hall sensor 侦测磁铁转动,每转一圈产生 2 个脉冲(业界标准 2 PPR — Pulses Per Revolution)。
主机端读取脉冲频率,换算成 RPM:
RPM = (FG 频率 Hz × 60 秒/分) / 2 PPR
例如 FG 频率 100 Hz → RPM = 100 × 60 / 2 = 3000 RPM。
输出形式:开集极(Open Collector)
绝大多数 DC 工业风扇的 FG 输出是开集极设计 — 风扇内部只有一颗 NPN 晶体管把 FG 线拉到 GND,没有主动拉高的能力。要读取信号,主机端必须外置 pull-up 电阻到 V+:
常用 pull-up 电阻值 4.7 - 10 kΩ。电阻太小(<1 kΩ)会增加电流消耗、太大(>47 kΩ)信号上升边太缓慢可能被主机读错。
* 电压兼容警告:若主机端用 5V 逻辑读但风扇是 12V 系统,pull-up 必须拉到 5V(不是 12V),否则 FG 信号会送 12V 进主机 GPIO 烧芯片。安全做法:FG 线跟主机 GPIO 之间加 level shifter 或电阻分压。少数新型号 FG 内置 push-pull 输出(不需 pull-up),采购时务必跟厂商确认。
FG 的两个主要用途
- 故障侦测:FG 突然停止输出脉冲 → 风扇卡死 → 触发警报。这是医疗、服务器、电信机房的标配。
- 闭回路转速控制:主机 PID 算法根据目标 RPM 跟实际 FG 读回的 RPM 做误差补偿,动态调整 PWM duty。比起开回路(只设 PWM 不看回授)能补偿风扇老化、轴承磨损等长期变化。
RD / Locked-rotor — 锁死警报信号
RD(Rotation Detector,也叫 Locked-rotor Output 或 Alarm Output)是 FG 的简化版 — 只输出「有没有在转」的二进位状态,不算 RPM。
RD vs FG 比较
| 项目 | FG | RD |
|---|---|---|
| 信号类型 | 连续脉冲(2 PPR) | 二进位电位(高 or 低) |
| 主机端处理 | 计频率 + 算 RPM | 只读 GPIO 状态 |
| 能算 RPM 吗? | 能 | 不能 |
| 侦测卡死 | 能(脉冲停止) | 能(电位翻转) |
| 固件复杂度 | 高(需脉冲计数中断) | 低(单纯 GPIO 读) |
| 典型应用 | BMC、PID 控制、服务器 | 低成本工业控制盘、PLC GPIO |
实务上,需要精确转速选 FG,只想知道风扇有没有挂掉选 RD。RD 多数型号跟 FG 是互斥的(同一条信号线只能设置其一),采购时要明确指定。
0-10V 模拟 — 老系统的模拟命令
运作原理
0-10V 模拟信号跟 PWM 概念完全不同 — 不是用方波的时间比例编码,而是用直流电压的高低直接对应速度:
0V→ 最低速 / 停转5V→ 50% 速度10V→ 满速
类似信号还有 4-20mA 电流回路(工业模拟标准,对抗线材电压降)跟 2-10V(部分欧洲 HVAC 标准)。
主要应用:建筑 HVAC 跟旧工业模拟系统
- 建筑 BMS(Building Management System):Honeywell、Siemens、Johnson Controls、Schneider 等楼宇自动化系统几乎都是 0-10V 控制标准
- 旧型工业模拟控制盘:80-90 年代的工业设备几乎都是模拟信号
- VFD 变频器:多数工业变频器原生输出 0-10V,可直接驱动 EC 风扇变速
注意:纯 DC 风扇多数不原生支持 0-10V
多数 DC 风扇只接受 PWM 不接受 0-10V。如果你的控制系统原生输出 0-10V,三个选项:
| 选项 | 做法 | 实务评价 |
|---|---|---|
| 1. 改用 EC 风扇 | EC 原生支持 0-10V 输入,AC 市电输入,drop-in 取代 | ★★★ 最干净、HVAC retrofit 首选 |
| 2. 加 0-10V→PWM 转换模块 | Op-Amp + 555 timer 或专用 IC(如 LM555) | ★★ 额外电路、额外故障点 |
| 3. 重新设计控制系统 | 主机改输出 PWM | ★ 工程量大、仅新建系统考虑 |
实务上选项 1 最常用 — 如果你的应用本来就吃 AC 市电 + 0-10V 控制,EC 风扇是 drop-in 替换最理想的选择。详细请参阅 DC vs EC vs AC 风扇比较指南。
2-pin / 3-pin / 4-pin 接脚对照
DC 风扇接脚数量决定你能用哪些信号:
| 线数 | 线色 / 功能 | 支持功能 | 典型应用 |
|---|---|---|---|
| 2-pin | 红: V+、黑: GND | 固定速度,无变速、无回授 | 消费性电子、简单通风 |
| 3-pin | 红: V+、黑: GND、黄: FG | 固定速度 + 转速回授 | 有监测需求但没变速需求的工业设备 |
| 4-pin(PWM 标准) | 红: V+、黑: GND、黄: FG、蓝: PWM | 变速 + 转速回授(业界主流) | 服务器、工业 BMC、PLC 变速控制 |
4-pin 业界标准脚位(Intel 4-Wire PWM Fan Specification)
从连接器边缘往内看(凸起卡榫朝上):
连接器规格:Molex 5557 系列、4.2mm pitch(部分工业型号改用 JST PH 2.0mm 或裸线+端子台)。
* 线色警告:上述线色为 PC 业界 Intel 规范,但工业型号各厂商可能调换颜色(特别是 12V/24V/48V 多种电压系列为了区分电压会调整红/黄/橘)。采购时务必跟厂商索取实际线色对应表,否则接反电源会直接烧驱动 IC。
信号电平与兼容性
PWM 输入电平
| 主机输出 | 常见风扇规格 | 兼容性 |
|---|---|---|
| 3.3V CMOS | 多数工业 DC 风扇容许 3.3V 或 5V 输入 | 多数情况可直接接 |
| 5V TTL/CMOS | 业界主流规格 | 原生兼容 |
| 12V 逻辑 | 少数旧规格(特别是早期 HVAC) | 需确认,可能要降压 |
FG 输出电平与 pull-up 配置
FG 输出电位由 pull-up 决定,不是风扇主动推(除非是 push-pull 设计)。所以:
- 主机 5V GPIO 读 FG → pull-up 拉到 5V → FG 输出 0V/5V 切换 ✓
- 主机 3.3V GPIO 读 FG → pull-up 拉到 3.3V → FG 输出 0V/3.3V 切换 ✓
- 主机 3.3V GPIO,pull-up 拉到 12V → FG 输出 0V/12V → 12V 灌进 3.3V 主机 GPIO → 烧芯片!
常见错误:把 FG pull-up 接到 V+(12V 或 24V 系统电源),主机端用 5V 或 3.3V GPIO 直读。这会在每个 FG 脉冲瞬间送过电压进主机。解法:pull-up 拉到主机逻辑电压(不是风扇电源),或加电阻分压 / level shifter。
实作情境(PLC / BMC / Arduino / HVAC)
设备:Arduino Uno(5V 逻辑)+ 12V DC 风扇 + 12V 电源供应器
analogWrite()+ Timer1 设 25 kHz,attachInterrupt() 在 FG 脉冲计数。设备:Mitsubishi/Siemens PLC + 24V DC 风扇 × 4 + PT100 温度传感
设备:Aspeed BMC 芯片 + 48V DC 风扇 × 8 + 机架温度传感
设备:Johnson Controls BMS(0-10V 输出)+ 原本 230V AC 三相风机 + 客户想升级节能
设备:嵌入式 Linux 主板(3.3V 逻辑)+ 12V DC 风扇 + 故障必须立即警报