目录
RGMII不同的工作电压3.3V/2.5V/1.8V/1.5V
RGMII经常用来MAC和MAC之间, 或者MAC跟PHY之间的通信.
MAC,也即Mdedia Access Control,媒体访问控制,由硬件控制器以及MAC通信协议构成。MAC需要将以太网包转换为字节流。
Transceiver(PHY)也即物理层的收发器,将MAC传来的字节流转换为物理信号到总线上
例如 Linux 就是mac 处理层,
realtek 有的可以做mac层,比如RTL83xx系列,高版本的网卡芯片,有内部处理模块。
也有的可以直接当 phy 比如常见的 RTL8211 。

网常见的路径MAC+PHY+RJ45,但是如果没用RJ45也可以PHY层相互连接传输数据,那么想到可以省去RJ45,也可以省略其中简单的PHY,直接两个MAC连接,充当MAC的其中一方需要有网络数据流入,即网卡
RGMII可以工作的带宽可以是10Mbps, 100Mbps以及1000Mbps.
对于10MHz的带宽, 时钟频率为2.5MHz,波形为方波
对于100MHz的带宽, 时钟频率为25MHz,波形为正弦波,但是又的会
对于1000MHz的时钟频率, 时钟频率是125MHz为正弦波.
在MII和GMII中都有主从模式,即时钟有主机发送接收!
在RGMII中没有特别的要求,不过一般linux的clk_tx会使用clk_rx,即读到的时钟为输出的时钟
Linux 的CPU侧的 clk 125M 是由 phy侧产生后读取并且返回的
同时CPU侧读取phy的工作速率也是由 clk决定的
当调用ifconfig eth0 up 时,硬件层会读取rgmii 中 clk ,来进行判断
所以如果linux显示 link up只能判断是有clk时钟不能判断是否有数据
在很多电路模型中rgmii都要求接MDIO
MDIO的作用主要是用于mac层读取以及配置phy层的工作模式即speed是10M还是100M还是1000M,还有事全双工还是半双工。
当其实MDIO不需要也是可以的,对于像RTL83xx系列的模块,要进行固件的代码配置,其实可以直接进行配置不需要mac层来控制,即不需要接MDIO线。
注意:在不接MIDO线之后,那么MAC层像linux系统的处理过程就要把关于phy_init()的函数进行注释,不然linux的网卡不能正常的初始化,也就正常连接

RGMII提供了3.3V、2.5V、1.8V 1.5V
但是具体的看数据手册,以下 RTL8211 针对不同的型号提供的工作电压
