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;
[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的应用实践”部分已详细阐述过,故这里就不再赘述;
ANAdvertisement 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双绞线自协商未完待续
审核编辑:刘清
-
以太网
+关注
关注
40文章
5371浏览量
171028 -
寄存器
+关注
关注
31文章
5308浏览量
119975 -
双绞线
+关注
关注
2文章
231浏览量
23650 -
PHY
+关注
关注
2文章
301浏览量
51688 -
状态机
+关注
关注
2文章
492浏览量
27469
原文标题:以太网自协商机制--双绞线自协商(三)
文章出处:【微信号:FPGA开源工坊,微信公众号:FPGA开源工坊】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论