在USB 3.0的物理层中,有一个8b / 10b编码器。
维基百科说这消除了直流偏移,而我正在阅读的教程说
它是高速串行设计中的常见编码方案
在USB上下文中,这种编码的目的是什么?另外,此编码在其他类型的设备中还能提供哪些其他应用和好处?
在USB 3.0的物理层中,有一个8b / 10b编码器。
维基百科说这消除了直流偏移,而我正在阅读的教程说
它是高速串行设计中的常见编码方案
在USB上下文中,这种编码的目的是什么?另外,此编码在其他类型的设备中还能提供哪些其他应用和好处?
Answers:
对于像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码将数据和控制字符编码为符号。