一. 简介
本文来了解一下常用的一种网络硬件方案: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 以外,还有其他接口,比如 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
座上的这两个灯。