单片机配置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的原因:因为以太网传输中要求字节不能超过1500字节≈1.4KB,所以设置了2KB。

PHY交互接口

(1)数据通道:RMII/MII;

(2)管理通道:SMI(MDC、MDIO)

SMI站管理接口

允许应用程序通过时钟线和数据线访问任意PHY寄存器,最多支持32个PHY访问。

MDC:周期时钟引脚(最大频率为:2.5MHz)

MDIC:数据输入/输出比特流。

图中RXER/PHYAD0决定了PHY芯片的地址,接上拉其起止就为1,接下拉其地址就为0。

4 介质接口MII、RMII

用于MAC内核与外部PHY互联,支持10/100Mbit/s数据传输模式。

相同特性

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

(2)符合IEEE802.3协议标准。

(3).....

不同特性:

介质接口引脚数量参考时钟发送的位宽
MII1625MHz4位宽
RMII950MHz2位宽
MII
MII
RMII

 MII中TX_CLK\RX_CLK的时钟由外部PHY提供。

(1)如果MAC的传输速率是10MBit/s,则这两根线的时钟就是2.5MHz;

(2)如果MAC的传输速率是100MBit/s,则这两根线的时钟就是25MHz。

RMII的时钟线REF_CLK是50MHz。

注意:RX_ER和RX_DV是用来检测以太网帧是否有效,而SRC和COL以及CRS_DV在全双工模式先是无效的。

图中PHY的时钟由HSE提供25MHz或者外部晶振提供25MHz,二者选其一,但是TX_CLK\RX_CLK具体是多少赫兹,要看MAC的传输速率,以此来做降频。

RMII的REF_CLK时钟有两个:MCO提供25MHz,经过PLL倍频为50MHz,或者由外部晶振提供。这个始终必须同时提供给MAC和PHY。

5 PHY芯片介绍

硬件角度解释,一般的PHY芯片为模数混合电路,负责接收电、光信号的模拟信号,经过解调和AD转换后,经过MII/RMII接口将这些信号交给MAC内核处理。

LAN8720A的PHY地址

RXER/PHYAD0(PIN10)地址
上拉0x01
下拉(默认)0x00

RMII模式设置

(1)REF_CLK In模式:外部提供50MHz时钟连接到PHY芯片5号引脚以及RMII_REF_CLK.

(2)REF_CLK Out模式:外部提供25MHz时钟给PHY芯片,REF_CLK引脚输出50MHz.

RMII模式的选择呢由PHY2号引脚决定,为0:REF_CLK Out模式;为1:REF_CLK In模式。

PHY特殊功能寄存器

BCR的bit13:速度选择,10/100Mbps

             bit8:设备全双工、半双工

6 STM32CubeMX配置

MX_LWIP_Process()

MX_LWIP_Process()的主要作用是在STM32的系统循环中定期调用LwIP的tcpip_input()函数,以处理网络事件。在LwIP协议栈中,网络数据的接收和发送、连接的建立和断开等操作都是异步的,需要通过定期调用tcpip_input()来处理这些事件。

要注意的是,MX_LWIP_Process()的调用频率应该足够高,以保证网络通信的实时性。如果调用频率过低,可能会导致网络延迟增加,甚至出现丢包等问题。在实际应用中,可以根据具体的网络需求和系统资源情况,调整MX_LWIP_Process()的调用频率。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值