以太网自协商机制-双绞线自协商案例设计(三)

描述

FLP Burst内容编码—NextPage

NextPage有两大类(D13=1时为Messgage Page; D13=0时为Unformatted Page;),编码格式分别如下图:

Message Page:

寄存器

Unformatted Page:

寄存器

在FLP突发中,D0应是传输的第一个比特。Message Page和Unformatted Page必须成对出现,Message Page在前,Unformatted Page在后(Null Message型除外,它无需携带Unformatted Page)。

Message Code Field

寄存器

Unformatted Page的Unformatted Code Field 与Message Page的Message Code Field相关,故后面会结合具体的Message Code Field的详细讲解UnformattedCode Field。

Toggle

[T] =2b0 前一个FLP脉冲data为1,

 =2b1 前一个FLP脉冲data为0,

该bit的作用是保持FLPBurst的直流平衡,防止出现连0或连1;

  Acknowledge2

[ACK2] =2b0 不可以理解来自远端的NextPage,

    =2b1 可以理解来自远端的NextPage;

  Message Page

[MP] =2b0 Unformatted Page,

  =2b1 Message Page;

  Acknowledge

[ACK] =2b0 尚未收到来自远端的NextPage,

   =2b1 已收到来自远端的NextPage;

  Next Page

[NP] =2b0 当前NextPage页已是最后页,

  =2b1 当前NextPage页不是最后页;

NextPage的使用规则

链路双方都支持NextPage时,方可执行NextPage交互。比如本端只支持BasePage,远端支持BasePage + NextPage_MP + NextPage_UP + NextPage_UP,此时远端的NextPage_MP和两个NextPage_UP的FLP Bursts永远不会被发出。

链路双发的NextPage的数量必须匹配。比如本端支持BasePage + NextPage_MP(Code8)+ NextPage_UP + NextPage_UP + NextPage_MP(Code10)+ NextPage_UP, 远端支持BasePage + NextPage_MP(Code8)+ NextPage_UP + NextPage_UP,此时远端NextPage的数量与本端NextPage的数量不匹配,故远端需要附加两个NextPage_MP(Code1NullMessage)补齐。

NextPage的应用实践

FLP Burst-NextPage交互应用于基于10M/100M/1000M的IEEE Clause 28 双绞线自协商。笔者以曾经实践过的Marvell公司的88e1111千兆PHY举例[与自协商相关的寄存器属于IEEE802.3标准寄存器,故不同厂家不同型号的PHY该部分实现大同小异],与10M/100M/1000M自协商相关的7个寄存器内容分别如下:

ControlRegister – Copper Page 0, Register 0

寄存器

该部分在“BasePage的应用实践”部分已详细阐述过,故这里就不再赘述;

AN Advertisement Register – Copper Page 0, Register 4

寄存器

该本地广告能力寄存器是10M/100M/1000M自协商的核心寄存器,该部分在“BasePage的应用实践”部分已详细阐述过,故这里就不再赘述;

Link PartnerAbility Register , Copper Page 0, Register 5

寄存器

该本地广告能力寄存器是10M/100M/1000M自协商的核心寄存器,该部分在“BasePage的应用实践”部分已详细阐述过,故这里就不再赘述。

Next PageTransmit Register – CopperPage0, Register 7

寄存器

该本地广告能力寄存器是10M/100M/1000M自协商的核心寄存器,该寄存器有两类用法:“硬件自动装载模式”和“软件手工装载模式”。当1000BASE-TControl Register Page 0, Register 9(后续会介绍)的bit9=1或者bit8=1时使用“硬件自动装载模式”;当1000BASE-T ControlRegister Page 0, Register 9(后续会介绍)的bit9=0且bit8=时使用“软件装载模式”;在实际使用时通常很少使用“软件手工装载模式”(可以协商厂家自定义的一些信息),故这里就对“软件手工装载模式”不再赘述了。下面针对“硬件自动装载模式”进行现逐bit解释: bit15 Next Page 该bit为FLP Burst-NextPage的D15.NP。

当使用10M/100M/1000M自协商时(无EEE自协商时),第一个第二个NextPage时此bit为1,第三个NextPage时此bit为0;当使用10M/100M/1000M自协商时(有EEE自协商时),第一个第二个第三个第四个NextPage时此bit为1,第五个NextPage时此bit为0。此bit由PHY芯片硬件自协商状态机自动维护,软件无需设置此bit;

bit14 Reserved该bit为FLP Burst-NextPage的D14.Ack,该bit由PHY芯片硬件自协商状态机自动维护,软件无需设置此bit;

bit13 Message Page Mode 该bit为FLP Burst-NextPage的D13.MP。当使用10M/100M/1000M自协商时(无EEE自协商时),第一个NextPage时此bit为1,第二个第三个NextPage时此bit为0;当使用10M/100M/1000M自协商时(有EEE自协商时),第一个第四个NextPage时此bit为1,第二个第三个第五个NextPage时此bit为0。此bit由PHY芯片硬件自协商状态机自动维护,软件无需设置此bit;

bit12 Acknowledge2 该bit为FLP Burst-NextPage的D12.Ack2。此bit由PHY芯片硬件自协商状态机自动维护,软件无需设置此bit;

bit11 Toggle 该bit为FLP Burst-NextPage的D11.T。此bit由PHY芯片硬件自协商状态机自动维护,软件无需设置此bit;

bit[10:0] Message/Unformatted Field该bits为FLPBurst-NextPage的D10:D0。当使用10M/100M/1000M自协商时(无EEE自协商时),第一个NextPage时此bits为8,为1000BASE-Ttechnology message code,第二个第三个NextPage时此bits为10M/100M/1000M双绞线自协商核心内容,会在后续“10M/100M/1000M自协商基理”章节部分进行详细探讨;当使用10M/100M/1000M自协商时(有EEE自协商时),第一个NextPage时此bits为8,为1000BASE-Ttechnology message code,第四个NextPage时此bits为10,为EEEtechnology message code,第二个第三个第五个NextPage时此bits为10M/100M/1000M双绞线自协商核心内容,会在后续“10M/100M/1000M自协商基理”章节部分进行详细探讨;

写到这里,可能有小伙伴感到困惑。既然工作于“硬件自动装载模式”时该寄存器由PHY芯片硬件自协商状态机自动装载维护,软件无需设置。那该寄存器存在的意义是什么呢?答案是这样的,在正常自协商并最终双绞线链路双发建立正确连接,该寄存器确实没有存在的意义。但是因为某些环境因素造成自协商状态机无法正常结束时,此时软件通过周期性轮询读该寄存器结合输出打印信息,可以有助于网络管理人员分析自协商异常的原因,卡壳在哪个环节,进而对定位故障、解决故障大有益处。

Link PartnerNext Page Register – Copper Page 0, Register 8

寄存器

该邻居广告能力状态寄存器是将远端发送的FLP Burst-NextPage的信息存储在本寄存器。如果自协商协商失败引起链路双方不能正常建立链接,相关驱动工程师可以利用本寄存器进行故障定位和分析。本寄存器bit定义与“Next Page Transmit Register”完全相同,故这里就不在赘述了。

1000BASE-T Control Register Page 0, Register 9

寄存器

该本地1000BASE-T控制寄存器是10M/100M/1000M自协商的核心寄存器,现逐bit解释:

bit[15:13] Test Mode 该bits与示波器物理层测试相关,该功能与本自协商专题无关,这里不进行赘述;

bit12 MASTER/SLAVE Manual ConfigurationEnable该bit为FLP Burst-Unformatted_NextPage的UnformattedCode Field中相关bit。当使用10M/100M/1000M自协商时,该bit即为第二个NextPage的D0.U0,该bit根据网络管理员的实际应用需求灵活设置(置1“强制主从配置模式”,置0“非强制主从配置模式”);

bit11 MASTER/SLAVE Configuration Value该bit为FLPBurst-Unformatted_NextPage的Unformatted Code Field中相关bit。当使用10M/100M/1000M自协商时,该bit即为第二个NextPage的D1.U1,该bit根据网络管理员的实际应用需求灵活设置(置1“强制主从配置模式”且强制为主,置0“强制主从配置模式”且强制为从);

bit10 Port Type该bit为FLPBurst-Unformatted_NextPage的Unformatted Code Field中相关bit。当使用10M/100M/1000M自协商时,该bit即为第二个NextPage的D2.U2,该bit根据网络管理员的实际应用需求灵活设置(置1“非强制主从配置模式”时优先为主,置0“非强制主从配置模式”时优先为从);

bit9 1000BASE-T Full-Duplex该bit为FLPBurst-Unformatted_NextPage的Unformatted Code Field中相关bit。当使用10M/100M/1000M自协商时,该bit即为第二个NextPage的D3.U3,该bit根据网络管理员的实际应用需求灵活设置(置1有1000BASE-T 全双工能力,置0无1000BASE-T全双工能力);

bit8 1000BASE-T Half-Duplex该bit为FLP Burst-Unformatted_NextPage的Unformatted Code Field中相关bit。当使用10M/100M/1000M自协商时,该bit即为第二个NextPage的D4.U4,该bit根据网络管理员的实际应用需求灵活设置(置1有1000BASE-T 半双工能力,置0无1000BASE-T 半双工能力),因为1000BASE-T 半双工该物理层标准PHY芯片一般都不支持,故该bit实际上永远为0;

1000BASE-TStatus Register Page 0, Register 10

寄存器

该1000BASE-T状态寄存器是10M/100M/1000M自协商的核心寄存器,现逐bit解释:

bit15 MASTER/SLAVE Configuration Fault当使用10M/100M/1000M自协商时,该bit(状态1主从状态配置有错误,状态0主从状态配置无错误)。当自协商异常时,可以查看此bit状态,如果是1,通过调整“1000BASE-TControl Register Page 0, Register 9”的相关主从设置bit,可以解决该故障;

bit14 MASTER/SLAVE Configuration Resolution当使用10M/100M/1000M自协商时,该bit(状态1本端自协商成“主”,状态0本端自协商成“从”);

bit13 LocalReceiver Status当使用10M/100M/1000M自协商时,该bit(状态1本地接收正常,状态0本地接收异常;

bit12 Remote ReceiverStatus当使用10M/100M/1000M自协商时,该bit(状态1远端接收正常,状态0远端接收异常;

bit[11:10] 是将远端发送的FLP Burst-NextPage的信息(U3,U4)存储在本寄存器。如果自协商协商失败从而造成链路双方不能正常建立链接,或者自协商成功但协商结果不符合预期。相关驱动工程师可以利用本寄存器进行故障定位和分析。

10M/100M/1000M双绞线自协商未完待续




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分