ESP-IDF 例程——ethernet

11. ethernet 目录

11.1 basic

字段 描述
例程名称 以太网基本功能示例
所在文件夹路径 examples\ethernet\basic
核心功能说明 演示以太网驱动的基本使用方法,包括内部EMAC和SPI以太网模块的初始化、IP获取和网络通信
主要调用的内部/外部函数或模块 - esp_eth 组件
  • esp_netif 组件
  • 以太网驱动初始化函数
  • DHCP 客户端
  • 支持多种PHY芯片(LAN8720, IP101, DP83848, RTL8201)
  • 支持SPI以太网模块(DM9051, W5500, KSZ8851SNL) |
    | 输入输出参数说明 | 配置参数:
  • 通过menuconfig配置以太网类型(内部EMAC或SPI模块)
  • PHY地址、复位GPIO等硬件配置
  • SPI时钟速率和GPIO引脚分配

输出结果:

  • 以太网初始化状态
  • 链路状态变化
  • 硬件MAC地址
  • 获取的IP地址、子网掩码和网关
  • 网络连接状态 |
    | 适用场景及典型应用案例 | - 以太网通信的基础开发模板
  • 多以太网接口配置示例
  • 不同PHY芯片的兼容测试
  • SPI以太网模块的使用演示
  • IoT设备的有线网络连接 |

11.2 iperf

字段 描述
例程名称 以太网性能测试示例
所在文件夹路径 examples\ethernet\iperf
核心功能说明 使用iperf协议测试以太网的吞吐量和带宽,支持UDP模式的上行和下行测试
主要调用的内部/外部函数或模块 - esp_eth 组件
  • esp_netif 组件
  • iperf 协议实现
  • console 组件(命令行界面)
  • 支持内部EMAC和SPI以太网模块 |
    | 输入输出参数说明 | 配置参数:
  • 通过menuconfig配置以太网类型和硬件参数
  • 命令历史记录存储设置
  • iperf测试参数(模式、持续时间、报告间隔等)

输出结果:

  • 上行带宽测试结果(ESP32作为客户端,PC作为服务器)
  • 下行带宽测试结果(ESP32作为服务器,PC作为客户端)
  • 带宽数据(Mbps)
  • 数据包丢失率
  • 抖动情况 |
    | 适用场景及典型应用案例 | - 以太网性能评估
  • 网络优化和调试
  • 不同硬件配置下的性能比较
  • 产品开发中的网络性能测试
  • 网络设备的基准测试 |

11.3 ptp

字段 描述
例程名称 以太网精确时间同步示例
所在文件夹路径 examples\ethernet\ptp
核心功能说明 演示使用Precision Time Protocol (PTP) 在以太网网络中实现高精度时间同步,支持主从模式
主要调用的内部/外部函数或模块 - esp_eth 组件(支持硬件时间戳)
  • PTPv2 协议实现
  • L2 TAP 接口
  • GPIO 脉冲生成
  • Nuttx PTPD 移植 |
    | 输入输出参数说明 | 配置参数:
  • PTP 角色(主设备或从设备)
  • 脉冲宽度和频率配置
  • 以太网硬件参数
  • PTP 客户端延迟请求设置

输出结果:

  • PTP 同步状态
  • 本地时间和远程时间对比
  • 时间跳变信息
  • GPIO 脉冲序列
  • 同步精度统计 |
    | 适用场景及典型应用案例 | - 工业自动化系统中的时间同步
  • 分布式控制系统
  • 高精度数据采集网络
  • 多媒体流同步
  • 测试和测量设备网络 |

11.4 技术要点

  • 硬件支持

    • 内部EMAC:支持RMII接口,固定引脚分配
    • SPI以太网模块:支持多种型号,可灵活配置引脚
    • 硬件时间戳:ESP32-P4 EMAC支持精确的时间戳生成
  • 多接口支持

    • 支持同时使用内部EMAC和SPI以太网模块
    • 支持多个SPI以太网模块共享同一SPI接口
  • PTP实现

    • 基于IEEE 1588-2008标准(PTPv2)
    • 硬件时间戳确保高精度同步
    • 支持L2层PTP传输
  • 常见配置

    • 通过menuconfig配置以太网类型和硬件参数
    • 支持不同PHY芯片的自动检测和配置
    • SPI时钟速率和DMA缓冲区大小可调

11.5 构建与运行

所有ethernet例程的构建方法基本一致:

  1. 配置项目:idf.py menuconfig
  2. 构建项目:idf.py build
  3. 烧录并监控:idf.py -p PORT flash monitor

11.6 应用场景总结

  • basic:适用于以太网通信的基础开发和多接口配置
  • iperf:适用于网络性能测试和优化
  • ptp:适用于需要高精度时间同步的工业和测试应用

这些例程展示了ESP-IDF以太网功能的全面支持,从基本通信到高性能测试,再到高精度时间同步,满足不同应用场景的需求。


ESP-IDF 例程——ethernet
https://blog.zhaosn.top/ESP32-examples/11.ethernet/
作者
Zhao SN
发布于
2026年1月21日
更新于
2026年1月21日
许可协议