当前位置:首页 > PHY以太网寄存器解析
关系,端口的工作模式通过Control Register相应位置的配置决定。必须注意的是,对于1000BASE-T接口,自动协商必须打开。
Power Down:端口工作开关。设置为1将使端口进入Power Down模式,正常情况下PHY在Power Down模式其MII和MDI均不会对外发送数据。Power Down模式一般在软件shut down端口的时候使用,需要注意的是端口从Power Down模式恢复,需要复位端口以保证端口可靠的连接。
Isolate:隔离状态开关。改位置1将导致PHY和MII接口之间处于电气隔离状态,除了MDC/MDIO接口的信号外,其他MII引脚处于高阻态。IEEE802.3没有对Isolate 时MDI接口的状态进行规范,此时MDI端可能还在正常运行。Isolate在实际应用中并没有用到。并且,值得注意的是,由于目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8个端口的接口是相互关联的,一个端口设置Isolate可能会影响其他端口的正常使用,因此在使用中注意不要随意更改bit10的状态。
Restart Auto-Negotiation :重新启动自动协商开关。Bit9置1将重新启动端口的自动协商进程,当然前提是Auto-Negotiation Enable是使能的。一般在修改端口的自动协商能力信息之后通过Bit9置1重新启动自动协商来使端口按照新的配置建立link。
Duplex Mode:双工模式设置。Bit8置1端口设置为全双工,置0则端设置为半双工,和Speed Selection的设置一样,Duplex Mode的设置只有在自动协商关闭的情况下才起作用,如果自动协商设置为Enable状态,则该设置不起作用,端口的双工模式根据AN结果来定。对Duplex Mode的修改配置也需要复位端口才能生效。
Collision Test:冲突信号(COL)测试开关。在需要对COL信号进行测试时,可以通过Bit7置1,这时PHY将输出一个COL脉冲以供测试。实际测试操作中也可以将端口配置为半双工状态,通过发帧冲突来测试COL信号,因此该配置实用价值不大。
1.2 Status register
寄存器1是PHY状态寄存器,主要包含PHY的状态信息,大多数bit的值都是由芯片厂家确定的,每一个bit的功能在表3种已有详细说明。其中指示PHY所具有的工作模式能力的寄存器不再多讲,值得注意的有以下几位。
表3 Status register
Bit(s) Name Description R/Wa
1 = PHY able to perform 100BASE-T4
1.15 100BASE-T4 RO
0 = PHY not able to perform 100BASE-T4 1 = PHY able to perform full duplex
100BASE-X Full 100BASE-X 1.14 RO
Duplex 0 = PHY not able to perform full duplex
100BASE-X
1 = PHY able to perform half duplex
100BASE-X 1.13 100BASE-X RO
Half Duplex
0 = PHY not able to perform half duplex
5
100BASE-X
1 = PHY able to operate at 10 Mb/s in full
10 Mb/s Full duplex mode
RO
Duplex 0 = PHY not able to operate at 10 Mb/s in
full duplex mode
1 = PHY able to operate at 10 Mb/s in half
10 Mb/s Half duplex mode
RO
Duplex 0 = PHY not able to operate at 10 Mb/s in
half duplex mode
1 = PHY able to perform full duplex
100BASE-T2 100BASE-T2
RO
Full Duplex 0 = PHY not able to perform full duplex
100BASE-T2
1 = PHY able to perform half duplex
100BASE-T2 100BASE-T2
RO
Half Duplex 0 = PHY not able to perform half duplex
100BASE-T2
1 = Extended status information in Register 15
Extended Status RO
0 = No extended status information in Register 15
Reserved ignore when read RO
1 = PHY will accept management frames
MF Preamble with preamble suppressed.
RO
Suppression 0 = PHY will not accept management frames
with preamble suppressed.
Auto-Negotiation 1 = Auto-Negotiation process completed
RO
Complete 0 = Auto-Negotiation process not completed
1 = remote fault condition detected RO/
Remote Fault
0 = no remote fault condition detected LH 1 = PHY is able to perform Auto-Negotiation
Auto-Negotiation
0 = PHY is not able to perform RO
Ability
Auto-Negotiation 1 = link is up RO/
Link Status
0 = link is down LL 1 = jabber condition detected RO/
Jabber Detect
0 = no jabber condition detected LH
Extended 1 = extended register capabilities
RO
Capability 0 = basic register set capabilities only
1.12
1.11
1.1
1.9
1.8 1.7 1.6
1.5 1.4 1.3 1.2 1.1 1
Auto-Negotiation Complete:AN完成状态指示位。Bit5指示的是端口AN进
程是否完成的状态位。在AN Enable的情况下,Bit5=1表示自动协商进程已经成功结束,此时PHY的其他和Link状态相关的寄存器才是正确可靠的。如果AN
6
进程没有完成,则这些状态信息可能是错误的。在调试以及异常故障处理时,可以通过该位寄存器的状态判断AN是否成功,从而进一步的检查AN相关的设置是否正确,或者芯片的AN功能是否正常等。
Remote Fault:远端错误指示位。Bit4=1代表连接对端(Link Partner)出错,至于出错的具体类型以及错误检测机制在规范中并没有定义,由PHY的制造商自由发挥,一般的厂商都会在其他的寄存器(Register16-31由厂商自行定义)指示比较详细的错误类型。在与端口相关的故障查证中,Remote Fault是一个重要的指示信息,通过互联双方的Remote Fault信息(可能要加上其他的具体错误指示),可以帮助定位故障原因。
Link Status:Link状态指示位。Bit2=1代表端口Link up,0则代表端口Link down。实际应用中一般都是通过Bit2来判断端口的状态。而且,一般的MAC芯片也是通过轮询PHY的这个寄存器值来判断端口的Link状态的(这个过程可能有不同的名称,比如BCM叫做Link Scan,而Marvell叫做PHY Polling。)如前所述,在AN Enable的情况下,Link Status的信息只有在Auto-Negotiation Complete指示已经完成的情况下才是正确可靠的,否则有可能出错。
案例:曾经有发现过一个故障,我司S3760的SFP端口和Cisco设备互联,发现端口Link指示灯已经点亮,但是软件显示的端口状态却是Link down,并且端口也不能转发帧。读取S3760的PHY寄存器,发现Link Status=1,而读MAC的状态寄存器,发现其Link状态位为0,软件就是据此判断端口为Link down的。可以看出,故障的直接原因是MAC和PHY的Link状态不一致。但是为什么MAC和PHY状态不一致呢?读取Auto-Negotiation Complete状态指示寄存器,发现Auto-Negotiation Complete=0,显然自动协商没有完成。检查互联双方的端口配置,我司S3760的配置为AN Enable,而Cisco设备AN是Disable的。这样的配置显然自动协商不可能完成,将我司S3760的端口也配置为AN Disable的强制状态,端口即可以正常Link Up和转发帧了。同时据此信息向芯片制造商方面咨询,对方的答复是,PHY Polling查询PHY状态时,如果端口为AN Enable,则一定要等待Auto-Negotiation Complete=1,才认为PHY的Link status有效。这就可以解释为什么MAC和PHY的Link状态不一样了。
但是,为什么PHY的在AN尚未完成的时候Link status就已经置1了呢?原来3760的PHY有一个配置,1000BASE-X AN Bypass功能,PHY如果在AN过程中没有收到对方的AN信息,则可以跳过AN进程,通过检测Serdes接口上的信号来建立Link。这本来是一个很好的特色功能,可是由于PHY通过1000BASE-X AN Bypass功能来建立Link之后却没有将Auto-Negotiation Complete位置1,和MAC的PHY Polling进程矛盾了,导致MAC和PHY的Link状态不一致。(大家可以实际尝试一下,电口的自动协商同时还定义了一个Parallel Detect功能,可以让一个AN Enable的端口和一个AN Disable的端口建立Link,但是PHY通过Parallel Detect建立Link其Auto-Negotiation Complete位是置1的。)至此,解决的办法就是关闭PHY的1000BASE-X AN Bypass功能,故障就解决了。
Jabber Detect:Jabber 检测指示位。IEEE802.3对Jabber的解释是“A condition wherein a station transmits for a period of time longer than the maximum permissible packet length, usually due to a fault condition”。这一位指示的是Link Partner发送的时间超过了规定的最大长度。值得注意的是,Jabber Detect只有在10BASE-T模式下才有意义,100和1000M模式是没有定义Jabber这一功能的。
7
1.3 PHY Identifier Register
寄存器2和3存放PHY芯片的型号代码,由芯片制造商自行定义,实际应用中软件通过读取这两个寄存器的内容可以识别PHY的型号和版本,这些内容都是只读寄存器,对PHY的功能没有影响,也不反映PHY的工作状态,实用价值不大。
1.4 Auto-Negotiation Advertisement Register
寄存器4是自动协商的能力通告寄存器,在AN Enable的前提下(见寄存器0),端口根据该寄存器的相关配置将自动协商信息通过FLP在MDI上进行通告。当AN配置为Disable状态的时候,寄存器4的配置将不起作用,端口的工作模式由控制寄存器中的配置决定。寄存器4的详细定义对电口和光口PHY上有不同的定义,其中电口PHY的具体说明如表4A。每个bit的功能已有详细描述,无需赘述。
表4A Auto-Negotiation Advertisement Register(Copper)
Bit(s) Name Description R/W
0=Next Page ability is not supported/No NP to
4.15 Next Page exchange R/W
1=Next Page to exchange
4.14 Reserved Write as zero, ignore on read RO
0=don't transmit Remote Fault Information
4.13 Remote Fault R/W
1=transmit Remote Fault Information
Technology Technologies supported by local PHY to
4.12:5 R/W
Ability Field Advertise
the type of message being sent by
4.4:0 Selector Field R/W
Auto-Negotiation
Bit12:5对应自动协商广播能力域(Technology Ability Field),每一位分别对应为A[7:0],每一位配置一种工作模式的能力。在实际应用中,如果PHY要支持该种工作模式则对应位置1,若不支持则对应位置0。注意到在这8位能力指示域中,并没有1000BASE-T能力的对应配置位,1000BASE-T的相关配置在寄存器9,MASTER-SLAVE Control Register来完成。
Bit4:0配置自动协商的类型,规范正在发送的自动协商信息遵从何种规范,我们所接触的以太网PHY遵从IEEE802.3规范,Selector Field=0001,该区域不可随意更改(很多PHY将此区域设计为只读寄存器,以免被修改)。
Technology Ability Field
Minimum cabling
Bit Technology
requirement
A0 10BASE-T Two-pair category 3 A1 10BASE-T full duplex Two-pair category 3 A2 100BASE-TX Two-pair category 5
8
共分享92篇相关文档