admin管理员组

文章数量:1437121

铜缆以太网21

40G-CR4/100G-CR10 (C85)

BASE-R FEC(C74)(二)

操作原理

在发送时,FEC子层从PCS接收数据,对64B/66B字进行转码,执行FEC编码/成帧,加扰并将数据发送到PMA。在接收时,FEC子层从PMA接收数据,执行解扰,实现FEC帧同步,解码FEC码,在必要和可能的情况下校正数据,重新编码64B/66B字,并将数据发送到PCS。

FEC编码

所使用的FEC码是用于错误检查和前向纠错的缩短循环码(2112,2080)。FEC块长度为2112比特。该编码对2080比特的有效载荷(或信息符号)进行编码,并添加32比特的开销(或奇偶校验符号)。该编码是系统的,这意味着信息符号在编码器中无论如何都不会受到干扰,奇偶校验符号单独添加到每个块的末尾。

通过缩短循环码(42987,42955)来构造(2112,2080)码。缩短的循环码(2112,2080)保证纠正每个块高达11比特的错误突发。它是一种系统编码,非常适合校正背板信道中典型的突发错误,这些突发错误是由接收均衡器中的错误传播引起的。

FEC块格式

FEC块的格式如表74-1所示。FEC块的长度为2112比特。每个FEC块包含32行,每行65位;64比特的有效载荷和1比特的转码开销(T比特)。在每个块的末尾都有32位开销或奇偶校验位。发送在每行内从左向右,行之间从上到下。有效载荷比特携带来自PCS层的信息符号。FEC块总长度 =(32 × 65)+ 32 = 2112比特。

FEC块组成

FEC子层不会降低PCS的符号率,也不会增加PMD子层的信令率。相反,FEC子层压缩来自PCS提供的64B/66B编码数据的同步比特,以适应为每个2080比特(32 × 65 = 2080)的块添加32个奇偶校验比特。

BASE-R 64B/66B PCS将64位加扰有效载荷和2位未加扰同步报头映射到66位编码块中。2比特同步报头允许通过PCS同步过程建立64B/66B块边界。同步报头对于数据块为01,对于控制块为10;同步报头是PCS块中始终包含转换的唯一位置,并且代码的这一特征用于建立64B/66B块边界。

FEC子层将同步报头的2个比特压缩为1个转码比特。转码比特携带相关有效载荷的BASE-R同步比特的状态。这是通过消除64B/66B块中的第一位(也是第一个同步位)并保留第二位来实现的。第二位的值唯一地定义了被删除的第一位的值,因为它总是第一位的反转。转码位被进一步加扰,以确保DC平衡。

以这种方式对32个连续的64B/66B块进行转码,然后为它们计算32位FEC奇偶校验。32个转码字和32个FEC奇偶校验位构成FEC块。

FEC循环码的错误检测特性用于在接收器处的FEC块边界处建立块同步。如果解码成功,FEC解码器将产生32个65位字,每个字的第一个解码位是转码位。然后,64B/66B码中的第一个同步位由转码位的反转构成,第二个同步位的值等于转码位。

FEC功能

FEC子层包括4个功能块;FEC编码器、反向变速箱功能、FEC解码器和FEC块同步。

反向变速箱

10GBASE-R

反向变速箱功能在64B/66B块的66位宽和PCS接口的16位宽之间进行调整。它从PCS接口接收16位流,并将其转换回66位编码块,供FEC编码器处理。反向变速箱功能的操作方式与块同步功能相同。

反向变速箱功能通过16位FEC_UNITDATA .request原语接收数据。它将通过将请求与每个原语的比特连接起来,从原语形成比特流,以形成tx_data-group<0>到tx_data-group<15>。它获得了对位中66位块的锁定,并使用同步报头进行流式发送,并输出66位块。按照块锁状态图中的规定获得锁。

只有在PCS和FEC功能之间实现了名为XSBI的可选PMA兼容性接口时,才需要反向变速箱功能,因为该接口通过16位宽的路径传递数据。当XSBI未实现时,PCS和FEC之间的内部数据路径宽度是一种实现选择。根据路径宽度,可能不需要反向变速箱功能

25/40/100GBASE-R

反向变速箱功能在64B/66B块的66位宽和25GBASE-R、40GBASE-R或100GBASE-R PCS到FEC接口(或PMA到FEC接口)的1位宽通道之间进行调整。它从FEC服务接口(或PMA服务接口)接收1比特流,并将其转换回66比特编码块,供FEC编码器处理。

反向变速箱功能通过25GBASE-R FEC: IS _UNITDATA .request原语(或通过PMA: IS_UNITDATA .request原语)或通过40GBASE-R和100GBASE-R FEC: IS_UNITDATA_i .request原语接收数据,(或通过PMA:IS_UNITATA_i .request原语)。它使用同步报头获得每个比特流中66比特块的锁定,并将66比特块输出到FEC编码器功能。按照PCS通道锁定状态中的规定获得PCS通道锁定。PCS或PMA的内部数据路径宽度是一种实现选择。根据路径宽度,可能不需要反向变速箱功能

FEC编码器

FEC编码器使用66位宽的数据路径连接到反向变速箱功能。FEC编码器从反向变速箱中提取32 × 64B/66B块,并将其编码为2112位的单个FEC块。FEC编码器将两个同步比特压缩为一个转码比特。然后,转码比特与相应64B/66B块的数据比特8进行异或运算。得到的32 × 65b = 2080位,被馈送到(2112,2080)编码器,该编码器产生32个奇偶校验位。奇偶校验位被附加到FEC块的末尾。使用PN-2112伪噪声序列对FEC块进行加扰。并发送到PMA接口。

FEC(2112,2080)编码器

FEC编码器的框图如图74-7所示。32× 65位有效载荷块由(2112,2080)码编码。该码是一种缩短的循环码,可以通过生成多项式g(x)进行编码。使用PN-2112伪噪声序列对FEC块进行加扰。

(2112,2080)奇偶校验位的生成多项式g(x)如方程式(74-1)所示。

如果信息比特的多项式表示为m(x),则码字c(x)可以按照方程(74-2)和方程(74–3)中给出的系统形式计算。

码字的系统形式意味着码字的前2080位是可以直接提取的信息位。

PN-2112是由多项式r(x)生成的长度为2112的伪噪声序列,初始状态S57=1,Si-1 = Si XOR 1,或者简单地说是101010的二进制序列。在每个FEC块处理(编码或解码)之前,PN-2112生成器都用这种状态进行初始化。PN-2112发生器应产生与图74-8所示实施相同的结果。这实现了方程式(74-4)中给出的PN-2112生成器多项式。

在FEC码字边界处用PN-2112序列进行加扰对于建立FEC块同步(以确保任何移位的输入比特序列不等于另一个FEC码字)和确保DC平衡是必要的。

FEC解码器

FEC解码器基于对接收到的序列的重复解码来建立FEC块同步。在实现FEC同步之后执行解码和纠错。FEC解码器可以选择向上层指示任何解码错误。

FEC解码器使用奇偶校验数据恢复和提取信息比特。在成功解码的情况下,解码器通过首先对接收到的转码比特与相关数据比特8执行XOR运算,然后生成两个同步比特,来恢复发送到PCS功能的64B/66B块中的每个块中的同步比特。

当10GBASE-R或25GBASE-R的解码器被配置为指示解码错误时,解码器通过将来自相应错误FEC块的32个解码64B/66B块中的第1、第9、第17、第25和第32个块中的两个同步比特设置为值11,向PCS指示错误,从而迫使PCS子层认为该块无效。

当40GBASE-R或100GBASE-R的解码器被配置为指示解码错误时,解码器需要在64B/66B块中的更多块中标记错误,以确保在每个包含错误的帧中向MAC发送检测到的错误信号。40GBASE-R和100GBASE-R的FEC子层在所有32个64B/66B块中将两个同步位都设置为值11,以向PCS指示错误。

FEC同步功能持续监测PMA_SIGNAL .indication(SIGNAL_OK)或PMA: IS_SIGNAL .indication(SIGNAL_OK)。当SIGNAL_OK指示OK时,FEC同步功能通过PMA_UNITDATA .indication原语或PMA: IS_UNITDATA_i .indication原语接收数据单元。它基于FEC块的解码实现块同步,并将接收到的64B/66B块传送到PCS接收功能。FEC同步功能将sync_status标志设置为1并通知PCS,以指示FEC是否已获得同步。

FEC解码功能框图如图74-9所示。解码器处理从PMA子层接收的16位rx_data-group流,并使用PN-2112伪噪声序列对数据进行解扰。

使用FEC解码建立2112比特FEC块的同步。

从恢复的FEC块中提取32个65位数据字中的每一个,并从转码位中为64B/66B码重建2位同步。FEC解码器提供了一个选项,用于指示重建的同步比特中的解码错误。同步位{SH.0,SH.1}的取值如下所述:

a) 如果解码成功(通过奇偶校验匹配或FEC块可纠正)并且解扰后的接收转码比特(T)为1,则同步比特取值为{SH.0,SH.1} = 01,或者如果解扰后的接收转码比特(T)为0,则同步比特取{SH.0,SH.1} = 10的值。

b) 如果变量FEC_Enable_Error_to_PCS设置为1以指示PCS层的错误,并且接收到的FEC块具有不可纠正的错误,则对于10GBASE-R和25GBASE-R PHY,32个解码的64B/66B块中的第1、第9、第17、第25和第32个块的同步位取值为{SH.0,SH.1} = 11。对于40GBASE-R和100GBASE-R PHY,所有32个64B/66B解码块中的同步位取值为{SH.0,SH.1} = 11。所有其他64B/66B块的同步位取上述a)项中所述的值。

c) 如果变量FEC_Enable_Error_to_PCS设置为0,并且接收到的FEC块具有不可纠正的错误,则同步比特取上述a)项中所述的值。

该信息对应于一个完整的(2112,2080)FEC块,该FEC块等于32个64B/66B码块。FEC(2112,2080)解码器实现应能够纠正每个FEC块至少11位突发错误。

FEC块同步

接收FEC块同步是使用传统的n/m串行锁定技术实现的,如下所述:

a) 测试潜在的候选块起始位置

1) 使用PN-2112发生器对块进行解扰

2) 评估潜在区块的奇偶性

i) 如果奇偶校验不匹配(即接收到的奇偶校验与计算出的奇偶校验不符),则移位候选从一个比特位置开始,然后重试。

b) 验证“n”个连续块的潜在块开始位置是否具有良好的奇偶校验

1) 如果其中任何一个失败,则转换候选者从一个位开始,然后重新开始

2) 如果收到具有良好奇偶校验的“n”个连续块,则报告块同步

c) 块同步已建立。

d) 如果收到具有错误奇偶校验的“m”个连续块,请删除块同步并在a)项处重新启动。

对于2112码字中的所有比特位置,该过程最多重复2111次。m和n的值如下:m=8,n=4。

FEC快速块同步(EEE)

如果支持可选的EEE功能,则在唤醒和刷新状态期间,FEC解码器接收两种类型的确定性块之一,以实现快速块同步。在这些状态期间,远程FEC编码器的反向变速箱通过16位FEC_UNITDATA .request原语从PCS子层接收未加密的数据。

第49条(10GBASE-R PCS)和第107条(25GBASE-R PCS)的PCS子层在唤醒状态期间对/I/进行编码,在刷新状态期间对/LI/进行编码,从而产生两种类型的确定性FEC块。

如果支持可选的EEE深度睡眠功能,则第82条(100GBASE-R)PCS子层也会在唤醒状态期间对/I/进行编码,在刷新状态期间对/LI/进行编码,但还会在每个PCS通道中插入快速对齐标记。这导致这两种类型的确定性FEC块中有许多65位字被快速对齐标记替换,因此不匹配“如表74A-5和表74A-6所示的两种确定性模式”。快速FEC块内快速对齐标记的位置对于进入唤醒或刷新状态的给定条目是一致的,但对于后续条目,位置可能会有所不同。快速FEC锁定实现需要考虑对这两种确定性模式的修改。

当rx_lpi_active为TRUE并且rx_mode(或rx_tx_mode,如果合适)转换为DATA时,启动一个持续时间大于或等于13.7秒的延迟定时器,并启用FEC快速块锁定机制,该机制试图根据确定性模式确定FEC块位置的开始。

当快速块锁被锁定时,所确定的块定位开始被用作FEC锁定状态图候选块定位开始,直到快速块锁失去锁定。假设快速块锁定确定了块位置的正确开始,FEC锁定状态图实现了锁定,而不需要后续滑动。快速块锁定机制取决于实现,不在本标准的范围内。FEC子层应推迟断言SIGNAL_OK,直到发生以下两个事件之一:

1) 从确定性FEC块转换为正常加扰FEC块后的两个65b有效载荷块

2) 延迟定时器到期

比特顺序

发送方向

接收方向

测试图案

10GBASE-R和25GBASE-R PCS提供测试图案功能,PCS发送信道和接收信道可以分别在正常模式或测试图案下运行。当10GBASE-R或25GBASE-R PHY配置为测试图案时,可以通过将FEC启用变量设置为0来禁用FEC功能,因此可以将PCS的测试图案发送到PMA服务接口,绕过FEC编码和解码功能。第82条(40/100GBASE-R PCS)和第107条(25GBASE-R PCS)PCS也可以在测试图案下运行;然而,加扰空闲测试图案不需要绕过FEC编码和解码。

MDIO功能映射

与BASE-R FEC相关的寄存器集中在C45寄存器DeviceID=1(PMA/PMD)里。下面做一个简单的介绍。

控制变量映射

状态变量映射

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-28,如有侵权请联系 cloudcommunity@tencent 删除数据同步编码测试接口

本文标签: 铜缆以太网21