在 USB 3.0 的物理层中有一个8b/10b 编码器。
维基百科说这消除了直流偏移,而我正在阅读的教程说
它是高速串行设计中常见的编码方案
在 USB 环境中这种编码的目的是什么?此外,这种编码在其他类型的设备中提供了哪些其他应用和好处?
在 USB 3.0 的物理层中有一个8b/10b 编码器。
维基百科说这消除了直流偏移,而我正在阅读的教程说
它是高速串行设计中常见的编码方案
在 USB 环境中这种编码的目的是什么?此外,这种编码在其他类型的设备中提供了哪些其他应用和好处?
对于像 8b/10b 这样的编码,简单的答案是它确保编码的数据流至少有一定数量的数据转换。如果没有这样的编码,一长串 0 或 1 会倾向于看起来像是试图通过通道发送 DC。
同样的原理适用于曼彻斯特编码,其中通过通道传输的净带宽是实际数据带宽的两倍。8b/10b 被吹捧的优势是所使用的传输带宽远低于曼彻斯特强加的 2X。
出于多种原因,人们希望通过渠道避免 DC。虽然每个传输通道都有不同类型的要求,但主要考虑的是直流不能很好地通过电容器或变压器耦合电路。另一个重要的考虑因素,即使对于直接耦合电路,也需要转换才能同步接收器端的 PLL 电路,以便可以恢复时钟以允许在正确的时间选通数据位。
除了其他人提到的好特性之外,8b10b 为您提供的其他好处包括: 1. 接收器轻松区分链路控制和数据符号 2. 轻松检测约 75% 的错误。
在可编程逻辑中构建 8b10b 发送器和接收器也非常容易;最初的 IBM 专利指定了所需的所有逻辑操作(如果您懒得这样做,Chuck Benz已经在 Verilog 中为您完成了)。
维基百科在 8b10b 上也有一个非常有用的页面。
稍后将在第 15 页的链接教程中进行解释。
将此编码应用于 USB 3.0 的列出的原因是:
一位同事有另一个假设。释义:
电缆有电感和电容。这平滑了脉冲的攻击前沿。因此,发送单个 1 会使总线处于某种电气状态,而发送几个 1 会使总线处于不同的电气状态(更接近于稳态)。因此,在这两种情况下,发送 0 后缀将处于不同的潜力。
第三,这是标准的引用,第 3.2.1 节
接收器需要足够的转换才能从比特流中可靠地恢复时钟和数据。为了确保在比特流中发生与正在传输的数据内容无关的充分转换,发送器使用 8b/10b 代码将数据和控制字符编码为符号。