STM32F4以太网 (ETH)之精简介质独立接口:RMII

目录

概述

1 以太网简介

1.1 介绍

1.2 特征

2 以太网功能说明: RMII

3 RMII接口

3.1 接口介绍

3.2 精简介质独立接口信号

3.3 RMII 时钟源

3.4 RMII 选择

3.5 RMII内部时钟方案

4 RMII工作时序

4.1 发送序列

​4.2 发送时序图

4.3 RMII时序参数

5  RMII的应用电路

5.1 电路图

5.2 STM32F4与RMII接口


概述

本文主要介绍STM32F4以太网 (ETH)之精简介质独立接口:RMII的相关内容,包括接口特性,收发数据的时序,以及典型的硬件应用电路。

1 以太网简介

1.1 介绍

STM32F4xx 可以通过以太网按照 IEEE 802.3-2002 标准发送和接收数据。以太网提供了可配置、灵活的外设,用以满足客户的各种应用需求。它支持与外部物理层(PHY) 相连的两个工业标准接口:默认情况下使用的介质独立接口 (MII)(在 IEEE 802.3规范中定义)和简化介质独立接口 (RMII)。它有多种应用领域,例如交换机、网络接口卡等。

以太网遵守以下标准:
● IEEE 802.3-2002,用于以太网 MAC
● IEEE 1588-2008 标准,用于规定联网时钟同步的精度。
● AMBA 2.0,用于 AHB 主/从端口
● RMII 联盟的 RMII 规范
 

1.2 特征

MAC 内核特性
● 支持外部 PHY 接口实现 10/100 Mbit/s 数据传输速率
● 通过符合 IEEE 802.3 的 MII 接口与外部快速以太网 PHY 进行通信
● 支持全双工和半双工操作

● 可逐帧控制 CRC 和 pad 自动生成
● 接收帧时可自动去除 pad/CRC
● 可编程帧长度,支持高达 16 KB 的巨型帧
● 可编程帧间隔( 40-96 位时间,以 8 为步长)

2 以太网功能说明: RMII

以太网外设包括带专用 DMA 控制器的 MAC 802.3(介质访问控制)。它支持默认情况下使用的介质独立接口 (MII) 和简化介质独立接口 (RMII),并通过一个选择位在两个接口间进行切换(请参见 SYSCFG_PMC 寄存器)。DMA 控制器通过 AHB 主从接口与内核和存储器相连。 AHB 主接口用于控制数据传输,而AHB 从接口则用于访问“控制和状态寄存器” (CSR) 的空间。在进行数据发送时,首先将数据由系统存储器以 DMA 的方式送至发送 FIFO (Tx FIFO) 进行缓冲,再通过 MAC 内核发送。同样,接收 FIFO (Rx FIFO) 则存储通过线路接收的以太网帧,直到这些帧通过 DMA 传送到系统存储器。以太网外设还包括用于与外部 PHY 通信的 SMI。通过一组配置寄存器,用户可以为 MAC 控制器和 DMA 控制器选择所需模式和功能。

3 RMII接口

3.1 接口介绍

精简介质独立接口 (RMII) 规范降低了 10/100 Mbit/s 下微控制器以太网外设与外部 PHY 间的引脚数。根据 IEEE 802.3u 标准, MII 包括 16 个数据和控制信号的引脚。 RMII 规范将引脚数减少为 7 个(引脚数减少 62.5%)。

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

1)支持 10-Mbit/s 和 100-Mbit/s 的运行速率

2)参考时钟必须是 50 MHz

3)相同的参考时钟必须从外部提供给 MAC 和外部以太网 PHY

4)它提供了独立的 2 位宽(双位)的发送和接收数据路径

3.2 精简介质独立接口信号

 3.3 RMII 时钟源

使用外部 50 MHz 时钟驱动 PHY 或使用嵌入式 PLL 生成 50 MHz 频率信号来驱动 PHY。

3.4 RMII 选择

使用 SYSCFG_PMC 寄存器中的配置位 23 MII_RMII_SEL 选择 MII 或 RMII 模式。以太网控制器处于复位模式或使能时钟前,应用程序必须设置 MII/RMII 模式。

用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的 SYSCFG 外设模式配置寄存器 (SYSCFG_PMC)

SYSCFG peripheral mode configuration register
偏移地址: 0x04
复位值: 0x0000 0000


位 23 MII_RMII_SEL:以太网 PHY 接口选择 (Ethernet PHY interface selection)
由软件置 1 和清零。这些位控制以太网 MAC 的 PHY 接口。

0:选择 MII 接口
1:选择 RMII Why 接口


注意: 必须在 MAC 处于复位状态且在使能 MAC 时钟之前完成此配置。
 

3.5 RMII内部时钟方案

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


要节省引脚,需在同一个 GPIO 引脚上复用 RMII_REF_CK MII_RX_CLK 这两个输入时钟信号。

4 RMII工作时序

4.1 发送序列

来自 MII 的每个半字节都在 RMII 上发送,一次发送双位,双位的发送顺序如图  所示。首先发送位序较低的位( D1 和 D0),再发送位序较高的位( D2 和 D3)。



4.2 发送时序图

1)无冲突发送


 

2) 有冲突发送

 3)RMII 模式下的帧发送

4.3 RMII时序参数

1)Ethernet RMII timing diagram

2) Dynamic characteristics: Ethernet MAC signals for RMII

5  RMII的应用电路

5.1 电路图

5.2 STM32F4与RMII接口

RMII( DM9161)STM32F4(ETH)功能介绍
TXD-1PG14ETH-RMII-TXD1
TXD-0PG13ETH-RMII-TXD0
TX-ENPG11TH-RMII-TX-EN
MDCPC1ETH-MDC
RXDVPA7RMII_CRS_DV
MDINTRPH6RMII_INT
RXD-0PC4ETH-RMII-RXD0
RXD-1PC5ETH-RMII-RXD1
MDIOPA2ETH-MDIO
XT2PA1ETH-RMII-REF_CLK

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/638235.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

InFusion:通过从扩散先验学习深度完成来修复3D高斯

InFusion: Inpainting 3D Gaussians via Learning Depth Completion from Diffusion Prior InFusion:通过从扩散先验学习深度完成来修复3D高斯 Zhiheng Liu * 刘志恒 *1144Hao Ouyang * 欧阳浩 *2233Qiuyu Wang 王秋雨33Ka Leong Cheng 郑家亮2233Jie Xiao 街小…

美盈森携手飞讯打造SRM项目驱动供应链价值跃升

日前,美盈森集团股份有限公司(以下简称:美盈森)携手飞讯工业互联共同启动了以“协同创新,驱动供应链价值跃升”为主题的SRM项目。美盈森厂长袁训光、严光友、周振华等领导携同公司各职能部门的核心成员齐聚现场&#x…

Docker构建Golang项目常见问题

Docker构建Golang项目常见问题 1 Dockerfile1.1 dockerfile报错:failed to read expected number of bytes: unexpected EOF1.2 go mod tidy: go.mod file indicates go 1.21, but maximum supported version is 1.171.3 是否指定启动文件问题 2 构建及部署 1 Docke…

CSS的语法规则——基础选择器

元素&#xff1a; 用法&#xff1a; 标签名&#xff1a;{style的内容} 特点&#xff1a; 全局性&#xff0c;使用后&#xff0c;所有的相同标签都是同一种样式。 举例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UT…

Docker - Compose

原文地址&#xff0c;使用效果更佳&#xff01; Docker - Compose | CoderMast编程桅杆Docker - Compose 在部署应用时&#xff0c;常常使用到不止一个容器&#xff0c;那么在部署容器的时候就需要一个一个进行部署&#xff0c;这样的部署过程也相对来说比较繁琐复杂&#xff…

医学图像分割入门-FCN理论与实践

FCN&#xff08;全卷积神经网络&#xff09; 引言 全卷积网络&#xff08;Fully Convolutional Network&#xff0c;简称FCN&#xff09;是一种深度学习模型&#xff0c;专门设计用于图像分割任务。相比于传统的基于全连接层的神经网络&#xff0c;FCN可以接受任意尺寸的输入…

「健身党」真无线蓝牙耳机怎么选?攻略来啦

在减脂健身的道路上,我虽然还是个新手,但在耳机选择上却已经踩了不少雷。根据自己的经验分享一些挑选真无线蓝牙耳机的小技巧,希望能为大家提供一些帮助,避免像我一样花冤枉钱。 一、耳机类型 传统入耳式耳机和头戴式耳机真的达咩,健身的时候戴这两种耳机不仅容易掉,而且舒适…

Stanford天空图像和光伏发电数据集

需要的同学私信联系&#xff0c;推荐关注上面图片右下角的订阅号平台 自取下载。 太阳能的间歇性对光伏&#xff08;PV&#xff09;与电网的大规模集成提出了挑战。基于天空图像的太阳能预报已被认为是预测短期波动的一种很有前途的方法。在这里&#xff0c;介绍一个数据集名叫…

详解QListView、QListWidget、QTableView、QTableWidget的使用以及区别

在Qt框架中&#xff0c;QListView、QListWidget、QTableView和QTableWidget都是用于显示列表或表格数据的控件。它们在用途、数据模型、灵活性以及直接操作数据的便捷性等方面存在一定的差异。下面将详细阐述这些控件的使用方法以及它们之间的区别&#xff0c;并提供相应的C代码…

算法课程笔记——蓝桥云课第二次直播

注意是‘’ 都正确 可以理解为a的首地址也是数字&#xff0c;向右1 %p逻辑地址 Cin cout字符串“”单个字符本身‘’&#xff0c;其他时候不用加 这样就可以 逆运算 bool比较真假<从小到大排 11/25 都输出最省事 变成长度为n1的数组 考虑到整个都可能为一个颜色&#xff0c;…

Docker Desktop打开一直转圈的解决办法

安装Docker Desktop之前确保你的Hyper-V已经打开 开启后需要重新安装重新安装重新安装这是最关键的一步&#xff0c;博主自己看了很多教程&#xff0c;最后试着重装了一下解决了 安装DockerDesktop的时候我的电脑根本就没有Hyper-V这个功能选项&#xff0c;可能是这个问题 如…

C51配置115200串口波特率

一、首先用软件模拟 经过验证&#xff0c;用软件配置115200波特率&#xff0c;在C51里面是行不通的&#xff0c;因为寄存器有限 此时应该翻阅手册看看&#xff0c;是否有其他的解决办法 二、查阅手册 发现定时器2&#xff0c;其实是C52的&#xff0c;也正是C52比C51增强的地…