[其他ST产品] STM32网络ETH

[复制链接]
1997|49
 楼主| kzlzqi 发表于 2023-1-26 14:03 | 显示全部楼层
4268163d217618e52e.png
MII_TX_EN:发送使能信号。该信号表示 MAC 当前正针对 MII 发送半字节。该信号必须与报头的前半字节进行同步 (MII_TX_CLK),并在所有待发送的半字节均发送到 MII时必须保持同步
MII_TXD[3:0]:数据发送信号。该信号是 4 个一组的数据信号,由 MAC 子层同步驱动,在MII_TX_EN 信号有效时才为有效信号(有效数据)。MII_TXD[0] 为最低有效位,MII_TXD[3] 为最高有效位。禁止MII_TX_EN 时,发送数据不会对 PHY 产生任何影响
 楼主| kzlzqi 发表于 2023-1-27 11:51 | 显示全部楼层
5429063d34a2f0dbb6.png
MII_CRS:载波侦听信号。当发送或接收介质处于非空闲状态时,由 PHY 使能该信号。发送和接收介质均处于空闲状态时,由 PHY 禁止该信号。PHY 必须确保MII_CS 信号在冲突条件下保持有效状态。该信号无需与 TX 和 RX 时钟保持同步。在全双工模式下,该信号没意义
MII_COL:冲突检测信号。检测到介质上存在冲突后,PHY 必须立即使能冲突检测信号,并且只要存在冲突条件,冲突检测信号必须保持有效状态。该信号无需与 TX 和 RX 时钟保持同步。在全双工模式下,该信号没意义
 楼主| kzlzqi 发表于 2023-1-27 11:56 | 显示全部楼层
4697563d34b66e4530.png

2238963d34b6f932c2.png

MII_RXD[3:0]:数据接收信号。该信号是 4 个一组的数据信号,由 PHY 同步驱动,在MII_RX_DV 信号有效时才为有效信号(有效数据)。MII_RXD[0] 为最低有效位,MII_RXD[3] 为最高有效位。当 MII_RX_DV 禁止、MII_RX_ER 使能时,特定的MII_RXD[3:0] 值用于传输来自 PHY 的特定信息(请参见表 142)
MII_RX_DV:接收数据有效信号。该信号表示 PHY 当前正针对 MII 接收已恢复并解码的半字节。该信号必须与恢复帧的头半字节进行同步(MII_RX_CLK),并且一直保持同步到恢复帧的最后半字节。该信号必须在最后半字节随后的第一个时钟周期之前禁止。为了正确地接收帧,MII_RX_DV 信号必须在时间范围上涵盖要接收的帧,其开始时间不得迟于 SFD 字段出现的时间
————————————————
 楼主| kzlzqi 发表于 2023-1-27 11:58 | 显示全部楼层
1242663d34be027429.png
MII_RX_ER:接收错误信号。该信号必须保持一个或多个周期(MII_RX_CLK),从而向MAC 子层指示在帧的某处检测到错误。该错误条件必须通过 MII_RX_DV 验证,如表142 所示
 楼主| kzlzqi 发表于 2023-1-27 11:59 | 显示全部楼层
表141.TX 接口信号编码

2449963d34bf6c910e.png
 楼主| kzlzqi 发表于 2023-1-27 12:00 | 显示全部楼层
表142. RX 接口信号编码

7501963d34c3fe746a.png
 楼主| kzlzqi 发表于 2023-1-27 12:01 | 显示全部楼层
1925263d34c8caa32d.png
要生成 TX_CLK 和 RX_CLK 时钟信号,必须向外部 PHY 提供 25MHz 时钟,如图 所 示。除了使用外部 25 MHz 石英晶体提供该时钟,还可以通过 STM32F20xx 微控制器的 MCO引脚输出该信号。这种情况下,必须对 PLL 倍频进行配置,以通过 25 MHz 外部石英晶体在 MCO 引脚上获得所需频率。
6278963d34ca38af98.png
 楼主| kzlzqi 发表于 2023-1-27 12:02 | 显示全部楼层
RMII接口
Reducedmedia-independent interface: RMII

翻译:精简介质独立接口:RMII

2783963d34ce5470d7.png

精简介质独立接口 (RMII) 规范降低了 10/100 Mbit/s 下微控制器以太网外设与外部 PHY 间的 引脚数。根据 IEEE 802.3u 标准,MII 包括 16 个数据和控制信号的引脚。RMII 规范将引脚 数减少为 7 个(引脚数减少 62.5%)
 楼主| kzlzqi 发表于 2023-1-27 12:04 | 显示全部楼层
9736263d34d2971b14.png
1350763d34d32e0c04.png

RMII接口是MAC和PHY之间的实例化对象。这些有助于MAC的MII接口转化为RMII接口。RMII接口具有以下特点

10-Mbit/s和100-Mbit/s 的运行速率
参考时钟必须是 50 MHz
相同的参考时钟必须从外部提供给 MAC 和外部以太网PHY
它提供了独立的 2 位宽(双位)的发送和接收数据路径
 楼主| kzlzqi 发表于 2023-1-27 12:05 | 显示全部楼层
这里时钟管脚比MII接口少,

又一个非常重要的点,那就是时钟源必须是50MHZ
 楼主| kzlzqi 发表于 2023-1-27 12:06 | 显示全部楼层
时钟源
7509463d34d80535b1.png


使用外部 50 MHz 时钟驱动 PHY 或使用嵌入式 PLL 生成 50 MHz 频率信号来驱动 PHY
 楼主| kzlzqi 发表于 2023-1-27 12:06 | 显示全部楼层
MII和RMII的接口选择
943063d34dbc96249.png
使用 SYSCFG_PMC 寄存器中的配置位 23 MII_RMII_SEL 选择 MII 或 RMII 模式。以太网控 制器处于复位模式或使能时钟前,应用程序必须设置 MII/RMII 模式
 楼主| kzlzqi 发表于 2023-1-27 12:07 | 显示全部楼层
MII/RMII内部时钟方案

支持 MII 和 RMII 以及 10 和 100 Mbit/s 运行所需的时钟方案如图 321所示

9540163d34ddc2c3a7.png
 楼主| kzlzqi 发表于 2023-1-27 12:08 | 显示全部楼层
通过 SYSCFG_PMC 寄存器中的位 23 MII_RMII_SEL 控制 MII/RMII 选择

2881363d34df8dec63.png

要节省引脚,需在同一个 GPIO 引脚上复用 RMII_REF_CK 和 MII_RX_CLK 这两个输入时 钟信号。
 楼主| kzlzqi 发表于 2023-1-27 12:15 | 显示全部楼层
DMA控制器操作


28.6   以太网功能说明:DMA控制器操作

       DMA具有自主的发送和接收引擎,还有一个 CSR(控制和状态寄存器)空间。发送引擎将数据从系统存储器传送到 Tx FIFO,而接收引擎将数据从 Rx FIFO 传送到系统存储器。控制器(也就是DMA)利用描述符有效的将数据从源地址移动到目的地,很小的CPU干预。DMA 专为面 向包的数据传送(如以太网中的帧)而设计。控制器可以编程去打断CPU,例如完成帧发送和接收传送操作时以及其它正常/错误条件下。DMA 和STM32F20x 和STM32F21x 通过以下两种数 据结构进行通信:

控制和状态寄存器 (CSR)
描述符列表和数据缓冲区

————————————————
版权声明:本文为CSDN博主「strongercjd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Firefly_cjd/article/details/79825544
 楼主| kzlzqi 发表于 2023-1-27 12:16 | 显示全部楼层
2473163d35017292ca.png
控制和状态寄存器在28.8节第895页。细节的介绍和描述在875页。
6164163d3502a66150.png

7609063d35034b3cf5.png
hilahope 发表于 2023-2-2 12:39 | 显示全部楼层
推荐《STM32嵌入式系统开发实战指南:FreeRTOS与LwIP联合移植》
lzbf 发表于 2023-2-4 13:42 | 显示全部楼层
STM32移植LWIP需要配置什么
jonas222 发表于 2023-2-4 15:40 | 显示全部楼层
stm32单片机怎么才能随时连接以太网
burgessmaggie 发表于 2023-2-6 15:11 | 显示全部楼层
有连接局域网参考例程吗?              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部