88E1111 GMII接口配置百兆

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

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

1.Control Register - Copper寄存器介绍

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

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

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端如下图所示,需要对应的配置成百兆全双工,而不能是自动侦测。

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

1.Status Register - Copper寄存器介绍

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

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

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}//该寄存器编号为12.该寄存器是只读寄存器,这里给出我读出的值:"16'h794D"

三.结果验证

1.抓取Control Register - Copper寄存器

2.抓取Status Register - Copper

3.抓取以太网帧

4.LoopBack实验

88E1111 100BASE-T百兆工程(part2--完)相关推荐

  1. 88E1111 100BASE-T百兆工程(part1)

    88E1111 100BASE-T 致自己: 一.Media Interface 1.Copper Interface ​ 它可以看作是: 网线 -> RJ-45连接器 -> MDI[3: ...

  2. Marvell 88E1111 百兆工程 (FPGA)

    一.项目介绍 背景: 使用FPGA管脚模拟MDIO接口,配置PHY为100M速率. 问题:如果是强制PHY工作在100M全双工的情况下,将这个网口连接PC,PC端会自动识别成半双工.如果要保证通信速率 ...

  3. 10/100Base+1000Base/百兆/千兆网络接线,568A+568B线序,交叉线、直连线意义等的探讨

    我对标题这些东东的"纠结",是因为在写此文的前两天,我的同事盛大同学提及到以前他在做拉线工作时碰到的一个情况: 他以前工作有一次需要拉千兆网络线的一个大工程,但是当时他们水晶头的接 ...

  4. 特征工程(part2)--数值型数据

    学习笔记,仅供参考,有错必究 文章目录 数值型数据 二值化(JTTZGC-ebook-P25) 分箱(JTTZGC-ebook-P27) 固定宽度分箱 分位数分箱 对数变换 指数变换 概率图 特征缩放 ...

  5. matlab编写识别手写数字_使用PYNQ搭建手写数字识别工程小白级说明(完整版)

    距离上次pynq的基础设置一文已经过去蛮久了,难得还有人催我更新233那么今天就再来把玩一番.今天要做的事情是用pynq来搭一个数字识别的工程. 在正式开始介绍工程之前,让我花一点篇幅简单说下pynq ...

  6. 配置Tomcat和在Eclipse中创建Web工程

    配置Tomcat服务器信息: 在Tomcat的安装目录下有一个conf目录,里面存放着Tomcat服务器的配置文件,其中最为核心的配置文件是server.xml,在这个文件里我们可以配置服务器的各种参 ...

  7. pom.xml设置mysql连接_maven工程配置pom.xml实现mybatis的访问数据库操作

    pom.xml配置: pom.xml 这个配置还有不足请在下方给出建议 I:  我这里测试三个 : 分别是有@的 DemoMapper(接口): IDemoMapper.interface packa ...

  8. IDEA 创建 MAVEN 父子工程

    IDEA 创建 MAVEN 父子工程 1.参考资料 IDEA 创建MAVEN父子项目 使用IDEA创建maven父子工程 使用IDEA创建maven父子工程项目 2.创建 Maven 父工程 选择新建 ...

  9. 【超全】一文详解机器学习特征工程(附代码)

    特征工程是使用专业背景知识和技巧处理数据,使得特征值(自变量)能在机器学习算法上发挥更好的作用的过程.python的sklearn库,对于特征工程的处理提供了强大的接口. 在本文中,我将详细介绍特征工 ...

最新文章

  1. WebGIS在行业中应用的演变
  2. Java并发编程 Synchronized及其实现原理
  3. 第十届蓝桥杯java B组—试题C 数列求值
  4. 什么是服务的幂等?为什么要实现幂等?
  5. LibreOJ 数列分块入门
  6. 4周,从入门小白到爬虫老炮儿,薪资水平超过60% IT新手!
  7. ASP.NET 图片剪辑控件
  8. shell中函数返回值
  9. Spring综合课程总结
  10. hwclock: Open of /dev/rtc failed, errno=19: No such device.
  11. join丢失数据_15、Hive数据倾斜与解决方案
  12. SQL Server数据表在编程中实现导出EXCEL的几种方法
  13. 计算机网络强制100M,网络连通性故障分析与排除二例
  14. [C++] CreateThread() 与 _beginthread() 的区别
  15. ubuntu等linux发行版声卡、网卡、显卡驱动问题解决
  16. 常见图片尺寸大小(厘米 cm,象素 px)
  17. Java(实验三)类与对象-定义并实现一个长方体类(Cube),包含长(length)、宽(width)与高(height)等三个属性
  18. 计算机相关专业毕业生参加IT培训是否有必要?
  19. 什么是软件危机?软件危机的主要表现是什么?什么是软件?什么是软件工程?什么是软件过程?软件过程与软件工程方法学有何关系?​​​​​​​什么是软件开发方法?软件开发方法主要有哪些?
  20. 苏州地区公交查询的Webservice

热门文章

  1. Go语言十一大主流微服务框架
  2. 惊!揭秘AI人工智能机器人自动写诗的奥秘!
  3. Linux7清空回收站,centos rm回收站
  4. C#打开SDE数据库的几种方式总结
  5. python爬虫教程下载-Python网络爬虫从入门到精通 PDF 下载
  6. linux if 判断文件,shell中的逻辑判断,if 判断文件、目录属性,if判断的一些特殊用法...
  7. 当我谈跑步时我谈些什么
  8. 【遗传算法】模拟二进制交叉SBX与多项式变异
  9. Auto CAD:将CAD三维实体转为三视工程图(俯视图、正视图、左视图)的图文教程之详细攻略(建议收藏!!)
  10. 一张图片告诉你win10各版本之间的主要区别