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 不起作用。
TXD3:0 :发送数据信号线,一共 4 根。
RXD3: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 发送使能信号。
TXD1:0 发送数据信号线,一共 2 根。
RXD1:0 :接收数据信号线,一共 2 根。
CRS_DV 相当于 MII 接口中的 RX_DV 和 CRS 这两个信号的混合。
REF_CLK 参考时钟,由外部时钟源提供, 频率为 50MHz 。这里与 MII 不同, MII 的接 收和发送时钟是独立分开的,而且都是由 PHY 芯片提供的。

除了 MII 和 RMII 以外,还有其他接口,比如 GMII、RGMII、SMII、SMII 等,关于其他接口基本都是大同小异的,这里就不做讲解了。正点原子 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 座上的这两个灯。

相关推荐
稳联技术老娜6 小时前
DeviceNet主站怎么连接西门子PLC,Profinet网关配置手册(那智机器人)
服务器·网络·数据库
9分钟带帽6 小时前
linux_系统开机自动执行shell脚本
linux·服务器
secondyoung8 小时前
Cortex-R52学习:MPU内存保护机制
arm开发·单片机·学习·arm·mpu
志栋智能8 小时前
AI驱动无代码:降低巡检超自动化的门槛
大数据·运维·网络·人工智能·自动化
专业机床数据采集8 小时前
C# 精雕数控 数据采集 Demo|实时读取精雕机床坐标、主轴、负载、加工工时全量参数
网络·网络协议·tcp/ip·mes·精雕数控数据采集
嵌入式小能手8 小时前
飞凌嵌入式ElfBoard-进程间的通信之命名管道
linux·服务器·算法
AOwhisky8 小时前
Ceph系列第六期:Ceph 文件系统(CephFS)精讲
linux·运维·网络·笔记·ceph
我爱C编程8 小时前
基于ECC簇内分组密钥管理算法的无线传感器网络matlab性能仿真
网络·matlab·ecc·密钥管理·无线传感器网络·簇内分组
Starry-sky(jing)9 小时前
# Linux 下 Qt 应用无障碍自动化:记一次wx无人值守系统的架构演进
linux·qt·自动化
荒--9 小时前
apt dpkg 命令详解
linux·服务器