STM32网络ETH
本帖最后由 kzlzqi 于 2023-1-27 11:50 编辑芯片是:STM32F207VCT6
本人主要介绍STM32F207VCT6的ETH部分,基本是把ETH部分英文翻译一下,加上自己的理解。
1、基础介绍
通过DMA控制器进行介质访问控制
这部分内容应用于STM32F20X和STM32F21系列,其他的 不适用
28.1 以太网简介
部分版权 2004 2005 新思科技(美国公司)。所有权利保留,使用需要认可。
借助STM32F20X和STM32F21的以太网外设可接受和发送数据按照IEE 802.3-2002标准
以太网提供一个完整的、灵活的外设去满足不同应用和要求。它支持与外部相连(PHY)的两个标准的工业接口:默认情况使用在IEEE802.3规范找中定义的独立介质接口(MII)和精简介质独立接口(RMII)。它可以被用于大量的需求,例如开关(交换机)、网络接口卡等等
以太网满足下列标准
IEEE802.3-2002,用于以太网 MAC
IEEE1588-2008 标准,用于规定联网时钟同步的精度
AMBA2.0,用于AHB 主/从端口
RMII联盟的RMII 规范
28.2以太网的主要特性
以太网外设包括以下特性,通过类型列举
28.2.1MAC内核特性
支持外部 PHY 接口实现 10/100 Mbit/s 数据传输速率
通过符合 IEEE 802.3 的 MII 接口与外部快速以太网 PHY 进行通信
支持全双工和半双工操作
支持适用于半双工操作的 CSMA/CD 协议
支持适用于全双工操作的 IEEE 802.3x 流量控制
全双工操作时可以将接收的暂停控制帧转发到用户应用程序
半双工操作时提供背压流量控制
全双工操作中如果流量控制输入信号消失,将自动发送零时间片暂停帧
两组 FIFO:一个具有可编程阈值功能的 2 KB 发送 FIFO 和一个具有可配置阈值(默认为 64 个字节)功能的 2 KB 接收FIFO
从这里我们可以看出207支持MII接口和RMII接口
28.4网络功能描述
以太网外设包括一个MAC 802.3(介质访问控制)和一个DMA控制器。它默认情况下支持MII和RMII接口,通过一个选择位进行切换(参考SYSCFG_PMC寄存器)
DMA控制器通过AHB主从接口和内核与内存相连。AHB主接口控制数据传输,AHB从接口用于访问控制和状态寄存器(CSR)空间
在MAC内核发送数据之前,数据进过DMA的方式发送到FIFO中缓存。同样的,接收FIFO存储通过线路收到的以太网数据帧,直到这些数据帧通过DMA被传输到系统内存。
以太网外设也包括一个SMI,用于和外部PHY通讯。通过一组寄存器的配置,用户可以选择MAC和DMA控制器的不同模式和功能
当使用以太网时,AHB时钟必须至少25MHZ。下面试ETH的框图
区域1:我们称为SMI接口,用于配置外部PHY芯片区域2:是数据交换接口,也就是上面我们说的MII接口和RMII接口 关于AHB的连接信息
数据接口
2.1、SMI接口
28.4.1 站管理接口:SMI站管理接口允许任何PHY寄存器请求通过2线时钟和数据线。这个接口支持最多到32个PHY
应用程序可以从 32 个 PHY 中选择一个 PHY,然后从任意 PHY 包含的 32 个寄存器中选择 一个寄存器,发送控制数据或接收状态信息。任意给定时间内只能对一个 PHY 中的一个寄 存器进行寻址
MDC时钟线和MDIO 数据线在微控制器中均用作复用功能 I/O:
MDC:周期性时钟,提供以最大频率 2.5 MHz 传输数据时的参考时序。MDC 的最短高电平时间和最短低电平时间必须均为 160 ns。MDC 的最小周期必须为 400 ns。在空闲状态下,SMI 管理接口将 MDC 时钟信号驱动为低电平
MDIO:数据输入/输出比特流,用于通过 MDC 时钟信号向/从 PHY 设备同步传输状态信息
SMI帧结构
给出了读操作和写操作帧结构,位传输必须要求从左到右,SMI的帧格式,读写操作
SMI时钟选择
MAC 启动管理写/读操作。SMI 时钟是一个分频时钟,其时钟源为应用时钟(AHB 时钟)。 分频系数取决于 MII 地址寄存器中设置的时钟范围。 MII接口
介质独立接口 (MII) 定义了 10 Mbit/s 和 100 Mbit/s 的数据传输速率下 MAC 子层与 PHY 之 间的互连。
剩余的部分基本都是管脚介绍
MII_TX_CLK:连续时钟信号。该信号提供进行 TX 数据传输时的参考时序。标称频率为:速率为 10 Mbit/s 时为 2.5 MHz;速率为 100 Mbit/s 时为 25 MHz
MII_RX_CLK:连续时钟信号。该信号提供进行 RX 数据传输时的参考时序。标称频率为:速率为 10 Mbit/s 时为 2.5 MHz;速率为 100 Mbit/s 时为 25 MHz