8b/10b编码技术系列(一):Serdes、CDR、K码

和大家分享一下关于8b/10b编码的知识点,如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言!

一、Serdes高速收发器

在传统的源同步传输中,数据和时钟分离,在速率较低(<1000M)时问题不大,关于M?推测单位应该是Mbps。

在传输速率越来越高时,由于传输线的时延和抖动存在(个人理解为时序约束中的routing布线延迟和时钟Jitter--也就是时钟周期差异),导致接收端不能正确的采样数据,时钟边沿无法与数据中心对齐。

为了解决该问题,可以将数据从时钟中恢复(CDR技术,Clock Data Recovery),这样就不会存在延迟不一致的情况,有轻微Jitter也不会影响采样(恢复的时钟随着数据一起抖动)。

But!but!but!将数据和时钟混合,接收端从接收数据中恢复出时钟的话,那么数据接收方要和数据发送方共地。

这样的话就会增加接口线路,且往往很难实现,所以数据传输采用差分传输,抗共模噪声。

那么问题又来了,差分传输的话,由于电压的绝对值较大,变化速率更快(斜率更大),数据接收端的电流会存在过大问题,在接收端使用交流耦合电容进行交流耦合,隔直流通交流(链路交流耦合)。

如下图所示,直流平衡时,数据流中的0和1交替出现,可以认为是交流信号,可以顺利通过耦合电容,DC不平衡时,数据流中出现多个连续的0或者1,可认为这段时间内的信号是直流,通过电容时会产生传输错误,所以就有了8b/10b(64b/66b)编码,高速串行总线采用编码技术的目的是平衡数据流中的0和1,从而实现DC平衡。

二、CDR技术

Clock Data Recovery时钟恢复电路一般是通过PLL电路(鉴相器PD、环路滤波器LF、压控振荡器VCO)实现,其作用是从数据流中准确的恢复出时钟和数据信息。

参考时钟输入到鉴相器(PD),鉴相器比较的是两个相位,一个是参考时钟,一个是数据恢复时钟,两个时钟之间存在两种差异,一种是频率差,另一种是相位差,当恢复时钟相位与参考时钟相位之间存在差异的话会产生一个对应比例的积分值,根据积分值的大小,控制数据时钟提取电路的时钟进行偏移,从而使得数据恢复时钟和参考时钟相位进行对齐,此时认为输出时钟锁定,即所向为认为时钟已经锁定到了所需要的相位或者频点上,就可以作为一个可以使用的时钟。

三、Comma码(K码)

在serdes上的高速串行数据流在接收端需要重新串并转换成多个字节的并行数据,如何有效的识别32bit数据边界?这就需要一个特殊的序列,即为Comma码。在任意数据组合中,Comma码只作为控制字符出现,在数据负荷部分不会出现,所以使用comma码字符只是帧的开始和结束标志,或者修正和数据流对齐的控制字符

接收器在输入数据流中扫描搜寻特定的比特序列(comma),如果找到序列,解串器调整字符边界以匹配检测到的Comma字符序列。

SATA应用中使用K28.5(Align原语的第一个字节)作为comma字符

K码有多个,比如K28.0、K28.1、K28.5等,K码标志帧开始、帧结束、时钟修正和数据对其等功能,K指的是Comma码,K和小数点之间的数字指的是8位数据的后5位,小数点后面的数字指的是8位数据的前3位【K码格式,好重要的,在PCIe部分这个K码搞了好久才理解】。

以K28.5为例:

28表示8位数据的后五位为27,即5’b1_1100

5表示的8位数据的前三位为5,即3’b101

故K28.5的二进制形式为:8’b1011_1100,即8’hBC

K28.5字符用于识别一帧数据的开始,数据发送时以字为单位传输,在接口处数据是32位,用于字节对齐与数据同步。检测到帧同步信号(K28.5)时,根据所处的位置将同步字符提取出来删掉,剩余部分为有效数据,比如:

接收到的数据是32’h08bc0706,此时帧同步信号为4’h4==4’b0100,即表示K字符位于第三byte,一共4个字节,byte0~3,需要将byte2去掉。

K码表:

其中K28.1,K28.5,K28.7可以作为分隔码,也叫comma码,用于接收端在串行的数据流中找到字节边界。常用的K28.5即0xBC。

祝大家521快乐,到了学校一堆事要做,可能以后不能天天更新了,请理解~~~~

~~~~感谢阅读~~~~谢谢!

(0)

相关推荐

  • 串行总线技术(二)-串行总线中的先进设计理念及SerDes/PMA介绍

    字节分割/链路聚合下面以PCIe为例对字节分割加以讨论,如图所示.PCIe使用链路和线路来发送串行数据.链路是一个逻辑实体,能够具有单个线路或多个线路.当逻辑链路包括一个线路时,TLP和DLLP通过单 ...

  • 【博文连载】PCIe扫盲——关于PCIe参考时钟的讨论

    本文来聊一聊PCIe系统中的参考时钟,主要参考资料为PCIe Base Spec和CEM Spec.在1.0a和1.1版本的PCIe Base Spec中并没有详细的关于参考时钟的描述,而是在与之对应 ...

  • 超高速SerDes 在芯片设计中的挑战

    SerDes已经成为需要快速数据移动和有限I/O的芯片的主要解决方案,但随着速度不断提高以抵消数据的大量增加,这项技术变得越来越具有挑战性. 串行器/解串器用于将并行数据转换为串行数据,使设计人员无需 ...

  • Xilinx 高速收发器Serdes深入研究

    一.为什么要用Serdes 传统的源同步传输,时钟和数据分离.在速率比较低时(<1000M),没有问题. 在速率越来越高时,这样会有问题  由于传输线的时延不一致和抖动存在,接收端不能正确的采样 ...

  • 【精品博文】Xilinx-7Series-FPGA高速收发器使用学习—RX接收端介绍

    赢一个双肩背包 有多难? 戳一下试试看! →_→ 长摁识别 接上文:Xilinx-7Series-FPGA高速收发器使用学习-TX发送端介绍 上一篇博文介绍了GTX的发送端,这一篇将介绍GTX的RX接 ...

  • 【博文连载】PCIe扫盲——弹性缓存(Elastic Buffer,or CTC Buffer)

    前面在介绍PCIe物理层逻辑子层的文章中,有提到过弹性缓存(Elastic Buffer,又称为CTC Buffer或者Synchronization Buffer).其本质上是一种FIFO,主要用于 ...

  • 高速串行通信常用的编码方式-8b/10b编码/解码

    绪论8b/10b编码/解码是高速串行通信,如PCle SATA(串行ATA),以及Fiber Channel中常用的编解码方式.在发送端,编码电路将串行输入的8比特一组的数据转变成10比特一组的数据并 ...

  • 技术系列——典型形态分类

    想必大多数同学都看过一道经典的思维题,由十个硬币组成的正三角形,移动其中三个,让图形变成倒三角形. 那么解题的关键在于抓住其中共用的部分,也就是所谓的万变不离其宗. 二者虽然在形态上有所变化,但其中最 ...

  • 技术系列——中枢交替

    实际走势当中,交替会出现,却不是总出现. 在大多数时候,某一段走势类型里的同级别两个中枢的形式一般都是简单对简单,或者复杂对复杂的出现. 上图爱美客第一轮上涨的过程当中,就基本上以两个构造近乎相同的中 ...

  • 技术系列—第二篇

    上一课我们学习了K线的包含关系,现在交易软件上的K线应该都是没有包含关系的K线了.那么我们学习下一步-- 为了形象直观,我们用实物苹果演示一下: 正品字如同山顶的形状 –顶分 倒品字如同山底的形状-底 ...

  • 技术系列——背驰的再讲解

    MACD与背驰 1,如果庄家边拉边出,走势上自然留下痕迹,这就是背驰.注意,背弛了并不是说就跌个没完了,只要次级别再出现买点,就又涨回去. 如果30分钟或日线在一个明确的上涨初期时,那么5分钟的背驰当 ...

  • 技术系列——背驰的定义

    缠论原文当中有过这么一段论述:以阵地战为中心,比较前后两段之力度大小,大者,留之:小者,去之.其核心意义就是在描述缠论当中的背驰原理,也是缠论当中最为关键的一环之一! 背驰的关键在在于,缠论定理当中明 ...

  • 技术系列——中枢的定义

    枢这个概念在缠论中的地位是举足轻重的,它就如同天上的北斗,航海的罗盘,一个不患而患的参照系.看过学过缠论的人对中枢都不陌生,有了中枢,可以判断走势类型,有了中枢可以确定走势级别,有了中枢可以比较力度判 ...

  • 技术系列—开篇

    首先向缠论的原著作者以及在我研究缠论道路上的各位领路人致敬!--开篇 当今,市场上有很多种技术分析,各有千秋,有没有一种技术可以系统性.完整性的阐释股票的真谛,也能在实盘操作是发挥巨大威力呢?答案是: ...

  • 超短高手抓涨停低吸技术系列深度教程 6:高位龙头股日内低吸大长腿(图解)(4)

    2020-01-29拾荒网 编辑:激情打板的考拉浏览:7334次 2.建科院 只是K线看起来和我说的模式类似,但其实仔细去看分时,其实一点都不一样.首先,没有在水下调整大半天的这个过程,其次涨停被砸当 ...