LWIP----ethernet硬件设计

目录

[1. 系统连接框图](#1. 系统连接框图)

2.接口管理

MII接口:

RMII接口:

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

接口连接原理图

3.MAC层

3.1、FIFO

3.2、DMA

4、PHY层


1. 系统连接框图

使用的是STM32F407 (MAC层)+ LAN8720以太网芯片(物理层) + RJ45插头的系统结构。

2.接口管理

MII接口:

10/100M的MAC子层和PHY间的互联。(速率为10Mbit/s时要提供的为2.5MHZ,速率为100Mbit/s时为25MHZ)

RMII接口:

相比于MII,降低了控制器以太网外设与外部PHY间的引脚数。仅为7个。(REF_CLK必须是50MHZ,但其实只需要提供25MHZ就行了,因为STM32内部存在PLL倍频)

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

MII接口一周期发送4bit数据、RMII一个周期发送2bit数据;

接口连接原理图

这里我使用的是YT8512C。通讯接口是RMII与MAC层进行连接。

YT8512C原理图:

3.MAC层

以太网外设包括带专用 DMA 控制器的 MAC 802.3(介质访问控制)。它支持介质独立接口(MII) 和简化介质独立接口 (RMII),并通过一个选择位在两个接口间进行切换。

以太网外设由 4 个主要功能模块组成:

  • 控制和状态寄存器模块 (CSR),用于控制通过 AHB 32 位从接口进行的寄存器访问;
  • 直接存储器访问接口 (DMA),此为逻辑 DMA 模块,具有 1 条用于接收的物理通道和 1 条用于发送的物理通道。该模块用于控制通过 AMBA AHB 32 位主接口在 MAC 和系统存储器之间进行的数据传输;
  • 介质访问控制模块 (MAC),负责实现以太网协议;
  • MAC 事务层 (MTL),负责控制应用和 MAC 之间的数据流;

此外,还增添了协议适配模块以支持 RMII PHY 介质独立接口:

  • MAC帧格式
  • 帧发送过程

从系统存储器读取的以太网帧由DMA推入FIFO,然后将帧弹出并传输到MAC内核。帧传输结束时,从MAC内核获取发送状态并传回DMA。

  • 帧填充和CRC计算

当从应用程序接收到的字节数少于46时,会向发送帧附加零,使数据长度正好为46字节,以满足IEEE 802.3的最小数据字段要求。

3.1、FIFO

FIFO向MAC内核弹出数据有两种模式:

  • **阈值模式:**只要FIFO中的字节数超过配置的阈值,数据就准备好弹出并转发到MAC内核
  • **存储转发模式:**仅在FIFO中存储完整的帧后,才会想MAC内核弹出帧

3.2、DMA

DMA基于描述符的链表传输数据。应用程序在系统存储器(SRAM)中创建描述符。支持正常描述符和上下文描述符两种。

以太网模块中的接收/发送FIFO和内存之间的以太网数据包传输时以太网DMA使用DMA描述符完成的。

一共有两个描述符列表:一个用于接收、一个用于发送,两个列表的基地址分别写入DMACRDLAR寄存器和DMACTDLAR寄存器中。

  • DMA描述符环形结构
  • **DMA描述符环链接结构:**到达环结束处时,DMA会自动基于基址进行回卷
  • DMA描述符格式:

常规发送描述符:

增强发送描述符:

常规接收描述符:

4、PHY层

YT8512C支持RMII接口与以太网MAC通讯,内置10-BASE-T/100BASE-TX全双工传输模块,支持10Mbps和100Mbps。可以通过自协商的方式与目的主机最佳的连接方式(速度和双工模式)。支持HP Auto-MDIX自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。

YT8512C的配置及使用详见其数据手册,下面简单介绍几种常用的功能设置:

  • **中断管理:**当中断事件发生且相应事件的中断位使能,YT8512C就会在nINT(11脚)产生一个低电平有效的中断信号。提供主中断和复用中断两种模式;
  • **PHY地址设置:**MAC层通过SMI总线对PHY进行读写操作,YT8512C通过设置LED0/PHYADD0引脚或者LED1/PHYADD1来设置PHY地址,默认情况下为0;
  • **nINT/REFCLKO配置:**nINTSEL(2脚)用于设置nINT/REFCLKO(14脚)引脚的功能;
  • **内部寄存器:**所有以太网的PHY芯片都遵循IEEE 802.3标准,标准通用寄存器0~15;(所有PHY芯片都一样)

16~31扩展通用寄存器,不同的PHY芯片它们的功能都高度相似;

>= 32厂商自定义寄存器,每个芯片不一样,这是按厂商规定来的;

相关推荐
keep intensify2 小时前
康复训练 6
网络
Vect__2 小时前
深刻理解HTTP
网络·网络协议·http
自在极意功。3 小时前
TCP三次握手与四次挥手
网络·网络协议·tcp/ip·计算机网络·三次握手·四次挥手
m0_738120723 小时前
应急响应——知攻善防挖矿事件应急溯源详细过程
网络·数据库·安全·web安全
西装没钱买3 小时前
QT组播的建立和使用(绑定特定的网卡,绑定特定IP)
网络·c++·qt·udp·udp组播
小江的记录本4 小时前
【HTTP】HTTP请求方法与状态码(全体系知识总结+附表格)
前端·网络·后端·网络协议·http·状态模式·web
是宇写的啊4 小时前
网络原理1
网络
幸福指北4 小时前
我用 Tauri + Vue 3 + Rust 开发了一款跨平台网络连接监控工具Portview,性能炸裂!
前端·网络·vue.js·tcp/ip·rust
萝卜白菜。4 小时前
http头键名大小写问题
网络·网络协议·http