【lwIP(第一章)】lwIP入门


lwIP是一个小型开源的TCP/IP协议栈(阉割的TCP/IP协议)
lwIP适用于:云台接入、无线网关、远程模块、工控控制器、嵌入式NAT无线路由器、网络摄像头………


一、TCP/IP协议栈

1. TCP/IP协议栈结构体

在这里插入图片描述


2. TCP/IP协议栈的数据封装与解封装

封装:数据添加各层协议的首部;解封装:在各层间除去自层的首部
在这里插入图片描述

二、lwIP结构

在这里插入图片描述


三、MAC简介

1. MAC内核的特性:

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

 ② 协议标准:符合IEEE802.3/3u的MII和RMII接口与快速以太网PHY通信

 ③ 工作模式:支持全双工和半双工操作

 ④ 站管理接口:支持通过MDIO接口配置和管理PHY设备

 ⑤ 其他特性


2. ST的ETH框架

STM32自带有10/100Mbit/s的以太网MAC内核,它提供地址及媒体访问的控制方式
在这里插入图片描述


2.1 SMI站管理接口

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

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

● MDIO:数据输入/输出比特流
在这里插入图片描述

2.1.1 SMI帧格式

在这里插入图片描述
● PADDR:PHY地址(00_1F)

● RADDR:寄存器地址(00_1F)

● 数据位:16位数据位(PHY寄存器都是16位的)


2.2 介质接口MII、RMII

用于MAC与外接的PHY互联,支持10/100Mbit/s数据传输模式

在这里插入图片描述

2.2.1 MII、RMII比较

● 相同的特性:

​  ① 支持外部PHY接口实现10/100Mbit/s数据传输速率

​  ② 符合IEEE802.3协议标准

● 不同的特性:

​  ① 引脚数量

​  ② 参考时钟

​  ③ 发送的位宽


2.2.2 MII、RMII引脚

在这里插入图片描述
● 介质MII接口所需要引脚数量为16个,而RMII接口所需要的引脚数量为9个

● MII介质接口的TX_CLK和RX_CLK由PHY芯片提供,它们会让MAC内核以这个时钟采集收发数据

● RMII介质接口的REF_CLK, MAC内核以这个时钟采集收发数据

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


2.2.3 MII、RMII参考时钟

在这里插入图片描述
● 介质MII的参考时钟来源有两个:MCO输出25MHz以及外部晶振输出25MHz

● 介质RMII的参考时钟来源有两个:MCO经过倍频PLL输出50MHz以及外部晶振输出50MHz(必须同时提供PHY和MAC)

注意:MII接口中的TX_CLK和RX_CLK时钟是根据数据传输速率挂钩,10Mbit/s:2.5MHz;100Mbit/s:25MHz


2.2.4 MII、RMII介质接口收发位宽

介质MII接口一个周期收发位宽为4位数据,而接口一个周期RMII收发位宽为2位数据

在这里插入图片描述


四、PHY简介

从硬件上来说,一般的PHY芯片为模数混合电路,负责接收电、光这类模拟信号,经过解调和A/D转换后通过MII/RMII接口将信号交给MAC内核处理。

在这里插入图片描述


1. LAN8720A与YT8512C

它们都是低功耗的10/100M以太网PHY层芯片,支持MII以及RMII接口与以太网MAC层通信。
支持Auto MDIX自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。

主要特性:

 ① 自动翻转:支持Auto MDIX自动翻转功能,例如:对等线与交叉线连接。

 ② 多种接口:支持MII和RMII介质访问接口。

 ③ 传输速率:支持10/100Mbit/s的传输速率。

 ④ 低功耗:支持低功耗运行。


2. PHY地址的设置

过PHY地址访问指定的PHY芯片,简称:PHY芯片的标识。


2.1 LAN8720A的PHY地址设置

在这里插入图片描述
在这里插入图片描述
PHYAD0默认的引脚为低电平,所以PHY地址为0x00


2.2 YT8512C的PHY地址设置

在这里插入图片描述
在这里插入图片描述


3. RMII模式选择

LAN8720A和YT8512C在RMII介质接口下延伸出两个连接方式。

在这里插入图片描述

3.1 RMII模式设置(LAN8720A)

这两种模式是由PHY的2号引脚电平决定,为0:Out模式(REF_CLK输出时钟),为1:In模式(中断)

在这里插入图片描述

在这里插入图片描述


3.2 RMII模式设置(YT8512C)

这两种模式是由PHY的8和12号引脚电平决定,如果8号引脚拉高以及12号引脚拉低,则硬件电路选择RMII2模式。

在这里插入图片描述

在这里插入图片描述


4. PHY寄存器

LAN8720A和YT8512C都具有32个寄存器,每一个寄存器都是16位

在这里插入图片描述
● 前16个寄存器用于配置PHY,而后16个寄存器是使用判断网络参数的(双工、网速)

● 因为前16个寄存器都是类似的,所以ST已经把主要框架搭建好了,用户只负责设置双工和网速参数即可


4.1 特殊功能寄存器

通过确认网速及双工模式来设置BCR寄存器的bit8和bit13

/* stm32f4/f7/h7xx_hal_conf.h */
#define PHY_SR 			  ((uint16_t)0x0010) 		/*!< PHY status register Offset */ 
#define PHY_SPEED_STATUS  ((uint16_t)0x0002) 		/*!< PHY Speed mask */ 
#define PHY_DUPLEX_STATUS ((uint16_t)0x0004)		/*!< PHY Duplex mask */

每一个PHY的特殊功能寄存器都不一样,需要根据相关的手册来确定


4.1.1 LAN8720A特殊功能寄存器

在这里插入图片描述


4.1.2 YT8512C特殊功能寄存器

在这里插入图片描述


5. 选择PHY芯片

在这里插入图片描述

  • 24
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Eiker_3169

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

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

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

打赏作者

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

抵扣说明:

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

余额充值