1012 字
5 分钟
STM32 以太网接口硬件设计全方案:从 PHY 选型到硬件协议栈

1. 引言#

在工业物联网(IoT)和自动化控制领域,STM32 凭借其强大的外设性能成为主流选型。然而,以太网接入一直是硬件设计的难点:有的 STM32 芯片内置了 MAC,有的则完全没有网络外设。如何根据应用场景选择最经济、稳定的以太网接口方案?本文将深度解析 STM32 以太网设计的几种主流路径。


2. STM32 以太网架构基础#

在深入选型前,必须理解以太网通信的两个核心层:

  • MAC(媒体访问控制层):负责寻址、帧过滤和流量控制。
  • PHY(物理层):负责将数字信号转换为适合在双绞线上传输的模拟信号。

STM32 芯片通常分为两类:

  1. 内置 MAC 的型号(如 STM32F107, F407, F7 系列):只需外接一个 PHY 芯片 即可,通过 MII 或 RMII 接口连接。
  2. 不带网络外设的型号(如 STM32F103, L0 系列):需要外接 集成了 MAC+PHY 的独立控制器,通常通过 SPI 或 FSMC 并行总线连接。

3. 硬件选型方案分类对照#

方案 A:独立 PHY 芯片(利用 STM32 内置 MAC)#

适用对象: STM32F407/F746 等带有以太网外设的芯片。

  • 代表芯片: LAN8720A / DP83848 / RTL8201
  • 接口方式: RMII(精简媒体独立接口,仅需 7-9 根线)。
  • 优点: 成本最低(PHY 芯片极便宜),吞吐量大(可接近 100Mbps 物理极限)。
  • 挑战: 必须在 STM32 中运行 LwIP 或 FreeRTOS-TCP 等软件协议栈,占用大量 Flash 和 RAM 资源,且开发周期较长。

方案 B:集成硬件 TCP/IP 协议栈芯片#

适用对象: 所有 STM32 型号,尤其适用于主频较低、内存较小的芯片。

  • 代表芯片: W5500 (WIZnet), CH395 (沁恒)

  • 接口方式: 高速 SPI(可达 80MHz)。

  • 核心优势: 协议栈固化在芯片内部。单片机只需通过 SPI 读写寄存器即可发包。

  • 零 CPU 占用: 所有的 TCP 三次握手、重传、分片都在外挂芯片完成。

  • 高安全性: 硬件协议栈天生免疫某些网络层溢出攻击。

  • 缺点: 相比软件协议栈,多 socket 连接数受限(W5500 支持 8 路)。


方案 C:MAC + PHY 一体化控制器(纯控制器)#

适用对象: 系统没有内置 MAC,但开发者仍想使用软件协议栈的情况。

  • 代表芯片: ENC28J60 (10M), DM9000 (100M)
  • 接口方式: SPI (ENC28J60) 或 并行总线 (DM9000)。
  • 现状: ENC28J60 功耗大且仅支持 10Mbps,目前在 STM32 开发中已逐渐被 W5500 取代;DM9000 则因占用过多 IO 口,在小型嵌入式系统中应用较少。

4. 关键硬件设计考量#

在设计 PCB 时,以太网属于高速差分信号,必须注意:

  1. 差分走线: TX+/TX- 和 RX+/RX- 必须严格平行走线,阻抗控制在 100Ω ±10%
  2. 网络变压器(Transformer): 必须在 PHY 芯片与 RJ45 座子之间加入变压器(或直接使用带变压器的集成 RJ45 座),提供 1.5kV 的电气隔离保护。
  3. 时钟同步: * RMII 模式通常需要 50MHz 时钟。建议由 PHY 芯片产生 50MHz 输出给 STM32,或者使用独立有源晶振,以减少相位抖动。

5. 决策指南:我该选哪个?#

为了方便大家快速决策,可以参考下表:

需求优先级推荐方案核心选型
极致低成本 / 高性能内置 MAC + PHY 芯片STM32F407 + LAN8720
快速开发 / 稳定性 / 内存小硬件协议栈芯片STM32F103 + W5500
极简 IO 占用 / 10M 足够集成控制器ENC28J60
串口直接转网口通信模块CH9121

6. 总结#

STM32 以太网设计并非只有一种答案。如果你的项目对数据实时性要求极高且团队有 LwIP 调试经验,RMII + PHY 是标准工业方案;如果你希望在一周内实现稳定的联网功能,且不希望被复杂的 TCP 握手逻辑困扰,W5500 硬件协议栈 方案无疑是当下的最优解。

STM32 以太网接口硬件设计全方案:从 PHY 选型到硬件协议栈
https://hw.rscclub.website/posts/stm32ytwjksj/
作者
杨月昌
发布于
2018-10-23
许可协议
CC BY-NC-SA 4.0