精华内容
下载资源
问答
  • 如果你想使用FPGA从头设计串行数据传输,SPI和UART的底层硬件设计要简单得多,迫不得已再用I2C。 I2C硬件电路特色 I2C的一个特性是总线上的每个器件都必须通过漏极开路(或集电极开路)输出驱动器连接时钟信号...

    我第一次知道I2C总线是1995年,项目中用到电视机高频头(也叫调谐器、Tuner),能够方便买到的高频头要么是飞利浦(Philips)的,要么是日系厂商的,但日系厂商联系起来比较费劲。Tuner其实就是通过I2C总线送控制字来改变其本振频率(LO)选择你需要的频段,当时知道I2C的鼻祖就是飞利浦半导体(NXP-恩智浦半导体的前身),也是第一次使用MC34063这颗后来如同555一样扑街的开关稳压芯片,用来产生高频头所需要的12V DC。

    典型的电视机调谐器,采用I2C来进行调谐

    板子上的器件之间也需要Talk

    器件和器件之间的也需要沟通信息,尤其是需要MCU/DSP等对其它外设进行控制的时候。工程界的大神们基于MCU/DSP开发了一系列的协议比如UART、USART、SPI、I2C、CAN等. . . .每种协议都有各自擅长的地方,也有其局限性,因此要做系统设计的硬件工程师就应该对每种接口协议有大概的认识(即便没有机会吃猪肉,也要知道各种猪是如何跑的),这样才能够帮助你在做方案选择的时候能够选用最合适的协议接口方式,这也是你需要阅读我写的文章的原因。

    在同一个PCB板子上的不同器件之间进行通信最常用的有三种形式 - SPI、I2C和UART,上篇文章我们简单介绍了SPI,今天就来看看I2C,我们先看一下I2C最基本的一些特性,然后再跟其它的通信协议方式进行一下比较。 

    两条通过上拉电阻吊在电源的线,上面可以挂多个器件进行通信

    简约而不简单的I2C总线

    I2C来自于英文inter–integrated circuit,有时也写为IIC,字面意思也可以理解为IC之间进行交流用的,跟SPI对比,I2C没有天生的主、从之分,也就是说挂在两根线(数据线SDA和时钟线SCL)上的所有器件都是生而平等的。这个协议最早由飞利浦半导体推出来,几年后Intel又弄了一个SMBus(系统管理总线)协议,其实基本跟I2C一模一样,算是其扩展吧,一丢丢的差别而已。 

    I2C总线传输时序

    有哲学家说 - 越是看起来简单的东西,背后处理的问题越复杂。I2C其实也是如此,虽然我们看到的是2根线能挂起一大串的器件,但就像一个没有了老师的课堂,没有一个好的管理机制一定会出现乱哄哄的局面,要让任何两个同学之间进行有序地交流,没有明确的协议是肯定会乱掉的。

    最简单的情况就是在这个系统中有1主1仆,但如果有多个仆(从设备)呢?如果多个“从设备”不知道哪个是“主设备”呢?如果出现了多个“主设备”呢?如果一个“主设备”正由“从设备”获取数据,中途由于种种原因突然挂了怎么办呢?一个“从设备”正发着数据挂掉了怎么办呢?一个“主设备”获取了总线使用权用以数据的发送,在释放使用权之前崩溃了怎么办呢? 

    这种看似非常简单的结构其实会遭遇各种可能

    在实际的运行环境中会有各种意外导致系统出现问题,我们在学习使用I2C的时候一定要做到心中有数 - 简单的架构背后有着复杂的结构来保证这个协议的顺利执行,才能让其成为灵活、可扩展、鲁棒、极少管脚的串行通信方案。

    示波器上捕捉到的I2C总线上的数据读取

    I2C协议概要

    以下是I2C的主要特征:

    • 不论总线上挂多少个设备,只需要两根信号线(时钟SCL和数据SDA)就搞定;

    • 两根信号线都通过合适阻值(这个值的正确选取很重要)的上拉电阻连接到正电源上;

    • 每个设备的接口都是通过漏极开路(或集电极开路)的输出驱动连接到时钟和数据信号线上;

    • 每个从设备都有一个7位的地址,可供寻址用。主设备必须知道这些从设备的地址以便同指定的一个从设备进行通信。

    • 所有传输均由“主设备”发起和终止; “主设备”可以将数据写入一个或多个“从设备”或从“从设备”请求数据。

    • 在系统中“主”和“从”不是固定的,任何一个设备都可以作为“主”或“从”,只要它配置了适当的硬件或固件,实际上在嵌入式系统中最常采用的架构就是一个“主设备”向多个“从设备”发送命令或由多个“从设备”采集数据。

    • 数据信号在时钟的下降沿更新,并在上升沿被采样,如下图。

     I2C协议中数据和时钟的时序关系

    • 数据是以一个字节进行传输的,每一个字节跟着1位的握手信号,作为ACK/NACK(应答/无应答)位.

    同UART和SPI相比,I2C有何优势?

    I2C的主要优势如下:

    • 管脚/信号数量少,即便挂了很多的设备,也只用两根线;

    • 可以适应不同的从设备的要求;

    • 可以支持多个主设备;

    • 引入了ACK/NACK功能以提升应对错误的能力

    当然也有一些劣势的地方:

    • 增加了固件和底层硬件的复杂度

    • 增加了协议的负荷,降低了数据传输的吞吐率

    • 需要上拉电阻,会导致如下的后果

      • 限制了时钟的速度

      • 增加了功耗

    由此可以看到I2C比较适合复杂、多样化、需要通信设备灵活扩展的场景;UART比较适合单点对单点的连接,因为UART没有标准的方式来寻址不同的设备或共享管脚。SPI比较适合系统中有一个主设备和少量的从设备,而且每一个从设备都有一个单独的“从设备选择”信号,当总线上有多个设备的时候会需要更多的管脚,布线的难度也会增加,当你需要支持多个主设备的时候,SPI用起来也会非常尴尬。

    如果你需要较高的传输速率,使用I2C就不太合适,SPI能够支持更高的时钟频率,数据负载开销也最小。如果你想使用FPGA从头设计串行数据传输,SPI和UART的底层硬件设计要简单得多,迫不得已再用I2C。

    I2C硬件电路特色

    I2C的一个特性是总线上的每个器件都必须通过漏极开路(或集电极开路)输出驱动器连接时钟信号(缩写为SCL)和数据信号(缩写为SDA)。这也就意味着:

    • 信号缺省始终为逻辑高电平,如果I2C主设备尝试与已失效的从设备通信,则数据信号永远不会进入未定义状态,如果从设备没有驱动信号,它将被读为逻辑高电平。 同样,如果主设备在传输过程中断电,SCL和SDA将返回逻辑高电平,其它设备可以通过观察SCL和SDA在一定时间内逻辑高电平来确定总线是否可用于新的传输。

    • 即使另一个设备试图将它们驱动为高电平,总线上的任何设备都可以安全地将信号驱动为逻辑低电平,这是I2C“时钟同步”或“时钟延长”功能的基础:主器件产生串行时钟,但如果需要,从器件可以将SCL保持为低电平,从而降低时钟频率。

    • 具有不同电源电压的器件可以共存于同一总线上,只要较低电压的器件不会被较高的电压损坏即可。 例如,如果SCL和SDA上拉至5V,3.3V的器件就可以与5V的器件进行通信 - 即使3.3V的器件无法驱动来自典型的推挽输出级的5V,漏极开路的配置可以让逻辑高电压达到5V。

    有电阻R,就会有RC

    由于漏极开路输出驱动器存在着明显的缺点,并不是数字IC的标准配置。电压的变化会受到与特定节点相关的电容充电或放电所需的时间的限制。 SCL和SDA上的上拉电阻限制了充电的电流量 - 也就是说,我们在RC时间常数中可以更多地通过R来控制从逻辑低到逻辑高的转换。

     输出从低到高时向电容充电

    输出从高到低时由电容放电

    从这个图可以看出从低到高的转换比从高到低的转换要慢很多,导致出现常见的I2C锯齿波形:

    由I2C信号线上的上拉电阻以及节点电容引起的上升沿变缓

    下图为示波器上捕捉到的实际的时钟信号波形 - 采用1kΩ的电阻做上拉,即便最小的电容效应(总线上只有两个器件,且很短的PCB走线)的时候I2C时钟信号的低到高以及高到低的变化。

    上拉电阻的值如何选择?

    可见,上拉电阻限制了数据传输的最大时钟速率。实际上,电阻和电容都有影响,我们无法控制电容,因为它主要取决于总线上有多少器件以及这些器件之间互连的方式。那问题来了,考虑到所需的数据传输速率要求以及可能带来的功耗,使用多少值的上拉电阻才最合适?较低的电阻RC时间常数也比较低,但会通过上拉电阻增加从VDD流向地的电流(只要SCL或SDA为逻辑低电平)。

    官方I2C规范(第9页)规定,在达到VDD的70%之前,电压不被视为“逻辑高”。 RC时间常数告诉我们电压达到最终电压的约63%需要多长时间。 因此,为简单起见,我们假设R×C告诉我们信号从接地电压附近上升到逻辑高电压需要多长时间。

    如何计算电容呢? 比较可行的方法是查找总线上每个器件的引脚电容进行粗略估计,然后再添加每英寸PCB走线3pF和每英尺同轴电缆30pF。

    假设我们有50pF的总线电容,按照I2C“标准模式”规范规定 - 最大上升时间为1000ns。

    也就是说上拉电阻可以定为20kΩ,这个值的功耗也比较低,速度如何呢?假设你希望时钟高的时间至少是上升时间的三倍。

    如果167 kHz不够快,您可以降低电阻(以增加功耗为代价),直到达到所需的时钟速度。 (实际上,“标准模式”将时钟速度限制为100 kHz,但可以根据系统需要调整这些规格。)

    当然,这只是粗略的计算,具体的应用中要根据挂在总线上的器件的数量以及电路设计来进行估算,还可以配合示波器上实际的测量进行调整,以满足系统的综合要求。

    典型的数据传输

    下面的时序图为一个典型的I2C传输时序。

    可以看到以下几点:

    • 对应于时钟逻辑高电平部分的虚线提醒我们逻辑高电平(对于SCL和SDA)都是“隐性”状态 - 换句话说,信号通过上拉电阻自然浮动到逻辑高电平。 “主导”状态是逻辑低,因为只有当设备实际将其驱动为低时,信号才会变低。

    • 每一次的传输都是以“起始位”开始,该起始位定义为在SCL为逻辑高电平的时候SDA的下降沿。

    • 传输以“停止位”结束 - 定义为当SCL为逻辑高电平的时候SDA的上升沿。 I2C传输必须以停止位结束,但在生成停止位之前可能会出现多个起始位。

    • 数据在时钟为高时有效,在时钟为低时改变状态; 数字通信系统通常都是边沿驱动的,因此实际上数据在时钟的上升沿被读取,在时钟的下降沿时进行更新。

    • 信息一次一个字节地交换,从最高有效位开始,每个字节后跟一个ACK或NACK。

    • 你可能期望ACK由逻辑高指示,NACK由逻辑低指示,但事实并非如此。 ACK为逻辑低,NACK为逻辑高。 这是必要的,因为高是隐性状态 - 如果“从设备”不工作,信号自然浮动到NACK,同样只有当设备正在运行并准备继续进行传输时,才会发送ACK。

    以下为I2C数据传输的顺序:

    1. 主机生成一个起始位以启动传输。

    2. 主设备发送与其想要通信的从设备相对应的7位地址。

    3. 第一个单字节段中的最后一位是读/写指示符。如果想要从“从设备”读取数据,则“主设备”将该位设置为逻辑高电平; 如果要将数据写入“从设备”,则将其设置为逻辑低电平。

    4. 下一个字节是第一个数据字节,它来自主设备或从设备,具体取决于读/写位的状态。像往常一样,我们有8位数据,从最重要的位开始。

    5. 数据字节之后是ACK或NACK,如果这是读数据传输则由“主设备”生成,如果是写数据传输,则由“从设备”生成。 ACK和NACK可能意味着不同的东西,具体取决于通信设备的固件以及底层的硬件设计。例如,主设备可以使用NACK来表示“这是最后一个数据字节”,或者如果“从设备”知道要发送多少数据,它可以使用ACK来确认数据是否已成功接收。

    6. 传输以“主设备”生成的停止位终止。

    传输多少字节?

    每次传输都是以同样的方式开始:起始位、地址、读/写、ACK/NACK。 之后,任何数量的字节都可以从“主设备”发送到“从设备”或从“从设备”发送到”主设备“,每个字节后跟ACK或NACK。 NACK可以用来表示“停止发送数据!”。例如,“主设备”可能希望从“从设备”(例如温度传感器)接收连续的数据流,每个字节后面都会有ACK,如果“主设备”需要处理其它事情,它可以用NACK告知”从设备“并在它准备就绪时再开始新的传输。

    由于篇幅限制,在此我们不做更详细的介绍,有兴趣的朋友可以阅读Wikipedia中关于I2C的介绍以及该词条下面的参考文章。对该总线的使用以及技术细节有一定程度的了解会帮助我们在实际的设计中更加有效地完成数据的传输设计以及有可能的问题定位。

    一个应用举例 - 下面是我们用小脚丫FPGA做的计算器,我们通过FPGA逻辑实现了I2C的主控制功能,来操作挂在I2C总线上的触摸按键控制器、挂在SPI总线上的LCD显示屏。

    小脚丫FPGA做成的计算器

    计算器的功能框图,3颗触摸控制器挂在I2C总线上

     

    转载 - -电路设计技能公=公众号

    展开全文
  • 并行与串行传输串行高速传输

    千次阅读 2018-03-24 17:17:05
    不存在信号线之间的串扰,而且串行还可以采用低压差分信号,可以大大提高它的抗干扰性,所以可以实现更高的传输速率,尽管并行可以一次传多个数据位,但是时钟远远低于串行,所以目前串行传输是高速传输的首选。...

    在高速状态下,并行口的几根数据线之间存在串扰,而并行口需要信号同时发送同时接收,任何一根数据线的延迟都会引起问题。而串行只有一根数据线,不存在信号线之间的串扰,而且串行还可以采用低压差分信号,可以大大提高它的抗干扰性,所以可以实现更高的传输速率,尽管并行可以一次传多个数据位,但是时钟远远低于串行,所以目前串行传输是高速传输的首选。

    从另外的角度来看,并行传输还有很多方式如系统同步(共同时钟)方式及源同步时钟方式等。先来看系统同步先天的内在问题


    首先,并行信号由于需要多位传输路径,这在早期是可以接受的。但是摩尔定律的现象使得与几十年前相比可生产的芯片中硅电路的数量大幅增加,而芯片封装技术的pin密度并没有像硅密度一样以相同的速度在增加,因此I/O pin的封装实际上比硅电路还贵,这就意味着对于大多数芯片来说pin管脚越来越多变得不可接受。

    第二个内在问题就是时序的需求。由上图可知数据由芯片#1同步启动并被芯片#2使用相同的时钟同步捕获,芯片#2输入端的数据必须满足相对于芯片的时钟输入的建立和保持时间。详细的系统同步时序模型如下图所示。这些建立和保持时间必须用足够的余量来计算,以允许时钟分配路径延迟到两个芯片的差异,并通过芯片到启动和捕捉触发器。延迟可能会因芯片工艺,电压和温度(PVT)条件而异,并且必须增加余量以应对最坏的情况。对于较高的时钟频率,可能需要在芯片中使用锁相环(PLL)来调整时钟相位,以补偿芯片内的时钟分配延迟,并适应变化的工艺,电压和温度条件。 如果时钟频率足够高,则不可能建立一个可以通过这种共同时钟总线来可靠地传输数据的系统。

    我们都知道源同步方式的典型代表是DDRx信号,下面就来介绍源同步方式是怎样改善系统同步的先天不足的。

    源同步要解决的第一个问题是减少在芯片之间传输数据所需的I/O引脚数量。这通过将芯片#1的输出处的n位数据复用到k位互连(k <n),然后将芯片#2的输入上的互连的k位解复用到n位内部数据路径上来实现,如下图所示。所得到的系统只需要每个芯片上的k个I/O引脚,而不需要先前的n个引脚。


    当然,虽然引脚数量要求已经通过k:n的比率降低,但是参考时钟的所需频率已经增加了这个比率的倒数。由于噪声,电磁干扰(EMI)和功耗问题,系统设计人员通常不喜欢在系统内分配高速参考时钟。通常,分配较低频率的时钟,并且使用芯片中的PLL将该参考时钟乘以可用频率,但所产生的时钟相位的变化以及数据传输的频率越高,往往会加剧并行数据总线的时序问题。

    源同步的第二个法宝就是在两个芯片之间的数据通路中增加了一个高速时钟,如下图所示。假设该时钟源提供的时钟频率略低于在芯片互连上对数据进行触发的时钟频率,每个芯片都使用PLL来产生这个频率倍数的时钟,所得到的时钟用于启动和捕获相应芯片中的数据。芯片#1中用于从该芯片启动数据的PLL的输出时钟也是该芯片的输出,芯片#2使用该时钟来捕获数据,这种方法称为时钟转发。


    时钟转发的优点是用于在芯片#1上启动数据的高速时钟可用于芯片#2作为捕获数据的参考。这样之前通过时钟分配网络驱动两个芯片的延迟的变化在时序分析中就不需要考虑了,只有时钟路径和数据位之间的延迟变化是相关的。 虽然制程,电压和温度导致的这些路径之间的变化在一定程度上相互影响,但接口的时序分析需要的余量较少,因此建立和保持时间更容易满足。

    我们还是来看看典型的例子吧,图中所示的时钟可以是单数据速率(SDR)或双倍数据速率(DDR)的时钟,如下图所示。SDR就是接收芯片在SDR时钟的每个上升沿(或每个下降沿)捕获数据; 而DDR则是接收芯片捕获DDR时钟的每个边沿(上升沿和下降沿)的数据。


    无论时钟是SDR还是DDR时钟,接收芯片都使用该时钟直接捕获数据。 该芯片还使用参考时钟以相同的频率生成内部系统时钟,这些时钟是中间同步的。 虽然频率相同(鉴于它们共享共同的频率参考),但是时钟之间的相位关系是未知的,并且可能由于PVT变化而变化。 因此,接收芯片通常将接收到的数据从接口时钟域重新定时到内部芯片时钟的时钟域。 FIFO用于执行此重定时功能, 期望最小化由接口时钟计时的触发器的数量,以便最小化时钟分配网络中的延迟,否则时钟问题将会加剧。

    高速串行信号相对于并行信号最主要的就是通信方式的改进,这种通信方式又叫自同步方式,也即两块芯片之间通信,其中发送芯片产生的数据流同时包括数据和时钟信息,如下图所示。


    要实现上图所示的通信,在芯片内部还有更加详细的一些要求及模块来操作,具体实现可以参考下图所示模块框图。


    这些最主要的模块包括串行器(也有叫串化器)、时钟数据恢复(CDR)、解串器以及均衡器等。这样的设备与源同步接口不同,因为接收机设备包含时钟和数据恢复(CDR)电路,其基于信号的跳变沿来动态地确定数据信号的最佳采样点。 换句话说,从数据中直接提取时钟信息,而不是依赖于单独的时钟。本篇我们主要来简单介绍前面三种必要的模块,均衡器会在后续的内容中介绍。

    串行器要实现的功能就是并串转换,简单来说就是将原本并行的数据转换成串行的数据。目前有两种主要的并串转换方式——可装载移位寄存器和回转选择器。

    解串器的功能正好和串行器的功能及步骤相反,那就是将串行的信号又重新转换成并行信号,又叫串并转换,

    时钟数据恢复(CDR)顾名思义就是将数据流里面的数据和时钟在接收端恢复出来,说起来感觉很简单的样子,但实际上如下图所示时钟恢复过程无法产生一个共用时钟或者同数据一起发送的时钟。作为替代,由锁相环(PLL)合成出一个与输入串行信号的时钟频率一致的时钟,也即PLL能根据参考时钟和输入信号来产生锁定于输入信号的新时钟,所以PLL对于Serdes的接收也是至关重要的。

    这就是我们的串行信号,呈现出来的确实是比较简单,无非就是几对差分线路,但内部的操作却非常复杂。虽然简化了PCB设计,但对芯片的设计挑战巨大,因为有更多的模块集成在芯片内部了

    并行信号之于串行信号,唯一的区别就是多比特同传,因而产生了:更多的布线/连接线的空间需求;在高波特率下可能的一致性要求:驱动器,信道的时域/频域一致性;密集信号线间的串扰隔离需求。  但是,并行信号本质上就是串行信号的聚合,串行信号物理层能采用的技术,比如差分,加重/均衡/链路训练,CDR等等,都可以在并行信号中采用;此时需要额外考虑的是如何完成信号间一致性的信息收集与恢复和数据的拆分聚合。  为低成本,低延迟设计的单端、随路时钟的并行信号对为高吞吐,简化互联设计的高速差分信号,自然存在串扰,EMI,布线空间,等长/SKEW等等问题。   

    1,高速串口不需要传时钟来同步数据流,没有时钟周期性的沿变,频谱不会集中,所以噪声干扰少。通过数据流的沿变可以直接用PLL恢复出时钟,再用恢复的时钟采集数据流。不传时钟可以降低功耗,减少噪声。  2,所有高速串口都采用差分总线传输,外界噪声同时加载到并行传输的两条差分线上,相减之后可以抵消,对外部噪声的抵抗能力强。  3,没有时钟skew问题,因为它根本就没有同步时钟,不存在时钟和数据流的对齐问题。只需要保证差分信号线是对齐的就行,因为差分信号线的值总是相反,相关性强,易控制。  4,线少,干扰少。串行传输一般就4根数据线,分成Rx两根差分线和Tx两根差分线,差分线总是往相反方向跳,可以抵消各自的跳变噪声,这种噪声可以被Rx的负极性以相反的跳变直接抵消掉,总的噪声为0,根绝了内部噪声。  另外,串行采用差分信号,CDR,信道均一化等技术使得信号质量得到保障。串口的特性和应用场景,决定了它更加适合采用一些可以提高单根信道速率的设计方法,这些方法用在并口上并不合适。  综上,串口传输的各种优势使得其内外噪声皆免疫,又没有信号对齐之忧,可以以极高的速率传输。这种速率,并行传输是根本做不到的,更不要说串行传输还能节省大量引脚。    

    您了解的均衡器的种类与功能有哪些?

    相信大家通过阅读之前高速串行简史的文章也对串行信号有比较深刻的认知了。为什么要用到串行信号,客观原因是从我们对数据传输的需求,因此迫使我们在速率上不断向摩尔定律靠拢。基于之前所述的串行信号的种种优势,因此在速率不断提高的情况下,我们就会认为串行信号是最好的选择。但是真到了速率不断攀升的时候,我们用同一个串行链路去承载它们时,就会发现没有想象中那么容易。


    那再往10G,25G,56G走呢,岂不是就玩不转啦?


    在我们的串行链路中,损耗可以算是眼睛张不开的最大元凶,从理想的插损曲线来判断的话,我们一般会记住几个常用的数值:

    0dB=1,-3dB=0.7,-6dB=0.5,-12dB=0.25,-20dB=0.1。。。然后速率越高,dB值肯定越大啦,那么眼高自然就慢慢没了…… 


    当然,我们也会想出很多方法来应对,比如板材是影响损耗的重要因素,我们从原始普通的FR4板材到中等损耗板级,再到低损耗板材,再到超低损耗板材,那在同样的走线长度,自然损耗就小了,或者换句话说在同样的损耗情况下,我们可以走得更长了;然后铜箔粗糙度也会影响损耗,因此我们把铜箔的工艺研究得非常深入,也制造出了各种的铜箔类型;

    然而无论是对板材还是对铜箔的优化,付出的是更高的成本,更新板材和铜箔也需要经历时间的等待。我们习惯性把一个链路分成三个部分,分别为发送芯片,传输通道和接收芯片。我们上述对板材,铜箔的优化其实都是对传输通道进行的优化,那我们能不能在芯片本身做点文章呢?


    答案当然是可以的。均衡技术就是针对芯片端的其中一种技术。实际上均衡技术种类有很多,从结构上分类,分为线性和非线性均衡,或者说是模拟和数字的区别;按作用来分类则可分为频域均衡和时域均衡,前者是校正频率特性,而后者是直接校正畸变的波形;按调节方法还可以分为固定均衡和可变均衡,而可变均衡分为手动均衡和自适应均衡。按抽样时间间隔的不同来分类,又可以分为码元间隔均衡和分数间隔均衡等等。


    在那么多的分类之中,的确在我们的PCB链路上常用的一般就三种:CTLE(Continuous Time Linear Equalization)连续时间线性均衡,FFE(Feed Forward Equalization)前向反馈均衡和DFE(Decision Feedback Equalization)决策反馈均衡。前面两种是线性的均衡器,而且后面的DFE是非线性的。


    均衡的终极作用就是把我们接收端的眼图给睁开,的确从PCB相关的仿真或者测试中也验证了这个是一项非常有用的技术,在芯片里面去做这样的技术,与从板材铜箔这些的优化相比,也是成本较低的方案。


    为了把信号传输更远距离,通常在发送端和接收端使用预加重或去加重的均衡技术,通过提升信号的高频部分能量,以补偿传输通道对高频的衰减。均衡器有:1.CTLE连续时间性均衡器,特点是功耗低,实现简单,不会增大抖动。2.FFE前端反馈式均衡器,由延时电路、乘法器、加法器组成的模拟均衡器。3.DFE判决反馈均衡器,特点不会放大噪声和串扰,易于实现,广泛应用高速收发芯片中。  


    为什么损耗全频段都变差的情况下,居然能够使眼图张开呢,隐藏着什么秘密???

    基于上文那个张开和闭合的眼图,我们来对比下它们接收端的波形:


    可以看到,眼图之所以闭合,主要是由于在蓝色圈圈处的地方出了问题,通过观察,我们发现了最容易出问题的地方就是在低频信号向高频信号电平转换的地方,即连续的0或1之后转换成单独的1或0 的地方

    通过该通道的损耗情况能够发现,由于连续0或连续1对应的频率是比较低的,因此对应的幅度衰减也比较小,单独的1或0 的转换则代表高频的情况,幅度衰减则比较大,因此连续0或连续1在经历高幅度后突然要转换成相反电平的高频数据,这个高频数据幅度衰减很大,就会跟不上节奏,不能拉回到一个属于它电平的正确位置。


    我们对这种码型带来的恶劣影响的情况称为ISI,码间干扰,这是又一种重要影响信号质量的因素,不同于阻抗不匹配,反射或者串扰这些影响,即使把传输线优化得很好,阻抗反射串扰这些都考虑得很完善,但是只要通道的衰减达到一定的幅度,都有可能出现码间干扰

    另外,上篇文章眼图之所以能张开,是因为我们人为的把低频的衰减变大了,这样的话,连续0或连续1的幅度就没那么高,这样转向的时候单独1或0的这一位数据就能拉得更上一点。加入CTLE均衡就是这个效果,在上文的接收端频率响应中,虽然加入CTLE后整体的损耗都变差了,但是把低频分量衰减更多。这样的话高频和低频损耗的差距却明显变小了,这样面对这种码间干扰时就很有帮助。当然缓解这种码间干扰还有其他一些方法,这里就先继续卖关子了

    前面文章说过,在高速链路中导致接收端眼图闭合的原因,很大部分并不是由于高频的损耗太大了,而是由于高低频的损耗差异过大,导致码间干扰严重,因此不能张开眼睛。针对这种情况,前面有讲过可以通过CTLE和FFE(包括DFE)均衡进行解决,原理无非就是衰减低频幅度或者抬高高频幅度,从而达到在接收端高低频均衡的效果。同时我们在前文还埋了个伏笔:

    现在就把这个关子拿出来讲讲,也就是今天要说的编码方式。说到针对于NRZ数据的编码方式,本人听过的有4B/5B,8B/10B,64B/66B,64/67B,128B/130B,128B/132B编码(可能各位还有其他吧),不同的编码方式针对于不同的信号协议,当然效率也是不一样的。什么叫效率?在数据包传送的术语叫开销,意思就是除了实际需要的数据之外的一些数据bit,例如冗余校验等。那大家看上面的编码的数值比就知道了,例如8B/10B,要把8bit的实际数据扩展为10B,那开销就是20%,效率就只有80%了,更通俗来说就是增加了20%的非实际数据的传输 。所以一个好的编码方式,除了看它本身的算法优化情况外,还要注重效率高不高。


    本人将用两期的篇章主要介绍下8B/10B和64/66B编码方式,其他的主要都是由他们扩展开来的。那介绍完前面总体的情况后,进入本期的主题,8B/10B编码。


    首先,为什么要编码?原来的码型有什么不好的地方吗?其中最主要的原因用下面这个图来进行解释:

    大家看明白了吧,由于我们的串行链路中会有交流耦合电容,我们知道理想电容的阻抗公式是Zc=1/2πf*C,因此信号频率越高,阻抗越低,反之频率越低,阻抗越高。因此上面的情况,当码型是高频的时候,基本上可以不损耗的传输过去,但是当码型为连续“0”或者“1”的情况时,电容的损耗就很大,导致幅度不断降低,带来的严重后果是无法识别到底是“1”还是“0”。因此编码就是为了尽量把低频的码型优化成较高频的码型,从而保证低损耗的传输过去。


    上面解释了原因,下面就介绍下这种8B/10B的编码方式的算法。


    对于一些常见的编码方式而言,即使在我们不知道它们有什么好处的情况下,也很容易想到它的缺点,那就是需要增加额外的数据bit。因此我们看到很多像PCIE1,明明传输了2.5Gbps的数据,但是实际上有用的数据只有2G;PCIE2也一样,5Gbps的数据由于的只有4G。对于8B/10B编码而言,这是一笔不小的损失。人们还是要用这种编码,也正说明了它的好处显然会大于它的坏处。很多网友也回答得非常精准,我再稍微汇总下大家的答案哈。


    首先,使用8B/10B编码的根本目的是为了直流平衡,所谓直流平衡,在上文中也图文并茂的解释过了。但是说到保证直流平衡又是为了什么呢?我们可以对上文的prbs7码型(10Gbps)进行有和没有8B/10B编码的频谱进行分析,如下所示:

    可以看到,进行8B/10B编码后,信号在低频段的能量明显少了,补充到了高频能量中去了。其实,这就相对于一个高通滤波器,根本作用和之前说的加重均衡时一样的,就是使经过传输通道后保持平坦的频域曲线,这样能有效缓解ISI码间干扰,使接收眼图扩大。所以说,使眼图变好的方式有很多,但是万变也不离其中,原理都是殊途同归的。


    另外,通过8B/10B后,连续0或1的数量减少了,对于时钟恢复电路(CDR)也是有帮助的。它使CDR能够有更多的边沿变换,对于CDR的PLL来说,更能把握到数据的内嵌时钟,对正确采样数据和减小抖动有很大的益处。

    其他的作用还包括:


    增加一些校验的码型,起到数据对齐和控制命令的作用,增加纠错的能力;


    编码后起到加密的作用;


    编码有一定的规律的码型,对解码来说也有帮助。


    上文说完了8B/10B之后,我们再来说说貌似更复杂的64B/66B编码。很多人可能在想,8B/10B编码主要作用的优化直流平衡,从8bit中插2个bit进去,这样的话最终效果能够使长0或者长1的位数不超过5位,达到很好的效果。那64B/66B编码方式呢?在从64个bit中仅加入2个bit,能够很好的解决长0长1的问题吗?作用似乎只是杯水车薪,2个bit相对于64个bit太少了。但是这种64B/66B的编码方式流行至今,肯定是有它自己的优势所在,其实它和8B/10B编码还是有原理上和算法上的区别的。


    当然,如果仅靠这2个bit来实现8B/10B的作用显然不太现实。其实上,这两个bit只是起一个同步头的作用,主要用于接收端的数据对齐和接收数据位流的同步。这两个bit有“10”和“01”两种同步表征方式,“01”表征后面的64个bit都是数据bit,“10”表示后面的64bit是数据和控制信息的混合,其他的“00”或者“11”都表征为错误信息。数据bit用“D”表示,每个数据码是8bit;控制bit用“Z”表示,每个数据码是7bit。其中在“10”这种数据控制信息混合的情况下,后8个bit划分为表征类型域,其后的56bit才是真正的控制信息或数据控制两者的混合。另外“S”表示包开始传送,“T”表示包传送结束,值得注意的是“S”只能在第0和第4字节出现。“T”可以出现在任何的字节。


    那按照上面说的,新加的2个bit只是作为同步,那后面的数据可以如何优化呢?这里有一项区别于8B/10B编码的技术——扰码。


    所谓扰码,就是一种将数据重新排列或者进行编码以使其最优化的方法。怎么才能最优化呢?就是使数据bit的“0”和“1”最大程度的达到随机分布,进一步减轻了抖动的码间串扰,提高了数据传输的可靠性。从本质上说,扰码就是为了达到这个目的而在传输数据进入信道传输之前,对其进行的比特层的随机化处理过程。它的方法就是使用上面prbs码型所说到的多项式,关于多项式的选择通常是基于扰码的特性,包括生成数据的随机度,以及打乱连0和连1的能力。从prbs多项式的角度说,其实就是重新生成伪随机码型的过程。64B/66B的扰码使用的多项式是1+X39+X58。按照前期说的prbs生成器,得到该扰码器的框图如下所示:


    就是前几期prbs说的第39和第58位的异或运算,然后通过移位寄存器输出的码型结果。当然,前面说了,64B/66B编码的这种扰码方式目标是使数据的“0”和“1”最大程度的随机分布,减小连续出现的情况,因此它可能并不能适用于所有的码型,不像8B/10B编码一样对所有的bit组合都有出色的表现,具体还要看接收器的能力。但是无可否认,它最大的好处是效率比较高,传输冗余的bit只有2位,不像8B/10B编码需要20%的开销。这方面在更高速的传输环境下更具有优势。

    转载自:高速先生

    展开全文
  • 并行传输VS串行传输

    千次阅读 2013-06-21 10:45:31
    无论从通信速度、造价还是通信质量上来看,现今的串行传输方式都比并行传输方式更胜一筹。  近两年,大家听得最多的一个词可能就是串行传输了。从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头...

    众人拾柴火焰高”是句老话,但电脑领域却发生了多根线比不过1根线的怪事。无论从通信速度、造价还是通信质量上来看,现今的串行传输方式都比并行传输方式更胜一筹。

      近两年,大家听得最多的一个词可能就是串行传输了。从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头,USB取代IEEE 1284,SATA取代PATA,PCI Express取代PCI……从原理来看,并行传输方式其实优于串行传输方式。通俗地讲,并行传输的通路犹如一条多车道的宽阔大道,而串行传输则是仅能允许一辆汽车通过的乡间公路。以古老而又典型的标准并行口(Standard Parallel Port)和串行口(俗称COM口)为例,并行接口有8根数据线,数据传输率高;而串行接口只有1根数据线,数据传输速度低。在串行口传送1位的时间内,并行口可以传送一个字节。当并行口完成单词“advanced”的传送任务时,串行口中仅传送了这个单词的首字母“a”。

      图1: 并行接口速度是串行接口的8倍

      

      那么,为何现在的串行传输方式会更胜一筹?下文将从并行、串行的变革以及技术特点,分析隐藏在表象背后的深层原因。

    一、并行传输技术遭遇发展困境

      电脑中的总线和接口是主机与外部设备间传送数据的“大动脉”,随着处理器速度的节节攀升,总线和接口的数据传输速度也需要逐步提高,否则就会成为电脑发展的瓶颈。

      我们先来看看总线的情况。1981年第一台PC中以ISA总线为标志的开放式体系结构,数据总线为8位,工作频率为8.33MHz,这在当时却已算是“先进技术”了,所以ISA总线还有另一个名字“AT总线”;到了286时,ISA的位宽提高到了16位,为了保持与8位的ISA兼容,工作频率仍为8.33MHz。这种技术一直沿用到386系统中。

      到了486时代,同时出现了PCI和VESA两种更快的总线标准,它们具有相同的位宽(32位),但PCI总线能够与处理器异步运行,当处理器的频率增加时,PCI总线频率仍然能够保持不变,可以选择25MHz、30MHz和33MHz三种频率。而VESA总线与处理器同步工作,因而随着处理器频率的提高,VESA总线类型的外围设备工作频率也得随着提高,适应能力较差,因此很快失去了竞争力。PCI总线标准成为Pentium时代PC总线的王者,硬盘控制器、声卡到网卡和显卡全部使用PCI插槽。

      图2:

      

      并行数据传输技术向来是提高数据传输率的重要手段,但是,进一步发展却遇到了障碍。首先,由于并行传送方式的前提是用同一时序传播信号,用同一时序接收信号,而过分提升时钟频率将难以让数据传送的时序与时钟合拍,布线长度稍有差异,数据就会以与时钟不同的时序送达另外,提升时钟频率还容易引起信号线间的相互干扰。因此,并行方式难以实现高速化。另外,增加位宽无疑会导致主板和扩充板上的布线数目随之增加,成本随之攀升。

      在外部接口方面,我们知道IEEE 1284并行口的速率可达300KB/s,传输图形数据时采用压缩技术可以提高到2MB/s,而RS-232C标准串行口的数据传输率通常只有20KB/s,并行口的数据传输率无疑要胜出一筹。因此十多年来,并行口一直是打印机首选的连接方式。对于仅传输文本的针式打印机来说,IEEE 1284并行口的传输速度可以说是绰绰有余的。但是,对于近年来一再提速的打印机来说,情况发生了变化。笔者使用爱普生6200L(同时具备并行口和USB接口)在打印2MB图片时,并行口和USB接口的速度差异并不明显,但在打印7.5MB大小的图片文件时,从点击“打印”到最终出纸,使用USB接口用了18秒,而使用并行口时,就用了33秒。从这一测试结果可以看出,现行的并行口对于时下的应用需求而言,确实出现了瓶颈。

      你知道吗?IEEE 1284的三种接口

      早期的并行口是一种环形端口,IEEE 1284则采用防呆设计的D型连接器。IEEE 1284定义了D-sub、Centronics和MDR-36等三种连接器(图3)。我们所见到打印机电缆,一端是D-sub连接器,用来与主机连接,另一端为带有锁紧装置的Centronics连接器,用来连接到打印机。连接起来不仅方便,而且十分可靠。D-sub连接器有25根插针,而Centronics连接器有36根插针,多出来的11根基本上是冗余的信号地。MDR(Mini Delta Ribbon,小型三角带)连接器也是36根插针,这种小尺寸连接器是为数码相机、Zip驱动器等小型设备而设计的,实际上很少被使用。

      图3: 三种不同尺寸的并行口连接器

      

    二、USB,让串行传输浴火重生

      回顾前面所介绍的并行接口与串行接口,我们知道IEEE 1284并行口的速率可达300KB/s,而RS-232C标准串行口的数据传输率通常只有20KB/s,并行口的数据传输率无疑要胜出一筹。外部接口为了获得更高的通信质量,也必须寻找RS-232的替代者。

      1995年,由Compaq、Intel、Microsoft和NEC等几家公司推出的USB接口首次出现在PC机上,1998年起即进入大规模实用阶段。USB比RS-232C的速度提高了100倍以上,突破了串行口通信的速度瓶颈,而且具有很好的兼容性和易用性。USB设备通信速率的自适应性,使得它可以根据主板的设定自动选择HS(High-Speed,高速,480Mbps)、FS(Full-Speed,全速,12Mbps)和LS(Low-Speed,低速,1.5Mbps)三种模式中的一种。USB总线还具有自动的设备检测能力,设备插入之后,操作系统软件会自动地检测、安装和配置该设备,免除了增减设备时必须关闭PC机的麻烦。USB接口之所以能够获得很高的数据传输率,主要是因为其摒弃了常规的单端信号传输方式,转而采用差分信号(differential signal)传输技术,有效地克服了因天线效应对信号传输线路形成的干扰,以及传输线路之间的串扰。USB接口中两根数据线采用相互缠绕的方式,形成了双绞线结构(图4)。

      图4: 采用差模信号传送方式的USB

      

      图5: 差分传输方式具有更好的抗干扰性能

      

      图5是由两根信号线缠绕在环状铁氧体磁芯上构成的扼流线圈。在单端信号传输方式下,线路受到电磁辐射干扰而产生共模电流时,磁场被叠加变成较高的线路阻抗,这样虽然降低了干扰,但有效信号也被衰减了。而在差动传输模式下,共模干扰被磁芯抵消,但不会产生额外的线路阻抗。换句话说,差动传输方式下使用共模扼流线圈,既能达到抗干扰的目的,又不会影响信号传输。

      差分信号传输体系中,传输线路无需屏蔽即可取得很好的抗干扰性能,降低了连接成本。不过,由于USB接口3.3V的信号电平相对较低,最大通信距离只有5米。USB规范还限制物理层的层数不超过7层,这意味着用户可以通过最多使用5个连接器,将一个USB设备置于距离主机最远为30米的位置。

      为解决长距离传输问题,扩展USB的应用范围,一些厂商在USB规范上添加了新的功能,例如Powered USB和Extreme USB,前者加大了USB的供电能力,后者延长了USB的传输距离。

    三、差分信号技术:开启信号高速传输之门的金钥匙

      电脑发展史就是追求更快速度的历史,随着总线频率的提高,所有信号传输都遇到了同样的问题:线路间的电磁干扰越厉害,数据传输失败的发生几率就越高,传统的单端信号传输技术无法适应高速总线的需要。于是差分信号技术就开始在各种高速总线中得到应用,我们已经知道,USB实现高速信号传输的秘诀在于采用了差分信号传输方式。

      差分信号技术是20世纪90年代出现的一种数据传输和接口技术,与传统的单端传输方式相比,它具有低功耗、低误码率、低串扰和低辐射等特点,其传输介质可以是铜质的PCB连线,也可以是平衡电缆,最高传输速率可达1.923Gbps。Intel倡导的第三代I/O技术(3GIO),其物理层的核心技术就是差分信号技术。那么,差分信号技术究竟是怎么回事呢?

      图6: 差分信号传输电路

      

      众所周知,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示为“1”,低电平表示为“0”。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错(图7)。

      图7: 单端信号传输

      

      在差分电路中,输出电平为正电压时表示逻辑“1”,输出负电压时表示逻辑“0”,而输出“0”电压是没有意义的,它既不代表“1”,也不代表“0”。而在图7所示的差分通信中,干扰信号会同时进入相邻的两条信号线中,当两个相同的干扰信号分别进入接收端的差分放大器的两个反相输入端后,输出电压为0。所以说,差分信号技术对干扰信号具有很强的免疫力。

      图8: 差分信号传输

      

      正因如此,实际电路中只要使用低压差分信号(Low Voltage Differential Signal,LVDS),350mV左右的振幅便能满足近距离传输的要求。假定负载电阻为100Ω,采用LVDS方式传输数据时,如果双绞线长度为10米,传输速率可达400Mbps;当电缆长度增加到20米时,速率降为100Mbps;而当电缆长度为100米时,速率只能达到10Mbps左右。

      在近距离数据传输中,LVDS不仅可以获得很高的传输性能,同时还是一个低成本的方案。LVDS器件可采用经济的CMOS工艺制造,并且采用低成本的3类电缆线及连接件即可达到很高的速率。同时,由于LVDS可以采用较低的信号电压,并且驱动器采用恒流源模式,其功率几乎不会随频率而变化,从而使提高数据传输率和降低功耗成为可能。因此,LVDS技术在USB、SATA、PCI Express以及HyperTransport中得以应用,而LCD中控制电路向液晶屏传送像素亮度控制信号,也采用了LVDS方式。

    四、新串行时代已经到来

      差分传输技术不仅突破了速度瓶颈,而且使用小型连接可以节约空间。近年来,除了USB和FireWire,还涌现出很多以差分信号传输为特点的串行连接标准,几乎覆盖了主板总线和外部I/O端口,呈现出从并行整体转移到新串行时代的大趋势,串行接口技术的应用在2005年将进入鼎盛时期(图9)。

      图9: 所有的I/O技术都将采用串行方式

      

      1.LVDS技术,突破芯片组传输瓶颈

      随着电脑速度的提高,CPU与北桥芯片之间,北桥与南桥之间,以及与芯片组相连的各种设备总线的通信速度影响到电脑的整体性能。可是,一直以来所采用的FR4印刷电路板因存在集肤效应和介质损耗导致的码间干扰,限制了传输速率的提升。

      在传统并行同步数字信号的速率将要达到极限的情况下,设计师转向从高速串行信号寻找出路,因为串行总线技术不仅可以获得更高的性能,而且可以最大限度地减少芯片管脚数,简化电路板布线,降低制造成本。Intel的PCI Express、AMD的HyperTansport以及RAMBUS公司的redwood等I/O总线标准不约而同地将低压差分信号(LVDS)作为新一代高速信号电平标准。

      一个典型的PCI Express通道如图9所示,通信双方由两个差分信号对构成双工信道,一对用于发送,一对用于接收。4条物理线路构成PCI Express x1。PCI Express 标准中定义了x1、x2、x4和x16。PCI Express x16拥有最多的物理线路(16×4=64)。

      图10: PCI Express x1数据通道

      

      即便采用最低配置的x1体系,因为可以在两个方向上同时以2.5GHz的频率传送数据,带宽达到5Gbps,也已经超过了传统PCI总线1.056Gbps(32bit×33MHz)的带宽。况且,PCI总线是通过桥路实现的共享总线方式,而PCI Express采用的“端对端连接”(图11),也让每个设备可以独享总线带宽,因此可以获得比PCI更高的性能。

      图11: PCI Express端对端连接消除了桥路

      

      AMD的HyperTransport技术与PCI Express极其相似,同样采用LVDS数据通道,最先用于南北桥之间的快速通信。其工作频率范围从200MHz到1GHz,位宽可以根据带宽的要求灵活选择2、4、8、16或32位。HyperTransport最先用于南北桥之间的快速通信,今后会用于所有芯片间的连接。

      2.SATA,为硬盘插上翅膀

      在ATA33之前,一直使用40根平行数据线,由于数据线之间存在串扰,限制了信号频率的提升。因此从ATA66开始,ATA数据线在两根线之间增加了1根接地线正是为了减少相互干扰。增加地线后,数据线与地线之间仍然存在分布电容C2(图12),还是无法彻底解决干扰问题,使得PATA接口的最高工作频率停留在133MHz上。除了信号干扰这一根本原因之外,PATA还存在不支持热插拔和容错性差等问题。

      图12: 并行ATA的线间串扰

      

      SATA是Intel公司在IDF2000上推出的,此后Intel联合APT、Dell、IBM、Seagate以及Maxtor等业界巨头,于2001年正式推出了SATA 1.0规范。而在春季IDF2002上,SATA 2.0规范也已经公布。

      SATA接口包括4根数据线和3根地线,共有7条物理连线。目前的SATA 1.0标准,数据传输率为150MB/s,与ATA133接口133MB/s的速度略有提高,但未来的SATA 2.0/3.0可提升到300MB/s以至600MB/s。从目前硬盘速度的增长趋势来看,SATA标准至少可以满足未来数年的要求了。

      3.FireWire,图像传输如虎添翼

      FireWire(火线)是1986年由苹果电脑公司起草的,1995年被美国电气和电子工程师学会(IEEE)作为IEEE 1394推出,是USB之外的另一个高速串行通信标准。FireWire最早的应用目标为摄录设备传送数字图像信号,目前应用领域已遍及DV、DC、DVD、硬盘录像机、电视机顶盒以及家庭游戏机等。

      FireWire传输线有6根电缆,两对双绞线形成两个独立的信道,另外两根为电源线和地线。SONY公司对FireWire进行改进,舍弃了电源线和地线,形成只有两对双绞线的精简版FireWire,并取名为i.Link。

      FireWire数据传输率与USB相当,单信道带宽为400Mbps,通信距离为4.5米。不过,IEEE 1394b标准已将单信道带宽扩大到800Mbps,在IEEE 1394-2000新标准中,更是将其最大数据传输速率确定为1.6Gbps,相邻设备之间连接电缆的最大长度可扩展到100米。

    五、“串行”能红到哪天?

      阅读本文之后,如果有人问关于串行传输与并行传输谁更好的问题,你也许会脱口而出:串行通信好!但是,串行传输之所以走红,是由于将单端信号传输转变为差分信号传输,并提升了控制器工作频率的原因,而“在相同频率下并行通信速度更高”这个基本道理是永远不会错的,通过增加位宽来提高数据传输率的并行策略仍将发挥重要作用。当然,前提是有更好的措施来解决并行传输的种种问题。

      技术进步周而复始,以至无穷,没有一项技术能够永远适用。电脑技术将来跨入THz时代后,对信号传输速度的要求会更高,差分传输技术是否能满足要求?是否需要另一种更好的技术来完成频率的另一次突破呢?不妨拭目以待!

     

    展开全文
  • 总线揭密 串行传输VS并行传输

    千次阅读 2018-11-15 09:10:27
    总线揭密 串行传输VS并行传输

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    近两年,大家听得最多的一个词可能就是串行传输了。从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头,USB取代 IEEE 1284,SATA取代PATA,PCI Express取代PCI……

      从原理来看,并行传输方式其实优于串行传输方式。通俗地讲,并行传输的通路犹如一条 多车道的宽阔大道,而串行传输则是仅能允许一辆汽车通过的乡间公路。以古老而又典型的标准并行口(Standard Parallel Port)和串行口(俗称COM口)为例,并行接口的位宽为8,数据传输率高;而串行接口只有1位,数据传输速度低。在串行口传送1位的时间内,并行口可以传送一个字节。当并行口完成单词“advanced”的传送任务时,串行口中仅传送了这个单词的首字母“a”。

                                        图1:H6A-2-1.TIF 并行接口速度是串行接口的8倍

      那么,现在的串行传输方式为何会更胜一筹呢?

      一、并行传输技术遭遇发展困境

      电脑中的总线和接口是主机与外部设备间传送数据的“大动脉”,随着处理器速度的节节攀升,总线和接口的数据传输速度也需要逐步提高,否则就会成为电脑发展的瓶颈。

                                                                  图2  PC总线的发展

     

           我们先来看看总线的情况。1981年第一台PC中以ISA总线为标志的开放式体系结构,使用了ISA总线,数据总线为8位,工作频率为8.33MHz,这在当时却已经算作“先进技术(Advanced Technology)”了,所以ISA总线还有另一个名字“AT总线”。到了286时,ISA的位宽提高到了16位,为了保持与8位的ISA兼容,工作频率仍为8.33MHz。ISA总线虽然只有16MBps的数据传输率,但直到386时代,都一直是主板与外部设备间最快的数据通道。

      到了486时代,同时出现了PCI和VESA两种更快的总线标准,它们具有相同的位宽(32位),但PCI总线能够与处理器异步运行,当处理器的频率增加时,PCI总线频率仍然能够保持不变,可以选择25MHz、30MHz和33MHz三种频率。而VESA总线与处理器同步工作,因而随着处理器频率的提高,VESA总线类型的外围设备工作频率也得随着提高,适应能力较差,因此很快失去了竞争力。PCI总线标准成为Pentium时代PC总线的王者,硬盘控制器、声卡到网卡,全部使用PCI插槽。而显卡方面对数据传输速度要求更高,出现了专用的AGP,

      并行数据传输技术向来是提高数据传输率的重要手段,但是,进一步发展却遇到了障碍。首先,由于并行传送方式的前提是用同一时序传播信号,用同一时序接收信号,而过分提升时钟频率将难以让数据传送的时序与时钟合拍,布线长度稍有差异,数据就会以与时钟不同的时序送达,另外,提升时钟频率还容易引起信号线间的相互干扰,导致传输错误。因此,并行方式难以实现高速化。从制造成本的角度来说,增加位宽无疑会导致主板和扩充板上的布线数目随之增加,成本随之攀升。 

    在外部接口方面,我们知道IEEE 1284并行口的速率可达300kBps,传输图形数据时采用压缩技术可以提高到2MBps,而RS-232C标准串行口的数据传输率通常只有20kbps,并行口的数据传输率无疑要胜出一筹。因此十多年来,并行口一直是打印机首选的连接方式。对于仅传输文本的针式打印机来说,IEEE 1284并行口的传输速度可以说是绰绰有余的。但是,对于近年来一再提速的激光打印机来说,情况发生了变化。笔者使用爱普生6200L在打印2MB图片时,速度差异不甚明显,但在打印7.5MB大小的图片文件时,从点击“打印”到最终出纸,使用USB接口用了18秒,而使用并行口时,用了33秒。这一测试结果说明,现行的并行口对于时下流行的激光打印机来说,已经力难胜任了。

      二、USB,串行接口欲火重生

      凤凰涅槃,浴火重生。1995年,由Compaq、Intel、Microsoft和NEC等几家公司推出的USB接口首次出现在PC 机上,1998年起即进入大规模实用阶段,作为IEEE 1284并行口和RS-232C串行口的接班人,USB现在已经呈现出大红大紫了。


           USB虽然只有一位的位宽,但数据传输速度却比并行口要高,而且具有很大的发展空间。USB设备通信速率的自适应性,使得它可以自动选择HS(High- Speed,高速,480 Mbps)、FS(Full-Speed,全速,12Mbps)和LS(Low-Speed,低速,1.5Mbps)三种模式中的一种。USB总线还具有自动的设备检测能力,设备插入之后,操作系统软件会自动地检测、安装和配置该设备,免除了增减设备时必须关闭PC机的麻烦。

                                                           图3  采用差模信号传送方式的USB

                                                    图4  差分传输方式具有更好的抗干扰性能

     

            USB接口之所以能够获得很高的数据传输率,主要是因为其摒弃了常规的单端信号传输方式转而采用差分信号(differenTIal signal)传输技术,有效地克服了因天线效应对信号传输线路形成的干扰,以及传输线路之间的串扰。USB接口中两根数据线采用相互缠绕的方式,形成了双绞线结构,如图3。

      图4是由两根信号线缠绕在环状铁氧体磁芯上构成的扼流线圈。在单端信号传输方式下,线路受到电磁辐射干扰而产生共模电流时,磁场被叠加变成较高的线路阻抗,这样虽然降低了干扰,但有效信号也被衰减了。而在差动传输模式下,共模干扰被磁芯抵消,但不会产生额外的线路阻抗。换句话说,差动传输方式下使用共模扼流线圈,既能达到抗干扰的目的,又不会影响信号传输。

      差分信号传输体系中,传输线路无需屏蔽即可取得很好的抗干扰性能,降低了连接成本。不过,由于USB接口3.3V的信号电平相对较低,最大通信距离只有5m。USB规范还限制物理层的层数不超过7层,这意味着用户可以通过最多使用5个连接器,将一个USB设备置于距离主机最远为30m的位置。

      为了解决长距离传输问题,扩展USB的应用范围,一些厂商在USB规范上添加了新的功能,例如

    Powered USB和Extreme USB,前者加大了USB的供电能力,后者延长了USB的传输距离。譬如采用CAT5电缆和RJ45连接器,可以简单地将扩展至100m;采用光纤更可扩展至2km,只是成本比CAT5更高。

     双绞线互相缠绕的目的是利用铜线中电流产生的电磁场互相作用抵消邻近线路的干扰并减少来自外界的干扰。每对线在每英寸长度上相互缠绕的次数决定了抗干扰的能力和通讯的质量,缠绕得越紧密其通讯质量越高,所支持的数据传输率越高,制造成本当然也相应提高。双绞线即使外面没有屏蔽层,也能获得很好的抗干扰性能,所以局域网中选用CAT5非屏蔽双绞线(UTP)便能满足传输100Mbps信号的要求,且通信距离可以达到100m。

      三、差分信号技术:高速信号传输的金钥匙

      电脑发展史就是追求更快速度的历史,随着总线频率的提高,所有信号传输都遇到了同样的问题:线路间的电磁干扰越厉害,数据传输失败的发生机率就越高,传统的单端信号传输技术无法适应高速总线的需要。于是差分信号技术就开始在各种高速总线中得到应用,我们已经知道,USB实现高速信号传输的秘诀在于采用了差分信号传输方式。

                 &n bsp;                                             图5  差分信号传输电路

                                                               图6 单端信号传输

                                                                    图7  差分信号传输

     

           差分信号传输技术是20世纪90年代出现的一种数据传输和接口技术,与传统的单端传输方式相比,这种技术具有低功耗、低误码率、低串扰和低辐射等特点,其传输介质可以是铜质的PCB连线,也可以是平衡电缆,最高传输速率可达1.923Gbps。Intel倡导的第三代I/O技术(3GIO),其物理层的核心技术就是差分信号技术。那么,差分信号技术究竟是怎么回事呢?

      我们知道,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示1,低电平表示0。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错,如图6所示。

           在差分信号通信电路中,输出电平为正电压时表示逻辑“1”,输出负电压时表示逻辑“0”,而输出“0”电压是没有意义的,它既不代表“1”,也不代表“0 ”。而在图7所示的差分通信中,干扰信号会同时进入相邻的两条信号线中,在信号接收端,两个相同的干扰信号分别进入差分放大器的两个反相输入端后,输出电压为0。所以说,差分信号技术对干扰信号具有很强的免疫力。对于串行传输来说,LVDS能够低于外来干扰;而对于并行传输来说,LVDS可以不仅能够抵御外来干扰,还能够抵御数据传输线之间的串扰。

      因为上述原因,实际电路中只要使用低压差分信号Low Voltage DifferenTIal Signal,LVDS),350mV左右的振幅便能满足近距离传输的要求。假定负载电阻为100Ω,采用LVDS方式传输数据时,如果双绞线长度为 10m,传输速率可达400 Mbps;当电缆长度增加到20m时,速率降为100 Mbps;而当电缆长度为100m时,速率只能达到10 Mbps左右。

      LVDS最早由美国国家半导体公司提出的一种高速串行信号传输电平,由于它传输速度快,功耗低,抗干扰能力强,传输距离远,易于匹配等优点,迅速得到诸多芯片制造厂商和应用商的青睐,并通过TIA/EIA(Telecommunication Industry Association/Electronic Industries Association)的确认,成为该组织的标准(ANSI/TIA/EIA-644 standard)。

     

      在近距离数据传输中,LVDS不仅可以获得很高的传输性能,同时还是一个低成本的方案。LVDS器件可采用经济的CMOS工艺制造,并且采用低成本的3类电缆线及连接件即可达到很高的速率。同时,由于LVDS可以采用较低的信号电压,并且驱动器采用恒流源模式,其功率几乎不会随频率而变化,从而使提高数据传输率和降低功耗成为可能。因此,USB、SATA、PCI Express以及HyperTransport普遍采用LVDS技术,LCD中控制电路向液晶屏传送像素亮度控制信号,也采用了LVDS方式。

      四、新串行时代已经到来

           差分传输技术不仅突破了速度瓶颈,而且使用小型连接可以节约空间。因此,近年来,除了USB和FireWire,还涌现出很多以差分信号传输为特点的串行连接标准,几乎覆盖了主板总线和外部I/O端口,呈现出从并行整体转移到新串行时代的大趋势,串行接口技术的应用在2005年将进入鼎盛时期(图8)。

                                                      图8  所有的I/O技术都将采用串行方式

      ●     LVDS技术,突破芯片组传输瓶颈

      随着电脑速度的提高,CPU与北桥芯片之间,北桥与南桥之间,以及与芯片组相连的各种设备总线的通信速度影响到电脑的整体性能。可是,一直以来所采用的FR4印刷电路板因存在集肤效应和介质损耗导致的码间干扰,限制了传输速率的提升。

       在传统并行同步数字信号的速率将要达到极限的情况下,设计师转向从高速串行信号寻找出路,因为串行总线技术不仅可以获得更高的性能,而且可以最大限度地减少芯片管脚数,简化电路板布线,降低制造成本。Intel的PCI Express、AMD的HyperTansport以及RAMBUS公司的redwood等第三代I/O总线标准(3GI/O)不约而同地将低压差分信号(LVDS)作为新一代高速信号电平标准。

                                                     图9  PCI Express 1X数据通道

    一个典型的PCI Express通道如图9所示,通信双方由两个差分信号对构成双工信道,一对用于发送,一对用于接收。4条物理线路构成PCI Express 1X。PCI Express 标准中定义了1X、2X、4X和16X。PCI Express 16X拥有最多的物理线路(16×4=64)。

      即便采用最低配置的1X体系,因为可以在两个方向上同时以2.5GHz的频率传送数据,带宽达到5Gbps,也已经超过了传统PCI总线1.056Gbps(32bit×33MHz)的带宽。况且,PCI总线是通过桥路实现的共享总线方式(如PCI9054等桥设备),而PCI Express采用所谓的“端对端连接”(如图10),每个设备可以独享总线带宽,因此可以获得比PCI更高的性能。

                   

     
                             图10 PCI Express端对端连接消除了桥路

           AMD的HyperTransport技术与PCI Express极其相似,同样采用LVDS数据通道,其工作频率范围从200MHz到1GHz,位宽可以根据带宽的要求灵活选择2、4、8、16或32 位。HyperTransport技术现在被用于南北桥之间的快速通信,今后还将用于其它芯片间的连接。

      ●     Serial ATA,为高速硬盘插上翅膀

      在ATA-33之前,一直使用40根平行数据线由于数据线之间存在串扰,限制了信号频率的提升。因此从ATA-66开始,ATA数据线在两根线之间增加了1根接地线正是为了减少相互干扰(一共80根物理线)。增加地线后,数据线与地线之间仍然存在分布电容C2,还是无法彻底解决干扰问题,使得并行ATA接口的最高频率停留在133MHz上。除了信号干扰这一根本原因之外,并行PATA 还存在不支持热插拔和容错性差等问题,采用Serial ATA才完成脱胎换骨的蜕变,使问题得到了解决。

      Serial ATA 是Intel 公司在IDF 2000 上推出的概念,此后Intel 联合APT、Dell、IBM、Seagate以及Maxtor等几家巨头,于2001年正式推出了SATA 1.0 规范。而在IDF2002春季论坛上,SATA 2.0 规范也已经公布。

      Serial ATA接口包括4根数据线和3 根地线,共有7 条物理连线目前的SATA 1.0标准,数据传输率为150MBps,与ATA-133接口133MBps的速度略有提高,但未来的SATA 2.0/3.0可提升到300MBps以至600MBps。从目前硬盘速度的增长趋势来看,SATA 标准至少可以满足未来数年的要求了。

                                                             图11 并行ATA的线间串扰

      ●   FireWire,图像传输如虎添翼

      FireWire(火线)是1986年由苹果公司起草的,1995年被美国电气和电子工程师学会(IEEE)作为IEEE 1394推出,是USB之外的另一个高速串行通信标准。FireWire最早的应用目标为摄录设备传送数字图像信号,目前应用领域已遍及DV、DC、DVD、硬盘录像机、电视机顶盒以及家庭游戏机等。 FireWire传输线有6根电缆,两对双绞线形成两个独立的信道,另外两根为电源线和地线。SONY公司对FireWire进行改进,舍弃了电源线和地线,形成只有两对双绞线的精简版FireWire,并给它起了个很好听的名字i.Link。

      FireWire数据传输率与USB相当,单信道带宽为400Mbps,通信距离为4.5m。不过,IEEE 1394b标准已将单信道带宽扩大到800Mbps,在IEEE 1394-2000新标准中,更是将其最大数据传输速率确定为1.6Gbps,相邻设备之间连接电缆的最大长度可扩展到100m。

      五、串行口能红到哪天?

      阅读本文之后,如果有人问你关于串行通信与并行通信哪个更好的问题,你也许会脱口而出:串行通信好!但是,我要告诉你,新型串行口之所以走红,那是因为采用了四根信号线代替了传统两根信号线的信号传输方式,由单端信号传输转变为差分信号传输的原因,而“在相同频率下并行通信速度更高”这个基本的道理是永远不会错的,通过增加位宽来提高数据传输率的并行策略仍将发挥重要作用。

      技术进步周

     
    而复始,以至无穷,没有一项技术能够永远适用。电脑技术将来跨入THz时代后,对信号传输速度的要求会更高,差分传输技术是否还能满足要求?是否需要另一种更好的技术来完成频率的另一次突破呢?让我们共同关注。           

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • 串行差分传输

    千次阅读 2019-04-17 22:02:18
    并行接口因为有多条并行且紧密的导线,但时钟频率提高的一定程度时,传输数据已经无法恢复。 而串口因为导线少,线间干扰容易控制,反而可以通过不断提高时钟频率来提高传输速率。而且串口的端子也会比较...
  • 总线揭密:串行传输VS并行传输

    万次阅读 多人点赞 2011-10-30 15:17:10
    近两年,大家听得最多的一个词可能就是串行传输了。从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头,USB取代 IEEE 1284,SATA取代PATA,PCI Express取代PCI……  从原理来看,并行传输方式...
  • 74HC165并行数据转串行数据

    千次阅读 2012-11-21 00:53:44
    74HC165 概述 (NXP founded by Philips) ...74HC165是8位并行读取或串行输入移位寄存器,可在末级得到互斥的串行输出(Q7和Q7),当并行读取(PL)输入为低时,从D0到D7口输入的并行数据将被异步地读取进寄存器内。
  • 摘要:在高速电路系统设计中,差分串行通信方式正在取代并行总线方式 ,以满足...依据实际工程应用需求,提出了基于RocketIO的高速串行数据传输系统解决方案,实现了每通道2.5 Gb/s的传输速度。最后介绍了RocketIO在Auro
  • DTU -- 数据传输单元

    千次阅读 2019-09-13 15:21:21
    DTU -- 数据传输单元 DTU (Data Transfer unit),是专门用于将串口数据转换为IP数据或将IP数据转换为串口数据通过无线通信网络进行传送的无线终端设备。 硬件组成 DTU硬件组成部分主要包括CPU控制模块、无线...
  •       本文资料是对网络上相关知识的小总结      ...如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车。汽车跑在路上,要遵守交通规则。如果是市内,...
  • C6000与C2000系列DSP之间串行数据通讯的研究与实现[日期:2008-7-31]来源:中电网 作者:韩开亮,张 涛[字体:大 中 小] TMS320C6711是TI公司TMS320C6000系列32位浮点DSP,它具有专用硬件逻辑的CPU、片内存储器、片...
  • CSR8811芯片组是用于消费电子设备的蓝牙v4.2单芯片无线电和基带IC。 产品规格 蓝牙版本:蓝牙4.2 蓝牙技术:蓝牙低功耗,双模蓝牙,CSRmesh™技术 蓝牙配置文件:HFP v1.6 ...最大输入电压:5.5...
  • FPGA开发之数据传输模块

    千次阅读 2015-02-04 12:17:35
    USB模式:通用串行总线,由VBUS,GND,D+,D-构成(USB3.0可以达到5Gbps)。具有不同的速度模式,当D-上拉的时候一个1.5k电阻到3.3v那么处于低速模式,否则处于上拉D+高速模式。 上图就是低速模式(1.5Mbps,以USB...
  • 智能卡数据传输T=1传输协议

    千次阅读 2016-01-22 17:50:55
    T=1协议是面向字组的协议,这就是说一个字组是卡和终端之间可以传输的最小数据单元。 这项协议以严格的层次划分为特点,可作为数据链路层归入OSI参考模型中。在这种意义上,层次划分也 就意味着数据指向较高的层次...
  • 比特率 波特率 数据传输速率 区别

    万次阅读 多人点赞 2016-05-25 09:54:55
    其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。  在二进制系统中,信息速率(比特率)与信号速率(波特率)...
  • 基于蓝牙的数据传输系统的设计

    万次阅读 2012-10-23 00:03:02
    它能够在10米 的半径范围内实现单点对多点的无线数据和声音传输,其数据传输带宽可达1Mbps。通讯介质为频率在2.402GHz到2.480GHz之间的电磁波 [1]。 蓝牙技术已获得了两千余家企业的响应,从而拥有了巨大的开发和...
  • 其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。 在二进制系统中,信息速率(比特率)与信号速率(波特率)相等,...
  • 其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。  在二进制系统中,信息速率(比特率)与信号速率(波特率)相等...
  • 其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。  在二进制系统中,信息速率(比特率)与信号速率(波特率)...
  • I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。 主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为...
  • 【RS232】DB9引脚、接线及数据传输

    千次阅读 2019-07-19 13:46:05
    本文仅为整理和分类RS232相关知识,如有侵权,请联系本人。 数据来源: ...数据终端设备,具有一定的数据处理能力以及发送和接收数据能力的设备。 DTE可以是一台计算机或一个终端,也可以是各种I/O设备。...
  • 在通信中经常会遇到几个概念,比特率、波特率、数据传输率、采样率等,总结如下: 部分转载:https://blog.csdn.net/lu_embedded/article/details/53329124 ... 1、比特率 比特率(bit rate)又称传信率、信息传输速率...
  • 定义:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。 在二进制系统中,信息速率(比特率)=信号速率(波特率)。例如,当...
  • 目录: 计算机网络的概念、构成...数据传输的过程 – 封装与解封 网络分层的优点 什么是网络? 先给大家 展示图 答:用线缆将多设备的资源共享 就是网络。 Router 路由器 Multilayer Switch 多层交换机 PC ...
  • 串行接口

    千次阅读 2012-11-16 12:35:29
    串行接口 转载自:百度百科,仅供个人学习之用。 ...串行接口 ...串行接口简称串口,也称串行通信接口(通常指COM接口),是采用串行通信方式的扩展... 串行接口Serial Interface是指数据一位一位地顺序传送,其特点
  • 串行和并行区别

    千次阅读 2013-06-25 21:52:24
    并行通信传输中有多个数据位,同时在两个设备之间传输。发送设备将这些数据位通过 对应的数据线传送给接收设备,还可...串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,013
精华内容 5,205
关键字:

串行数据传输电压