文章目录
- XGMII数据与lane的对应关系是什么?
- XGMII上的数据流格式是什么?
- 如何保证0xFB每次都在Lane0?
- 方法一:
- 方法二:
- Link Fault信号
XGMII数据与lane的对应关系是什么?
XGMII上的数据流格式是什么?
<inter-frame><preamble><sfd><data><efd>
帧间隙0x07、前导码0xFB,7{0x55},、sfd(0xD5)、数据、efd(0xFD)
TXC | TXD | 描述 |
---|---|---|
0 | 00~FF | 数据 |
1 | 0x06 | LPI |
1 | 0x9C | 序列Sequence |
1 | 0x07 | IDLE |
1 | 0xFB | 起始符(只能Lane0) |
1 | 0xFD | 结束符 efd=T |
1 | 0xFE | 错误符 E |
如何保证0xFB每次都在Lane0?
方法一:
MAC实现可以将该RS功能合并到其设计中,并且总是插入额外的空闲字符以在四字节边界上对准前导码的开始。请注意,这将降低以最小帧间间隔分隔的某些数据包大小的有效数据速率。(缺点:达不到线速)
方法二:
RS可以通过有时插入和有时删除空闲字符来对齐开始控制字符来保持有效数据速率。使用此方法时,RS必须保持一个表示删除或插入的空闲字符的累积计数的缺陷空闲计数(DIC)。删除的每个空闲字符的DIC递增,插入的每个空闲字的DIC递减,插入或删除空闲字符的决定是通过将DIC限制为最小值0和最大值3来约束的。注意,这可能导致在发送XGMII上观察到的帧间间隔比第4条中规定的最小发送帧间间隔短多达三个八位字节;然而,缩短帧间间隔的频率受到DIC规则的约束。DIC仅在初始化时重置,并且无论MAC子层传输的IPG大小如何都会应用。可以采用等效的技术来控制起始控制字符的RS对齐,前提是结果与RS实现所述DIC的结果相同。
Link Fault信号
Local Fault | Remote Fault |
---|---|
0x9C 00 00 01 | 0x9C 00 00 02 |
PHY内的子层能够检测使链路对于通信不可靠的故障。在识别出故障状况时,PHY子层指示数据路径上的本地故障状态。当本地故障状态到达RS时,RS停止发送MAC数据或LPI,并在传输数据路径上连续生成远程故障状态(可能会截断正在传输的MAC帧)。当RS接收到远程故障或链路中断状态时,RS停止发送MAC数据或LPI,并持续生成空闲控制字符。当RS不再接收故障状态消息时,它将恢复正常操作,发送MAC数据或LPI。
如表46–5所示,状态在一个四字节序列有序集合中发出信号。PHY用通道0中的序列控制字符和通道1和2中的0x00数据字符加上通道3中的0x01数据字符来指示LocalFault。RS表示远程故障,通道0中有序列控制字符,通道1和2中有0x00的数据字符,通道3中有0x02的数据字符。尽管大多数故障检测是在PHY的接收数据路径上进行的,但在一些特定的子层中,可以在PHY发送侧检测到故障。这也通过具有本地故障状态的PHY来指示。