serdes接口速率_通用串行接口

serdes接口速率_通用串行接口在以往的IC之间的源同步当中,发送的信号包括数据流信号,以及随着数据流信号同步的时钟信号,时钟信号在低速传输的情况下:1G以下传输,外部的扰动以及时钟抖动不会太影响数据流的恢复,但是如果时钟信号突破了1G甚至更高的情况下,外界环境中比如EMI的各种影响会引起时钟发生抖动,在高速采样恢复的过程中,这就没办法使用该时钟信号恢复数据,这里就用到了高速Serdes串行接口的恢复办法,将数据和时钟都通过高速线上传输,然后接受端通过PLL从数据流中恢复时钟,即使在传输的线上有轻微抖动,但是时钟和数据同时…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

        在以往的IC之间的源同步当中,发送的信号包括数据流信号,以及随着数据流信号同步的时钟信号,时钟信号在低速传输的情况下:1G以下传输,外部的扰动以及时钟抖动不会太影响数据流的恢复,但是如果时钟信号突破了1G甚至更高的情况下,外界环境中比如EMI的各种影响会引起时钟发生抖动,在高速采样恢复的过程中,这就没办法使用该时钟信号恢复数据,这里就用到了高速Serdes串行接口的恢复办法,将数据和时钟都通过高速线上传输,然后接受端通过PLL从数据流中恢复时钟,即使在传输的线上有轻微抖动,但是时钟和数据同时抖动,同时考虑到收发两处如果共地很难实现这里就要使用到了差分传输技术,将收发两部都设置为差分传输模式,即使不共地,即使传输过程中有轻微扰动,也不会影响从数据流中恢复出时钟信息;那么如何从串行的数据流中恢复出时钟信息呢?

        这里就要用到了编码技术,也就是8B10B编码或者6466B编码;

这里写图片描述        在高速Serdes的串行传输中,传输过程类似于高速AD采样都是通过将时钟分割,采用多相位提取技术,将高速串行数据流切割为N份,接受到数据后经过设定的特定同步触发器装置将相位不同的数据流进行同步,可以看到需要用到的时钟为高速串行数据流的1/4,这里用到的时PLL技术从高速串行数据流中恢复时钟,以往的PLL技术恢复时钟,需要用到数据流中对应的时钟信号,比如在这次高速串行数据流中,如果按照以往的PLL设置,需要用到In数据流所对应的高速采样时钟信号,但目前的PLL设置,不需要用到对应的高速采样时钟信号,目前的PLL技术中包括分数速率鉴相器,多相PLL,并行采样和过采样数据恢复,使用这些个技术就可以恢复到PLL。(留个坑 学习一下分数速率鉴相器,多相PLL,并行采样和过采样数据恢复;)

多相提取电路时序图

Comma检测:

        在Serdes上面的高速穿行流转换为多字并行,如何要找到字边界进行对齐,这就需要特殊序列就是Comma检测,而且千万不能和传输的数据冲突,这就是K码,逗号检测,在数据链路同步对齐过程中,逗号检测就是意为从该指定位置开始进行对齐操作,指专用的一两个符号,是特定的序列,是完成串并转换的起始位置,而且逗号序列也必须是唯一的,其他任何传输序列或者传输数据中也不能包含逗号序列,否则容易产生误判。

        比如在JESD204B传输中使用K28.5作为逗号。

        在很多基于Serdes的高速串行协议中传输数据都是以包的形式进行发送,包包括帧头数据帧尾,在大多数的串行数据链路包中Serdes都需要一种特殊的序列将数据对齐,尤其是在需要恢复时钟的数据包中,必须找到数据恢复和时钟恢复的起始位置,此时就可以将逗号作为起始或者结束的标志,空闲符号是另一个重要概念,在没有数据传输的时候,也就是在串行线上没有数据的时候就发送空闲字符,而进行连续数据传输时就可以确保链路保持对齐,PLL保持恢复的时钟锁定。

        在进行高速串行数据如果需要恢复时钟,这里就需要一个参考时钟的概念,这里的参考时钟必须极其精确,ref_clk需要的晶振要求较高。

        通常情况下的时钟矫正技术:在时钟校正中,每个MGT包含一个FIFO,然后在使用中,将数据通过高速串行时钟将数据送入FIFO中,然后通过内部的并行时钟将数据从FIFO中读出,这里完成了一个跨时钟域传输,在使用时钟校正中用到了FIFO,用到FIFO就需要考虑到时钟的空满,如果CDR(Clock and Data Recovery)时钟和本地时钟并不完全相同,如果不采取某些手段那么必然会导致FIFO出现空满,为了防止这种情况出现在传输的过程中必须周期性的发送一些可以复制或者可以删除的某些字节以防止FIFO的溢出或不足;

        当然如果传输过程中参考时钟发送给收发器双发的时钟信息相同,那么就不需要采用时钟校正。

        MGT通道传输的接受FIFO要比传输FIFO深度要大的多,因为需要完成时钟校正和通道绑定,时钟校正在上方已经提及,通道绑定:

        就是在某些具体传输过程中,单个的串行链路传输数据容量已经不够满足数据传输容量,这里也就需要通过多个数据传输通道,多个并行的数据传输通道在结果上看就是数据容量扩大了,但是这也就导致数据通道必须对齐,这就是通道绑定;

        通道绑定技术就是将多个通道之间的产生的偏斜计算出来然后传输给用户,完成数据对齐

        在将数据传输到FIFO中后,从FIFO中读出数据时,会根据具体数据通道的偏斜量根据延迟从FIFO中读出数据,完成数据对齐;

        高速串行总线的电平信号及预加重技术

        Serdes的物理接口上采用了基于差分的电接口模式,差分电流模式上选择CML电流模式逻辑,发送端:

CML 驱动

接受端:

MGT 接收器

预加重是因为在高速串行数据流中符号符号之间存在串扰,也就是符号间干扰,

符号间干扰指的是当串行流中包含若干个相同的值时间后有短的相反值时间时就会发生符号间干扰,在较短的值时间内由于充电时间短,所以产生的振幅低。

        ISI

 预加重就是在充电时候进行过度驱动,所以在发生符号间干扰时,即使充电的时间较短,但是存在过度驱动的情况也就会发生幅值并不是太低的情况了。

       本文只是一个比较统观的概念,笔者由于项目需求,离不开高速串行接口的使用,而实际上在具体的工程项目中,基本上都离不开高速串行接口的使用,无论是X家的Transceiver还是A家的Serdes,都必须通透理解,而具体的使用也必须经历过上板调试之后才可以说是已经学会甚至融汇贯通了,所以这里留个坑,接下来就要面对痛苦的上板调试过程了~~

        

        

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/230821.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 去除字符串中的双引号「建议收藏」

    去除字符串中的双引号「建议收藏」str为“123”如果一个双引号:str1=str.replace(“\””,””).replace(“\””,””);如果不确定有多少个双引号:str2=str.replace(/\”/g,””);此方法为替换,也可用于去除制定字符,如:Stringstr=”12/3″;str1=str.replace(“\/”,””);str2=str.replace(/\//g,

  • java集合详解_通俗易懂java集合

    java集合详解_通俗易懂java集合ArrayDequeArrayDeque是Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。同时,ArrayDeque是线程不安全的,在没有外部同步的情况下,不能再多线程环境下使用。ArrayDeque是Deque的实现类,可以作为栈来使用,效率高于Stack;也可以作为队列来使用,效率高于LinkedList。需要注意的是,ArrayDeque不支持null值。ArrayDeque初识说明书和继承关系还是按照国际惯例,先看一下ArrayDeque的说明书,其实往往很多时候你的困

  • 数据库同步工具:ETL使用说明

    数据库同步工具:ETL使用说明1        打开ETL工具2        转换从数据库的表导出数据到另一个数据库的表。前提:两个数据库的表格结构相同2.1      新建转换文件->新建->转换2.2      配置输入2.2.1      拖动表输入到编辑界面输入:需要导出数据的数据库表格。在左侧导航栏里面,找到【输入】->【表输入】,如下图:将【表输入】拖动到编

  • 高德定位SDK_高德地图api使用教程

    高德定位SDK_高德地图api使用教程1.LocationManagerProxy获取当前Context创建一个LocationManagerProxy变量mAMapLocManager=LocationManagerProx

  • JS 创建对象(常见的几种方法)

    JS 创建对象(常见的几种方法)

  • 回归模型中的u_什么是面板回归模型

    回归模型中的u_什么是面板回归模型文章目录最简单的RNN回归模型入门(PyTorch版)RNN入门介绍PyTorch中的RNN代码实现与结果分析版权声明:本文为博主原创文章,转载请注明原文出处!写作时间:2019-03-0212:46:15本文部分图片素材来自互联网,如有侵权,请联系作者删除!最简单的RNN回归模型入门(PyTorch版)RNN入门介绍至于RNN的能做什么,擅长什么,这里不赘述。如果不清楚,请先维基一…

    2022年10月20日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号