88E1111 GMII接口配置百兆

前言:
手册传送门即相关资料传送门:
    链接:https://pan.baidu.com/s/1dEaDiZVVWWHNvvQkHPXgVw 
    提取码:ca5w
上一篇博客介绍了88E1111的相关内容,本次设计需要将原本千兆的88E1111配置成为百兆。

一.Control Register - Copper寄存器介绍与配置

1.Control Register - Copper寄存器介绍

主要内容摘自文章《以太网PHY寄存器分析》;

寄存器0是PHY控制寄存器,通过Control Register可以对PHY的主要工作状态进行设置。Control Register的每一位完成的功能见表2。

android11 lt8911exb 寄存器配置_工作模式

android11 lt8911exb 寄存器配置_Power_02

android11 lt8911exb 寄存器配置_Power_03

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功能。

Speed Selection:
Bit13和Bit6两位联合实现对端口的速率控制功能,具体的对应关系祥见表2。需要注意的是Speed Selection只有在自动协商关闭的情况下才起作用,如果自动协商设置为Enable状态,则该设置不起作用;并且,对Speed Selection的修改设置,往往需要复位端口才能配置生效。因此在设置该位置的时候需要检查自动协商的设置并通过Bit15复位端口。

Auto-Negotiation Enable:
自动协商(AN)开关。设置为1表示打开AN功能,端口的工作模式通过和连接对端进行AN来确定。如果设置为0则AN功能关系,端口的工作模式通过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信号,因此该配置实用价值不大。

### 2.寄存器配置

下面给出本次采用的配置:

```verilog
{Phy芯片地址,要配置的寄存器编号,配置的内容}
	注意:DE2的工程里面首先会先选择页,可能是因为默认第0页的缘故,这里不选择页
配置的也是“Control Register - Copper”寄存器,而不是“Control Register - Fiber”寄存
器

{5'b10010,5'b0000,16'h2100}//配置为百兆,全双工,关闭自协商
{5'b10010,5'b0000,16'ha100}//软件复位

3.寄存器配置的注意事项

配置时的注意事项:

1.之前实验的时候,一直出现配置无效的情况,最后发现,在88E1111芯片刚上电后,需
要等待至少10ms的时间,再去写寄存器在可以让配置生效。
2.软件复位的时候,寄存器其他位的值不要有变化。
3.PC端如下图所示,需要对应的配置成百兆全双工,而不能是自动侦测。

android11 lt8911exb 寄存器配置_寄存器_04

二.Status Register - Copper寄存器介绍与配置

1.Status Register - Copper寄存器介绍

主要内容摘自文章《以太网PHY寄存器分析》;

寄存器1是PHY状态寄存器,主要包含PHY的状态信息,大多数bit的值都是由芯片厂家确定的,每一个bit的功能在表3种已有详细说明。其中指示PHY所具有的工作模式能力的寄存器不再多讲,值得注意的有以下几位。

android11 lt8911exb 寄存器配置_工作模式_05

android11 lt8911exb 寄存器配置_Power_06

android11 lt8911exb 寄存器配置_工作模式_07

Auto-Negotiation Complete:
AN完成状态指示位。Bit5指示的是端口AN进程是否完成的状态位。在AN Enable的情况下,Bit5=1表示自动协商进程已经成功结束,此时PHY的其他和Link状态相关的寄存器才是正确可靠的。如果AN进程没有完成,则这些状态信息可能是错误的。在调试以及异常故障处理时,可以通过该位寄存器的状态判断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来判断端口的状态。

2.寄存器的读取与结果

1.寄存器读取
	{Phy芯片地址,要读取的寄存器编号}
	{5'b10010,5'b0001}//该寄存器编号为1

2.该寄存器是只读寄存器,这里给出我读出的值:
	"16'h794D"

三.结果验证

1.抓取Control Register - Copper寄存器

android11 lt8911exb 寄存器配置_Power_08

2.抓取Status Register - Copper

android11 lt8911exb 寄存器配置_工作模式_09

3.抓取以太网帧

android11 lt8911exb 寄存器配置_Power_10

4.LoopBack实验

android11 lt8911exb 寄存器配置_Power_11