1000BASE-X 自协商原理
1000BASE-X自协商是指1000BASE-X的链路(光纤或者屏蔽平衡铜线)双端互相广告其支持的能力,以达到链路双方工作的模式匹配。1000BASE-X自协商由IEEE Clause 37中定义,故又称为C37自协商。1000BASE-KX不使用C37自协商,而是使用C73自协商(后续DAC自协商部分会做详细探讨)。
1000BASE-X自协商允许链路段两端的设备广告自己的能力,确认接收并理解两个设备共享的通用操作模式,并拒绝使用两个设备都不共享的操作模式。1000BASE-X自协商利用链路双方互相传递“/C/有序集”(C1C2C1C2……)来实现的。
1000BASE-X自协商层
Config_Reg Base Page
1000BASE-X自协商通过互相交互C1C2有序集。C1由K28.5、 D21.5和Config_Reg(Base Page only或者“Base Page + Next Pages”组成);C2由K28.5、 D2.2和Config_Reg Config_Reg(Base Page only或者“Base Page + Next Pages”组成);下面我们解析Config_Reg Base Page。
Next Page [NP]
=2b0 当前Base Page页已是最后页,
=2b1 当前Base Page页不是最后页;
Acknowledge [ACK]
=2b0 尚未收到来自远端的Base Page,
=2b1 已收到来自远端的Base Page;
RF1 && RF2
PS1 && PS2
Half Duplex [HD]
=2b0 本端不支持1000BASE-X半双工能力,
=2b1 本端支持1000BASE-X半双工能力;
Full Duplex[FD]
=2b0 本端不支持1000BASE-X全双工能力,
=2b1 本端支持1000BASE-X全双工能力;
Config_Reg Next Page
NextPage有两大类(D13=1时为Messgage Page; D13=0时为Unformatted Page;),编码格式分别如下图:
Message Page
Unformatted Page
Next Page [NP]
=2b0 当前NextPage页已是最后页,
=2b1 当前NextPage页不是最后页;
Acknowledge[ACK]
=2b0 尚未收到来自远端的NextPage,
=2b1 已收到来自远端的NextPage;
Message Page [MP]
=2b0 Unformatted Page,
=2b1 Message Page;
Acknowledge2[ACK2]
=2b0 不可以理解来自远端的NextPage,
=2b1 可以理解来自远端的NextPage;
Toggle[T]
=2b0 前一个C码比特脉冲data为1,
=2b1 前一个C码比特脉冲data为0,
该bit的作用是保持C码比特脉冲的直流平衡,防止出现连0或连1;
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的详细讲解Unformatted Code Field。
Next Page的使用规则
链路双方都支持Next Page时,方可执行Next Page交互。比如本端只支持Base Page,远端支持Base Page + Next Page_ MP + Next Page_ UP + Next Page_ UP,此时远端的Next Page_ MP和两个Next Page_ UP的C码有序集永远不会被发出。
链路双发的Next Page的数量必须匹配。如果远端Next Page的数量与本端Next Page的数量不匹配,数量少的一端需要附加若干个Next Page_ MP(Code1 Null Message)补齐。
目前的芯片的1000BASE-X自协商一般仅支持Base Page。
1000BASE-X 自协商原理介绍完毕,下节课开始介绍1000BASE-X自协商实践。