STM32PHY与lwip配置

以太网简介

1、以太网是互联网技术中的一种,是一种组网技术。是指遵守 IEEE 802.3 标准组成的局域网,由 IEEE 802.3 标准规定的主要是位于参考模型的物理层 (PHY) 和数据链路层中的介质访问控制子层 (MAC)。
2、在家庭、企业和学校所组建的 PC局域网形式一般也是以太网,其标志是使用水晶头网线来连接 (当然还有其它形式)。
3、IEEE 还有其它局域网标准,如 IEEE 802.11 是无线局域网,俗称 Wi-Fi。IEEE802.15 是个人域网,即蓝牙技术,其中的 802.15.4 标准则是 ZigBee 技术。

接口

  • F407的MAC有3种接口:SMI、MII和RMII
    在这里插入图片描述
  • 左边有一个2k的发送/接收缓冲区
  • stm32内的MAC(图中的红色部分都是STM32F407的MAC部分)与外部PHY进行了连接通信
  • SMI接口,用来配置,里面有MDC和MDIO这两根线
  • 数据交互通过RMII或者MII接口

SMI接口

1、SMI(Serial Management Interface)称为站管理接口,程序(Mac层)中可以通过这个接口来访问PHY寄存器,SMI接口有两条线:数据线MDIO和时钟线MDC,该接口支持访问多达32个PHY。

  • MDC:周期性时钟,提供以最大频率 2.5 MHz 传输数据时的参考时序,在空闲状态下, SMI 管理接口将 MDC 时钟信号驱动为低电平。(也就是最大时钟频率2.5MHz,空闲状态为低电平
  • MDIO:数据输入/输出比特流,用于通过 MDC 时钟信号向/从 PHY 设备同步传输状态 信息。
    在这里插入图片描述

2、站管理接口 (SMI) 允许应用程序通过 2 线时钟和数据线访问任意 PHY 寄存器。该接口支持 访问多达 32 个 PHY。
3、应用程序可以从 32 个 PHY 中选择一个 PHY,然后从任意 PHY 包含的 32 个寄存器中选择 一个寄存器,发送控制数据或接收状态信息。任意给定时间内只能对一个 PHY 中的一个寄存器进行寻址。

介质独立接口 (MII)

  • 介质独立接口 (MII,Media Independent Interface) 定义了 10 Mbit/s 和 100 Mbit/s 的数据传输速率下 MAC 子层与 PHY 之 间的互连。
    在这里插入图片描述
  • TX_CLK和RX_CLK为发送和接收连续时钟,当速率为10Mbit/s时为2.5MHZ(因为发送有4根线),速率为100Mbit/s时为25MHZ。
  • 须向外部PHY提供25MHZ时钟,通常我们给PHY使用25M的晶振,或者使用STM32F4xx的MCO引脚输出25MHZ的时钟
    在这里插入图片描述

简化介质独立接口 (RMII)

  • 精简介质独立接口 (RMII,Reduced Media Independant Interface) 规范降低了 10/100 Mbit/s 下微控制器以太网外设与外部 PHY 间的 引脚数。根据 IEEE 802.3u 标准,MII 包括 16 个数据和控制信号的引脚。RMII 规范将引脚数减少为 7 个(引脚数减少 62.5%)。
  • 不过RMII接口的参考时钟必须是50MHZ
  • 使用RMII只有一个时钟REF_CLK。而MII有两个时钟,一个发送一个接收
    在这里插入图片描述

PHY

  • PHY(英语:Physical),中文可称之为端口物理层,是一个对OSI模型物理层的共同简称。而以太网是一个操作OSI模型物理层的设备。一个以太网PHY是一个芯片,可以发送和接收以太网的数据帧(frame)
  • STA(Station Management Entity,管理实体,一般为MAC或CPU)通过MIIM(MII Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是通过读写PHY内部的寄存器实现的。PHY的基本结构如下图:
    在这里插入图片描述
    stm32f4xx开发板的以太网芯片DP83848与LAN8742和LAN8720的区别,以及驱动程序的区别

LAN8720

简介

 1、支持RMII接口以减少引脚数
 2、支持全双工和半双工模式
 3、可以使用25M晶振以降低成本,也就是可以给LAN8720使用25M晶振,他内部会倍频到50M
 4、支持SMI串行管理接口
 5、支持MAC接口
  • LAN8720是低功耗的10/100M 以太网PHY层芯片
  • I/O引脚电压符合IEEE802.3-2005标准。
  • LAN8720支持通过 RMII接口 与以太网MAC层通信,内置10-BASE-T/100BASE-TX全双工传输模块,支持10Mbps和100Mbps。
  • LAN8720可以通过自协商的方式与目的主机最佳的连接方式(速度和双工模式)。也就是将通过网线与电脑连接后,就会自动选择最佳的传输速度是10M还是100M,是双工还是半双工,然后将选择写入到寄存器中,我们只需要读寄存器就可以判断当前网络的连接状态。
  • 支持HP Auto-MDIX自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。

接线

在这里插入图片描述

  • 其中Nrst一直属于拉低状态,也就是复位状态。如果要使用的话,这个引脚就要输出为高(PD3)。这样灯就会亮

1、地址设置:前面说了MAC可以通过SMI接口来读写PHY(LAN8720)的寄存器,SMI最多可以控制32个PHY芯片,通过不同的PHY芯片地址来对不同的PHY操作。LAN8720通过设置RXER/PHYAD0引脚来设置其PHY地址,默认情况下为0,其地址设置如下表所示。我们STM32F407开发板使用的是默认地址,也就是0X00。就是下面的这个10号引脚,选择了不接,就是00了。
在这里插入图片描述
在这里插入图片描述
2、时钟设置:nINTSEL引脚(2号引脚)用于设置nINT/REFCLKO引脚(14号引脚)的功能。nINTSEL配置如下表所示。我们STM32F407开发板使用的是REF_CLK Out模式
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • REF_CLK Out模式:为了降低成本,LAN8720可以从外部的25MHz的晶振中产生REF_CLK时钟。到要使用此功能时应工作在REF_CLK Out模式时。当工作在REF_CLO Out模式时REF_CLK的时钟源如下图所示。也就是外部供给50M给PHY用,PHY再通过REFCLKO与单片机共享
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值