1. 项目概述
STM32H743作为STMicroelectronics的高性能MCU系列代表,其以太网功能在工业控制、物联网网关等场景中具有广泛应用价值。本文将基于野火挑战者V2开发板(STM32H743IIT6核心),详细解析如何通过CubeMX工具链实现LwIP协议栈的动态IP地址分配功能。
1.1 核心需求解析
项目需要实现的核心功能包括:
- 通过RMII接口建立稳定的物理层连接
- 正确配置MPU以支持ETH外设的DMA操作
- 集成LwIP协议栈实现TCP/IP网络通信
- 支持DHCP协议动态获取IP地址
注意:H7系列与F4系列在内存架构上的关键差异在于引入了MPU(内存保护单元),这直接影响了DMA缓冲区的配置方式,是项目成功的关键所在。
2. 硬件架构与连接原理
2.1 以太网硬件组成
完整的以太网通信链路包含三个核心组件:
-
MAC层:
- 集成在STM32内部的ETH外设
- 负责数据链路层的帧封装/解封装
- 支持IEEE 802.3标准
-
PHY芯片:
- 开发板采用LAN8742A
- 实现MII/RMII到模拟信号的转换
- 提供链路状态检测功能
-
RJ45接口:
- 包含网络变压器
- 提供电气隔离保护
2.2 RMII接口关键配置
与常规串行接口不同,RMII需要特别注意:
-
时钟要求:
- 必须提供50MHz参考时钟
- 本设计由PHY芯片提供时钟(需配置OSC_IN引脚)
-
引脚映射:
c复制// RMII信号引脚配置示例
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
