emac接口与phy交互

news2024/11/16 6:04:20

nuc970的emac接口

nuc970的EMAC以太网接口与PHY芯片之间的数据交换是通过MII(Media Independent Interface)或RMII(Reduced Media Independent Interface)接口实现的。

在MII接口中,EMAC和PHY之间通过4对数据线(TXD0–TXD3和RXD0–RXD3)、两条时钟线(TX_CLK和RX_CLK)、一个数据同步线(TX_EN和RX_EN)以及一个管理线(MDC)进行数据传输。

在RMII接口中,EMAC和PHY之间只需要通过2对数据线(TXD0和RXD0)、两条时钟线(REF_CLK和TX_EN/RX_EN)以及一个管理线(MDIO)进行数据传输。具体的数据传输流程可以参考MII或RMII协议的规定。

RMII通信大致过程

在NUC这样的mpu上用得多的还是,RMII通信协议,而RMII(Reduced Media Independent Interface)是一种简化版的MII(Media Independent Interface)协议,用于连接MAC(Media Access Control)和PHY(Physical Layer)之间的通信。相比于MII,RMII只需要使用2对差分信号线(TXD0/RXD0和TXD1/RXD1)和2条时钟信号线(REF_CLK和TX_EN/RX_EN),可以减少芯片的引脚数量和板子的复杂度。RMII协议的通信过程如下:

  1. PHY通过MDIO(Management Data Input/Output)接口向MAC发送PHY的ID,以便MAC能够识别PHY的类型。

  2. MAC通过MDIO接口向PHY发送配置信息,例如速度、双工模式、自动协商等。

  3. 当MAC需要发送数据时,它将数据放入TXD0和TXD1差分信号线中,并在TX_EN信号线上发送一个高电平的脉冲,表示数据已经准备好发送。

  4. PHY接收到TX_EN信号后,会将数据从TXD0和TXD1差分信号线中读取出来,并将数据发送到物理介质上进行传输。

  5. 当PHY接收到数据时,它将数据放入RXD0和RXD1差分信号线中,并在RX_EN信号线上发送一个高电平的脉冲,表示数据已经准备好接收。

  6. MAC接收到RX_EN信号后,会将数据从RXD0和RXD1差分信号线中读取出来,并进行后续处理,例如检查CRC校验和、解析数据包等。

如上就是RMII协议的大致通信,当然了具体实现可能会因为芯片设计的不同而有所差异。

RMII与MII的对比

  1. 引脚数量:MII需要使用4对差分信号线(TXD0~TXD3和RXD0~RXD3)、2条时钟信号线(TX_CLK和RX_CLK)、一个数据同步线(TX_EN和RX_EN)以及一个管理线(MDC),总共需要14根信号线。而RMII只需要使用2对差分信号线(TXD0/RXD0和TXD1/RXD1)和2条时钟信号线(REF_CLK和TX_EN/RX_EN),总共需要6根信号线。

  2. 速率:MII的最大速率为100Mbps,而RMII的最大速率为100Mbps或10Mbps。

  3. 管理接口:MII使用MDC(Management Data Clock)和MDIO(Management Data Input/Output)两个信号线,用于MAC和PHY之间的管理通信。而RMII只使用MDIO信号线,且其通信速率为MII的一半。

  4. 帧同步:在MII中,TX_EN和RX_EN信号线用于帧同步,而在RMII中,REF_CLK信号线用于帧同步。

总的来说,RMII相对于MII来说,具有引脚数量少、速率较快、协议简单等优势,因此在一些资源受限的应用场景中,RMII被广泛应用。

【最后一个bug】多平台都有更新和发布,大家可以一键三连,关注+星标,不错过精彩内容~~
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言:当scanf语句中有转义字符时,你该这样输入

最近在重新学习一下C语言的有关知识,突然发现现在来看过去所学的知识,自己的感受又有很大的不同,就拿输入语句scanf来说吧!看到CSDN问答上有一个关于scanf语句的问题,当时题主代码很简单,可是就是没有输出语…

idea:地址被占用

问题启动idea报:java.net.BindException: Address already in use: bind,具体截图如下:解决步骤1、首先想到的是改idea端口,但按网上方法试下了几个4位数和5位数的端口,没啥作用2、根据idea抛异常的弹出框提示&#xf…

在函数中,用指针接收就可以改变相应的内容吗??

作者:小树苗渴望变成参天大树 作者宣言:认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! 我们在不管指针那篇博客,还是在函数那篇博客中,我都给大家讲解过…

Unity 打包代码到 DLL

Unity 打包代码到 DLL 使用Unity API PlayerBuildInterface.CompilePlayerScripts 将项目中的代码生成为 DLL 程序集 在 Editor 文件夹下新建脚本 CompileDll using UnityEngine; using UnityEditor; using UnityEditor.Build.Player; using System.IO;public class Compile…

【springmvc】获取请求参数

SpringMVC获取请求参数 1、通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 RequestMapping("/testParam") public String testParam(HttpServletRequest request)…

Allegro如何输出ODB文件操作指导

Allegro如何输出ODB文件操作指导 在PCB设计完成之后,需要输出生产文件用于生产加工,除了gerber文件可以用生产制造,ODB文件同样也可以用于生产,如下图 用Allegro如何输出ODB文件,具体操作如下 首先确保电脑上已经安装了ODB这个插件,版本不受限制点击File

开学季准备哪些电容笔好?apple pencil一代平替笔推荐

一支简单而又易用的电容笔,配上我们的ipad,将会为我们的工作、学习带来更多的乐趣。在画画时,也不能忽略电容笔的重要作用。关于电容笔的相关知识,本人也略有知不少,以下是我今天要带来的几款具有极高性价比的电容笔&a…

【C#进阶】C# 特性

序号系列文章10【C#基础】C# 正则表达式11【C#基础】C# 预处理器指令12【C#基础】C# 文件与IO文章目录前言1,特性的概念1.1 特性的属性1.2 特性的用途2,特性的定义2.1 特性参数2.2 特性目标3,预定义特性3.1 AttributeUsage3.2 Conditional3.2…

【springmvc】java bean 的区分

bean JavaBean分为两类: 一类称为实体类Bean:专门存储业务数据的,如 Student、User 等一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。 在一个java的springboot中,一般…

day59-day60【代码随想录】二刷数组

文章目录前言一、移动零(力扣283)【双指针】二、轮转数组(力扣189)三、寻找数组的中心下标(力扣728)四、和为 K 的子数组(力扣560)五、按奇偶排序数组 II(力扣922&#x…

【SPSS】多因素方差分析详细操作教程(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【微信小程序-原生开发】实用教程14 - 列表的分页加载,触底加载更多(含无更多数据的提醒和显示,自定义组件)

此页可在动态列表的基础上完善,也可以单独学习 【微信小程序-原生开发】实用教程10 - 动态列表的新增、修改、删除 https://blog.csdn.net/weixin_41192489/article/details/128835069 效果预览 核心技术 列表的分页加载 skip 跳跃到指定下标开始查询limit 限制返…

Vulnhub系列:SickOS1.1

靶机地址:SickOS1.1渗透思路:信息收集对于目标靶机进行扫描,可以利用nmap或arp-scan -l进行查询,查询到靶机后,探测其开放的端口,常见的端口21、22、80、3306、445等等,对于不同的端口进行不同的…

博途PLC开放式以太网通信之TRCV_C指令编程应用

博途PLC开放式以太网通信TSENG_C指令应用,请参看下面的文章链接: 博途PLC 1200/1500PLC开放式以太网通信TSEND_C通信(UDP)_plc的udp通信_RXXW_Dor的博客-CSDN博客开放式TSEND_C通信支持TCP 、UDP等,关于TSEND_C的TCP通信可以参看下面这篇文章:博途PLC 1200/1500PLC开放式…

存储器分类

存储器(Memory)包括: RAM(Random Access Memory)(计算机运行内存、CPU的L1/L2 Cache等)、 ROM(Read Only Memory)(用于BIOS等固化程序/数据的存储)和 Flash(可用于机械硬盘等)。 存储器&#x…

现代神经网络(VGG),并用VGG16进行实战CIFAR10分类

专栏:神经网络复现目录 本章介绍的是现代神经网络的结构和复现,包括深度卷积神经网络(AlexNet),VGG,NiN,GoogleNet,残差网络(ResNet),稠密连接网络…

Blender Python材质处理入门

本文介绍在 Blender 中如何使用 Python API 获取材质及其属性。 推荐:用 NSDT场景设计器 快速搭建3D场景。 1、如何获取材质 方法1、 获取当前激活的材质 激活材质是当前在材质槽中选择的材料。 如果你选择一个面,则活动材料将更改为分配给选定面的材质…

ceph-ansible部署Ceph Pacific版本集群

文章目录环境规划节点初始化设置ssh免密主机名解析时间同步关闭防火墙部署ceph下载ceph-ansible修改配置文件执行部署验证集群状态扩容mon节点扩容osd节点环境规划 总共9个节点,3个mon节点,6个osd节点,每个osd节点3块50G的osd磁盘 主机名os…

Linux命令系统总结

Linux Linux常用操作_linux基本操作_槑の少年的博客-CSDN博客 help help 命令 :获得 shell 内置命令的帮助信息,常用形式 help cd ls --help 文件夹级 常用参数: cd 绝对路径 :切换路径 cd 相对路径 :切换路径 …

移动web(三)

her~~llo,我是你们的好朋友Lyle,是名梦想成为计算机大佬的男人! 博客是为了记录自我的学习历程,加强记忆方便复习,如有不足之处还望多多包涵!非常欢迎大家的批评指正。 媒体查询 目标:能够根据…