前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >8b/10b编码技术系列(一):Serdes、CDR、K码

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

作者头像
根究FPGA
发布于 2020-06-29 07:29:18
发布于 2020-06-29 07:29:18
8.7K0
举报
文章被收录于专栏:根究FPGA根究FPGA

和大家分享一下关于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快乐,到了学校一堆事要做,可能以后不能天天更新了,请理解~~~~

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 根究FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
初始JESD204B高速接口协议(JESD204B一)
JESD204B是逻辑器件和高速ADC/DAC通信的一个串行接口协议,在此之前,ADC/DAC与逻辑器件交互的接口大致分为如下几种。
FPGA技术江湖
2025/04/23
890
初始JESD204B高速接口协议(JESD204B一)
详解Xilinx的10G PCS PMA IP
如果要在Xilinx的FPGA上使用万兆以太网通信,大致有三种方法构建协议栈。第一种使用GTX等Serdes作为底层的PHY,上层通过HDL实现构建MAC和IP层,这种方式难度会比较大,底层需要完成PHY层的设计,最终我想通过这种方式实现万兆以太网的搭建。
FPGA技术江湖
2025/04/18
1030
详解Xilinx的10G PCS PMA IP
SERDES关键技术总结
随着大数据的兴起以及信息技术的快速发展,数据传输对总线带宽的要求越来越高,并行传输技术的发展受到了时序同步困难、信号偏移严重,抗干扰能力弱以及设计复杂度高等一系列问题的阻碍。与并行传输技术相比,串行传输技术的引脚数量少、扩展能力强、采用点对点的连接方式,而且能提供比并行传输更高带宽,因此现已广泛用于嵌入式高速传输领域。
数字芯片社区
2020/08/04
2.4K0
SERDES关键技术总结
以太网自协商--1000BASE-X自协商(三)
交换芯片的1000BASE-X接口处于PMA和PMD之间,这个接口称为1000BASE-X Serders。PMD为光模块/CX DAC模块,前一个章节已经讨论过,这里不再赘述了。
追宇星空
2024/07/01
6870
以太网自协商--1000BASE-X自协商(三)
高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案
SERDES可以工作在多吉比特的速率,同样作为串行总线的SPI却常常在十兆或数十兆比特的速率,为何差别这么大呢?SERDES的特别之处在哪里?用了什么技术?这里来揭秘SERDES高速面纱!
Reborn Lee
2020/12/29
1.5K0
高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案
SerDes知识详解
也存在一些介于SerDes和并行接口之间的接口类型,相对源同步接口而言,这些中间类型的接口也使用串行器(Serializer)解串器(Deserializer),同时也传送用于同步的时钟信号。这类接口如视频显示接口7:1 LVDS等。
碎碎思
2020/07/29
4.8K0
SerDes知识详解
8b/10b编码技术系列(二):Disparity、RD、8b/10b编码
和大家分享一下关于8b/10b编码的知识点,如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言!
根究FPGA
2020/06/29
3.7K0
铜缆以太网4-1000BASE-CX(三)
PMA为PCS提供服务接口。这些服务以抽象的方式描述,并不意味着任何特定的实现。PMA服务接口支持PCS实体之间的码组交换。PMA将码组转换为比特并将其传递给PMD,反之亦然。它还生成一个额外的状态指示,供其客户端使用。
追宇星空
2025/02/20
910
铜缆以太网4-1000BASE-CX(三)
HDMI驱动系列(一)、HDMI简介
高清多媒体接口HDMI全程High-DefinitionMultimedia Interface。HDMI接口协议在物理层使用TMDS(最小化传输差分信号)标准传输音视频数据。
根究FPGA
2020/06/29
5.9K0
GNURadio+USRP+OFDM实现文件传输
使用 GNU Radio Companion 驱动 USRP N320 实现 OFDM 自收自发测试。(Ubuntu20.04LTS + GNURadio 3.8 + UHD 3.15)
Gnep@97
2024/03/08
1.2K0
GNURadio+USRP+OFDM实现文件传输
高速串行通信常用的编码方式-8b/10b编码/解码
8b/10b编码/解码是高速串行通信,如PCle SATA(串行ATA),以及Fiber Channel中常用的编解码方式。在发送端,编码电路将串行输入的8比特一组的数据转变成10比特一组的数据并输出;在接收端,解码器将10比特一组的输入数据转换成8比特一组的输出数据。编码和解码采用相同算法,整个过程就是8b/10b编码/解码过程。
碎碎思
2022/03/11
2.4K0
高速串行通信常用的编码方式-8b/10b编码/解码
LVDS SerDes 设计
LVDS (Low Voltage Differential Signaling)是一种小振幅差分信号技术,它使用非常低的幅度信号 (250mV~450mv)通过一对平行的 PCB 走线或平衡电缆传输数据。在两条平行的差分信号线上流经的电流及电压振幅相反,噪声信号同时耦合到两条线上,而接受端只关心两信号的差值,于是噪声被抵消。由于两条信号线周围的电磁场也相互抵消,故差分信号传输比单线信号传输电磁辐射小得多。此外,该传输标准采用电流模式驱动输出,不会产生振铃和信号切换所带来的尖峰信号,具有良好的EMI特性。由于LVDS 差分信号技术降低了对噪声的关注,所以可以采用较低的信号电压幅度。这个特性非常重要,它使提高数据传输率和降低功耗成为可能。低驱动振幅意味着数据可更快地反转。由于驱动器是恒流源模式,功耗几乎不会随频率而变化,而且单路的功耗非常低。
FPGA开源工作室
2021/10/25
1.2K0
LVDS SerDes 设计
高速串行总线设计基础(三)SERDES的通用结构介绍
上一篇文档,介绍了MGTs,我们知道它的一个别名为SERDES,就是如此,这篇文章我们来谈一下通用的SERDES架构。无论是X家的Transceiver还是A家的SERDES,或者其他什么家的某某吉比特收发器,原理其实都是大同小异,离不开一些共同的结构。
Reborn Lee
2020/12/29
3K0
高速串行总线设计基础(三)SERDES的通用结构介绍
serdes接口速率_通用串行接口
在以往的IC之间的源同步当中,发送的信号包括数据流信号,以及随着数据流信号同步的时钟信号,时钟信号在低速传输的情况下:1G以下传输,外部的扰动以及时钟抖动不会太影响数据流的恢复,但是如果时钟信号突破了1G甚至更高的情况下,外界环境中比如EMI的各种影响会引起时钟发生抖动,在高速采样恢复的过程中,这就没办法使用该时钟信号恢复数据,这里就用到了高速Serdes串行接口的恢复办法,将数据和时钟都通过高速线上传输,然后接受端通过PLL从数据流中恢复时钟,即使在传输的线上有轻微抖动,但是时钟和数据同
全栈程序员站长
2022/11/15
8220
serdes接口速率_通用串行接口
使用FPGA对40G以太网接口芯片Serdes进行测试的方法
SERDES 是英文 SERializer(串行器)/DESerializer(解串器)的简称。它是一种时分多路复用(TDM)、点对点的通信技术,即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,从而减少了传输线之间的干扰,增大了背板传输距离,并且大大降低通信成本。同时带来了诸如减少布线冲突、降低开关噪声、更低的功耗和封装成本等许多好处。而 SERDES 技术的主要缺点是需要非常精确、超低抖动的元件来提供用于控制高数据速率串行信号所需的参考时钟。即使严格控制元件布局,使用长度短的信号并遵循信号走线限制,这些接口的抖动余地仍然是非常小。
FPGA技术江湖
2025/01/09
2530
使用FPGA对40G以太网接口芯片Serdes进行测试的方法
数模接口设计JESD204B协议、Vivado License及相关参考设计
一种新型的基于高速SERDES的ADC/DAC数据传输接口。ADC/DAC的采样速率变得越来越高,数据的吞吐量越来越大,对于500MSPS以上的ADC/DAC,动辄就是几十个G的数据吞吐率,采用传统的CMOS和LVDS已经很难满足设计要求,JESD204B应运而生。现在各大厂商的高速ADC/DAC上基本都采用了这种接口。
碎碎思
2020/06/29
2.3K0
深入浅出理解SerDes
我们平时使用的I2C、串口等其实都是串行总线,但是因为他们速度较低、时序简单,所以很少在高速串行总线时被提及。但是在高速时代的今天,一些高速总线,如LVDS、MIPI、SERDES、SATA、USB等等,而我们在学习或者研究任何一种总线的时候,都要考虑这些总线的区别,才能在后续使用的过程中更好的进行应用。比如我拿到一块板子,这块板子比较低级,只有常见的LVDS没有MIPI总线,但是我外面需要接一个MIPI摄像头,这个时候应该怎么办?
碎碎思
2020/07/29
9.6K0
TX的8B/10B编码功能
每个收发器(Transceiver)包括一个独立的发射器(Transmitter),它由PCS和PMA组成。下图显示了发射器(Transmitter)的功能块。并行数据从FPGA逻辑流入FPGA TX接口,通过PCS和PMA,然后作为高速串行数据流出TX驱动器 。
Reborn Lee
2021/11/12
1.1K0
TX的8B/10B编码功能
铜缆以太网3-1000BASE-CX(二)
本条款规定了1000 Mb/s物理层实现系列(统称为1000BASE-X)中通用的物理编码子层(PCS)和物理介质连接(PMA)子层。1000BASE-X基于ANSI INCITS 230-1994(光纤通道物理和信令接口)开发的物理层标准。特别是,该标准使用与光纤通道相同的8B/10B编码,与ANSI 10位串行器芯片的速度增强版本兼容的PMA子层,以及类似的光学和电气规范。1000BASE-X PCS和PMA子层将PMD子层(包括MDI)的接口特性映射到调协子层预期的服务。1000BASE-X可以扩展到支持任何其他全双工介质,只需要该介质在PMD级别符合要求。
追宇星空
2025/02/20
970
铜缆以太网3-1000BASE-CX(二)
【译文】【第二章①】Mindshare PCI Express Technology 3.0
欢迎参与 《Mindshare PCI Express Technology 3.0 一书的中文翻译计划》
空白的贝塔
2022/02/16
1.9K0
【译文】【第二章①】Mindshare PCI Express Technology 3.0
相关推荐
初始JESD204B高速接口协议(JESD204B一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档