第2章:网关硬件选型
好,咱们开始聊硬件选型。这一章我打算从三个核心维度展开:主控芯片选什么、通信模块怎么挑、电源电路有哪些坑。说白了,就是帮你把网关的「骨架」搭起来。
2.1 主控芯片选型:STM32 vs ESP32
主控芯片是网关的大脑。选错了,后面所有工作都得推倒重来。我个人习惯先看项目需求,再定芯片。
先说说 STM32 系列。 这是工业领域的常青树。我最早做 Modbus 网关时,用的就是 STM32F103。为什么选它?因为稳定、资料多、生态成熟。
- 优势:抗干扰能力强,工作温度范围宽(-40°C 到 85°C),有丰富的定时器和 DMA 控制器。做 Modbus RTU 轮询时,DMA 能帮你省掉大量 CPU 开销。
- 劣势:内置的以太网 MAC 需要外接 PHY 芯片,成本会上去。Wi-Fi 和蓝牙?基本别想,得外挂模块。
- 适合场景:纯有线网关、对实时性要求高的工业现场。
再聊聊 ESP32。 这芯片刚出来时,我其实有点看不上。觉得它太「消费级」了。后来在一个远程监控项目里,客户非要加 Wi-Fi 功能,我才硬着头皮试了试。结果发现,真香。
- 优势:内置 Wi-Fi 和蓝牙,双核处理器,价格便宜(不到 20 块)。做 Modbus TCP 转 Wi-Fi 的网关,一片 ESP32 就够了。
- 劣势:ADC 精度一般,工业级温度范围不如 STM32。我曾经在 85°C 的环境下测试,ESP32 偶尔会重启。
- 适合场景:需要无线通信、成本敏感、环境不太恶劣的项目。
怎么选? 我列个对比表,你一看就明白。
| 对比项 | STM32F4系列 | ESP32 |
|---|---|---|
| 主频 | 168 MHz | 240 MHz |
| SRAM | 192 KB | 520 KB |
| 以太网 | 需外接 PHY | 需外接 PHY |
| 无线 | 无 | Wi-Fi + BLE |
| 工业温度 | -40~105°C | -40~85°C |
| 价格(批量) | 约 25 元 | 约 15 元 |
我的建议:如果你做的是 Modbus RTU 转 TCP 的网关,且现场有强电磁干扰,选 STM32。如果你需要 Wi-Fi 上报数据,或者预算紧张,选 ESP32。我有个项目两种芯片都用了——STM32 做协议解析,ESP32 做无线透传,分工明确。
2.2 通信模块选择
网关嘛,核心就是「通」。通信模块选不好,数据就传不出去。
RS-485 模块:这是 Modbus RTU 的物理层。我建议你直接买隔离型的。为什么?因为工业现场地电位差太大。我曾经在一个工厂里,没加隔离的 RS-485 芯片,一上电就冒烟。后来换了 ADM2483 隔离芯片,再也没出过问题。
- 推荐型号:SP3485(非隔离)、ADM2483(隔离)
- 关键参数:波特率支持到 115200 以上,ESD 防护等级至少 ±15 kV
以太网模块:做 Modbus TCP 必须的。STM32 通常用 RMII 接口接 PHY 芯片。我常用的 PHY 是 LAN8720A,便宜又好买。注意一点:PHY 芯片的时钟源要选对,有些用 50 MHz 有源晶振,有些用主控的 MCO 输出。搞错了,网络死活不通。
- 推荐型号:LAN8720A、DP83848
- 关键参数:支持 10/100M 自适应,Auto-MDIX 自动翻转
无线模块:如果你用 ESP32,Wi-Fi 是内置的。但如果你用 STM32,就得外挂模块。我试过 ESP8266 和 ESP32-S2 作为协处理器。说实话,ESP8266 够用,但稳定性差点。ESP32-S2 好一些,支持 USB 和 SPI 通信。
避坑指南:我曾经用 ESP8266 做 Wi-Fi 透传,结果发现它 AT 指令的响应时间不稳定。后来改用 SPI 直连 ESP32-S2,用自定义协议通信,延迟从 50 ms 降到了 5 ms。嗯,这里要注意:模块之间的通信协议,最好自己定,别依赖 AT 指令。
2.3 电源电路设计要点
电源是网关的命脉。我见过太多网关死机,最后发现是电源纹波太大。
输入电压范围:工业现场常用 24V DC。我建议你选宽压输入的 DC-DC 模块,比如 9V 到 36V 都能工作。这样即使现场电压波动,网关也不会掉电。
- 推荐方案:先用 MP2451 或 TPS5430 把 24V 降到 5V,再用 AMS1117-3.3 转 3.3V。
- 注意:5V 给 RS-485 和继电器供电,3.3V 给主控和以太网 PHY。分开供电,避免干扰。
纹波控制:我习惯在 DC-DC 输出端加 LC 滤波。电感选 10 μH,电容选 100 μF 电解 + 0.1 μF 瓷片。这样纹波能控制在 50 mV 以内。如果你做的是高精度采集网关,纹波最好压到 20 mV 以下。
警告:千万别把 24V 直接接到 3.3V 的芯片上。我有个同事,调试时接错了线,一片 STM32 直接烧了。嗯,电源防反接电路一定要加,用个二极管或者 PMOS 管都行。
功耗估算:一个典型的 Modbus 网关,总功耗大概在 2W 到 5W 之间。我算给你看:
- 主控 STM32F4:约 0.5W
- RS-485 模块:约 0.3W
- 以太网 PHY:约 0.4W
- Wi-Fi 模块:约 0.8W
- 其他(LED、电阻等):约 0.2W
加起来大概 2.2W。如果你用 ESP32,功耗会低一些,但 Wi-Fi 发射时峰值电流能到 500 mA,电源得留够余量。
我的经验:电源设计时,我习惯留 30% 的余量。比如计算需要 2W,我就选 3W 的 DC-DC 模块。这样即使后期加功能,也不用重新改板子。
好了,硬件选型这块就聊到这儿。下一章咱们开始画原理图,到时候我会把每个引脚的连接都讲清楚。你先把主控和通信模块定下来,电源方案想好,后面就顺了。