Was ist der Zweck der 8b/10b-Codierung?

In der physikalischen Schicht von USB 3.0 befindet sich ein 8b/10b-Encoder .

Wikipedia sagt, dass dies den DC-Offset eliminiert hat, während das Tutorial , das ich gerade lese, sagt

Es ist ein übliches Codierungsschema in seriellen Hochgeschwindigkeitsdesigns

Was ist der Zweck dieser Codierung im Zusammenhang mit USB? Welche anderen Anwendungen und Vorteile bietet diese Kodierung außerdem in anderen Gerätetypen?

Es stellt sich heraus, dass dies später im Tutorial erklärt wird. Immer noch neugierig, in welchen anderen Bereichen diese Codierung verwendet wird.
Können Sie ihre Erklärung für das Warum erläutern?
Wenn 8b/10b viele Übergänge gewährleistet, wird es die Signalintegrität aufgrund des Skin-Effekts beeinträchtigen. Was meinen alle mit einem symmetrischen DC-Kanal und warum wird er benötigt?

Antworten (3)

Die einfache Antwort für eine Codierung wie 8b/10b ist, dass sie sicherstellt, dass der codierte Datenstrom mindestens eine bestimmte Anzahl von Datenübergängen aufweist. Ohne eine solche Codierung würde ein langer Strom von Nullen oder Einsen dazu neigen, so auszusehen, als würde versucht werden, Gleichstrom durch den Kanal zu senden.

Die gleiche Philosophie gilt für die Manchester-Codierung, bei der die über den Kanal zu übertragende Nettobandbreite das Doppelte der tatsächlichen Datenbandbreite beträgt. Die für 8b/10b angepriesenen Vorteile bestehen darin, dass die verwendete Übertragungsbandbreite viel geringer ist als das von Manchester auferlegte 2X.

Aus einer Reihe von Gründen möchte man Gleichstrom durch den Kanal vermeiden. Während jeder Übertragungskanal unterschiedliche Arten von Anforderungen hat, ist die Hauptüberlegung, dass Gleichstrom nicht sehr gut durch kondensator- oder transformatorgekoppelte Schaltungen geht. Die andere große Überlegung, selbst für direkt gekoppelte Schaltungen, ist, dass Übergänge erforderlich sind, um eine PLL-Schaltung auf der Empfängerseite synchronisieren zu können, damit die Taktung wiederhergestellt werden kann, um das Stroben der Datenbits zur richtigen Zeit zu ermöglichen.

und warum es wichtig ist, dass es nicht wie DC aussieht ...?
Siehe hinzugefügten Kommentar in Antwort ....
"DC geht nicht sehr gut durch kondensator- oder transformatorgekoppelte Schaltungen" - könnte die letzten beiden Wörter genauso gut weglassen :)
Ich wäre ein wenig besorgt, wenn in einem digitalen Hochgeschwindigkeitsübertragungsdesign ein Transformator oder ein Kondensator vor dem empfindlichen Signaldetektor wäre, aber ja, ich bin bei Ihnen und das Takten und Stroboskopieren ist das, woran ich wirklich denke. Ich meine, das ist der Hauptunterschied zwischen synchroner und asynchroner Übertragung. und der Grund, warum asynchron immer wieder gewählt wird, obwohl es Bits verschwendet, weil es rauschresistent ist.
@AndyzSmith "Die elektrischen Aspekte jedes Pfads werden als Sender, Kanal und Empfänger charakterisiert; diese stellen zusammen eine unidirektionale Differentialverbindung dar. Jede Differentialverbindung ist AC-gekoppelt mit Kondensatoren, die sich auf der Senderseite der Differentialverbindung befinden." USB 3.0, Abschnitt 3.2.1
„Die Dimensionierung der AC-Kopplungskondensatoren erfolgt durch Berechnung ihrer kapazitiven Reaktanz beim Datenstrom mit der niedrigsten Frequenz, der den Pfad entlangläuft. Die kapazitive Reaktanz bei dieser Frequenz muss ein kleiner Bruchteil der Impedanz der Übertragungsleitung sein, um eine übermäßige Dämpfung und Signalverzerrung zu vermeiden . Für zufällige Datenmuster kann die niedrigste Frequenz bei oder nahe DC liegen, in diesem Fall müssen die Kondensatoren sehr große Werte haben.
„Glücklicherweise verwenden die meisten Datenpfade, die differenzielle Signalisierung verwenden, ein Codierungsschema, das sicherstellt, dass der Datenstrom niemals unter eine „Leerlauf“-Frequenz fällt. Diese Leerlauffrequenz wird verwendet, um den Takt aus dem Datenstrom am Empfängerende zurückzugewinnen In diesem Fall kann der Kondensatorwert relativ klein sein.“

Abgesehen von den netten Eigenschaften, die von anderen erwähnt wurden, gehören zu den anderen guten Dingen, die 8b10b Ihnen bietet: 1. Einfache Unterscheidung zwischen Verbindungssteuerung und Datensymbolen am Empfänger. 2. Einfache Erkennung von ~75 % der Fehler.

Es ist auch überraschend einfach, 8b10b-Sender und -Empfänger in programmierbarer Logik zu bauen; das ursprüngliche IBM-Patent spezifiziert alle erforderlichen logischen Operationen (und wenn Sie zu faul dafür sind, hat Chuck Benz das in Verilog für Sie erledigt).

Wikipedia hat auch eine sehr nützliche Seite zu 8b10b.

Es wird später im verlinkten Tutorial auf Seite 15 erklärt.

Die aufgeführten Gründe für die Anwendung dieser Codierung auf USB 3.0 sind:

  • Taktwiederherstellung - ohne die Codierung würden lange Ströme von 1s oder 0s wie DC aussehen
  • Fehlererkennung – wenn der Empfänger das 10-Bit-Symbol dekodiert, gibt es viele unmögliche Symbole; Der Empfang einer davon signalisiert einen Fehler.

Ein Kollege hat eine andere Hypothese. Umschreibung:

Das Kabel hat Induktivität und Kapazität. Dies glättet die Angriffsfront der Pulse. Somit würde die Übertragung einer einzelnen 1 den Bus in einem bestimmten elektrischen Zustand belassen, während die Übertragung mehrerer 1en ihn in einem anderen elektrischen Zustand (näher am stationären Zustand) belassen würde. Folglich hat das Senden einer 0 nach Wörtern in den beiden Szenarien ein unterschiedliches Potenzial.


Drittens ist hier ein Zitat aus der Norm, Abschnitt 3.2.1

Der Empfänger benötigt genügend Übergänge, um Takt und Daten aus dem Bitstrom zuverlässig wiederzugewinnen. Um sicherzustellen, dass im Bitstrom unabhängig vom übertragenen Dateninhalt angemessene Übergänge auftreten, codiert der Sender Daten und Steuerzeichen unter Verwendung eines 8b/10b-Codes in Symbole.