MultiGBASE-T1协议解读系列(下):MultiGBASE-T1 PMA子层

承接上文《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.

▎往期阅读
MultiGBASE-T1协议解读系列(上):车载以太网多G物理层概述

MultiGBASE-T1协议解读系列(中):MultiGBASE-T1 PCS子层

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值