硬件总线基础01:从公交车到总线概念(2)

文章介绍了弦理论的发展,从最初的发现到超弦理论的形成,探讨了多维度空间和超对称性。同时,文章详细阐述了数字信号的基础,包括信号边沿时间、带宽、建立/保持时间等概念,并对比了并行总线与串行总线的特点和优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说在开头:关于大一统理论(2)

大一统的理论的新希望出现在1968年, CERN的意大利物理学家维尼基亚诺随手翻阅了一本数学书,在上面找到了一个叫做“欧拉β函数”的东西,维尼基亚诺顺手把它运用到了“雷吉轨迹”的问题上面做了一些计算,结果惊讶地发现,这个欧拉早在1771年就出于纯数学的原因而研究过的函数,竟然能够很好地描述核子中许多强相互作用力的效应(欧拉大神名不虚传啊)。

维尼基亚诺模型不久后被3个人几乎同时注意到了:南部阳一郎,萨斯金和尼尔森;他们三人分别证明了这个模型在描述粒子的时候等效于描述一根一维的“弦”!这是非常奇怪的结论,因为在量子场论中,任何基本的粒子一直被看做为没有维度的小点,怎么会变成一根弦呢?加州理工大学的施瓦茨与法国物理学家谢尔克合作,研究了这个理论的一些性质,他们将这种弦当做束缚夸克的纽带,即夸克是被绑在弦两端的,使得它们不能单独从核中被分割出来。他们通过计算还发现了其它一些稀奇古怪的东西:比如自旋为2的0质量粒子(像引力子么?),还有一种比光速还快的粒子:“快子”等等。更令人无法理解的是,如果弦论想要自圆其说,就必须要求我们的时空是26维的。我们平时接触到的只是4维时空,那么多出来的22维又是什么鬼?这些对当时的人们来说,实在是太难以想象了,最终胎死腹中。

在弦论惨淡的日子里,施瓦茨和谢尔克坚持下来了,1971年施瓦茨和雷蒙等人合作,引入了“超对称”的思想(即每个玻色子对应于一个费米子),把原来26维的弦论简化为只需要10维。超对称的思想使得弦论获得了前所未有的力量,后来施瓦茨和迈克尔.格林合作,最终完成了超对称和弦论的结合,他们惊讶的发现,这个理论完成了一次强大的升级,成为了“超弦”理论(所以,超弦理论并非是“超级厉害的弦理论”的意思。哈哈)。在超弦理论下,计算引力的时候,那个躺平的8不再出现了,计算结果有限而且有意义。当我们把粒子看成一条弦而非一个点的时候,我们就可以瞒天过海,绕过那条无穷大的防线。到了1984年,施瓦茨和格林解决了所谓“反常”问题,超弦理论可以消除这些反常而得以自洽,从而惊动了整个物理界。

第一次超弦革命爆发了,整个物理界忽然像着了魔一样,投入了极大的热情,成百上千人投入这一领域,在第一波运动之后,我们得到了这样一个图像:任何粒子其实都不是传统意义上的点,而是开放或则闭合的弦;当他们以不同方式振动时,就分别对应自然界中的不同粒子(电子,光子等等);我们生活在一个10维空间里,但是其中的6维是仅仅蜷缩起来的,所以我们觉察不到。我们将时空放大到“普朗克空间”的尺度上(10⁻³³cm),这时候我们就会发现,原本当做时空中的一个“点”,其实是一个6维的小球。那人们自然要问,为什么有6个维度是蜷缩起来的?这些维度有什么不同么?有没有办法证明?但是弦的尺度是如此之小,所以没有什么手段能够去直接认识它,而当第一次革命的热情过后,筛除掉大量的超弦理论,仍然还有5种理论被保留了下来,每一种都能自圆其说,那这5种理论究竟谁是正确的呢?人们对弦论的热情很快就消退了,第一次革命尘埃落定。

到了90年代中期,爱德华.威腾在1995年的超弦年会上,证明了不同耦合常数的弦论在本质上其实是相同的;5种弦论虽然看起来相当不同,其实它们是一个大理论的不同变种。而当耦合常数被放大时,出现了一个新的维度:第11维。弦不只是1维的,而是2维的。超弦理论终于从沉睡中苏醒了过来,完成了绝地反击。

这5种超弦理论就像盲人摸象一样,只摸到了大象的鼻子、大腿、耳朵、尾巴,虽然它们摸起来完全不同,但其实都来自同一头大象。物理学家们终于可以松一口气,这个统一的理论就被称为了“M理论”。这个M表示什么意思,大家众说纷纭(中国人认为是“摸”理论,盲人摸象的摸)。

不管是超弦理论还是M理论,它们都还刚刚起步,但是M理论仍然取得了一定的成功,解释了黑洞熵的问题。甚至霍金在《大设计》一书中,直接将M理论称作宇宙的终极理论。不过对于物理学界来说,人们对M理论的热情并没有持续高涨,如今第二次超弦革命也已经硝烟散尽,超弦又进入了一个蛰伏期。M理论最终是否能够完成物理学的统一,现在还无法预言。(参考自:曹天元-上帝掷骰子吗)

二,数字信号基础

让我们的眼光先从总线层面移开,再向下一层看:数字信号(这章内容是整个总线专题的概念基础,非常重要)。总线的目的在于传输数据,而数据是由数字信号来呈现的,所以在本质上来说:系统中各个模块主要通过数字信号的传输来进行信息的交互。那么数字信号如何来表达其含义呢?典型的数字信号用两个不同的信号电平分别来代表逻辑“0”和逻辑“1”的状态。如下图所示。

——随着对数据传输速率需求的提升,也可以有4个不同的电平:PAM44-Level Pulse Amplitude Modulation),来表示2bit逻辑状态:00,01,10,11

但是真实的世界并不存在理想的逻辑“0”和“1”的状态,所以只能用一定的信号电平电压范围来代表响应的逻辑状态,如下图所示。

1. 3.3V LVTTL信号为例,判决阈值上限是2.0V,下限是0.8V;这使得数字信号相比于模拟信号有更高的可靠性和抗噪声/干扰能力(噪声容限更高,具体关于噪声容限的概念,请参考《逻辑门电路高速特性》)

——举个栗子,当信号输出电压为0V,只要噪声或干扰的幅度不超过0.8V,就不会被误判为1,所以数字信号的抗干扰能力是比较强的。但如果噪声超过了容限,那么仍然可能产生错误的数据,所以我们必须对单板上所有数字信号的质量进行分析和测量,为了保证信号电压在进行采样时能满足基本的逻辑判决条件(关于信号的测量,具体后续《信号测量基础》专题详细分析)。

2. 当数字信号电压介于判决门限之间(举个栗子:对于LVTTL电平就是介于0.8V2.0V之间)时,其逻辑是不确定状态;这种不确定状态不是我们所期望的,因此数字电路应尽量避免用这种不确定状态进行数据传输。

——所谓的不确定状态是指:接收端可能将这个状态判决为逻辑0,也可能判决为逻辑1;是一种不受我们控制的状态(具体分析请参考《逻辑门电路高速特性》)。

1,数字信号的基本参数

通过上面的简单学习,我们了解了数字信号是个啥,大家一起接下去学习关于数字信号的基本参数;这些参数关系到了数字信号在总线中的应用,在接下去不同总线协议的电气规格中将不断出现。所以我们需要先去理解,这些参数背后代表了什么意义。

1.1 数字信号边沿时间

任何一个真实的数字信号从一个逻辑电平状态(比如:低电平)跳变到另一个逻辑电平状态(比如:高电平)时,其边沿时间都不会是0;而边沿跳变的过渡时间越短,则说明信号边沿越陡。我们一般用信号上升时间(Rising Time)来衡量信号边沿的陡缓程度,上升时间一般指:数字信号幅度由10%增加到90%所用的时间(或则从20%80%所用的时间,根据不同器件规格设定);大多数数字信号的下降时间(信号幅度从90%下降为10%所用时间)同上升时间差不多。具体如下图所示。

上升时间可以客观地反映信号边沿的陡缓程度,对一些高速总线信号:PCIeUSB3.0等,由于信号速率较高,传输线对信号的损耗很大(关于信号高频分量的损耗分析,具体参考《从电感、电容到理想传输线》章节相关内容),在信号波形中很难找到稳定的10%~90%的位置,所以会用20%~80%的边沿时间来衡量信号的陡缓程度。

那么信号边沿的陡缓程度跟什么相关呢?记性好的胖友应该还记得,在《从频域出发理解信号》章节的内容中我们分析过,数字信号的边沿时间决定了信号的带宽!

1.2 数字信号带宽

数字信号的带宽非常重要,它表示该数字信号所携带的高频能量信息,如果在传输过程中这部分高频能量信息被损耗掉,那么数字信号本身将会失真,从而导致接收端数据判决出错。所以在电路设计中,数字信号的带宽决定了PCB走线和介质的传输带宽要求,也决定了在信号测量中对仪器的带宽要求。

我们已经知道作为理想方波信号的高频分量是无穷的(集中在奇次谐波能量:1,3,5,7….次谐波);但是真实数字信号既不是理想方波,也不是正弦波,所以它的能量主要集中在一个频域范围之内,有很多高频谐波成分(1,2,3,4,5….次谐波)。

——需要特别注意的是:理想方波的高频谐波能量主要集中在奇次谐波上,而真实数字信号谐波主要集中在倍频上(包括偶次谐波);所以并非所有数字信号的高频分量奇次谐波的能量大,具体原理在这里不做分析,具体后续《电磁兼容性基础》中进行数学模型分析。

1. 传统信号带宽估算:以信号的5次谐波来估算带宽;举个栗子,假如信号速率为100Mbps,那么相当于50MHz的时钟频率(信号速率与数据频率并非一一对应,跟编码方式有关NRZPAM4等等),估算5次谐波分量是250MHz,因此信号的带宽大概在250MHz

——这是非常常用的粗略估算方法(由信号频率推算信号边沿时间来估算的,具体原理请胖友们回顾《从频域出发理解信号》章节相关内容),能够保证基本信号波形在接收端被较好地重建,但对于精确波形参数测量的场合就不大准确了。

2. 真实数字信号频谱:如下图所示为同一个时钟芯片产生的50MHz250MHz的时钟信号频谱,我们可以看到两种时钟频率下的主要能量都集中在5GHz以内,而250MHz时钟频谱并不是50MHz时钟频谱的5倍;

——真实数据信号的频谱会更加复杂,数据的不同由其产生频谱也会不同。

3. 基于上升沿时间的信号带宽计算:我们通常根据数字信号上升沿去估算被测信号的频谱能量,信号最高频率分量 = 0.5/信号上升时间(10%~90%;如果使用20%~80%的上升时间标准时,计算公式为:信号最高频率分量 = 0.4/信号上升时间(20%~80%

——这种估算方法相对更加准确,在《从频域出发理解信号》章节中的数字信号带宽估算公式是:信号最高频率分量 = 0.35/信号上升时间注意:由于这只是一种估算的方法,所以不同的参考资料会有不同的系数。);当然想要获得信号能量的频率分布最准确的方法是:使用频谱分析仪对被测数字信号进行分析。

1.3 数字信号的建立/保持时间

建立/保持时间对总线通信非常重要,因为在信号跳变时总会有一段过渡时间处于逻辑的不确定状态;而很多总线信号并不只有一路,会有多路信号同时传输,而不同路的数字信号的电气特性不可能完全一致(PCB损耗,走线延时等等),所以当不同信号到达接收端时会存在不同的时延,这样更增加了逻辑状态不确定的时间。

我们期望接收到的数字信号是稳定的状态,而非跳变时的状态,所以大部分数字电路采用了同步电路,即系统总有一个统一的工作时钟对信号进行采样。如下图所示,虽然在信号跳变过程中存在不确定状态,但是在时钟CLK上升沿时对信号进行判决采样,得到的是稳定的逻辑状态。所以,采用同步时钟的电路减小了逻辑不确定状态的概率,而且减小了电路和信号走线延时的积累效应;这种数字电路以固定的时钟节拍工作,我们将数字信号每秒钟跳变的最大速率称作信号的数据速率(Bit Rate),单位是bpsBits Per Second)或bit/s。大部分并行总线的数据速率和总线系统时钟的工作频率是一致的(有一种特殊情况:DDR总线的数据速率是时钟频率的2倍),一些高速传输总线(PCIeUSB3.0等),时钟信息是通过编码嵌入在数据流中,虽然我们看不到有单独的时钟传输通道,但其工作仍然有特定的数据速率

——我们在后续《PCIe总线基础》专题中扩展分析。

但是在同步电路中如果要想得到稳定的逻辑状态,对采样时钟和数据信号之间的时序是有要求的;举个栗子,如果时钟上升沿正好对着数据信号的跳变区域附近,就可能采样到不稳定的逻辑状态。所以为了得到稳定的逻辑状态,通常要求如下图所示;

1. 在采样时钟有效边沿到来时,被采样数据信号已经提前建立了新的逻辑状态,该提前的时间称为:建立时间(Setup Time)——ts

2. 在采样时钟有效边沿到来后,被采样数据信号还需要保持在这个逻辑状态一定时间,以保证采样数据的稳定,这个时间被称为:保持时间(Hold Time)——th

3. 建立时间(ts)和保持时间(th)时间加起来的时间称作:建立/保持时间窗口;这是接收端对于信号要保持同一个路基状态的最小时间要求,如果数字信号的bit宽度小于建立/保持时间窗口,数据信号就不可能同时满足建立时间和保持时间的要求,所以接收端对于建立/保持时间的窗口大小,实际上决定了电路能够工作的最高数据速率。另外,输出端的信号边沿的陡缓,输出信号幅度偏小,信号和时钟的抖动以及信号有畸变等因素都会使得建立时间和保持时间变小,所以最高数据传输速率与发送芯片和接收芯片以及走线都有关。

——一般情况下工作速率高的器件,只需要很小的建立时间和保持时间就可以保证电路可靠工作了,而工作速率低的器件则要求比较长的建立时间和保持时间。

——建立/保持时间是总线时序设计的最基本要求,是总线可靠工作的基础

2,并行总线与串行总线

虽然现在数字芯片的功能集成度越来越高,举个栗子:手机处理器集成了DRAMFlashGPU等等,但只要需要与外界有信息交互(与外界没有任何信息交互的系统是没有用处的),则必然需要总线来实现该芯片与其它功能模块之间的互连。而根据数据传输方式的不同,可以将总线分为:并行总线和串行总线。

2.1 并行总线

并行总线是数字电路总最普遍采用的总线,这类总线要传输数据线、地址线、控制线等等(并行传输);举个栗子:如果传输8bit数据宽度,那么需要8根数据信号线;除此之外,如果要寻址不同的地址空间需要很多根不同的地址线的组合来代表不同的地址。典型代表是多年前非常常用的LocalBus,如下图所示。并行总线最大的好处是:总线逻辑时序比较简单,电路实现相对比较容易;但它的缺点也非常明显:信号线数量太多,占用大量的管脚和布线空间,器件以及PCB板尺寸难以实现小型化

对于并行总线来说提升数据传输速率有两种方法:1,提升数据线位数(8bit16bit32bit64bit);2,提升数据速率(133Mbps266Mbps533Mbps等)。总线吞吐量 = 数据线位数 x 数据速率。以PCI总线为例,其最早推行的工作时钟是33MHz,数据线位数是32bit;后来为了提升总线速率,将数据宽度扩展到64bit,工作频率提升到133MHz;此时总线吞吐量  = 133MHz * 64bit 1GBps;但是随着人们对总线吞吐量更高的要求,并行总线的方式遇到了很大瓶颈:

1. 芯片尺寸和PCB布线空间受到限制,64bit已经达到了极限;

2. 64bit使用同一个采样时钟,要求64bit数据信号都满足建立/保持时间要求(64PCB走线要求精确等长),随着总线工作频率的越来越高,对于等长的要求就越高,这是非常难以实现的;

3. 并行总线1n的结构,造成了信号质量的恶化(总线各设备节点的传输线阻抗不连续,造成信号反射),进一步限制了总线工作频率的提升。

4. 并行总线是1n的结构,一条总线在某一时刻只能被1个设备所占用,总线带宽被所有设备所共享(并行总线是共享总线),降低了单个从设备的带宽。

2.2 串行总线

为了解决并行总线的这些问题:占空器件和PCB尺寸过大,总线吞吐量受限等等。随着芯片技术的发展和速度的提升,越来越多的数字接口开始采用串行总线。串行总线指的是:并行的数据在总线上不再是并行的传输,而是分时复用在一根或几根信号线传输。举个栗子:并行总线传输8bit的数据宽度需要8根数据线,而将这8根信号线上的数据分时复用到一根信号线上,就可以大大减少信号线数量,也不需要考虑信号线之间的等长关系。

——采用串行总线后,单根信号线上要传输原来多根(8,16,32根等)信号线上的数据,所以串行总线信号速率相应的要比并行总线速率要高很多;举个栗子:PCI总线上单根信号速率是133Mbps,而PCIe总线上单根信号速率是2.5Gbps5Gbps8Gbps

串行总线数据速率提高了之后,必然带来了更严峻的信号完整性问题;对于传输线的阻抗连续性(阻抗匹配),线路损耗和抖动的要求更高了,如果不加注意就很容易产生信号质量问题。所以高速串行总线的设计对于硬件工程师来说是一个重大的挑战。

2.3 单端与差分信号

我们已经学习了《电平设计基础》,在该专题中详细地介绍了单端与差分信号。

单端信号是指:用一根信号线的高低电平变化来进行01数据的传输,该高低变化是相对于公共参考地平面的。单端信号的输入/输出结构简单(如TTL/CMOS)、集成度高、功耗较低,所以在数字电路中有非常广泛的应用。

随着信号传输速率的增加,为了减小信号跳变时间和功耗,信号幅度需要不断的减小;因为信号幅度减小意味着对信号边沿斜率要求的降低,就不需要那么强的电流驱动能力了;举个栗子,3.3V电压幅度的边沿时间是10ns,那么其边沿斜率是0.33V/ns,而1.2V电压幅度边沿时间是10ns,其边沿斜率是0.12V/ns,电流驱动能力线性减小。所以我们看到单端信号的电平的发展趋势是越来越低:3.3Và2.5Và1.8Và1.5Và1.2V

——信号跳变时间(边沿时间)小,那么数据速率才能提高;根据负载的RC充电模型(具体参考《逻辑门电路高速特性》相关章节),在相同幅度下越小的边沿时间,那么需要更大的电流驱动能力(功耗更大);举个栗子:1MHz3.3V幅度信号,边沿时间按照10%周期计算是100ns,而100MHz的边沿时间则是1ns;那么如何能将边沿时间从100ns提升至1ns么?就需要更强的驱动电流,使得信号电平快速抬升。

然而信号幅度的减小所带来的问题是噪声容限的降低,信号线传输距离受到限制,对传输线的阻抗设计要求越来越高,而且更容易受到串扰的影响。单端信号电平很难再更低下去了,同时说明单端数据传输速率也很难得到更大的提升。而解决方案,胖友们都已经知道了:差分信号。

差分信号是指:用一对反向差分线进行信号传输,发送端采用差分的发送器,接收端采用差分的接收器。它保证了数据在高速率、长距离下的可靠传输。

1. 差分线对中正负信号是相互耦合的(紧耦合和松耦合两种,具体参考《特殊的串扰-差分信号》相关章节内容),所以对外部的串扰相对不敏感;

2. 接收端电平的判决是基于正负信号之间的差,所以共模噪声或地噪声对差分信号影响较小;

——抗干扰、抗共模噪声能力大大提升

3. 差分信号中的单端摆幅相对更小(几百mv,具体参考《电平设计基础》中各差分电平的输出门限),所以在相同输出电流驱动能力下,能够传输速率更高的数据;举个栗子:LVPECL/CML逻辑电平可传输超过10Gbps

4. 差分收发端的电路结构会更加复杂,系统功耗也相对更高。

——但基于上述的这么多优点,差分传输方式得到了非常广泛的应用:PCIeSASSATAUSBSGMIIGE等等。

2.4 总线时钟

上面说了,我们目前的总线大部分采用的同步时钟,总线数据的可靠传输依赖于准确的时钟采样。一般情况下发送端和接收端都需要使用相同频率的工作时钟(接口时钟)才能保证数据不丢失。总线采用的时钟分配方式大致分为三类:并行时钟,嵌入式时钟,前向时钟

1. 并行时钟,使用一路时钟和多路信号线进行数据传输,如:PCI总线,LocalBus等;这些总线工作时,数据的发送和接收操作都是在时钟的有效边沿进行。如之前所述,为了保证接收端在时钟有效边沿采到正确的数据,所以要求有建立/保持时间;所以这种总线对时钟和数据线的长度有严格的等长要求;而正是因为有该限制,导致了并行总线时钟频率很难超过几百MHz

2. 嵌入式时钟:系统的时钟信息通过数据编码的方式嵌在数据流里,省去了专门的时钟走线;信号到了接收端,接收端采用CDRClock-Data Recovery)电路将数据流中内嵌的时钟信息提取出来,再用这个时钟进行采样。

1, 为了将时钟信息嵌入到数据流中,需要对数据进行编码;

——举个栗子:8b/10b编码,64b/66b编码,128b/130b编码,曼彻斯特编码,以及对数据进行加扰等。

2, 嵌入式时钟不需要单独的时钟走线,各对差分线可采用各自独立的CDR电路,所以差分线对之间的等长要求不严格;

3, 嵌入式时钟的提取关键在CDR电路,如下图所示,其通过用一个PLL电路实现,可以从数据中提取时钟;

——时钟恢复电路PLL环路带宽设置不同,对不同频率抖动跟踪能力也不一样;一般PLL带宽设置越窄,恢复出来的时钟越纯净,但抖动跟踪能力越弱,以该时钟为基准对数据采样会看到信号上的抖动越多,信号的眼图越恶劣;如果PLL带宽设置越宽,则抖动的跟踪能力越强,恢复出来的时钟和信号抖动越接近,用该时钟为基准对数据采样时看到信号上的抖动越少,信号的眼图越好。

1CDR中的PLL电路能够很好地跟踪上数据中低频抖动,所以适合长距离传输;

——低频抖动是数据速率的缓慢变化,该变化的频率低于环路滤波器的带宽,则输入信号抖动造成的相位变化信息就可以通过环路滤波器,从而调整VCO输出频率。

——恢复出来的时钟和被测信号一起抖动(同步抖动),所以时钟相对于信号(时钟采样信号)的建立/保持时间不会有太大的影响

2CDR由于受到环路滤波器带宽的影响,高频抖动会被PLL电路过滤掉,因此恢复的时钟中不包含这些高频的抖动成分,所以数据线上的高频抖动会对接收端采样产生较大的影响。

——输入信号中抖动的频率较高,其造成的相位变化信号不能通过环路滤波器,则VCO输出时钟中就不会有随输入信号一起变化的抖动成分。

——恢复时钟没有高频抖动而信号存在这些高频抖动,所以信号相对于时钟的建立/保持时间会有很大的影响

4, 嵌入式时钟的缺点是:增加了电路复杂度,而且数据编码导致降低了总线效率。

——举个栗子:8b/10b编码的数据传输效率是80%;那么5Gbps速率的总线数据中只有4Gbps是有效数据

3. 前向时钟:对总线吞吐率和效率要求更高的应用,采用的新时钟分配方式,它得益于DLLDelay Locked Loop)电路,它最大的好处是可以很方便地用成熟的CMOS工艺大量集成而且不会增加抖动;如下所示为前向时钟的典型应用:总线有单独的时钟传输通道,而不同的是内部有DLL电路,其工作时可以有一个训练的过程,接收端DLL在训练过程中根据每条数据信号线的时延情况调整时延,从而保证每条数据线都有充分的建立/保持时间。

——DDR DRAMCLKDQS之间采用的是DLL同步方式,而DQSDQ之间是要求保持精确等长,属于前向时钟的一种,后续在《DDR DRAM总线基础》中再来详细介绍。另外还有QPI总线等等。

1, 前向时钟总线因为有专门的时钟通道,不需要对数据进行编解码,所以总线效率更高;

2, 线路噪声和抖动对于时钟和数据线的影响是一样的(一般在同层、同区域走线),所以系统的影响可以消除;

——对高频抖动的敏感度相对于嵌入式时钟要小很多。

2.5 串行总线编码

串行总线在高速链路传输中对并行总线具有压倒性的优势,但是一般CPU/DSP/FPGA等内部跑的还是并行总线(32bit/64bit/128bit等),数据处理的最小单位是Byte,那要将一个或多个byte的数据通过串行的方式传输出去,必须要对数据做特殊处理。

最简单的方式是:发送端的并行数据直接转换成串行数据发出去。举个栗子:位宽为8bit,速率为100Mbps的数据,通过Mux芯片将8bit数据时分复用到1bit的数据线上,相应的数据速率提高到800Mbps,当数据信号到达接收端后,再通过De-Mux芯片将串行信号分成8路低速数据。这种串并转换的方法不涉及信号编解码,结构简单、效率较高,但需要精确的时钟同步以控制信号的串并转换,所以需要专门的时钟传输通道,一旦出现较大的抖动则会造成串并转换的错误。而且这种简单的串并转换方式,由于没有经过任何编码,信号中会出现较长的连续01,因此信号需要采用直流耦合的方式(直流平衡点根据数据会发生变化),对共模噪声比较敏感。

——这种没有经过任何编码的并串转换,适用于短距离的高速互连。

目前大多高速串行数字接口采用的是先编码再做串并转换的方式,编码方式如上所述有很多种;我们以8b/10b为例来进行介绍。8b/10b编码就是:8bit的数据先通过相应的编码规则转换成10bit的数据;因此,如果原始数据速率是800Mbps,那么物理链路上的串行数据速率就是1Gbps8b/10b编码方法最早由IBM发明,后来称为ANSI标准的一部分,在通信和计算机总线上得到广泛的应用。经过8b/10b编码后有几个最大的好处:

1. 正常传输的数据中会有较多的连续01,而经过8b/10b编码后保证数据流中不会超过5个连续的01;因此,数据中有足够多的跳变沿,接收端可以从数据流中恢复出时钟,而不需要专门的时钟传输通道

2. 数据在对当前的Byte进行8b/10b编码传输时,会根据前面历史传输的数据中正负bit数量来选择使用哪一组编码,从而保证总线上的正负bit数量在整体上是一样的,因此直流平衡点不会发生大的变化,所以编码后的串行总线可以采用AC耦合的方式

——8bit对应256个数据组合,10bit对应1024个数据组合;在8b/10b编码规则中,每18bit的数据都对应210bit的编码数据,可提供编码器根据规则选择,而选择的规则是线路上发送的1或则0的数量;举个栗子:8h03对应10b 11000101110b1100010100,两个10bit数据的差别在于01数量是不同的,如果在发送8h03之前数据线上传输的0数量较多,那么8h03将编码成10b 110001011。如下图所示。

3. 8bit原始数据对应有256种组合,那么每个原始数据对应210bit编码则有512种组合,而10bit理论上有1024种组合,所以有很多组合是无效的数据,这样当接收端收到这种无效组合数据时就可以判决数据无效,有利于数据的检验

——这种数据检验只是简便的方法,最终还是需要通过协议上的CRC校验来实现数据有效性的检验。

4. 10bit数据表示的1024个组合中,特殊的组合数据可以用来作为控制字符,代表特殊的含义,在初始化或数据包头进行发送;举个栗子:K28.5码型(后续《PCIe总线基础》中详细介绍)。

5. 8b/10b编码最大的缺点在于编码过程中造成了20%的编码开销(有用数据只占到传输数据的80%),所以对更高速的传输来说这个开销就太大了,所以PCIe 3.0就采用了128b/130b的编码方式(开销更小),结合更加复杂的扰码方法来实现直流平衡和嵌入式时钟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值