64B66B编码详解

本文介绍了64B66B编码技术,用于解决高速通信中的长连1和长连0问题,通过加扰/解扰和LFSR实现,以及其在10G以太网等应用中的数据帧格式,包括同步头和扰码规则。
摘要由CSDN通过智能技术生成

前言

参考:https://blog.chinaaet.com/justlxy/p/5100064750
64B66B是我们在高速通信协议中的一种处理PHY层发送数据的编码。为何我们要编码,直接把原数据发送出去不行吗?答案是当然不行,我们8B10B中了解到:串行通信中长连1与长连0对接收端恢复时钟造成了很大的挑战,因此我们将8bit的数据扩展到10bit,在1024种编码中精心挑选256种最优码值用于传输,避免的过大的长连1与长连0。这也是我们所说的“直流平衡”。

前面我们介绍过的8B10B编码,它的效率较低,只有80%。64b/66b编码技术是IEEE 802.3工作组为10G以太网提出的,目的是减少编码开销,降低硬件的复杂性,并作为8b/10b编码的另一种选择,以支持新的程序和数据。当前,64b/66b编码主要应用于Fiber Channel 10GFC和16GFC、10G以太网、100G以太网、10G EPON、InfiniBand、Thunderbolt和Xilinx的Aurora协议。

64B66B不像8B10B那样采用一定的规则对8bit的原数据进行编码(采用真值表),每个编码后的数值都有对应前的原码值。64B66B并没有采用直接编码为固定码值的形式,而是采用了一种更加巧妙的方式。大家都知道在通信领域,白噪声、随机序列对我们的意义重大,它的意义就在于0和1是随机出现的,通过对白噪声、随机序列的观察我们得到了一种新的处理长连1和长连0的方式------将数据变成伪随机序列传输。这也是我们常说的加扰/解扰。64B66B采用加扰的方式让数据更接近白噪声,从而达到“直流平衡“的目的。也提高的传输带宽利用率。

在这里插入图片描述

一、64B66B的实现方式

64B66B的实现方式依靠加扰/解扰实现。在发送端的PHY层将原始数据进行加扰,然后再通过GT高速收发器发送出去。在接收端将GT接收的数据在PHY层进行解扰恢复出原始数据。
加扰/解扰的实现采用线性反馈移位寄存器(LFSR)实现。
多项式为:X(58) + X(39) + 1;

在这里插入图片描述

二、64B66B数据帧格式

64b/66b编码将64bit数据或控制信息编码成66bit块传输,66bit块的前两位表示同步头,主要由于接收端的数据对齐和接收数据位流的同步。同步头有“01”和“10”两种,“01“表示后面的64bit都是数据,“10”表示后面的64bit是数据和控制信息的混合,其中紧挨着同步头的8b是类型域,后面的56bit是控制信息或者数据或者两者的混合。64b/66b编码格式图如下图所示,其中D表示数据编码,每个数据码8bit;Z表示控制码,每个控制码7bit;S表示包的开始,T表示包的结束。S只会出现在8字节中的第0和第4字节,T能够出现在任意的字节。除同步码外,64bit的数据必须经过扰码以后才能进行传输。10G以太网的64b/66b编码所使用的扰码器为X58+X39+1.

在这里插入图片描述

  • 35
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺子学不会FPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值