SOC内部集成网络MAC外设+ PHY网络芯片方案:MII/RMII 接口与 MDIO 接口

一.  简介

本文来了解一下常用的一种网络硬件方案:SOC内部集成网络MAC外设+ PHY网络芯片方案。

其中涉及的 MII接口,RMII接口(MII接口与RMII接口二选一),MDIO接口,RJ45。

二.  MII/RMII 接口,MDIO 接口 ,RJ45

本文简单了解一下内部带网络MAC的 SOC+外接一个PHY芯片,这种网络硬件方案涉及到的接口连接。

内部 MAC+ 外部 PHY+RJ45 ( 内置网络变压器 ) 就组成了一个完整的嵌入式网络接口硬件,如下图 所示:

前面我们说了,内部 MAC 通过 MII/RMII 接口来与外部的 PHY 芯片连接,完成网络数据 传输,接下来我们就来学习一下什么是 MII RMII 接口,以及 MDIO 接口
注意:主控需要配置或读取 PHY 芯片,也就是读写 PHY 的内部寄存器,所以还需要一个控制接口,叫做 MIDO。MDIO 很类似 IIC,也是两根线,一根数据线叫做 MDIO,一 根时钟线叫做MDC。

1.  MII 接口

MII 全称是 Media Independent Interface ,直译过来就是介质独立接口,它是 IEEE-802.3 定义的以太网标准接口, MII 接口用于以太网 MAC 连接 PHY 芯片,连接示意图如下 示:

MII 接口一共有 16 根信号线,含义如下:
TX_CLK 发送时钟,如果网速为 100M 的话时钟频率为 25MHz 10M 网速的话时钟频率为 2.5MHz ,此时钟由 PHY 产生并发送给 MAC
TX_EN 发送使能信号。
TX_ER 发送错误信号,高电平有效,表示 TX_ER 有效期内传输的数据无效。 10Mpbs 速下 TX_ER 不起作用。
TXD[3:0] :发送数据信号线,一共 4 根。
RXD[3:0] 接收数据信号线,一共 4 根。
RX_CLK 接收时钟信号,如果网速为 100M 的话时钟频率为 25MHz 10M 网速的话时钟频率为 2.5MHz RX_CLK 也是由 PHY 产生的。
RX_ER 接收错误信号,高电平有效,表示 RX_ER 有效期内传输的数据无效。 10Mpbs 网速下 RX_ER 不起作用。
RX_DV 接收数据有效,作用类似 TX_EN
CRS 载波侦听信号。
COL 冲突检测信号。
MII 接口的缺点就是所需信号线太多,这还没有算 MDIO MDC 这两根管理接口的数据线,因此 MII 接口使用已经越来越少了。

2.  RMII 接口

RMII 全称是 Reduced Media Independent Interface ,翻译过来就是精简的介质独立接口,也就是 MII 接口的精简版本。 RMII 接口只需要 7 根数据线,相比 MII 直接减少了 9 根,极大的 方便了板子布线, RMII 接口连接 PHY 芯片的示意图如图 69.1.2.2 所示:

TX_EN 发送使能信号。
TXD[1:0] 发送数据信号线,一共 2 根。
RXD[1:0] :接收数据信号线,一共 2 根。
CRS_DV 相当于 MII 接口中的 RX_DV CRS 这两个信号的混合。
REF_CLK 参考时钟,由外部时钟源提供, 频率为 50MHz 。这里与 MII 不同, MII 的接 收和发送时钟是独立分开的,而且都是由 PHY 芯片提供的。

除了 MII RMII 以外,还有其他接口,比如 GMIIRGMIISMIISMII 等,关于其他接口基本都是大同小异的,这里就不做讲解了。正点原子 ALPAH 开发板上的两个网口都是采 RMII 接口来连接 MAC 与外部 PHY 芯片。

3.  MDIO 接口

MDIO 全称是 Management Data Input/Output ,直译过来就是管理数据输入输出接口,是一个简单的两线串行接口,一根 MDIO 数据线,一根 MDC 时钟线。
驱动程序可以通过 MDIO MDC 这两根线访问 PHY 芯片的任意一个寄存器。
MDIO 接口支持多达 32 PHY 。同一时刻 内只能对一个 PHY 进行操作,那么如何区分这 32 PHY 芯片呢?
IIC 一样,使用器件地址 即可。同一 MDIO 接口下的所有 PHY 芯片,其器件地址不能冲突,必须保证唯一,具体器件 地址值要查阅相应的 PHY 数据手册。
因此, MAC 和外部 PHY 芯片进行连接的时候主要是 MII/RMII MDIO 接口,另外可能 还需要复位、中断等其他引脚。

4.  RJ45 接口

网络设备是通过网线连接起来的,插入网线的叫做 RJ45 座,如下图 所示:

RJ45 座要与 PHY 芯片连接在一起,但是中间需要一个网络变压器,网络变压器用于隔离以及滤波等,网络变压器也是一个芯片,外形一般下图所 示:

但是现在很多 RJ45 座子内部已经集成了网络变压器,比如,正点原子 ALPHA 开发板所使用 HR911105A 就是内置网络变压器的 RJ45 座。内置网络变压器的 RJ45 座和不内置的引脚一 样,但是一般不内置的 RJ45 座会短一点。
注意:
因此,大家在画板时一定要考虑你所使用的 RJ45 座是否内置网络变压器,如果不内置的话就要自行添加网络变压器部分电路!!!同理,如果你所设计的硬件是需要内置网络变压器的 RJ45 座,肯定不能随便焊接一个不内置变压器的 RJ45 座,否则网络工作不正常!
RJ45 座子上一般有两个灯,一个黄色 ( 橙色 ) ,一个绿色,绿色亮的话表示网络连接正常, 黄色闪烁的话说明当前正在进行网络通信。这两个灯由 PHY 芯片控制, PHY 芯片会有两个引 脚来连接 RJ45 座上的这两个灯。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

unity学习(74)——服务器Dispose异常

1.返回的1 2 11是怪物初始化,源代码中也没有 2. 3.客户端中的网络连接初始化如下: 4.不是因为超时,设置10s为超时期限后,客户端和服务器有时依然会报错! 5.我感觉就是update中发包给弄坏的! 6.不在“帧”…

【prometheus】k8s集群部署Grafana安装并接入Promethues数据源

目录 一、概述 1.1 优点 1.2 特点 二、grafana部署 三、grafana接入Promethues数据源 四、grafana可视化展示物理节点指标数据 五、grafana可视化展示k8s组件指标数据 5.1 kube-state-metrics简介 5.2 安装kube-state-metrics组件 一、概述 Grafana是一款用Go语言开发…

CodeTON Round 8 D. Learning to Paint 【DP求前k大】

D. Learning to Paint 题意 有一个 n n n 个格子长度的条带,格子从左到右编号为 1 → n 1 \rarr n 1→n,可以选择若干子段(或不选)的格子,给定一个二维数组 a a a 每选择一个 [ l i , r i ] [l_i,r_i] [li​,ri​…

5G无线接入网和接口协议

**部分笔记** 4.3无线协议架构 NR无线协议分为两个平面:用户面和控制面。 用户面(UP):协议栈及用户数据采用的协议 控制面(Control Plane,CP)协议栈即系统的控制信令传输采用的协议簇。 虚线标注的是信令数据的流向。一个UE在…

[计算机效率] 文件加密工具:Lockdir

3.11 文件加密工具:Lockdir Lockdir是一款安全性高、使用简单、体积极小的便携式文件夹加密器,无需安装,一键加密,一键解密,加密算法高,是优秀的加密工具。其主要特点包括: 加密操作简易&#…

遥感动态监测技术

很多人对动态监测和动态检测两个名词有疑惑。我们可以这样理解,动态监测是一个广义的名词,泛指数据预处理、变化信息发现与提取、变化信息挖掘与应用等,以对整个流程的叙述。动态检测是一个狭义的名词,主要指部分数据预处理、变化…

Python | Leetcode Python题解之第4题寻找两个正序数组的中位数

题目: 题解: class Solution:def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:def getKthElement(k):"""- 主要思路:要找到第 k (k>1) 小的元素,那么就取 pivot1 nums1[k…

需要给Word文档中的汉字注音,拼音要在汉字的右边 要怎么操作?两种方法一学就会

在Word文档中,为字体添加拼音是一个常见的需求,特别是在处理包含生僻字或需要标注拼音的文本时。下面,我们将详细介绍如何在Word文档中将拼音加到字体的右边。 方法一:使用“汇帮注音大师”给汉字加拼音加到右边 第一步&#xf…

快速排序---算法

1、算法概念 快速排序:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的数据均比另一部分的数据小,则可分别对这两部分记录继续进行排序,以达到震哥哥序列有序。 快速排序的最坏运行情况是O(),比如说顺序数…

整数删除,蓝桥杯训练题

题目描述: 给定一个长度为 N 的整数数列:A1,A2,…,AN。 你要重复以下操作 K 次: 每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除,并把与它相邻的整数加上被删除的数值。 …

【前端面试3+1】06继承方式及优缺点、缓存策略、url输入到渲染全过程、【二叉树中序遍历】

一、继承有哪些方式?以及优缺点 继承的方式包括原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承和组合式继承。 1.原型链继承: 实现方式:将子类的原型指向父类的实例来实现继承。优点:简单易懂,代码量少。…

linux 一些命令

文章目录 linux 一些命令fdisk 磁盘分区parted 分区文件系统mkfs 格式化文件系统fsck 修复文件系统 mount 挂载swap 交换分区清除linux缓存df du 命令raid 命令基本原理硬raid 和 软raid案例raid 10 故障修复,重启与卸载 lvm逻辑卷技术LVM的使用方式LVM 常见名词解析…

wavedec2函数及使用

在MATLAB中,进行小波分解及其逆运算是处理图像的一种常见方法,尤其适用于图像分析、压缩和去噪等场景。wavedec2函数可以对二维信号(例如图像)进行多级小波分解,而waverec2函数则用于进行相应的逆运算。以下是如何使用…

【树状数组专题】【蓝桥杯备考训练】:数星星、动态求连续区间和、一个简单的整数问题、一个简单的整数问题2【已更新完成】

目录 1、数星星(《信息学奥赛一本通》 & ural 1028) 思路: 基本思路: 树状数组经典三函数: 1、lowbit()函数 2、query()函数 3、add()函数 最终代码: 2、动态求连续区间和(《信息学奥赛一本…

笔记本三屏异显方案——更新中,是否能够在FPGA上实现,淘宝购物的价格太贵

三屏是(笔记本电脑屏幕,两个显示器屏幕),异显是采用屏幕的扩展功能,这样能够左边看视频文章,右边control cv代码。 一、 电脑有一个HDMI口的时候,只需要买一个TypeC(雷电接口&#x…

ruoyi-nbcio-plus基于vue3的flowable任务监听器的升级修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

基于Springboot点餐平台网站

采用技术 基于Springboot点餐平台网站的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringBootMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 菜品评价管理 订单管理 前台首页 管理员登录 用户管理 菜品分…

MATLAB小波包分解及逆向操作

MATLAB代码 % 载入图像 grayImg imread(lena256.bmp); % 替换为你的图像路径% 选择小波函数和分解级别 waveletFunction db1; level 2;% 执行WPT正向分解 wp wpdec2(double(grayImg), level, waveletFunction);% 从小波包分解中重建图像(逆向运算) r…

【数字IC/FPGA】手撕代码:模3检测器(判断输入序列能否被3整除)

今天我们来手撕一个常见的笔试题,使用的方法是三段式Moore状态机。 题目描述: 输入端口是串行的1bit数据,每个时钟周期进来一位新数据后,实时检查当前序列是否能整除3,若能则输出1,否则输出0。 例如&#…

webpack搭建开发环境

webpack搭建开发环境 一.webpack开发模式二.webpack打包模式三.webpack打包模式应用四.Webpack 前端注入环境变量五.Webpack 开发环境调错 source map六. Webpack 设置解析别名路径七.优化-CDN的使用八.多页面打包九.优化-分割公共代码一.webpack开发模式 作用:启动 Web 服务…