GMAC网卡相关介绍与分析
环境描述
UTP
这里指MDI连接RJ45接口,UTP对网线来讲为非屏蔽双绞线。
SDS
SERDES是英文SERializer(串行器)/DESerializer(解串器)的简称 ,SerDes的主要特点包括:
1) 在数据线中时钟内嵌,不需要传送时钟信号。
2) 通过加重/均衡技术可以实现高速长距离传输,如背板。
3) 使用了较少的芯片引脚.
SGMII和FIBER都属于SDS,UTP\SDS指PHY与RJ45或光口的连接方式。MII、RGMII等表示PHY与MAC之间的硬件连接方式。
MII
MII
MII共16根线,数据位宽4(tx rx各4根信号线),TX_CLK RX_CLK均是PHY提供的。
TX_ER(Transmit Error): 发送数据错误提示信号,同步于TX_CLK,高电平有效,表示TX_ER有效期内传输的数据无效。对于10Mbps速率下,TX_ER不起作用;
????TX_EN(Transmit Enable): 发送使能信号,只有在TX_EN有效期内传的数据才有效;
????TX_CLK:发送参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。注意,TX_CLK时钟的方向是从PHY侧指向MAC侧的,因此此时钟是由PHY提供的。
????TXD(Transmit Data)[3:0]:数据发送信号,共4根信号线;
????RX_ER(Receive Error): 接收数据错误提示信号,同步于RX_CLK,高电平有效,表示RX_ER有效期内传输的数据无效。对于10Mbps速率下,RX_ER不起作用;
????RX_DV(Reveive Data Valid): 接收数据有效信号,作用类型于发送通道的TX_EN;
????RXD(Receive Data)[3:0]:数据接收信号,共4根信号线;
????RX_CLK:接收数据参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。RX_CLK也是由PHY侧提供的。
????CRS:Carrier Sense,载波侦测信号,不需要同步于参考时钟,只要有数据传输,CRS就有效,另外,CRS只有PHY在半双工模式下有效;
????COL:Collision Detectd,冲突检测信号,不需要同步于参考时钟,只有PHY在半双工模式下有效。
????MII接口一共有16根线。
RMII
RMII即 Reduced MII,是MII的简化板,共8根线,数据位宽2。
CLK_REF:是由外部时钟源提供的50MHz参考时钟,与MII接口不同,MII接口中的接收时钟和发送时钟是分开的,而且都是由PHY芯片提供给MAC芯片的。这里需要注意的是,由于数据接收时钟是由外部晶振提供而不是由载波信号提取的,所以在PHY层芯片内的数据接收部分需要设计一个FIFO,用来协调两个不同的时钟,在发送接收的数据时提供缓冲。PHY层芯片的发送部分则不需要FIFO,它直接将接收到的数据发送到MAC就可以了。
GMII
同MII,但数据位宽8位,共24根信号线,其中GTX_CLK由MAC侧提供,大多数GMII兼容MII。
RGMII
phy 如果工作在含有RGMII 接口的模式,按照业内惯例,tx clk delay 由MAC 来完成;rx clk delay 由phy 来完成。所以一般PHY芯片的rx clk delay默认是 2ns, tx clk delay默认是750ps。
来源https://blog.csdn.net/fangye945a/article/details/121109158
RGMII即Reduced GMII,是GMII的简化版本,共14根信号线,位宽为4,该时钟上升沿下降沿均采集数据。
SGMII
SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用。收发都可以从数据中恢复出时钟。大多数MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模块,而不需要PHY层芯片,此时时钟速率仍旧是625MHz。
GMAC网卡信息获取方法
获取GMAC网卡信息
xqzhang@greatwall:~$ sudo find /sys/ -name "*stmmac*"
/sys/bus/platform/drivers/stmmaceth
/sys/bus/mdio_bus/devices/stmmac-0:04
/sys/bus/mdio_bus/drivers/Atheros 8035 ethernet/stmmac-0:04
/sys/devices/platform/FTGM0001:00/mdio_bus/stmmac-0
/sys/devices/platform/FTGM0001:00/mdio_bus/stmmac-0/stmmac-0:04
/sys/class/mdio_bus/stmmac-0
/sys/kernel/debug/stmmaceth
/sys/module/dwmac_generic/drivers/platform:stmmaceth
/sys/module/stmmac
/sys/module/stmmac/holders/stmmac_platform
/sys/module/stmmac_platform
由上述信息可知,phy驱动为Atheros 8035 ethernet
,该设备为平台设备,设备目录为/sys/devices/platform/FTGM0001:00/
查看PHY工作接口模式
cat /sys/devices/platform/FTGM0001:00/mdio_bus/stmmac-0/stmmac-0:04/phy_interface
rgmii
获取PHY ID
cat /sys/devices/platform/FTG