SerDes接口——架构与电路

        随着通信技术的飞速发展,高速串行互连以其结构简单,不需要传输同步时钟,相比并行传输有更高数据传输效率的优点,成为现代通信和数据传输的重要组成部分。随着对数据传输速率要求的不断提高,SERDES应运而生。它是一种时分多路复用(TDM)、点对点的通信技术,即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。

        SERDES(Serializer and Deserializer)接口作为高速串行通信的重要组成部分,对其芯片的研究和设计一直是一个热点。SERDES接口由串行器(SER)和解串器(DES)两部分组成,串行器由并串转换电路、发射器组成,结构比较简单,而解串器由接收器、串并转换电路和时钟与数据恢复电路CDR(Clock and Data Recovery)组成,接VI中串行器的功能是将低速的并行信号转换成为高速低压差分信号LVDS(Low Voltage Differential Signaling),然后串化并发送出去,而解串器的功能是接收高速串行LVDS信号并正确地转换为低速并行信号。在基本的SERDES模块中,SERDES内部的时钟频率必须要大于外部参考时钟的频率。

        其采用的一些技术也突破了传统并行I/O 接口的数据传输瓶颈,比如,(一)采用差分信号传输代替单端信号传输,从而增强了抗噪声、抗干扰能力;(二)采用时钟和数据恢复技术代替同时传输数据和时钟,从而解决了限制数据传输速率的信号时钟偏移问题;(三)采用了多路复用技术(TDM),增加了系统传输带宽,给PCB 版图布线带来了极大的方便。

一、SerDes 接口常用构架

        SerDes芯片广泛的应用于通信系统的信号传输中,但是大多数通信系统设计者在选择SerDes芯片时,往往只是考虑芯片的功耗和速度,而忽略了SerDes芯片的工作机制和原理。SerDes芯片的内部构架看似不相关,其实构架的不同决定了整个系统在设计时许多重要参数的不同,例如系统的拓扑结构,底层协议,数据格式,以及延迟,时钟等要求都是需要考虑的。这些因素对系统的开销,性能具有重要的作用。

        现在主要由四种SerDes结构,分别是并行时钟SerDes,嵌入时钟SerDes,位交错SerDes以及8b/10b SerDes,下面分别介绍这四种SerDes结构。

1、并行时钟SerDes

        并行时钟SerDes常常用于串行化“数据-地址-控制”并行总线,例如PCI,UTOPIA,处理器总线,控制总线等。这种SerDes架构不再用一个多路复用器去解决整个总线,而是利用一组多路复用器(N~1位)去串行化并行数据,每个多路复用器分别串行化一部分总线。串行数据连同一个附加的时钟信号并行到达接收端,接收器用这个时钟信号锁存并恢复数据。

        这里有多对时钟/数据对,因此要确保对与对之间的偏移最小,这样才能保证解串的正确性。尽管有多对串行线,但是并行时钟SerDes仍旧拥有更小功耗,更少的数据线,更大的驱动能力,更低的噪声等优点。并行时钟SerDes提供了一种性价比高的解决方案。

2、嵌入时钟SerDes

        嵌入时钟 SerDes将数据总线和时钟转换为一个串行差分对进行传输。两个时钟位(一低一高)嵌入进数据流中,作为每个时钟周期的数据帧结构的起始位和结束位,并在串行数据流中产生周期性的时钟上升沿。

         上电之后,接收器自动搜索周期性的时钟上升沿。由于数据位的值随时间改变,同时时钟位不变,所以接收器能够唯一定位时钟沿及同步时钟沿。一旦锁定,接收器就从串行流中恢复数据(不管数据为何种形式)。这种自动同步的能力通常称为“锁定随机数据(lock to random data)”,它不需要系统的外部干预。由于接收器是被锁定为接收的嵌入时钟,没有外部的参考时钟,则对时钟的抖动要求是相当宽松的(对接收器和发送器都是同样的)。相比于其他结构的SerDes 芯片,嵌入时钟SerDes 的结构比较简单,在系统级的应用也不复杂。

3、位交错SerDes

        位交错 SerDes 复用低速的SONET/SDH 或8b/10b 串行数据流,通过交差比特位转换为更快速的串行数据流。在接收端,接收器解复用比特流转换为低速的码流。由于高速特性以及低抖动的要求,位交错SerDes 要求非常精确的外部时钟。

         位交错 SerDes 芯片常用于电信传输设备上,例如分插复用器,准光学转换器等以加强SONET/SDH 数据流通过电缆或光纤传输到核心网的能力。

4、8b/10b SerDes

        8b/10b SerDes将并行数据映射为10 比特码,再串行传输出去。8b/10b 的编码方式要求满足一个时钟的双沿传输和达到直流平衡。为了定位10 比特码的边沿,发送器通过发送一种特殊的comma 字符来标记数据流的帧头,这种特殊的comma 字符永远不会出现在普通的数据中,这样在接收端,利用Comma 检测器来检测串行码流中的特殊Comma 字符,将串行码流划分成字边界正确的10bit 8b/10b 编码,送到解码器进行解码,得到和发送端相同的字节信息。8b/10b SerDes 对外部时钟的抖动要求较高。

         8b/10b SerDes 适合传送字节数据,许多标准都运用8b/10b 编码技术,例如以太网,光纤通道,InfiniBand 等,传输速率涉及1.0625Gbps、1.25Gbps、2.5Gbps、3.125Gbps 等。在相同的应用中,8b/10b SerDes 的系统相对较复杂,额外的非字节的控制信息必须用带buffer 缓冲,再以字节的格式发送。

 二、8b/10b SerDes典型结构

        下面我们就重点探讨8b/10b SerDes的内部结构。

 

1、锁相环

        SerDes作为一种高速串行传输的接口,它需要高质量低抖动的时钟,而且在将并行数据转换为串行数据时,需要将并行数据的时钟频率提高10倍或20倍,产生高速串行数据的时钟。因此,我们有必要设计高质量的锁相环和频率合成器,来保证提供的时钟具有高质量、高频率、低抖动。

        锁相环总的来说是一个负反馈跟踪控制系统,它完成了对压控振荡器(VCO)所产生频率的控制和稳定。通过这样一个系统,压控振荡器产生的时钟就可以稳定的作为其他系统的时钟进行使用。锁相环最重要的一个应用就是产生稳定的时钟。

2、时钟数据恢复电路

        CDR主要功能是接收输入高速串行信号并判断信号的相位,从中提取出时钟信息。

        实际的系统中,当高速信号在PCB 板级电路或者线缆中传输时,由于路径距离和寄生电容等因素影响,信号从发送端到达接收端的时候,已经产生了随机的延迟,再加上传输过程中所引入的抖动和发送端和接收端同步时钟固有的频率偏差,将会使接收端采样时钟的相位与接收数据
的相位发生了偏差。在高速条件下,数据的码元周期都比较小,一旦相位偏差超过一定的范围,就会发生采样错误。为了能够正确的对输入数据进行采样,满足系统传输误码率的指标要求,CDR 模块必须能够根据本地时钟和输入数据的相位差来正确的调整本地采样时钟的相位,以保证采样时钟的相位能够位于输入数据码元的中间位置。

        下图描述了一个简化的时钟和数据恢复电路的原理,时钟恢复电路检测输入数据的跳变沿并调整本地采样时钟的相位。数据恢复电路利用调相后的时钟对相位飘移的输入数据进行采样输出。理想情况下,时钟采样时刻应该位于数据的中间位置,假若时钟采样时刻位于数据跳变沿位置,则容易产生采样错误。

 3、LVDS 收发器

        LVDS(Low Voltage Differential Signal) 信号标准是高速串行通信中常用的接口标准之,是一种小振幅差分信号技术,其电路如下:

        LVDS使用非常低的幅度信号(100~450mV) ,通过一对平行的PCB 走线或平衡电缆传输数据。在两条平行的差分信号线上流经的电流方向相反,噪声信号同时耦合到两条线上,而接收端只关心两信号的差值,于是噪声被抵消。由于两条信号线周围的电磁场也互相抵消,故差分信号传输比单线信号传输电磁辐射小得多,从而提高了传输效率并降低了功耗。

        此外,除了LVDS接口标准,现在少数厂商生产的SerDes芯片中还运用了CML(Current Mode Logic)接口标准。虽然CML接口缺少严格的技术规范标准,但是它的应用越来越广泛。由于CML的电路结构是所有高速数据接口形式中最简单的一种,且它的数据传输率可以达到2.5 Gbps甚至更高,较之CMOS电路,CML电路可以在较低的电源电压条件下实现低摆幅、高频率的工作状态。

4、8B/10B 编码器

        8B/10B 编码方式是1983 年由IBM 的A.X.Widmer 所提出,其根据规定的映射机制将原来的8 比特数据转化成特定的10 比特数据。8B/10B 编码器通过均衡映射后的数据流中0 和1 的数量来获得直流平衡的码字,而这些直流平衡的码字可以为后面的时钟恢复电路提供满足要求的状态翻转次数。

        8B/10B 编码原理是将一组连续的8 位字节数据分解为2 组数据:一组为3 比特,另一组为5 比特。分别对2 组数据进行编码获得4 比特和6 比特数据,然后组成10 比特数据。我们利用Dx.y 表示256 个数据字符,利用Kx.y 表示12 个特殊控制字符。

        下图表示出了具体的映射关系,Dx.y 中x 用高3 位二进制表示,y 用低5 位二进制表示,8 比特并行数据中的高三位HGF 被编码成jhgf,低5 位EDCBA 被编码成iedcba,两组数组成编码后的10 位并行数据abcdeifghj。

         同时为了保证数据流的DC 平衡,在编码过程中还需要表示不平衡度的极性偏差值RD(Running Disparity)。所有有效的8B/10B 码字中0 和1 的数量差只有3中情况:0、+2、-2。当码字中1 的个数比0 的个数多两个时RD 值为1,,当0 的个数和1 的个数相等时RD 值为0,而当0 的个数比1 的个数多两个时RD 值为-1。

        为了维持数据流中的直流平衡性,码字机制要求每个码字的RD 值须与前一个码字的RD 值互为相反值,所以在对当前码字进行编码时需要参考前一个码字的RD 值来进行编码,下表所示为下一时刻的RD 值与之前的RD 值和当前码字的RD值的关系:

         因为协议规定RD 的初始值为-1,所以在编码过程中RD 只会出现+1 和-1 两种情况,从而需要编码的字符会根据2 种不同RD 值产生两种不同的编码结果,并且将编码后更新的RD 用于下一个码字的编码。

        用于编码的映射机制规定了268 种有效字节的对应方式,其中包括针对256 个数据字符编码机制和12 个特殊控制字符的编码机制。如下表:

         上表的3B/4B 模块中出现Dx.7 的情况时需要特殊处理,此时如果Dx.7 和5B/6B 模块中的Dx 组合在一起被编码时需要避免产生连续5 个0 或1 的情况。如果碰到连续5 个0 或1 的情况则认为是表征字符边界的comma 信号。

        控制码字Kx.y 的映射关系,8B/10B 标准使用12 个特殊的控制码字。在控制码字中,K28.5、K28.7 为表征字符边界的comma 序列。

        在接收端的8B/10B 解码模块实现的功能是编码的逆过程,需要将编码后的10bit 数据根据映射表映射成8bit 的原始数据,同时还需要实现错误字符的检测功能。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot分模块开发详解(2):建立子工程

1.创建base-entity 选中base工程&#xff0c;右键创建一个新的maven工程 自动选择了base这个目录存放子工程 创建后&#xff0c;pom.xml修改成如下内容&#xff1a; <?xml version"1.0"?> <projectxsi:schemaLocation"http://maven.apache.org/POM/4…

图像去雾算法学习

现有的图像采集设备对外界环境的干扰非常敏感,在雾霾环境中,获取的户外图像往往退化严重,主要表现为场景特征信息模糊、对比度低、色彩失真,不利于计算机视觉系统对图像真实特征的提取,从而影响其后续的分析、理解、识别等一系列处理,很大程度上降低了视觉系统的实际应用…

训练与解码

BW算法是对某一个HMM(一个音素)进行训练&#xff0c;需要该HMM对应的观察向量(一段音频)&#xff0c;如何让一段文本中的某个音素找到对应一整段音频中的一小段音频&#xff1f;需要用到对齐来找到所有的[音素-音频]的配对。 训练时也需要解码 1&#xff0c;设训练的一句话有n…

CMOS 图像传感器——Color Filter Array

在介绍CMOS图像传感器的工作原理时候说道,像点(Sensor感光的基本单元叫做“像点”)吸收入射光后会有一定概率激发出电子,这个过程叫做光电转换。光子激发出电子会被像点下方的电场捕获并存储起来备用。像点的作用可以类比成一个盛水的小桶,它可以在一定范围内记录其捕获的…

我的一点企业做云经验

最近&#xff0c;经常有朋友问我在企业做云的经验&#xff0c;也有人问我OpenStack二次开发项目经验。正好这方面也有点经历&#xff0c;那现在就把我过往有关经历整理整理&#xff0c;总结出几条心得体会&#xff0c;分享给大家。 技术&#xff1a;我们OpenStack二次开发做了什…

【leetcode】910. Smallest Range II

题目如下&#xff1a; 解题思路&#xff1a;我的思路是先找出最大值。对于数组中任意一个元素A[i]来说&#xff0c;如果A[i] K 是B中的最大值&#xff0c;那么意味着从A[i1]开始的元素都要减去K&#xff0c;即如果有A[i] K > A[-1] - K&#xff0c;那么A[i] K 就可以作为…

CMOS图像传感器架构的演变

01、 引言 图像传感器目前用于多种应用。自 1969 年电荷耦合器件 (CCD) 发明以来&#xff0c;固态图像传感器已蔓延到各种消费市场&#xff0c;例如小型摄像机和数码相机。自 2005年以来已成为主流固态图像传感器的 CMOS 图像传感器在为 CCD 开发的技术的基础上不断发展。除了…

Python判断变量的数据类型的两种方法

2019独角兽企业重金招聘Python工程师标准>>> 1、isinstance(变量名&#xff0c;类型) def varargsql(self, sql, *args):if isinstance(args, tuple):self.cursor.execute(sql, args)self.conn.commit() 2、通过与其他已知类型的常量进行对比&#xff08;type()&…

基于事件的视觉传感器

在之前的文章里 人工智能与图像传感器_沧海一升的博客-CSDN博客_人工智能和传感器的关系第一类是图像传感器与人工智能计算相结合,即图像传感器模组除了可以输出图像之外,还可以直接输出人工智能算法计算的结果。另一类智能图像传感器则是为人工智能应用专门设计的图像传感器…

RocketMQ多Master多Slave模式部署

每个 Master 配置一个 Slave&#xff0c;有多对Master-Slave&#xff0c;HA采用同步双写方式&#xff0c;主备都写成功&#xff0c;向应用返回成功。 优点&#xff1a;数据与服务都无单点&#xff0c;Master宕机情况下&#xff0c;消息无延迟&#xff0c;服务可用性与数据可用性…

codeforces 1045 D. Interstellar battle

题目大意&#xff1a;一颗树&#xff0c;给定每个点消失的概率&#xff0c;求出连通块的期望值。要求支持修改消失概率的操作并且给出每次修改过后的期望值。注意被破坏的点不能算入连通块中。 数据范围&#xff0c;时限1S。 传送门 D. Interstellar battle 我们考虑做有根树的…

Cookie中文存储页面500问题

前段时间做cookie存储&#xff0c;直接用的菜鸟教程中的cookie设置方法&#xff0c;方法如下&#xff1a; function setCookie(cname,cvalue,exdays) {var d new Date();d.setTime(d.getTime()(exdays*24*60*60*1000));var expires "expires"d.toGMTString();docum…

IC Compiler指南——数据准备

一、概述 ICC数据设置的文件关系框图如图&#xff1a; 后端工具在数据设置阶段需要对两大类数据进行设置&#xff0c;包括从前端设计继承的综合数据 以及后端设计需要的物理数据。 综合数据主要包括前端逻辑综合已经设置过的逻辑与时序库文件、设计约束文件sdc以 及综合网表文…

iOS Xcode全面剖析

前言 前几天在公司内部做了一次关于iOS的入门分享&#xff0c;听众有PHP、Web、Android、测试、产品、UI等&#xff0c;主旨是力求不懂iOS的人能了解iOS的开发流程&#xff0c;听后都能创建一个iOS项目并打印HelloWorld。&#xff08;这是背景&#xff09;你想想就这么点需求&a…

VS2013编译OBS源码

obs源码来之&#xff1a;https://sourceforge.net/projects/obsproject/ 下载源码之后直接打开sln索引文件就行 项目打开之后 obs作为启动项 直接编译就行&#xff0c;正常应该一下就能编译成功。 在运行的时候可能会报错&#xff1a; 这个问题就需要制定一下编译输出路径&…

js图片切换

1.不同方式的图片切换 功能点:   1.页面默认循环切换,循环切换按钮获得焦点   2.点击顺序切换时,顺序切换按钮获得焦点     点击上一张时,当图片为第一张时,图片不再进行切换,图片张数和描述也不在变动;     点击下一张时,当图片为最后一张时,图片不再进行切换,图片…

CIS关键工艺技术概览

相机作为一种媒介&#xff0c;可以记录光所体现的物体&#xff0c;使人们能够主观或客观地表达各种情感和思想。当代人类身处于一个所谓的“数字游牧时代”&#xff0c;人们携带各类移动数码设备&#xff0c;生活不受时空的限制。在当今时代&#xff0c;相较于胶片相机&#xf…

1215 - Cannot add foreign key constraint

2019独角兽企业重金招聘Python工程师标准>>> 参考网页 https://blog.csdn.net/yiwangxiblog/article/details/52269527 https://blog.csdn.net/ytm15732625529/article/details/53729155 原因--亲测 两张表的存储引擎不一致。主键所在表和外键所在表的存储引擎改成一…

Css3实现波浪线效果1

一、波浪线 &#xff0c;常用 .info::before {content: ;position: absolute;top: 30px;width: 100%;height: 0.25em;background:linear-gradient(135deg, transparent, transparent 45%, #008000, transparent 55%, transparent 100%),linear-gradient(45deg, transparent, tr…

dm368ipnc 重写架构中的swosd 实现中文osd

appro的ipnc中只实现了英文的osd叠加&#xff0c;就连小小的ascii码表都没有覆盖全&#xff0c;而且该swosd架构灰常凌乱。 其实无非就是两个功能&#xff0c;一是叠加文字&#xff0c;而是叠加图片&#xff0c;由于考虑到兼容不同的分辨率的视频流&#xff0c;所以处理的分支相…