对10G/40Gphy中auto-negotiation功能调试

在近期有一个项目,是一台设备中发现mac与phy之间的信号质量有一些差,报文会出现很多的crc错误码。希望可以将mac与phy之间的工作模式改为10GBASE-KR/40GBASE-KR4,从而提高信号质量,减少crc错误码。要实现10GBASE-KR/40GBASE-KR4,需要打开auto-negotiation,所以,文章主要内容是如何开启自协商,以及相关参数的解释。

需要的文档:

1802.3协议手册
2、所调试phy的芯片手册(我自己使用的是bcm的万兆phy)

万兆phy情况摘要

PHY寄存器分为两大部分:
1、system端,是phy与交换芯片连接的一侧;
2、line端,是phy与光模块连接的一侧
寄存器的读取地址有device address与register address。system-side 与 line-side寄存器的device address,register address 是一致的,他们是通过将寄存器【device address = 0x01, register address = 0xffff】赋值来进行区分,寄存器赋值为0,读写line-side方向的寄存器;寄存器赋值为1,读写为system-side方向的寄存器。
我们在阅读芯片手册的过程中,会发现cl72、cl73之类的字。如果是第一次读相关手册的童鞋们,肯定也是一脸迷惑,并且也很难百度到相关信息。此处的cl72, cl73指代的是802.3协议中的clause 72, clause 73。phy手册中的很多寄存器内容以及名词都没有相关解释,这些寄存器以及名词均可以从802.3手册中找到对应的解释。

cl73-auto-negotiation

IEEE802.3标准中,自协商功能被分为三类,分别在clause 28, clause 37 和 clause 73中进行说明:
1)clause 28规范了使用双绞线作为传输介质的以太网自协商类型
2)clause 37规范了1000BASE-X的以太网类型
3)clause 73规范了backplane ethernet 以及40GBASE-CR4, 100GBASE-CR10以太网的自协商。
802.3

上述图表是位于802.3 table 73-6。举例,表中的7.0.9 auto-negotiation restart, 7.0.9代表的是device address = 0x07, register address = 0x00, 第9比特位。自协商的过程是Link partner 发送一张page,其中携带了自协商的信息,该page的信息存储在mr_lp_adv_ability[48:1]。有的phy也会携带next page。我们接下来将查看一下这个48bit的page的具体信息(附:以下信息均可以在802.3 clause 73中找到)
该page 的信息是通过differential manchester encoding(DME)来进行传送的。
在这里插入图片描述
D[4:0]: selector field, 一般为00001 代表IEEE STD 802.3
D[5:9]: echoed nonced field,
D[12:10]: advertise capability not related to the phy
D[13:15]: RF, ACK, NP , those bit shall function as specified in 28.2.1.2
D[16:20]: transmitterd nonced field
D[21:45]: technology ability field
在这里插入图片描述
D[46:47]: FEC ability
a) F0 is FEC ablity
b) F1 is FEC request

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值