本系列计划对以太网不同速率链路训练协议,实现进行分析。
C72定义了10G 以太网的链路训练
1. 概述
该协议描述了10BASE-KRG以太网 PMD 协议层的start up协议的过程
startup协议属于PMD 控制功能的一部分,主要的机制是
- 时序恢复
- 均衡,接收器可以调节发射器的均衡器去优化背板连接的性能
协议执行的方式是交换固定的训练帧
2. 训练帧结构
训练帧分成3部分,一共548B的长度,包含固定4B分隔符,通道控制,训练pattern
Control channel使用DME 传递,传输速率等于1/4的 10GBASE -KR速率。每一个DME symbol 包含2个DME 传输位,每一个传输位是4个10G UI??
2.1 Frame marker
固定0xffff0000
系数更新域和状态上报域属于通道控制的内容,使用DME传输
2.2 系数更新域
携带从本地接收器给到对端设备均衡器的正确信息,是对对端设备TX均衡器的要求,包含复位控制,初始化控制,系数更新,这些值在接收器自适应过程中被置位。对各个域段做更详细的说明
Preset
复位控制被发送时,均衡器是被关闭的。接收到后,pre_cursor和post_cursor将被置为0,且main 将被置为最大(24)。
该复位控制只有当指示not_updated的时候初始化发送,而且将持续发送直到所有的系数表示为已更新或者最大。此时preset会被置为0
Initialize
Coefficient(k) update
2.3 状态上报域
是本端设备的一些状态,告知短短设备
对一些bit域含义解释
receiver ready
用以标记本地接收器状态给对端,置位表示指示本地接收器已经准备接收数据,当释放表示本地接收器要求训练继续
2.3 training pattern
即PRBS11(伪随机bit序列)的输出
3. 状态机
3.1 帧锁定过程
是PMD 控制过程中从接收数据流检测帧边界的过程
在训练开始阶段捕获训练帧,分别对good markers和bad markers计数。Good_marker 即检测到帧分隔符当good_markers=2,fram_lock,当bad_markers=5,fram_fail。可以来回进行锁定捕获。
3.2 训练过程
定义了start-up 协议,当训练状态机进入INITIALIZE 状态,发射机均衡器将被配置参数
在SEND_TRAINING 状态 主动向对侧发送训练帧,同时也在接收对侧发送的训练帧。当本端设备帧锁定过程(锁定对端发来的训练帧)结束,且fram lock,进入TRAIN_LOCAL状态
TRAIN_LOCAL进行本端设备的训练,对端发射器和本端接收器进行对均衡器的系数调节,即rx_trained ,进行对远端设备的训练
在TRAIN_REMOTE状态,说明本端rx训练完成,本端rx已经准备好接收训练帧,local_rx_ready <= true。如果对端设备已经接收到3个连续的训练帧,即remote_ready,进入LINK READY状态
在LINK READY状态 start wait timer.由于本端接收器已经完成训练,且远端接收器已经可以准备接收数据,等待接收100 ~300个训练帧的时间,使远端可以检测到本端的接收器状态 (一种同步机制)基于这个原因,这种同步是不稳定的,还有可能训练再次失败
SEND_DATA 即发送数据,训练结束。在多个过程中,都有状态的最大等待时间,超时会导致训练失败
3.3 系数更新过程
即训练过程
NOT_UPDATE 是初始化状态
UPDATE_COEFF获取新的系数
根据系数的范围进入MAXIMUM ,UPDATED,MINIMU状态
当训练帧被接收且帧的系数更新域为hold,hold拉高,回到NOT_UPDATE 状态