已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文章“直流串行8B/10B传输代码”的版权声明。IBM公司的研究和发展杂志,27卷,5号,1983年9月。 由国际商用机器公司于1983年授予版权。在没有专营权批准的情况下,复制印刷作私人用途有以下规定:(1)任何复制版本均不可更改。(2)该刊的介绍和IBM的版权声明在第一页。如果没有计算机或其他信息服务系统的允许,除了标题和摘要,文章的其他任何部分不得复制且没有分发版权自由。其他部分的翻版必须得到主编的许可。IBM研究与发展杂志27卷,5号,1983年9月 A.X.Widmer P.A.Franaszek直流串行8B/10B传输代码本书介绍了一种面向字节的二进制传输代码于实现。此代码特别适合于高速局域网和类似的数据链接,其中的信息格式由数据包,可变长度,从十几可达几百位字节。建议每个传输码将原字节转换成有约束的10位二进制序列,在8B/10B编码已接近理论极限的情况下,这种二进制序列具有优异的性能参数。运行的最大长度为5,数字总和的最长变化为6。在编码位的一个错误,最多能产生解码领域中的一个长度为5的错误。通过将编码器分割成5b/6b及3b/4b附属编码器,就可非常简单地完成代码实现。1.介绍本文提出了一种传输代码,十分适用于高速局域网和电脑链接。这种链接要求以较低的成本相对简单、可靠的收发器,同时选择一个好的代码才可以显着促进这一目标。迅速发展的光纤技术有望在这方面得以应用。除了一些特殊情况下,数字光纤连接一般操作二进制开/关,而不是三元模式(由于更好的光学信号与噪声容限和更简单的接收器电路)。为此,我们只谈二进制代码。一个没有直流的代码,或一个具有恒定的直流分量而不考虑数据模式1的代码,为光纤和电磁线链接带来许多优点。高增益光纤接收器需要一个前端附近的AC耦合阶段。另外,发射器的水平,接收增益和均衡控制的简化,如果这些可以在平均信号功率(特别是在较高的数据速率)的基础上,可以提高控制精度,。直流恢复电路就是前面所述的控制问题的替代解决方案,但电路容易失去与提高数据速率的精度。附加额外的东西需要可靠的时钟恢复和特殊控制字符的编码,如划定信息包的开始和结束。高速率的数据可以使字节率保持恒定,同时减少逻辑在信号传输速率,有时附近的技术限制设置操作电路的数量。如果多余的东西以一个恒定的速率添加到每个字节(相对于选择性,模式依赖位填充),这些目标可以非常容易地实现。一个不断扩大的因素也有利于其他领域的传输系统,如差错控制,闸流管的缓冲,地址扩展或替代设计和时钟设计。现代通信体系结构通过打包定义的的地址,信息和差错控制信息的结构形式以实现数据传输。在这些领域中的数的位数和整个数据包每个数字通常是一个八位的倍数。缓冲器和相关接口也是字节为导向。在这些系统中字节编码具有与包边界天然的亲和力和字节时钟速度优势,使其容易与低转速对系统的并行端逻辑的实现。否则,有吸引力的二进制代码,如5B/6B码2,不要轻易使用面向字节的结构。数据包结构难以适应时钟界面,同时增加了高速门数。考虑到这些因素,并寻找一个相当有效的代码,有人会首先倾向于审查一下8B/9B代码的可能性。但是,要实现这样的代码,它的实现和性能参数(比效率除外)将受到损害,在很大程度上,可以与8B/10B编码得到的结果比较。追求总体目标与我们相似,Kiwimagi3提出比较宽松性能约束的4b/5b代码。我们的方法整合成一个复合8B/10B码(一个3B/4B的代码和一个5B/6B的代码)。一个5B/6B编码和3B/4B独立运行格里菲斯已经描述2。我们修改了表来提高性能参数和促进执行,我们也定义了同步,或逗号,字符集,以及其他特殊的非数据字符,我们稍后介绍。最后,我们建立和经营的整个编码器非常简单实用,实施和证明它可以在一个简单的接口与集成技术相对缓慢。本文是对前面同一代码的简短文章的详尽阐述4。本文第2部分提供了一般的编码约束的描述,以及替代编码的讨论,通过讨论提出了这里的代码结构。第3部分详细界定提出的8B/10B码。第4部分介绍它的性能参数和代码的功能。最后,第5部分对待执行事进行了描述。2.频道限制和编码方案通道限制如前所述,传输的信号流下来的通道必须受到限制,以便信息转换及时恢复,同时直流频谱分量很少或没有存在。通过测量直流以及直流数值附近的能量得到数字变量总和或DSV5,具体是通过如下的方式获得的:每个通道符号(相当于一个单位间隔期间可能的信号波形)被分配一个对应直流分量部分的代数值。DSV被定义为运行中编码的数据流变化的总和,比如最大减去最小值。对于二进制或两个级别的代码,1和0位一般都分配到1和-1。接下来,最高DSV通过符号u降级。请注意在运行水平和数是U1。表1信道容量C的例子对于恒定不变的周期信号,运行长度定义为信号流中出现的次数及周期数。对于二进制代码,运行长度是编码后的连续1或0。有意思的是是最短的(X)和最长(Y)的运行长度的出现。这两个参数,常常以(d,k)的形式给出,其中满足d=x - 1和k=y - 1。这种(d,k)的表述给出了变化信号的最低(d)值和最高(k)值。例如,对于(0,3)代码,任何信号可以遵循不超过三个连续的相同的符号,4为最长运行数。数字传输设计的代码通常有一个参数d为0。另一方面,磁性记忆的首选编码通常有参数d的值大于或等于1;即转换之间的最小间距大于符号间隔。理论极限为带有一个(d,k)运行长度极限以及大量u的DSV编码就是一个很好的为输入受限的通道编码例子。这儿是三种标准(1)信道容量C(代表最高每通道符号编码比特率),(2)编码器的复杂性,以及(3)误差传播量。表1列出了信道容量C的一个用(d,k,u)的约束样本。多种正式的方法可以构造这种编码。参考文献5-13可作为进入文学条目使用。据了解,只要预期的编码率不超过长的通道容量,即可获得代码。此外,即使是在这里讨论的限制类,其中解码器状态必须独立(5),以避免误差的无限传播,它最近被证实10与此属性映射总是可以达到的。因此,理论上,它有可能获得一个(0,2,5)率4 / 5的代码。然而,与这些参数编码器和解码器可能不相符合,因为编码的复杂性和误差传播是必须考虑的,以及其他要求,如特殊的信号序列。表2不同的代码规范约束的复杂性m表3 5B/6B编码其中代码复杂性的一个分类方式是按照信息(源)字节数量分类,必须由编码器在选择检查时,用一个有界时延码8,9 选择一个字。举例来说,假设,该比率是的S / W,其中s位字节同时被编码为长度为w的字,用一个参数m代表了S -位组,当选择一个字传递时需要在编码过程中进行检查。考虑米=2的情形时,S =4,和W=5,m的值表示的编码过程的每一步需要两个4位数据组检查。表2给出了在各种限制和比率为4 / 5的情况下m的最低值。注意例如,至少有3个4位组必须在每一个(0,2,5)码的步骤检查。这里所描述的代码在参考文献5,12所讨论的范围之外,因为它是由长度和编码率并不统一得分块组成的。然而,这些变化是周期性的,因此新的代码可以被看作是一个固定长度的代码与S= 8和w= 10组合而成,其特定的限制条件为D=0时,K =4,和U= 6的。构建这样一个固定长度的代码可以通过首先取得主状态的集合而得到,具体描述如下:给定一个有限状态机来描述通道限制,以及一个主要的状态集合,有足够的代码字终止于这一集合。有种算法可以找到这样一些代码字集合和相关的代码字,这一算法在 5中有详细描述。一个相应的算法可以制定这里讨论的分区块的代码。所不同的是,在5B/6B代码中使用的编码字必须终止在3B/4B代码的编码状态,反之亦然。因此分区块代码可能是一个非常简单的理论延伸。上面讨论的编码技术可以被视为是框架结构和所涉及的各种映射之间存在无约束的数据和编码器输出。然而,设计一种代码为指定应用工程涉及许多具体的例子来说明。为阐明设计选择的原因,一些设计的替代选择,被认为是随后的一些描述。.编码方案1. 被选中的分区块代码有参数d = 0,k = 4、u = 6,以及4 / 5的比率,它们是通过比率5/6与3 / 4的代码组合而成。误差传播是限于5位。这就意味着检测中一个孤立的附加误差最多导致5个错误比特解码后的资料流。因此一次编码最多需要检查5源时间。2. 另一种可能性是没有一个先行的标准分组码,在参数d = 0,k = 3、u = 5,s = 8,w = 10,m = 1的情况下.这里八位原字节必须检查是否选择了一个代码字。一般误差传播是8位。在运行长度和DSV中比方案1轻微改善不被认为足以证明是错误传播的增加和编码器和解码器的复杂性大大提高。3. 在k = 4,u = 5,s = 4、m = 2时,调查的第三个可能性,是可变长度代码的构建9成为了k值、u型、误差传播,和复杂性最好的折衷。代码可以设计出这样的最大的数字代码的位检查限于5。5位误差传播(例如在代码的实际选择)。基于事实很少有合适的冗余可用于映射特殊字符,使得需要一个编码器的电路的数量将会出现几个缺点。另一个不利因素产生于数据包末尾的可变长度。3 8B/10B 的编码图.概览 图1显示一个通信适配器接口组成的ABCDEFGH八个数据线路的大写字母符号(注意),一个控制线路K、和一个时钟线BYTECLK操作字节率。K是控制管线表明是否有通过H,H代表数据或控制的信息。进行编码的目的,每个输入的字节分为两个子块。五个二进制线ABCDE编码成六个二进制线abcedi(注小写的符号),接下来是5B /6B逻辑功能和差距的控制方向。同样,这三个位元FGH 被编码成fghi。数据块的差距是块里1和0的数量的差距;正和负的差额分别指过多的1和0。对于6B =abcdei和4B = fghj子块许可的差距是0,+ 2或-2。编码规则要求非零差距块的极性交替。为了这个目的, 6B和4B子块之间不作区分;也就是说,6B块里过剩的两个1可以由6B或4B里两个多余的0有效地补偿,反之亦然。非零差距代码点被分配到一对互补源数据点。该编码功能产生它们中的一个;如果它违反了极性交替规则,则在编码开关处将完成的分块进行翻转。测定6B的极性和差异,接下来是4B的相应的操作,然后运行差别参数将其传递给下一字节的编码。大多数的编码子块是零差异,也有一些例外的,即独立运行的差距。它们没有一个补充。通常十个编码线abcdeifghj与其串行连接接;a必须先最先传输而j最后传输。代码定义 8b/10b编码是通过5b/6b编码器实现的,按照编码方案和表3的规则,5b/6b编码器将数字进线中的输入字节ABCDE编码为 数据线上的abcdei。如表4所示,在3b/4b编码器里当输入字节FGH时到达数据线是变为fghj。5b/6b编码 表3的第一列以“名字”开头,给出了输入线里ABCDE 32个等价的十进制,假设A是低位和E的高位。对于一般的数据(D.x)其K线必须保持0状态;少数代码点被识别为特殊字符的一部分而不是数据;这样的代码点名为D/K.x或者K.x并在K线有X或1。为编码特殊字符,K线必须是1。图2 差别与时间的关系图。表4 3B/4B编码在“分类”栏中,L04意味着在ABCD里没有1但有四个0;L13意味着在ABCD里有一个1和3个0,等。字母“L”表明该逻辑函数或分类是5B /6B编码器的一部分。标有“p”的有类似的功能,它定义了解码(表6)。右边的着重符号用来描述互补;E指补充的E,符号(.)代表的逻辑与功能。在左边“a b c d e i“标题下面列出所有代码点,它们由输入的ABCDE通过5B/6B的逻辑函数直接生成。该编码表设计,使最小的比特数必须通过编码器改变,从而使这些需要的变化可以划分为几个适用于少数群体的代码点。表3中的所有位都是黑体字,需要由5B/6B逻辑函数(而不是完整的分块互补)来操作,假设额外的数字“i”与正常值0都是添加的。当输入符合左边列出来的逻辑情况时,它也在“位的编码”下边,然后黑体字位改为在左侧“a b c d e i”列中显示的值,例如,如果L04成立,则B和C位是被驱动到1,如图所示为D.0和D.16。在“位编码”栏的第二个入口D.16(L04.E)和D.31(L40.E)适用于i位数字。对于没有分类的入口,ABCDE位不变被翻译成a b c d e的和附加的i位,其值为0。“替代abcdei”一栏右边的表3显示了输入ABCDE的补充,这些输入已经替换的代码点。单个的6B(和4B)子块完全符合差别规则。在所有子块边界运行的差别,要么是+ 1,要么是-1,从不会是0(见图2)。柱“D 1”表明了右边临近子块所要求的运行差别。“D - 1”一栏里的x就意味着(D - 1)可以+或-。在这个代码里,子块边界运行的差别的极性与最近的非零差距块的极性一致。作为一个表3的第一行D.0编码的例子:如果运行差别与(D - 1)= +刚好匹配,编码器的将输出011000,否则整个分块补充到100111。“D0”一列表明了编码分块左侧的差别,它的可能取值为0,+2或-2。对于在表3和4右侧替换代码点的差别是准确的,这些是它们左侧的补充,并不显示出来。正如位编码,该编码器的硬件从输入的ABCDE和K值直接决定的一个子块的差别。代码字的各种逻辑函数对于差别的要求显示在表3中的单独一列。在表3,D.7行,一对零差距6B型分块(111000和000111)被分配到一个单一的数据点,同时具有差距约束的条目,它们与适用于非零差别分块的相类似。这种编码功能减少了最大数字总和的变化的值,从8变到了6,同时与3B/4B编码器在表4(1100和0011)D/K.x3中类似的规则相结合,消除了长度为6的所有序列,其中大部分的运行长度为5。将一对互补零差别分块分配到单一的代码点的技术与所有4B类分块是一致的,它是特殊字符的一部分,如表4和表5所示的K.28.1,K.28.2,K.28.3,K.28.5和K.28.6。3B/4B编码 表4遵循公约和表3的注释。在表4中某些行按差别的分类有两个不同的条目,习惯上,左边的分类是条目D -1,右边的是D0。我们对D.x.P7(主要7)和D/K.y.A7(候补7)的编码给出解释。D.K.y.A7代码点用来消除运行长度为5的e I f g h序列。在满足下面的条件时,A7代码替换P7编码 (e = I = 1 ) (D - 1 = - ) OR(e = 1 = 0) (D-1 = + ) OR(K = 1 ) 。注意,每当K = 1时,FGH= 111总是被翻译为f g h j= 0111或它的补充。该D/KyA7编码可以产生一个运行长度(RL)为5的序列,一直到其边界即随后的ghjab位,但是,这个序列的前面是运行长度只有1位f,只有一个例外。如果开头是特殊字符K.28.7,即一个运行长度为5的序列前面是另一运行长度为的5 cdeif序列。对于这些区别的含义,看特殊字符部分。零差别的4B子块K.28.1,K.28.2,K.28.5和K.28.6与 D/Kx3在互补方面处理相类似,以生成与字节同步的特殊字符或逗号。特殊字符 特殊字符在此是指超出256个常规代码点以外的额外代码点,它们需要编码为一个字节的数据。它们通常用于建立字节的同步,编码数据包的开始和结束,有时编码信号的中断,复位,关闭,闲置和链接诊断等控制功能。表5所示的十二个特殊的字符集,可以按照表3和4中定义的编码规则来实现。它们都符合一般编码限制,如最大运行长度为5以及最大的数字变化总和为6第一组中的8个特殊字符K.28.x, 表5将其视为其他数据,abcdei = 001111或110000。而我们在数据并不能得到c = d = e = i。第二组的四个特殊字符Kx7,在表5中difghj = 101000或010111。这与数据的区别是FGH被编码为0111或1000,在数据中它们将被1110或0001所替代。表 5特殊字符(K=1).表 6 6B/5B 解码.逗号和分组分隔符 一个逗号14指示合适的字节边界,并且可用于即时获得或者字节的同步请求验证。为了更有用,逗号序列必须是单数,而且必须相对于字节边界有一个统一的定位。在发生错误的情况下,逗号不能出现在任何其他位字节的位置,无论是在字符间还是通过字符之间的重叠。此代码的三个字符(k.28.1,k.28.5 k.28.7)有逗号属性。它们标有黑体的星号。这三个字符是最合适的分隔符,它们标记信息包的开始和结束。此代码中单独的逗号是运行长度(RL)为2的一个序列或者更多的是以数字b结束的序列,其后紧随着运行长度RL为5的c d e I f,其中第二个序列不准许RL2的另一个逗号序列。换句话说,如果两个或三个RL2/RL5序列重叠,只有第一个和第三个被确认为逗号。此规则是必要的,因为在某些情况下K.28.7逗号后面是另一个运行长度RL为5的g h j a b序列。一组连续K.28.7字符序列将产生运行长度为5的1和0的交替,这对于同步的字符是无用的,而对于同步位时钟是较弱的。出于这个原因,相邻的K.28.7字符是不允许的。尽管这个限制,K.28.7逗号往往优于其他两个,因为在同步的状态下,单个错误不能够由数据产生一个有效的K.28.7。空闲序列 我们必须区分的通讯的链接与不链接,这些链接维持从数据到包到数据包的字节同步。在空闲状态维持一个高的传输密度,以减轻由接收时钟对字节同步的采集。因此,当数据包之间的字节同步不能保持时, 1序列和0序列的交替是可取的,可以通过D.21.5或D.10.2输入编码器生成的。为了1和0的数量的精确平衡,结果差距必须向前传输,并且在任何偶数位数字编码后,新的数据包才可以开始。然而,如果有几个字节长的数据包,而且运行的闲置序列差距被限制为-1,0或1,则开始为奇数数字将降低噪声容限为一个微不足道的量,通过序列前面添加0或1,这分别由先前的数据包是否以正的或负的差距结尾而定(见图2)。如果字节同步从一个数据先前传输到另一个数据包,用字符来填充数据包间的间隙。一个固定的K.23.7,K.27.7或K.29.7字符流将在每100位数字间隔内产生六十此转变。每个字符被识别为数据,但不能从空闲序列中得到同步字节,除非一个逗号字符序列不断插入。一个连续的K.28.5逗号序列在50的数字间隔产生一次转变,这可以作为替代方案。4.代码评估.数据总和变化与差别在此代码之间的任意点,最高的DSV为6。有时的DSV是引用参考特定位位置,如一个字符的结束,通常会导致一个较低的数字。任何两个i/f或j /a之间最大DSV的界限是2位。如前所述,该差距指定了数字定义块里1位和0位之间的不同,或从长期运行中的数字之和的平均值瞬间偏差的差异。所有单独的6位和4位分块和完整的10位字符的字母都有5个1和5个0,6个1和4个0或4个1和6个0。这样对差异度的划分是有益的,正如图2所示的时间函数或数字间隔差别,其中每个1位都是由一条超过一个数字间隔的线段和一个明显上升的45度角完成,相反,每一个0位是由一个下降线所代表。举例说明,最左边的j/a位的边界以差值+1开始,一个110100位的模式在i/f位边界将导致上轮廓差距为+1。所有数据字符和表3,4和5中的特殊字符在图2中被替代。黑体的线条描绘了两个互补的逗号序列。从图中可以明显看到,任意点之间的最高的DSV为6。由于差值是有界的,代码对任何直流分量都是自由的。运行长度图2显示了运行长度为5的序列的可能位位置是c, e, g, j。然而,检查表3可以看出,并不包括6B型字母,而且代码点a= b = c= d和c =d=e=i被限制为K.28.x特殊字符。这些增加的制约因素使任何以j开头运行长度为5的序列成为不可能,并且限制那些表5中以C开头逗号序列的序列表。以e开头的运行长度为5的数据序列通过表4中替换的代码点D.x.A7被排除,而这又是唯一以g开头的运行长度为5的序列发生器。但是请注意,该序列前面通常是运行长度为1的序列,除非与K.28.7逗号重叠。除了在运行长度的极端,最高或接近最高运行长度序列簇也是有意义的。数据序列的最低过渡密度是平均每100个时间间隔转换30次,而且可无限期地保持下去。.错误检测第一个方面要考虑的是对错误检查冗余代码挖掘。第二个方面是要探讨线代码中的错误如何相互影响,以及循环的检测对错误检测的影响,它用于未编码数字的检查。用外加的8B/10B代码进行错误检测 在这里我们并不关心与个别字符的正确性,只考虑整个数据包的有效性。每个数据包都以分隔符开始和结束。对于以这种方式定义的数据包,开始和结束字符都至少包含一个非零差距子块,用来防止差值传输到另一个数据包而发生错误。有效的数据包里1和0的数量的差值是0,+2,或 -2。一般情况下,除非一个分隔符恰好补充了噪音,任何一个数据包里的1的错误个数不等于0的错误个数都将产生错误,而这种错误模式可以被检测出来。除了这个一般的规则,很多其他的错误也可以被检测出来,因为差值的交替规则,特别是如果错误数字相距甚远。还有一些错误不改变1和0的数量,但生成已定义表外的一些非法字符,用它们可以检测到错误。要实现错误检测方案,需要检查5部分:(1)一个包的所有6B和4B条分块的差值必须是0,+2,或者-2之一,(2)非零差距块必须交替极性,(3)D.7 和 D/K.x.3必须遵守差值规则,(4)有效的数据包必须在指定的分隔符两端,(5)此外,满足以下条件的都违反了编码规则,都可以归结为错误:a = b = c =d,p13.e.i,p31.e.i,f = g = h = j,e = i = f = g = h,i e = g = h = j,(e = Ig = h = j )(c = d = e),P31. e. i. g. h. j,P13. e. i. g. h. j.注意:未定义的6B型和4B型子块给出了相当精确的错误位置。对于违反差值规则的错误,它的位置可以被确定在一定范围内,这主要取决于数据的模式。向前的错误纠正方案对错误定位是很有帮助的。在上面有关逗号的一段中,我们提到,有合适的同步接收器,任何一个单独的数字错误到不可能生成K.28.7这样的分隔符(0011111000或其反码)的编码数据。为了验证这种说法,而且考虑到没有数据代码点有c = d = e = I 这样的特点;因此,至少有一个数字错误一定会生成a b c d e I = 001111,例如从001110或001101。此外,在数据中f g h j =1000,它要求e = I = 0 ;但是,这些6B型分块都不能满足要求,这些子块可以由一个错误改变为001111,因此,在4B子块需要有第二个错误,例如,将f g h j = 1010变到f g h j =1000。反过来也是如此:单一的错误不可能将K.28.7转化成数据的代码点。单一的1的错误以及与其互补的单一的0的错误属于简单的错误类型,这种类型可能逃脱代码错误检测。当仅限于一个单一的子块时,这种互补性的错误可单独转换成另一种有效的代码点。子块里单独的错误将引起差值的改变。因此,一对互补的数字错误可能更改两个子块的差值,这与极性交替规律一致,这样的错误不能由代码检测到。用8B/10B代码循环冗余校验 一个块的代码中编码的数字线里单独的错误(或较短的错误脉冲)在解码中可生成一个较长的错误脉冲。对于这里提到的8B/10B代码,线位错误的影响将被局限在6B型或4B型子块中,在6B型子块中产生的错误脉冲长度不超过5,而在4B型子块中产生的错误脉冲长度不超过3(从一个单线数字错误)。这源自一个事实,即每个6B型或4B型子块是被唯一编码,基于数值属于子块,以及它与差值和其他参数没有任何关联。唯一的例外是以下特殊字符K.28.1,K.28.2,K.28.5,K.28.6,对其中f g h j的位解码依赖于a b c d e i位。不过,从这种不利影响是有限的,因为这些特殊字符通常只出现在相对于指定的位置即数据包的边界,而且通常不是由CRC覆盖。从前面第一段可以得出如下结论,如果为了使它有意义并且为了保证错误检测水平,CRC使用了这种代码应该至少能够检测出数字线上双重的错误。在最坏的情况下,数据线中一个双重的错误在解码后将各自产生两个错误脉冲。这些代码非常适合这种应用。彼得森和布朗15,定理8展示了如何为循环代码指定生成多项式,用电容检测两个错误脉冲。用16个校验位,两个总长度为10或更少的脉冲,就可检测长度为142个字节的数据包;24校验位可以实现高达36862个字节长的数据包的检测。图3编码器:5B/6B分类,L函数图4编码器:3B/4B分类,S函数图5编码器:差值的分类通常的CRC可以检测到任何单个有一定长度的错误脉冲,错误脉冲的长度不超过检测位数。这里用8b/10b代码描述,在已编码的数据中,任何长度为15位或更少的单个错误脉冲在解码后不能增长到超过16位。同样,长度为25位的错误脉冲解码后其长度不能超过24位,而长度为35位的错误脉冲解码后其长度不能超过32位。总之,对实际的所有数据包长度,可以得出一个结论,一个24位或更长的代码与固有误差的8B/10B映射的检测能力相结合,可检测到任何三个添加的误差的结合,前提是数据包开始和结束时的建立是正确的。然而,实际上很难提供有保证的错误保护。这是因为错误检测码的距离属性并不适用于一些情况,如数据包边界不正确的检测,以及寄生通道位的插入。这里,在给定的概率下,一个CRC可以被视为提供错误检测。如果设计得当,一个n位的CRC可以减少未检测到的错误概率,该概率用2-n来描述。对于n= 16,这个值为1.510-5。实际上8b/10b代码检测了大大超过一半的如上所述的随机错误类型,对于16位的CRC,这样的错误造成总体的漏检概率整小于10-5。这对于光纤传输来说可能是相当充足的,预计将有非常良好的噪声性能。5. 实现方面的问题一个8b/10b编码器、一个与其匹配的串并转换器,和解码器在200MHz的信号速率下操作时,它的建立和操作只是作为实验光纤连接操作的一部分。编码器和解码器被用在MECL10000系列电路16;虽然只有20兆字节/秒的速度,但最高速度几乎是器两倍,可测试最坏的门延时情况。所有触发器(FF)都属于正边沿触发类型。.编码器的逻辑电路编码器由字节速率时钟(+SBYTECLK)计时,这个时钟来自于发射器和串行时钟。每一个新的字节使时钟正向翻转伴后,数据源(未显示)做出响应,而与此同时寄存器输出的编码字节a b c d e i (表面的图7显示)都被更新。0.6个字节的周期后,源字节FGHK被读到FFs(图4),SBYTECLK的正向翻转,以及f g h j 编码位(图8)得到更新。此代码的结构是交错的,它简化了串并转换及并串转换的设计。图3显示了对应表3中基本分类编码器输入的一些输出。字母注释的解释请参阅第3节。表4是按照图4的电路进行分类的。F,G,H和K的输入被缓冲,目的是允许他同前面提到的串行接口时序交错。如图4所示,如果运行差值与i位的正负分别一致,-PDL6或-NDL6将在很低的水平。信号PLD6和NDL6的输出见图6。图5实现表3和4的差值分类。所有输入都来自图3和4,或数据源,除(L13.D.E),它可以在图7中找到。输出的助记符如下:P代表“正的”,N代表“负的”,S代表“发送器”(目的是与接收端类似的解码功能相区别),“D- 1”和“D0”分别指在表3和4中的一列,数字“6”将5B/6B编码和表3联系起来,数字“4”将3B/4B编码和表4联系起来。比如说,对于表3中“D-1”列任意一个带有正号的输入,+PD-1S6是在高电平,而对于表4中“D0”列任意一个带有负号的输入,+ND0S4是在高电平。在图6中,上面的FF在第i位的结尾紧跟着运行差别,而下面的FF在J-位后面紧跟着运行差别。右边的门决定是否改变,应用表3和表4中互补的代码点(基于运行差值和表5中进入的“D - 1“值的分类)。左边的门决定如何更新FFs的值,同时考虑到该分块D0的差值正被编码,以及在先前分块结尾运行差值。正如传输链路(L)上所看到的,第j位结尾的正的运行差值时,+PDL4再高电平。根据表3,图7显示了五位输入的a b c d e向六位输出a b c d e i的实际转变。异或门(异或)左边的门带来的表3中所有黑体字的变化。图8显示了3B/4B根据表4的编码。. 解码器逻辑电路该解码器及其分类的逻辑功能的定义见表6和7。这些表的逻辑电路的实现与编码非常相似,但更简单,因为它不依赖于差值。对于解码,i 位和J 位被丢弃,剩余字节需要按照表里黑体的0和1来补充。表6和7的差值分类只为错误检查。请注意,零差距分块的正确解码依赖于信号的极性,也就是说,编码器和解码器的信号极性不能随意改变。图6编码器:互补的控制图7 5B/6B编码 注:E=XOR图8 3B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东临沂市沂水县技工学校招聘教师8人备考题库完整答案详解
- 2026年春季水发集团有限公司校园招聘137人备考题库含答案详解(巩固)
- 2026陕西汉中宁强县妇幼保健院招聘24人备考题库附答案详解(培优a卷)
- 保温保冷作业安全技术交底
- 宿舍防盗演练脚本
- 2026四川天府演艺集团有限公司招聘1人备考题库含答案详解(培优)
- 2026年河北唐山市紧缺人才需求备考题库(8605人)及答案详解(真题汇编)
- 2026江苏南通师范高等专科学校选聘部分岗位中层干部2人备考题库附答案详解(能力提升)
- 2026江西省福利彩票发行中心及市级销售机构招聘编外人员14人备考题库含答案详解(研优卷)
- 2026广东惠州大亚湾第一中学诚聘校医1人备考题库及答案详解(名师系列)
- 2026届初中中考数学模拟试卷
- 2026哈尔滨兰兴资产运营管理有限公司公开招聘备考题库参考答案详解
- 2025湖北武汉市汉江集团公司面向集团内部招聘2人笔试历年难易错考点试卷带答案解析
- 框架结构住宅楼施工计划
- 2026江苏事业单位统考泰州市靖江市招聘42人考试参考题库及答案解析
- (一模)太原市2026年高三年级模拟考试(一)历史试卷(含官方答案)
- 江苏南京紫金投资集团有限责任公司招聘笔试题库2026
- 游泳馆安全生产制度
- 副流感病毒感染诊疗指南(2025版)
- (2026年)中医护理操作并发症预防及处理课件
- 企业信息资产管理清单模板
评论
0/150
提交评论