单片机配置LWIP

 配置工具:STM32CubeMX 6.2.1 (一些高版本缺少PHY部分配置)

1 LWIP简介

LWIP:是小型的开源TCP/IP协议栈。

LWIP可以做什么:云平台接入、无线网关、网络摄像头、远程模块。

在单片机中,LWIP协议实现了应用层、传输层、网络层的代码,数据链路层由MAC内核实现,物理层由PHY芯片实现。所以LWIP+MAC+PHY实现了TCP/IP模型。

2 MAC简介

STM32自带10/100Mbit/s的以太网MAC内核,他提供地址及媒体访问的控制方式。

MAC内核的特性:

(1)传输速率:支持外部PHY接口实现10/100Mbit/s数据传输速率。

(2)协议标准:符合IEEE802.3/3u的MII和RMII接口与快速以太网PHY特性。

(3)工作模式:全双工、半双工。

(4)站管理接口:支持通过MDIO接口配置和管理PHY设备。

3 ST的ETH框架

在单片机发送数据经过步骤如下:

(1)网络层数据以DMA方式发送到TX FIFO中;

(2)数据经过MAC内核处理;

(3)MAC内核处理后的数据以RMII/MII方式发送到外部PHY芯片;

(4)在PHY中数据转成光/电信号发往网络当中。

接收可以倒推。

TX FIFO和RX FIFO是2KB的原因:因为以太网

### 单片机移植LWIP协议栈教程及注意事项 #### 1. 移植前准备 为了成功地在单片机上移植LwIP协议栈,需确保具备必要的硬件和软件条件。具体来说,需要选择合适的微控制器平台和支持以太网功能的开发板。对于STM32系列而言,推荐选用带有集成PHY芯片的支持RMII接口的产品型号[^1]。 #### 2. 配置环境搭建 安装并配置好相应的IDE工具链以及驱动程序包之后,可以从官方仓库获取最新版本的LwIP源码,并将其加入到工程目录下。针对特定的应用场景调整编译选项,比如开启或关闭某些特性支持等。 #### 3. 实现必要接口函数 根据实际需求实现三个主要模块的功能: - **操作系统相关接口**:如果是在裸机环境下,则要定义`sys_now()`用于返回当前时间戳;如果有RTOS则可以利用其自带的时间管理机制。 ```c #if LWIP_FREERTOS_SYS_NOW_FROM_FREERTOS u32_t sys_now(void) { return xTaskGetTickCount() * portTICK_PERIOD_MS; } #endif ``` - **底层网卡操作接口**:这部分涉及到具体的硬件寄存器读写逻辑,通常由厂商提供的HAL库负责处理。开发者只需按照API文档说明调用相应的方法即可完成初始化、发送接收数据帧等工作。 - **配置文件设置**:依据项目特点定制化参数表项,如最大连接数限制、缓冲区大小分配策略等等[^2]。 #### 4. GPIO引脚配置 参照原理图中的ETH端口映射关系,合理规划外部IO资源用途,确保物理层信号线能够正常工作。例如,在STM32F429IGT6这款MCU里,应该把指定管脚设定为AF模式并与内部MAC单元相连通[^3]。 #### 5. 测试验证阶段 编写简单的应用程序来进行初步的功能检验,像执行PING命令测试连通性或是发起HTTP请求访问远程服务器之类的活动都可以作为有效的手段之一。一旦发现任何异常情况务必及时排查原因直至解决问题为止。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值