承接上文《MultiGBASE-T1协议解读系列(中)》,上层的数据经过PCS子层进行编码后,由PMA子层转换成电信号在MDI上传输,本篇将重点解读MultiGBASE-T1 PMA子层的相关机制。
▎PMA子层
PMA子层概述
PMA(物理介质附加)子层位于PCS(物理编码)子层和MDI(介质相关接口)之间,协议中介绍了PMA子层的一个复位功能PMA Reset以及六个运行功能PMA Transmit、PHY Link Synchronization、Link Monitor、PHY Control、PMA Receive与Clock Receive。
PMA复位功能成功完成后,将立即启动所有操作功能。通过PHY Link Synchronization进行链路同步,PHY Control进行训练流程,Link Monitor进行链路连接后,即刻开始进行数据传输,被配置为Master时,PCS子层传下来的数据将通过PMA Transmit功能传输到MDI,被配置为Slave时,收到数据会先通过Clock Receive功能还原时钟,同时通过PMA Receive功能将电平信号转换为符号,向上传递给PCS子层。接下来我们将详细介绍这一过程。
PMA Reset功能
PMA Reset功能将初始化所有的PMA功能,当出现以下两种情况之一时,应执行PMA复位功能:
- 含有PMA的设备电源未达到工作状态
- 收到来自管理实体(Management)的初始化请求
PMA Transmit功能
PMA子层在接收到PCS子层传输的1800个symbol的数据后,会通过PMA Transmit将PAM4符号转变为四电平调制信号发送到MDI上,进而发送到双绞线上。当配置为Master时,发送数据的时钟源采用本地时钟源,即5625*S MBd。
PHY Link Synchronization功能
当自动协商功能(Auto-Negotiation)未实现或被禁用时,链路同步功能(PHY Link Synchronization)用于与链路伙伴进行同步,随后建立训练模式的起点。
PHY会发送SEND_S信号,使Master和Slave找到链路伙伴进行连接,并在训练模式前完成同步过程。SEND_S信号的生成过程如下:
SEND_S信号的生成与图中所示的PN(伪随机)序列生成器有关,作为Master或Slave时,PHY可以通过上图中的移位寄存器生成PN序列,Sn[7:0]的初始值为0000 0001,PN序列的周期为255。
生成Sn后,根据Sn[0]的值发送不同的序列,这一段序列便是SEND_S信号,其发送速率为703.125MHz,与2.5GBASE-T1的发送速率相同。由于在802.ch协议中记录的三种速率共享相同的PMA规范,10GBASE-T1和5GBASE-T1在进行SEND_S的发送时,发送的序列与2.5GBASE-T1不同,如下图所示:
生成SEND_S信号后,我们可以通过一个简单的状态机了解一下Master链路同步的全过程:
在link状态(link_status)为FAIL后开始整个流程,首先在传输禁用等待时间(break_link_timer)结束后需要判断自身是Master还是Slave,只有Master可以进入TX_SEND_S,进行SEND_S信号的发送,发送完成后进入SIGDET_WAIT状态,等待Slave端收到信号后返回的SEND_S信号。确认收到信号后在SILENT_WAIT阶段继续信号的处理,数据全部接收后进入PAUSE阶段,等待一段时间再没收到SEND_S后即可认为Slave端信号发送完成,进入LINK_GOOD_CHECK阶段,将sync_link_control置为enable,等待Link Monitor模块返回link_status为OK的状态,即可认为连接完成,可以进行进一步的PHY操作。
详细流程与Slave端的具体流程可以参考802.3ch[1]中的Figure 149-31.
Link Monitor功能
在链路同步的状态机中,我们可能会产生这样的疑问,link_status=FAIL这个条件是谁发出的? link_status=OK又是谁来判断的?Link Monitor的功能就是判断link_status的状态。
当本地接收状态为NOT OK或PMA重启或自动协商、链路同步未启动时,Link Monitor进入LINK DOWN状态,link_status=FAIL。完成链路同步和训练模式后,当pcs_data_mode被置为TRUE后,即可认为实现可靠传输,进入LINK_UP状态,维持变量link_status = OK,在此基础上可以进行进一步的PHY操作。
PHY Control功能
PHY Control的功能是生成控制动作,这些动作可以使PHY进入一种可以与链路伙伴交换帧的操作模式,即训练模式。
Infofield字段
在训练模式中,PHY控制信息通过一个12字节的Infofield在链路伙伴之间交换,该Infofield与第16部分的部分PHY帧的前96位进行异或运算。下图为Infofield的具体格式:
- 帧起始:前三个字节为Infofield的帧起始分隔符,为固定值0xBBA700.
- PFC24:已经发送的部分PHY帧的计数,由于Indofield字段在第16个部分PHY帧上,重启后的第一个PFC24的值为15。PFC24的上限为0xFFFF00(16776959),到达上限后会滚动到0。
- Message:Message Field 这一个字节对于Master和Slave的定义是不同的,对于Master来说这个字段表示PMA_state(发送端收发器模式),loc_rcvr_status(本地接收器状态),en_slave_tx(Slave端发送使能)及reserved。对于Slave来说这个字段表示PMA_state(发送端收发器模式),loc_rcvr_status(本地接收器状态),timing_lock_OK(时序锁定)及reserved。
其中,PMA_state为00时代表TRAINING模式,01代表COUNTDOWN模式。在进行Message Field的发送时需按照上图中顺序从上至下进行发送,即下一个Message Field设置应是与当前设置相同的Message Field设置或当前设置下一行对应的Message Field设置。
- MSG24:MSG24针对不同的PMA_state有不同的含义,当PMA_state为00,即TRAINING时,MSG24被定义为PHY
capability bits,其定义如下图所示:
其中,前两个字节为供应商自定义数据,最后一个字节中是一些可选功能的选择值或开关:
- InterleaverDepth:RS-FEC交错深度(L=1、2、4)
- PrecodeSel:预编码模式选择
- SlowWakeRequest:在节能以太网(EEE)的LPI模式中是否使用慢唤醒
- EEEen:是否启用节能以太网(EEE)
- OAMen:是否启用OAM帧
当PMA_state为01,即COUNTDOWN时,MSG24被定义为Data switch partial PHY frame count,含义为当训练模式转换为数据模式时,编码模式从PAM2转换到PAM4,这段时间内PFC24的值即为MSG24,根据802.3ch中表格149-15定义的时间参数,PMA_state为01时MSG24的最小值为4081,最大值为4785。
- CRC16:两个字节的CRC16校验位。
PHY Control状态机
了解了Infofield字段的内容后,我们可以通过状态机整理了解一下训练模式的过程:
通过链路同步(PHY Link Synchronization)功能建立连接后,进入SILENT模式,发送模式为SEND_Z,即持续发送0。
最小等待时间后判断自身主从模式设置及能否发送数据(Slave模式下检查),进入TRAINING,发送模式为SEND_T,开始发送包含了Infofield的训练数据,其中的PMA_state设置为00。
已经发送了一套完整的Infofield消息后,当本地和远程接收器状态为OK后进入COUNTDOWN,设置PMA_state为01,开始进行PAM2至PAM4的转换。
完成后进入TX_SWITCH, 发送模式为SEND_N,这一模式下可以传输XGMII传输下来的数据。当链路伙伴也完成PAM2至PAM4的转换后进入PCS_TEST,这一阶段要检查本地接收器状态是否良好,在一个检测周期内RS-FEC是否检测到超过16个错误以及接受器是否检查到块分界(可以理解为完整地接收到了链路伙伴发来的数据)。
PCS_TEST中的全部内容无误,才能够将pcs_data_mode设置为TRUE,这个参数设置成功后,Link Monitor由LINK_DOWN转变为LINK_UP,链路同步进入LINK_GOOD状态,开始正式传输PCS子层传输下来的XGMII数据。
PMA Receive与Clock Receive功能
PAM Receive的功能为将从MDI接收到的四电平调制信号转换为符号,传递给PCS子层,并通过Clock Receive还原出时钟信号发送给PMA Transmit作为数据的发送时钟。
▎总结
以上即为MultiGBASE-T1 PMA子层的相关内容,主要包括了链路初始化时同步、训练的过程以及链路建立后将PCS子层编码的数据传输到MDI上的过程。
我们通过三篇文章详细了解了MultiGBASE-T1协议的全部内容,随着中央计算+区域控制的中央集中式架构广泛应用,以及对高算力和大带宽数据传输的紧迫需求,MultiGBASE-T1正在逐步融入汽车领域,带来更多的创新和进步的同时,也带来了更大的挑战。
▎参考文献
[1] IEEE, 802.3ch-2020, " IEEE Standard for Ethernet, Amendment 8: Physical Layer Specifications and Management Parameters for 2.5Gb/s, 5Gb/s, and10Gb/s Automotive Electrical Ethernet ", 2020.