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例程的构建方法基本一致:
- 配置项目:
idf.py menuconfig - 构建项目:
idf.py build - 烧录并监控:
idf.py -p PORT flash monitor
11.6 应用场景总结
- basic:适用于以太网通信的基础开发和多接口配置
- iperf:适用于网络性能测试和优化
- ptp:适用于需要高精度时间同步的工业和测试应用
这些例程展示了ESP-IDF以太网功能的全面支持,从基本通信到高性能测试,再到高精度时间同步,满足不同应用场景的需求。
ESP-IDF 例程——ethernet
https://blog.zhaosn.top/ESP32-examples/11.ethernet/