eSATA接口只有几根线为什么那么快?连上网线显示的1Gbps是不是很令人兴奋!没错他们都用了高速GTX技术,GTX全称为Gigabit Transceiver,是为了满足现代数字处理技术和计算技术庞大数据的高速、实时的传输,目前主要应用在片间通信(两片FPGA之间,FPGA与DSP之间等)、板间通信(电脑主板与交换机,硬盘与主板等)等。传统的并并行传输技术存在抗干扰能力低,同步能力差,传输速率低和信号质量差等问题。GTX目前的线速度范围为1Gbps~12Gbps,有效负载范围为0.8Gbps~10Gbps,目前GTX已经应用于光纤通道(FC),PCI Express,RapidIO,串行ATA,千兆以太网,万兆以太网等,GTX技术已经充斥我们周围很久了,作为一个技术人员,你是不是该知道点关于高速GTX呢?

  GTX线路实现

  GTX收发器采用的是差分信号对数据进行传输,其中LVDS(Low Voltage Different Signal)和CML(Current Mode Logic)是常用的两种差分信号标准。在普通单片机(如51单片机中)不包含差分接口,均是以地作为参考,差分信号时有两根几乎完全相同的线路来组成一对等值、反相信号,接收端通过比较两端电压差值来确定传输的是“0”还是“1”,如果正参考电压比负参考电压低,则信号为高;如果负参考比正参考电压高,则信号为低。因为线路上受到的噪声干扰几乎完全相同,在计算差值时相减从而达到抵消的效果,这就使得差分信号抗干扰能力特别强,高速传输时不易出错。如图1所示为差分信号传输模式。

  

  图 1 差分传输

  除了利用差分信号外,GTX采用自同步技术来解决时钟同步问题。目前常用同步方式有系统同步,源同步和自同步。三种同步方式的结构如图2所示。系统同步利用片外的晶振进行同步,由于板间线路的长度不一致,以及片内延迟不一致,在时钟速度较高时可能存在较大误差。源同步是在发送数据时同时发送一个时钟副本,这种设计需要更多的时钟端口。自同步将时钟包含在数据流中,从数据流中进行时钟恢复,不仅端口使用较少,而且不论是在高速还是低速,时钟延迟与数据延迟都保持一致,可以保证采样的正确性。

  

  图2 同步结构

  自同步接口主要包含三个模块分别是并串转换、串并转换和时钟恢复。时钟恢复是利用锁相环(PLL)合成出一个与输入串行信号的时钟频率一致的时钟,供采集数据用。

  GTX线路驱动器最重要的特性可能就是预加重的能力。预加重是在电平翻转开始前的有意过量驱动。如果串行流包含多个比特位时间的相同数值数据,而其后跟着段比特位(1或2)时间的相反数据数值时,会发送符号间干扰。介质(传输通道电容)在短时间过程中没有足够的充电时间,因此产生了较低的幅度。在符号间干扰的情况下,长时间的恒定值将通道中的等效电容完全的充电,在紧接着的相反数据值位时间内无法反相补偿。这样就会导致相反数据的电压值有可能不会被检测到,如图3所示。解决这种现象的方法是:转变开始时加入过量驱动,而在任意的连续相同数值时间内减少驱动量,减少驱动量的过程也称作去加重。经过预加重后,眼图的睁开度将会得到极大改善。

  

  图 3 符号间干扰

  GTX接口结构

  图4为常用的串行GTX收发器发送和接收基本结构框图,发送通道由线路编码器、发送缓冲器、并串转换器等模块组成,接收通道由串并转换器、时钟修正和通道绑定、线路译码、接收缓冲等模块构成。

  并串转换器:顾名思义就是讲速率为y的n位宽并行数据转变成速率为n*y的串行数据。

  发送缓冲器:在输入数据发送之前,暂时保存数据。

  线路编码器:将数据编码程适应不同线路的格式。编码器通常会消除长的无转变的序列,同时还可以平衡数据中0、1的出现次数。常用的线路编码机制为8B/10B编码。

  串并转换器:与并串转换器的功能相反,将速率为n*y的串行数据转变成速率为y的n位宽并行数据。

  时钟修正和通道绑定:修正发送时钟和接收时钟之间的偏差,同时也可以实现多通道间时钟歪斜的修正。

  线路译码:将线路上的编码数据分解成原始数据。

  接收缓冲:在接收数据被提取之前,暂时保存数据。

  

  图4 GTX收发结构

  这里只是简单的介绍了GTX一些知识,不过从以上内容就可以大概知道GTX的底层是如何实现的,和上层的实现结构,其中的每一个部分都包含了很多的内容,如果想深入了解,可以看一看High-Speed Serial IO Made Simple,里面详细介绍了各个模块的实现,已经如何在PCB板上布线。希望本篇文章对你了解GTX有所帮助。

转载:http://www.elecfans.com/instrument/355013.html

分享我们必须知道的高速GTX技术的更多相关文章

  1. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  2. 分享MYSQL中的各种高可用技术(源自姜承尧大牛)

    分享MYSQL中的各种高可用技术(源自姜承尧大牛) 图片和资料来源于MYSQL大牛姜承尧老师(MYSQL技术内幕作者) 姜承尧: 网易杭州研究院 技术经理 主导INNOSQL的开发 mysql高可用各 ...

  3. 分享MYSQL中的各种高可用技术

    分享MYSQL中的各种高可用技术 图片和资料来源于姜承尧老师(MYSQL技术内幕作者) mysql高可用各个技术的比较 数据库的可靠指的是数据可靠 数据库可用指的是数据库服务可用 可靠的是数据:例如工 ...

  4. 分享刚出炉的基于Blazor技术的Web应用开发框架

    这是最近刚刚重构完成的项目,有点迫不及待的分享给大家,为了跟上技术升级把原来基于MVC Razor Page开源项目 RazorPageCleanArchitecture 进行重构, 前端用Blazo ...

  5. 【恒天云技术分享系列10】OpenStack块存储技术

    原文:http://www.hengtianyun.com/download-show-id-101.html 块存储,简单来说就是提供了块设备存储的接口.用户需要把块存储卷附加到虚拟机(或者裸机)上 ...

  6. “大话架构”阿里架构师分享Java程序员需要突破的技术要点

    一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...

  7. 个人新站 【EXP技术分享博客】 落成~ 全新的技术资源~ 欢迎莅临~

    对的,我筹备了大半年的个站技术网站正式开张了~ EXP技术分享博客: http://exp-blog.com CSDN上面大部分文章已经迁移过去了,以后也会更多地在新站点更新~ 为了庆祝新站开张,近期 ...

  8. 经验分享:如何系统学习 Web 前端技术?

    这篇文章主要是面向小白用户的,如果你有些基础,当然也建议你看看,尤其是最后一个主题,或许你能得到一些启发.本文的观点,纯属个人自以为是的想法,不是真理,仅供参考. 抛开具体技术细节,先主要谈谈程序员如 ...

  9. 让互联网更快:新一代QUIC协议在腾讯的技术实践分享

    本文来自腾讯资深研发工程师罗成在InfoQ的技术分享. 1.前言 如果:你的 App,在不需要任何修改的情况下就能提升 15% 以上的访问速度,特别是弱网络的时候能够提升 20% 以上的访问速度. 如 ...

随机推荐

  1. [BZOJ 1566] 管道取珠

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1566 Solution: 思路十分精奇的一道题目 题目要求的是$\sum_{i=1}^k ...

  2. [Contest20180314]学习

    为了响应班级组团学习的要求,班主任xx将班上的$n$个同学编成了$m$个学习小组. 班长小r作为资深OI选手,他发现班级里存在一个可以量化的学习激♂情,并且这个激情跟组内成♀对的同学数量相关.若有$x ...

  3. java web定时任务---quartz

    写在前面: 前面有简单的记录下Timer定时的用法,但是在此次项目中,选择的是quartz来完成定时操作任务的.两者都可以完成定时操作,但是spring可以整合quartz,并且配置起来也比较简便,还 ...

  4. HTML5 Boilerplate笔记(2)(转)

    最近看到了HTML5 Boilerplate模版,系统的学习与了解了一下.在各种CSS库.JS框架层出不穷的今天,能看到这么好的HTML模版,感觉甚爽.写篇博客,推荐给大家使用.   一:HTML5 ...

  5. 线程协作-CountDownLatch

    CountDownLatch允许一个或多个线程等待其他线程完成操作.

  6. 【转载】Mini2440启动配置文件说明

    对于mini2440,虽然root_qtopia这个文件系统的GUI是基于Qtopia的,但其初始化启动过程却是由大部分由busybox完成,Qtopia(qpe)只是在启动的最后阶段被开启. 由于默 ...

  7. Java使用POM一JAR包的形式管理JavaScript文件-WebJars

    说明:原来JS框架还可以使用POM进行管理的.WebJars是一个很神奇的东西,可以让大家以JAR包的形式来使用前端的各种框架.组件. 什么是WebJars 什么是WebJars?WebJars是将客 ...

  8. <摘录>Linux下动态共享库加载时的搜索路径详解

    对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似“error while loading shared libraries”这样的错误,这是典型的因为需要的动态库不在动态链接器ld.so的搜索路径 ...

  9. Word中对象显示不完整

    选中上下文字后,右键没有段落,如果是图片的话是有的,那么我们可以点击菜单栏中段落的右下三角,在那设置单倍行距.

  10. nginx+lua+redis

    git clone --branch master https://github.com/openresty/lua-resty-redis.git yum install openssl opens ...