参考:IEEE, 802.3-2022, " IEEE Standard for Ethernet ", 2022.
10GBASE-T总览
10GBASE-T PHY、ISO开放系统互连(OSI)参考模型和IEEE 802.3以太网模型之间的关系
操作概述
- 10GBASE-T PHY组件在四线平衡性布缆上采用全双工基带传输;
- 每个线上双向同时以2500Mb/s传输,4线对捆绑达到10Gb/s的传输;
PCS和PMA功能框图
XGMII概述
XGMII由独立的发送和接收路径组成,每个方向都包含32个数据信号(TXD<31:0>和RXD<31:0>),四个控制信号(TXC<3:0>和RXC<3:0>)以及一个时钟信号(TX_CLK和RX_CLK)。
数据信号:上层(MAC层)或PCS子层传到协调子层(Reconciliation Sublayer)的数据。在XGMII上进行传输时,32个数据信号被分配在四个数据通道上同时进行传输:Lane0:<7:0>,Lane1:<15:8>,Lane2:<23:16>,Lane3:<31:24>
控制信号:4个控制信号分别代表了4个数据通道上的数据信号的信号类型,控制信号为0时,数据信号类型为数据字符;控制信号为1时,数据信号类型为控制字符。起始字符、终止字符、空闲字符和错误字符等均由控制字符表示,控制信号与数据通道的对应方式如下:Lane0:<0>,Lane1:<1>,Lane2:<2>,Lane3:<3>
时钟信号:在XGMII上传输的32个数据信号共享同一个时钟信号,时钟信号的计算公式为fMAC/64,即156.25×S MHz。
XGMII数据传输格式
数据流在XGMII上传输时,由五部分组成:<帧间隙><帧前导码><帧起始><数据><帧结束>。
帧间隙(inter-frame):两个数据帧之间的间隙,由空闲字符组成。起到分隔帧以及数据对齐的作用。
帧前导码(preamble):由七个字节组成,数据内容为10101010(0xAA)用于隔离每个数据帧,并起到定位作用。在发送端发送时,帧前导码的第一位需被替换为开始控制字符Start:11111011(0xFB),接收端接收时,需将这一位还原成10101010(0xAA)。
帧起始(sfd):表示数据的开始,XGMII的sfd字符为固定值10101011(0xAB)。
帧结束(efd):表示数据的结束,XGMII的efd字符为固定值11111101(0xFD)。
以下为发送端数据在XGMII中传输的示例,图中S为Start控制字符;Dp为帧前导码;T为终止控制字符,即efd;I为空闲字符;E为错误控制字符。
正常帧格式传输:
错误帧格式传输:
当4个数据通道的数据为空闲字符时,4位控制字符<3:0>为1111(0xF);倒数第二列,当第一个数据通道为数据字符,其他为控制字符时,4位控制字符<3:0>为1110(0xE)
控制字符bit[x]=1表示x[3:0]为控制位; 0表示数据位
XGMII错误和故障处理
802.3[2]协议中记录了XGMII的四种特殊的错误及故障处理机制。
错误响应-Response to error indications by the XGMII
响应接收到错误控制字符的功能。在帧接收期间,如果接收通道上出现一个非终止控制字符的控制字符,协调子层应当通过错误处理机制确保MAC层在该帧中检测到错误。
主动创建错误-Conditions for generation of transmit Error control characters
发送端通过主动增加错误控制字符,提高检测到错位的概率,增强系统的可靠性和容错性的功能。通过适当编码,在数据帧中添加冗余信息,使接收端能够检测并纠正在传输过程中发生的错误,使用这种机制后,即使在数据传输过程中出现了错误,接收端仍然能够正确恢复原始数据,无需重新发送请求。
数据对齐-Response to received invalid frame sequences
接收端将数据对应到正确的通道的功能。与协调子层相邻的MultiG PCS子层需要保持传输给协调子层的数据的对齐,即将Start控制字符对应到Lane0,此时sfd帧起始字符应对应到Lane3。协调子层应实现不处理sfd字符在除Lane3以外通道的数据帧。
链路故障信令-Link fault signaling
任何一方在接收数据过程中检测到链路错误时暂停数据发送的功能。
任何一方在接收数据过程中检测到链路错误后,PHY产生Local Fault帧(本地错误信号)传输到本地协调子层,协调子层处理Local Fault帧后发送Remote Fault帧(远程错误信号)透传到链路伙伴的协调子层。
当本地协调子层在128个时钟周期内接收到4个以上Local Fault帧时,它会通知本机MAC停止发送数据,并连续发送Remote Fault帧给对端RS层。当链路伙伴的协调子层在128个时钟周期内,连续接收到4个Remote Fault帧时,才会认为发送链路出现问题,它会通知本机MAC停止发送数据,并在发送链路上连续发送Idle帧。
在128个时钟周期内,没有接收到Local Fault帧或者Remote Fault帧,则表示链路状态正常,恢复数据传输。