转自:https://blog.csdn.net/Firefly_cjd/article/details/79825869
1.4 Auto-Negotiation Advertisement Register 8
1.5 Auto-Negotiation Link Partner Base Page Ability Register 9
1.6 Auto-Negotiation Expansion Register 10
1.7 AN next page Register/AN Link Partner Received Next Page 10
1.8 MASTER-SLAVE Control Register 10
1.9 MASTER-SLAVE Status Register 12
1.10 Extended Status Register 13
1、以太网PHY标准寄存器分析
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的寄存器留给芯片制造商自由定义,如表1所示。以下结合实际应用,对IEEE802.3定义的寄存器各项功能进行分析。
表1 PHY 管理寄存器集 |
|||
Register address |
Register name |
Basic/Extended MII GMII |
|
0 |
Control |
B |
B |
1 |
Status |
B |
B |
2,3 |
PHY Identifier |
E |
E |
4 |
Auto-Negotiation Advertisement |
E |
E |
5 |
Auto-Negotiation Link Partner Base Page Ability |
E |
E |
6 |
Auto-Negotiation Expansion |
E |
E |
7 |
Auto-Negotiation Next Page Transmit |
E |
E |
8 |
Auto-Negotiation Link Partner Received Next Page |
E |
E |
9 |
MASTER-SLAVE Control Register |
E |
E |
10 |
MASTER-SLAVE Status Register |
E |
E |
11 through 14 |
Reserved |
E |
E |
15 |
Extended Status |
Reserved |
B |
16 through 31 |
Vendor Specific |
E |
E |
1.1 Control Register
寄存器0是PHY控制寄存器,通过Control Register可以对PHY的主要工作状态进行设置。Control Register的每一位完成的功能见表2。
表2 Control Register |
|||
Bit(s) |
Name |
Description |
R/Wa |
0.15 |
Reset |
1 = PHY reset |
R/W SC |
0.14 |
Loopback |
1 = enable loopback mode |
R/W |
0.13 |
Speed Selection (LSB) |
0.6 0.13 |
R/W |
0.12 |
Auto-Negotiation Enable |
1 = Enable Auto-Negotiation Process |
R/W |
0.11 |
Power Down |
1 = power down 0 = normal operation |
R/W |
0.10 |
Isolate |
1 = electrically Isolate PHY from MII or GMII |
R/W |
0.9 |
Restart Auto-Negotiation |
1 = Restart Auto-Negotiation Process |
R/W SC |
0.8 |
Duplex Mode |
1 = Full Duplex |
R/W |
0.7 |
Collision Test |
1 = enable COL signal test |
R/W |
0.6 |
Speed Selection (MSB) |
0.6 0.13 |
R/W |
0.5:0 |
Reserved |
Write as 0, ignore on Read |
R/W |
Reset:Bit15控制的是PHY复位功能,在该位置写入1实现对PHY的复位操作。复位后该端口PHY的其他控制、状态寄存器将恢复到默认值,每次PHY复位应该在0.5s的时间内完成,复位过程中Bit15保持为1,复位完成之后该位应该自动清零。一般要改变端口的工作模式(如速率、双工、流控或协商信息等)时,在设置完相应位置的寄存器之后,需要通过Reset位复位PHY来使配置生效。
Loopback:Loopback是一个调试以及故障诊断中常用的功能,Bit14置1之后,PHY和外部MDI的连接在逻辑上将被断开,从MAC经过MII/GMII(也可能是其他的MAC/PHY接口)发送过来的数据将不会被发送到MDI上,而是在PHY内部(一般在PCS)回环到本端口的MII/GMII接收通道上,通过Loopback功能可以检查MII/GMII以及PHY接口部分是否工作正常,对于端口不通的情况可用于故障定位。需要注意的是,很多时候PHY设置Loopback后端口可能就Link down了,MAC无法向该端口发帧,这时就需要通过设置端口Force Link up才能使用Loopback功能。
案例:在S3760-12SFP/GT开发过程中,我们曾经出现过一个故障,其中有一片PHY(88E1145)对应的端口发送的帧出现CRC错误,当时这个问题的排查过程经历和很长的时间,最后得出的结论是RGMII的接口电平配置电阻焊接混料导致故障。我们姑且不去考虑这个案例实际的解决过程,在这里讨论一下如何通过Loopback功能对该问题进行定位。
首先介绍一下S3760交换部分的架构,MAC芯片为98EX126,通过RGMII接口连接到PHY芯片88E1145,MAC通过PCI管理总线连接到CPU。在这个案例中,查看88E1145的资料,其Loopback操作在PCS子层完成,两个方向的Loopback,如下图所示。第一种模式,从MAC经过RGMII发送的帧到达PCS后被Loopback到RGMII的接收通道再送回给MAC(这种模式就是上面所描述的寄存器0 Loopback位控制的Loopback模式),另一种模式,从MDI接收上来的帧到达PCS后被Loopback到MDI的发送通道,这种Loopback模式在IEEE802.3中并没有要求,但是目前常见的PHY都支持该功能。分别做这两种Loopback操作,可以发现第一种Loopback操作之后可以在MAC上检测到CRC错误,而第二种Loopback模式,用SMB从端口砸帧再Loopb