stm32以太网接口:MII和RMII
前言
使用stm32和lwip进行网络通信开发时,实现结构如下:

而MII和RMII就是stm32与PHY芯片之间的通信接口,类似于I2C、UART等。
stm32以太网模块有专用的DMA控制器,通过AHB接口将以太网内核和存储器相连。
数据发送时,先将数据从存储器以DMA传输到TX FIFO中进行缓冲,然后由MAC内核通过MII或RMII接口发送;
数据接收时,RX FIFO先通过MII或RMII接收以太网数据帧,再由DMA传输至存储器。
ETH功能系统框图如下:

MII和RMII用于连接stm32 MAC控制器和PHY芯片,提供数据传输路径。RMII接口是MII接口的简化版本,MII需要16跟通信线,RMII需要7根。
MII接口
MII接口连接示意图如下:

TX_CLK:为数据发送提供时钟信号,传输速率为10Mbit/s时,该时钟为2.5MHz,传输速率为100Mbit/s时,该时钟为25MHz(因为每次传4bit,所以时钟信号与传输速率之间是4倍关系)。
RX_CLK:为数据接收提供时钟信号,传输速率为10Mbit/s时,该时钟为2.5MHz,传输速率为100Mbit/s时,该时钟为25MHz。
TX_EN:数据发送使能信号,在整个数据发送过程中保持有效电平。
TXD[3:0]:数据发送数据线,每次发4bit数据,TXD[0]是数据最低位,TXD[3]是最高位。
RXD[3:0]:数据接收数据线,每次接收4bit数据,RXD[0]是数据最低位,RXD[3]是最高位。在RX_DV禁止、RX_ER使能时,PHY芯片会通过RXD[3:0]传输一组特殊数据,来告诉一些特殊信息。
RX_DV:接收数据有效信号,功能类似于TX_EN,由PHY芯片负责驱动。
RX_ER:接收错误信号线,由 PHY 驱动,向 MAC 控制器报告在帧某处检测到错误。
RMII接口
RMII接口示意图如下:

与MII接口相比区别如下:
1.接受数据线和发送数据线由4根变成了2根。
2.MII的CRS 和 RX_DV整合成RMII的CRS_DV 信号线。
3.没有了COL冲突检测信号。
4.没有了数据接收、发送时钟信号,取而代之的是REP_CLK时钟源。
SMI接口
在MII和RMII接口连接示意图中都有MDC和MDIO两个信号线,这两个信号线是SMI接口,类似与IIC,用于访问PHY芯片的寄存器。
SMI接口示意图如下:

MDC是周期性时钟信号,MDIO是数据输入输出线。
向PHY芯片寄存器写数据时序图如下:

从PHY芯片寄存器读数据时序图如下:

相关文章:
stm32以太网接口:MII和RMII
前言 使用stm32和lwip进行网络通信开发时,实现结构如下: 而MII和RMII就是stm32与PHY芯片之间的通信接口,类似于I2C、UART等。 stm32以太网模块有专用的DMA控制器,通过AHB接口将以太网内核和存储器相连。 数据发送时,…...
ChromeDriver 官方下载地址_测试自动化浏览器驱动
大家在做selenium自动化测试时,需要下载谷歌浏览器驱动,可以从以下官网地址下载 (1) ChromeDriver 下载地址1 http://chromedriver.storage.googleapis.com/index.html 这个地址最后版本到 114.0.5735.90 (2&#…...
力扣 LeetCode 206. 反转链表(Day2:链表)
解题思路: pre ,cur双指针 需要通过tmp暂存cur的下一个位置,以方便cur的下一步移动 class Solution {public ListNode reverseList(ListNode head) {ListNode pre null;ListNode cur head;while (cur ! null) {ListNode tmp cur.next;c…...
kafka消费数据太慢了,给优化下
原代码 public class KafkaConsumerDemo {public static void main(String[] args) {int numConsumers 5; // 增加消费者的数量for (int i 0; i < numConsumers; i) {new Thread(new KafkaConsumerThread()).start();}}static class KafkaConsumerThread implements Runn…...
ASUS/华硕灵耀X双屏Pro UX8402Z 原厂Win11-22H2系统 工厂文件 带ASUS Recovery恢复
华硕工厂文件恢复系统 ,安装结束后带隐藏分区,一键恢复,以及机器所有驱动软件。 系统版本:windows11 原厂系统下载网址:http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意:仅支持以上型号专用…...
【含开题报告+文档+PPT+源码】基于springboot的毕业设计选题管理系统
开题报告 毕业设计选题作为高校教学环节中的重要一环,其选题质量和管理效率直接关系到学生毕业设计的质量和毕业要求的达成。然而,传统的选题管理方式往往存在信息不对称、流程繁琐、效率低下等问题,无法满足高校教学管理现代化、信息化的需…...
fastadmin常用操作
数据库中遇到的操作 查询字段是json的某个值 $map[json_extract(goods, "$.brand_id")] (int)$params[brand_id]; //获取数据库中某个字段是json中得某个值,进行查询,goods是表中字段,brand_id是json中要查詢的字段。数据类型一定…...
IPguard与Ping32:谁是企业数据防泄密的最佳选择?
在当前信息化快速发展的背景下,企业数据安全已成为公司运营中最重要的议题之一。为了防止数据泄漏,越来越多的企业开始依赖专业的加密软件来进行防护。今天,我们对比了两款业内领先的加密软件——IPguard和Ping32,帮助您选择最适合…...
C++20新特性的补充讲解
C20 标志着 C 语言的一次重要更新,除了 Concepts、Ranges、协程等被广泛讨论的特性外,还有许多值得注意的改进。本文将详细探讨其他一些核心新特性,包括 constexpr 扩展、新增的 std::format、std::span、std::bit 操作、原子智能指针、char8…...
uni-app移动端与PC端兼容预览PDF文件
过程遇到的问题 1、如果用的是最新的版本的pdfjs的话,就会报Promise.withResolvers 不是一个方法的错误,原因是Promise.withResolvers是ES15新特性,想了解可参考链接,这里的解决方案是将插件里的涉及到Promise.withResolvers的地…...
Elman 神经网络算法详解
Elman 神经网络算法详解 一、引言 Elman 神经网络作为一种经典的递归神经网络(RNN),在处理动态系统和时间序列数据方面具有独特的优势。它通过特殊的结构设计,能够有效地捕捉数据中的时间依赖关系,在语音识别、自然语…...
卓胜微嵌入式面试题及参考答案(2万字长文)
freeRTOS 任务是怎么调度的? 在 freeRTOS 中,任务调度主要是基于优先级的抢占式调度。每个任务都有一个优先级,系统会根据任务的优先级来决定哪个任务获得 CPU 的使用权。 当一个高优先级的任务准备运行,并且当前运行的任务优先级较低时,高优先级任务会抢占 CPU。例如,假…...
【Python】爬虫使用代理IP
1、代理池 IP 代理池可以理解为一个池子,里面装了很多代理IP。 池子里的IP是有生命周期的,它们将被定期验证,其中失效的将被从池子里面剔除池子里的ip是有补充渠道的,会有新的代理ip不断被加入池子中池子中的代理ip是可以被随机…...
金融机构-业务架构方案(高光版)
一、金融机构的设计架构 首先视角很重要,比如这样的战略视角,站得高、看得远。设计业务架构,一定要有战略高度和前瞻性。 二、什么样的架构更适合你们公司呢? 三、从架构着手,进行产品和服务创新性变革 四、具体如何设计业务架构呢?...
ubuntu内核切换network unclaimed 网卡丢失
现象一、 查网络的时候 提示只有lo network unclaimed wifi 本地局域网全部丢失 显卡丢失 解决思路 首先查看了 网卡类型 sudo lshw -C network 会显示使用的网卡 然后把这个网卡 去到realtek的官网去找驱动 驱动下下来发现debug提示 没有build目录 /libs/modules/6.8…...
【人工智能】揭秘可解释性AI(XAI):从原理到实战的终极指南
文章目录 开篇:AI的黑箱时代,你准备好揭开真相了吗?🔍什么是可解释性AI(XAI)?XAI的定义XAI的分类 可解释性AI的重要性与价值建立用户信任遵循法规和伦理发现和纠正模型偏见提高模型性能促进跨领…...
小面馆叫号取餐流程 佳易王面馆米线店点餐叫号管理系统操作教程
一、概述 【软件资源文件下载在文章最后】 小面馆叫号取餐流程 佳易王面馆米线店点餐叫号管理系统操作教程 点餐软件以其实用的功能和简便的操作,为小型餐饮店提供了高效的点餐管理解决方案,提高了工作效率和服务质量 点餐管理:支持电…...
图形 2.6 伽马校正
伽马校正 B站视频:图形 2.6 伽马校正 文章目录 伽马校正颜色空间传递函数 Gamma校正校正过程为什么需要校正?CRT与转换函数 为什么sRGB在Gamma 0.45空间? 人对亮度的敏感韦伯定律中灰值 线性工作流不在线性空间下进行渲染的问题统一到线性空…...
LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/143749468 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 影响 (…...
数据可视化这样做,汇报轻松拿捏(附免费好用可视化工具推荐)
一、数据可视化的定义 数据可视化是数据分析中重要的工作之一。在完成数据采集之后,通过可视化方式,将数据转化为美观且浅显易懂的统计图/表/视频,从而进一步解读数据背后隐藏的价值,这种方数据处理方式就叫做数据可视化。近些年…...
LVGL下拉列表控件lv_dropdown实战:从基础配置到高级定制(附完整代码示例)
LVGL下拉列表控件lv_dropdown实战:从基础配置到高级定制(附完整代码示例) 在嵌入式UI开发领域,LVGL(Light and Versatile Graphics Library)凭借其轻量级和高度可定制的特性,已成为许多开发者的…...
3步终结C盘爆红:WindowsCleaner革新性磁盘清理工具高效释放空间
3步终结C盘爆红:WindowsCleaner革新性磁盘清理工具高效释放空间 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 问题剖析:你是否正遭遇这些…...
卡证检测矫正模型开发环境搭建:PyCharm/IDEA项目配置全攻略
卡证检测矫正模型开发环境搭建:PyCharm/IDEA项目配置全攻略 你是不是刚拿到一个卡证检测矫正模型的项目,看着一堆代码和配置文件有点无从下手?特别是想用PyCharm或者IDEA这样的专业工具来开发调试,却不知道从哪一步开始配置环境&…...
避坑指南:ThingsBoard部件开发中5个常见错误与优化方案(附跑马灯Demo代码)
ThingsBoard部件开发实战:5个高频踩坑点与性能优化技巧(含跑马灯完整实现) 最近在技术社区看到不少开发者讨论ThingsBoard部件开发中的"玄学问题"——明明按照文档操作却出现各种诡异现象。作为经历过完整产品开发周期的技术负责人…...
【AI】JSON 格式:执行式AI数据交互核心语法
JSON 格式:执行式AI数据交互核心语法📝 本章学习目标:本章是入门认知部分,帮助零基础读者建立对AI Agent的初步认知。通过本章学习,你将全面掌握"JSON 格式:执行式AI数据交互核心语法"这一核心主…...
C#安装步骤以及流程易出错提醒修正
C# 开发环境安装步骤 Visual Studio 安装 从 Microsoft 官网 下载 Visual Studio Community(免费版本)。运行安装程序,选择“使用 C# 的桌面开发”工作负载,确保勾选 .NET SDK 和核心组件。 验证安装 打开命令提示符或 PowerShe…...
【分箱进阶篇】分箱的工程细节:从训练到部署的完整模式
基础篇参考:【分箱基础篇】pandas 分箱双子星:pd.cut 与 pd.qcut 我们在基础篇讲了 pd.cut 和 pd.qcut 各自怎么用。但在实际项目里,分箱不是调一次函数就完事的。通常来说,训练集上算出来的切分点要保存下来,测试集…...
全域软开关直流变换器TPEL论文仿真复现之旅
全域软开关直流变换器 TPEL论文仿真复现最近一头扎进了全域软开关直流变换器的研究里,主要在琢磨TPEL论文相关内容,那仿真复现就成了关键任务。今天就来和大家唠唠这个过程中的酸甜苦辣。 一、全域软开关直流变换器是啥? 简单来说,…...
[OS] Rate Monotonic Scheduling: Optimizing Real-Time Task Prioritization
1. 速率单调调度:实时系统的优先级管理艺术 想象一下急诊室的医生如何决定救治顺序——心跳停止的患者永远优先于感冒发烧的病人。速率单调调度(Rate Monotonic Scheduling,RMS)就是实时操作系统中的这位"分诊专家"&am…...
5步掌握Loop:让Mac窗口管理效率提升10倍的免费开源方案
5步掌握Loop:让Mac窗口管理效率提升10倍的免费开源方案 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 在数字工作环境中,窗口管理已成为影响效率的隐形瓶颈。Mac用户每天平均需要执行200次窗口操作…...
