一、介绍
PHY是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU)通过SMI(Serial Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是通过读写PHY内部的寄存器实现的。PHY寄存器的地址空间为5位,从0到31最多可以定义32个寄存器(随着芯片功能不断增加,很多PHY芯片采用分页技术来扩展地址空间以定义更多的寄存器,使用细节后面描述),IEEE802.3定义了地址为0-15这16个寄存器的功能,地址16-31的寄存器留给芯片制造商自由定义。
二、PHY一般具备两种接口:
1.数据接口:千兆RGMII、百兆或十兆RMIIMII
用来传输网络数据。
TXC由MAC产生,RXC由PHY产生。
TXC与RXC在千兆网络为125MHz,TXC与RXC在百兆网络为25MHz,TXC与RXC在十兆网络为2.5MHz。
TXD[3:0] 和RXD[3:0] 数据传输时在时钟的边沿进行采样。
2.管理接口:数据MDIO和时钟MDC
用来访问PHY寄存器。
举例读写时序图(RTL8211F):
三、访问寄存器:
PHY寄存器一般分为标准寄存器和厂商扩展寄存器。
标准寄存器:
厂商扩展寄存器:
一般使用分页操作,比如RTL8211F增加三个LED指示灯,位于Page 0xd04,addr 16寄存器。
比如LED0为RJ45 link灯 LED1为RJ45 active灯,则可以通过MDIO设置:
mdio_write (mii_name, phy_addr, 0x1f, 0xd04);//页选择
mdio_write (mii_name, phy_addr, 0x10, 0x36b);//灯选择