前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以太网自协商--1000BASE-X自协商(五)

以太网自协商--1000BASE-X自协商(五)

作者头像
追宇星空
发布2024-07-01 15:32:08
860
发布2024-07-01 15:32:08
举报
文章被收录于专栏:追宇星空

1000BASE-X自协商实践

芯片寄存器

笔者以曾经实践过的Broadcom公司的BCM53286的四个1000BASE-X Serdes口举例[与自协商相关的寄存器属于IEEE802.3标准寄存器,故不同厂家不同型号的PHY该部分实现大同小异],与1000BASE-X自协商相关的7个寄存器内容分别如下。

每个寄存有两个寄存名,前者为博通厂家命名,后者为IEEE 802.3标准命名。

MII Control Register (Page B9–BCh, Addr 00–01h)

Control register (Reg 0)

在该寄存器中与自协商相关bit分别为:

bit12 AnegEn 该bit为自协商使能位(配置工程师需要保证双绞线两端的自协商使能位保持一致。如果一端自协商使能另一端自协商关闭,自协商使能这端会触发并行检测状态机,可能会造成链路双方的双工状态的不一致);

bit9 RestartAneg 该bit为重新自协商使能位,当本端自协商的广告能力位有变化或者未能协商选择链路双方彼此最高阶的广告能力(如EMC等强电磁辐射造成的C码信号畸变)时,需要软件操作此bit设置1以重启自协商进程;

AN Advertisement (Page B9–BCh, Addr 08–09h)

AN advertisement register (Reg 4) (R/W)

该本地广告能力寄存器是1000BASE-X自协商的核心寄存器,现逐bit解释:

bit15 Next Page 该bit为Config_Reg Base Page的D15.NP,该bit根据网络管理员的实际应用需求灵活设置(置1有Next Page,置0无Next Page)(BCM53286的1000BASE-X端口不支持Next Page);

bit13:12 RF2,RF1 该bit13为Config_Reg Base Page的D13.RF2,该bit12为Config_Reg Base Page的D12.RF1。

2b10 指示本端设备即将离线(即将断电或者即将端口shutdown或者即将拔光纤)(利用此功能可以让远端设备提前做一些保护动作);

2b01 指示本端设备检测到link failure [同步丢失或者C码交互超时(默认超时时间为10ms)会触发link failure](软件通过读状态位LINK_DOWN_SYNC_LOSS进行判决);

2b11 指示本端设备检测到自协商错误(软件通过读状态位AUTONEG_RES_ERR进行判决);

2b00 指示本端设备一切正常;

bit8:7 PS2,PS1 该bit8为Config_Reg Base Page的D8.PS2,该bit7为Config_Reg Base Page的D7.PS1。

2b10 指示本端设备指向远端非对称流控;

2b01 指示本端设备对称流控;

2b11 指示本端设备对称流控和指向本端非对称流控;

2b00 指示本端无流控;

bit6 Half Duplex 该bit为Config_Reg Base Page的D6.HD,该bit根据网络管理员的实际应用需求灵活设置(置1有半双工能力,置0无半双工能力);

bit5 Full Duplex 该bit为Config_Reg Base Page的D5.FD,该bit根据网络管理员的实际应用需求灵活设置(置1有全双工能力,置0无全双工能力);

AN LP Ability (Page B9h–BCh, Addr 0Ah– 0Bh)

AN LP ability Base Page register (Reg 5) (RO)

该邻居广告能力状态寄存器是将远端发送的C码的信息存储在本寄存器。如果自协商协商失败从而链路双方不能正常建立链接,相关驱动工程师可以利用本寄存器进行故障定位和分析。除了bit0外(bit0用来区分SGMII模式(=1)/ 1000BASE-X模式(=0)),本寄存器bit定义与“AN Advertisement”完全相同,故这里就不再赘述了。

AN Expansion (Page B9h-BCh, Addr 0Ch–0Dh)

AN expansion register (Reg 6) (RO)

bit2 Next Page Able该bit为状态位(显示1支持Next Page,显示0不支持Next Page)(BCM53286的1000BASE-X端口不支持Next Page);

bit1 Page Received 该bit为状态位(显示1有新的页接收,显示0无新的页接收);

AN Next Page transmit register (Reg 7)

AN link partner ability Next Page register (Reg 8)

Reg7,Reg8在“10/100/1000双绞线自协商--Next Page的应用实践”已经详细介绍过,这里就不再赘述了(BCM53286的四个1000BASE-X端口不支持Next Page。故不存在这两个寄存器)。

Extended Status Reg (Page B9h–BCh, Addr 1Eh–1Fh)

Extended status register (Reg 15)

bit15 1000BaseX_FDX 该bit为状态位(显示1支持1000BASE-X全双工,显示0不支持1000BASE-X全双工);

bit14 1000BaseX_HDX 该bit为状态位(显示1支持1000BASE-X半双工,显示0不支持1000BASE-X半双工);

bit13 1000BaseT_FDX 该bit为状态位(显示1支持1000BASE-T全双工,显示0不支持1000BASE-T全双工);

bit12 1000BaseT_HDX 该bit为状态位(显示1支持1000BASE-T半双工,显示0不支持1000BASE-T半双工);

自协商详解

1000BASE-X自协商,主要协商的内容为“双工”、“远端错误”两大关键项(协商失败,链路不能正常建立链接)和“流控”非关键项目(协商失败,链路能正常建立链接)。

双工协商

双工协商主要靠设置“本地广告能力寄存器AN Advertisement (Page B9–BCh, Address 08–09h)”的bit6:5实现的。本端和远端选择彼此都有的能力中优先级高的那种能力作为本端PHY和远端PHY的实际工作的双工状态。

PHY能力优先级由高到低排序如下:

1000BASE-X full duplex

1000BASE-X half duplex

例子1:本端PHY的能力为bit6:5=2b11;光纤链路另一侧的远端PHY能力为bit6:5=2b10。此时他俩的彼此能力的交集为PHY的2b10,即光纤链路双方都支持的PHY能力为bit6=1(1000BASE-X half duplex),故此时本端和远端速度双工自协商的结果为“1000BASE-X half duplex”;

例子2:本端PHY的能力为bit6:5=2b11;光纤链路另一侧的远端PHY能力为bit6:5=2b11。此时他俩的彼此能力的交集为PHY的2b10,即光纤链路双方都支持的PHY能力为bit6=1(1000BASE-X half duplex)和bit5=1(1000BASE-X full duplex),并且因为优先级顺序为1000BASE-X full duplex >1000BASE-X half duplex,故此时本端和远端双工自协商的结果为“1000BASE-X full duplex”;

例子3:本端PHY的能力为bit6:5=2b10;光纤链路另一侧的远端PHY能力为bit6:5=2b01。此时他俩的彼此能力的交集为PHY的2b00,即光纤链路双方没有PHY能力交集,故此时本端和远端永远无法建立正确链接。

因为1000BASE-X的速度只有一个1000Mbps的速度能力,故速度无需进行自协商。有些厂家的1000BASE-X PHY不支持半双工能力,系统设计师在芯片方案选型的时候需注意鉴别。

远端错误协商

双工协商主要靠设置“本地广告能力寄存器AN Advertisement (Page B9–BCh, Address 08–09h)”的bit13:12实现的。本端bit13:12=2b00和远端的bit13:12=2b00,光纤链路双端方可建立正确链接。

远端错误协商两个比特需要软件进行协调,硬件并不会自动更新。

流控协商

流控主要靠设置“本地广告能力寄存器AN Advertisement (Page B9–BCh, Address 08–09h)”的bit8:7实现的。软件通过本端和远端的bit8:7的各种组合进行对本端MAC的tx和rx方向的802.3流控进行设置,具体规则如下表:

“MAC-PCS控制寄存器”需要软件根据“PHY-AN广告寄存器”和“PHY-AN LP广告状态寄存器”的内容进行动态更新配置,交换芯片硬件并不会自动联动。

流控设置之所以有上表的规则要求,是需要保证双绞线链路双方的流控状态匹配(双方都“tx 使能rx使能”,双方都“tx关闭rx关闭”和一方“tx关闭rx使能”另一方“tx使能rx关闭”)。如果出现双绞线链路双方流控失配,在链路拥塞时不但不能享受流控的优点,反而会引起链路中出现大量Pause流控帧使已经拥塞的链路更加拥塞。

1000BASE-X 自协商实践介绍完毕,下节课开始介绍自协商关联知识。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 追宇星空 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档