8b / 10b编码的目的是什么?


8

在USB 3.0的物理层中,有一个8b / 10b编码器

维基百科说这消除了直流偏移,而我正在阅读的教程

它是高速串行设计中的常见编码方案

在USB上下文中,这种编码的目的是什么?另外,此编码在其他类型的设备中还能提供哪些其他应用和好处?


在本教程的后面部分将对此进行解释。仍然好奇该编码还用于其他领域
。– Vorac

2
您能否详细说明他们的原因?
安迪斯·史密斯

Answers:


9

对于像8b / 10b这样的编码,简单的答案是确保编码的数据流至少具有一定数量的数据转换。如果不进行这种编码,则0或1的长流将倾向于看起来像试图通过通道发送DC。

同样的原理也适用于曼彻斯特编码,其中通过信道传输的净带宽是实际数据带宽的两倍。吹捧8b / 10b的优点是所使用的传输带宽比曼彻斯特施加的2X小得多。

由于多种原因,人们希望避免直流电通过通道。尽管每个传输通道都有不同类型的要求,但主要考虑因素是DC不能很好地通过电容器或变压器耦合电路。即使对于直接耦合电路,另一个重要的考虑因素是,需要进行转换才能使接收器端上的PLL电路同步,以便可以恢复时钟以允许在正确的时间选通数据位。


以及为什么不让它看起来像DC很重要的原因...?
安迪斯·史密斯

看到添加评论在回答....
迈克尔·卡拉斯

1
“ DC不能很好地通过电容器或变压器耦合电路”-最好
不讲

我会有点担心高速数字传输设计中的敏感信号检测器之前是否装有变压器或电容器,但是,是的,我与您同在,计时和频闪是我的真正想法。我的意思是,这是同步和异步传输之间的主要区别。以及为什么一次又一次选择异步(即使它浪费了一些比特位)的原因,因为它具有抗噪性。
安迪斯·史密斯

@AndyzSmith“每条路径的电气特性都被描述为发送器,通道和接收器;它们共同代表一个单向差分链路。每个差分链路都与位于差分链路发射机侧电容器进行交流耦合。” USB 3.0,第3.2.1节
Vorac

2

除了其他人提到的出色属性外,8b10b还为您提供了其他好处:1.易于在接收器处区分链接控制和数据符号2.易于检测到〜75%的错误。

在可编程逻辑中构建8b10b发射器和接收器也非常容易。原始的IBM专利指定了所需的所有逻辑操作(如果您对此太懒了,Chuck Benz在Verilog中为您做了)。

维基百科在8b10b上也有一个非常有用的页面。


1

稍后在链接的教程第15页中对此进行说明。

列出将这种编码应用于USB 3.0的原因是:

  • 时钟恢复-如果不进行编码,则1或0的长流看起来像DC
  • 错误检测-接收机解码10位符号时,存在许多不可能的符号;接收其中之一表示错误。

同事有另一个假设。释义:

电缆具有电感和电容。这样可以平滑脉冲的前移。因此,传输单个1将使总线处于特定的电气状态,而传输多个1将使总线处于不同的电气状态(更接近稳态)。因此,在两种情况下,发送后置0的可能性将不同。


第三,这是标准3.2.1节中的引用

接收器需要足够的转换,才能从位流中可靠地恢复时钟和数据。为了确保独立于正在发送的数据内容的比特流中发生足够的过渡,发送器使用8b / 10b码将数据和控制字符编码为符号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.