- Leitungscodierung
-
Der Leitungscode bzw. -kode legt bei der digitalen Telekommunikation fest, wie ein Signal auf der physikalischen Ebene übertragen wird. Dabei werden bestimmte Pegelfolgen, etwa Lichtintensitäten auf Glasfasern oder Spannungen oder Ströme auf elektrischen Leitungen, binären Bitsequenzen im Datenstrom zugeordnet.
Die Aufgabe der Leitungscodierung ist das zu übertragende Signal spektral zu formen um es so möglichst optimal an die Eigenschaften eines Übertragungsmediums anzupassen. So kann beispielsweise der Gleichspannungsanteil unterdrückt werden. Daneben wird eine Taktrückgewinnung möglich. Bei manchen Leitungscodes wird die erforderliche Leitungsbandbreite verringert. Übertragungsstrecken können so besser ausgenutzt werden, denn die Übertragungsreichweite hängt ursächlich mit der Betriebsdämpfung zusammen. Für ein metallisches Kabel gilt näherungsweise, dass die Dämpfungskonstante proportional der Wurzel aus der Frequenz ist: höhere Frequenzen werden stärker bedämpft als tiefe Frequenzen. Deswegen sollte der Code bei einer möglichst geringen Frequenz das Maximum der Leistungsdichte und der spektrale Verlauf eine geringe Bandbreite haben.
Nicht zu verwechseln ist die Leitungscodierung mit der Kanalkodierung oder der Quellenkodierung: Die Kanalcodierung hat die Aufgabe durch zusätzlich eingebrachte Redundanz Übertrags- bzw. Speicherfehler im Rahmen der Datenübertragung bzw. Datenspeicherung erkennen und korrigieren zu können, während die Quellencodierung überflüssige (redundante) Information einer Datenquelle reduziert und auch als Datenkompression bezeichnet wird.
Inhaltsverzeichnis
Binäre Leitungscodes
Im einfachsten Fall wird den logischen Zuständen 0 und 1 ein Logikpegel auf der physikalischen Leitung zugeordnet. Beim seriellen RS-232-Protokoll entspricht etwa eine negative Spannung einer logischen Eins, eine positive Spannung einer logischen Null. Werden jetzt lauter Einsen übertragen, tut sich auf der Leitung nichts. Dadurch können bei asynchronem Takt nur wenige (5 bis 8) Bits in einem Block übertragen werden, die mit einer Startsequenz gekennzeichnet werden, oder es ist eine zusätzliche Taktleitung zur Synchronisation nötig.
Serielle Übertragung (RS-232):
Start Stop Datenbits: 1 1 0 1 0 0 0 1 Leitungsbits: .... 0 1 1 0 1 0 0 0 1 1 1 .... Spannungspegel: ---- + - - + - + + + - - - ----
Manchesterkodierung
Dies wird durch die Manchesterkodierung geändert: Hier entspricht eine Null-Eins-Folge einer logischen Null (steigende Flanke), eine Eins-Null-Folge (fallende Flanke) einer logischen Eins:
Manchestercode:
Datenbits: 0 1 0 1 1 1 0 1 Leitungscode: 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 Pegel: - + + - - + + - + - + - - + + -
Hierdurch wird erreicht, dass
- 1. stets Pegelwechsel zur Taktrückgewinnung vorhanden sind,
- 2. der Gleichspannungsanteil (im Mittel) gleich Null ist.
- Es verdoppelt sich allerdings die erforderliche Datenrate (Die Schrittgeschwindigkeit wird halbiert).
Die Leitungscodes sollten bei elektrischer Übertragung im Mittel gleichspannungsfrei sein, weil eine Übertragung von Gleichspannung über lange Leitungen nicht möglich ist. Außerdem sind im Übertragungspfad häufig Transformatoren als Potentialtrenner eingefügt. Zudem werden bei längeren Übertragungsstrecken Regenerationsverstärker bzw. Repeater eingefügt. Ist das Nachrichtensignal gleichspannungsfrei, so können über dasselbe Koaxkabel diese Verstärker mit Gleichstrom ferngespeist werden. Der Manchestercode leistet die Gleichspannungsbeseitigung automatisch, da sowohl 01 als auch 10 gleichspannungsfrei sind.
Beim differentiellen Manchestercode steht ein Polaritätswechsel am Taktanfang für eine logische Null (zwei Flankenwechsel pro Bit), bei einer logischen Eins erfolgt kein Polaritätswechsel am Taktanfang (ein Flankenwechsel pro Bit).
Differentieller Manchestercode:
Datenbits: 0 1 0 1 1 1 0 1 Leitungscode: 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 Pegel: + - - + - + + - - + + - + - - +
Taktrückgewinnung
Durch die permanenten Pegelwechsel wird eine Taktrückgewinnung möglich. Eine gesonderte Leitung für den Takt erübrigt sich daher. Im Falle der Manchestercodierung wird eine Startsequenz mit einer Folge von vielen Eins-Null-Datensequenzen (ca. 10-30) - 1010101010... auf der Leitung – was effektiv einer 11111-Folge am Eingang des Kodierers entspricht - eine PLL im Empfänger synchronisiert. Eine Eins-Null-Sequenz (1001 auf der Leitung) startet die eigentliche Datenübertragung. Danach folgt ein Datenpaket mit mehreren tausend Bits.
Taktrückgewinnung durch PLL bei Manchesterkodierung:
PLL wird synchr. | PLL bleibt synchronisiert Start Datenbits: 0 1 1 0 0 0 0 0 0 1 ... Sync/Daten: 1 1 1 1 1 ...1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 ... Leitungsbits: 1010101010...1010101001 1001 01101001010101010110... Pegel: +-+-+-+-+-...+-+-+-+-+- +--+ -++-+--+-+-+-+-...
Kodierungen mit mehrere Bits langen Blöcken
Der Leitungscode hat bei der Manchestercodierung doppelt so viele Bits wie der Datenstrom, er ist hinsichtlich der erforderlichen Datenrate ungünstig, die Bandbreite hängt nur von der Flanke eines Bits ab, je steiler diese Flanke ist, desto mehr Bandbreite wird benötigt. Binäre Übertragungen sind somit für Kanäle mit begrenzter Bandbreite (z. B. Luft) nicht geeignet; ein Kanalcodierer muss nachgeschaltet werden. Andere Kodierungen, etwa 4 Datenbits auf 5 Codebits (4B5B), sind hier besser, daneben wird bei mehreren Bits eine Fehlererkennung möglich:
- 3. Verringerung der erforderlichen Leitungsdatenrate
- 4. Fehlererkennung
Statt zwei (+/-, binär) können bei elektrischer Übertragung auch drei (+/=/-, ternär) oder noch mehr Spannungspegel eingesetzt werden.
Block-Code (4 Bits auf 3 Ternär-Pegel, 4B3T):
Datenbits: 0 1 1 0 0 0 1 0 Datenblöcke: | 0110 | 0010 | Ternärcode: | ==+ | -=+ | Spannungspegel: 0 0 + - 0 +
Block-Codes
So genannte Block-Codes werden gewöhnlich mit pBqX bezeichnet. Dabei werden „p“ Bits eines Binärwortes zusammengefasst und zu einem Block der Länge q in einer X-Darstellung codiert. Der Vorteil dieser Vorgehensweise liegt darin, dass die Schrittgeschwindigkeit durch diese Codierung um den Faktor „p“ reduziert wird, wodurch sich auch die Dämpfungskonstante reduziert und eine größere Übertragungsreichweite möglich wird. Allerdings wird mit steigender Stufenzahl das Signal auch störanfälliger.
- 4B5B ist ein Code, der jeweils 4 Bits auf 5 Bits abbildet, also 16 (24) Block-Codes auf 32 (25) Leitungscodes. Der Code ist nicht gleichstromfrei, kann aber durch Verwendung von MLT-3 mit drei Spannungspegeln gleichstromfrei gemacht werden. Auch hier ist die Taktrückgewinnung ein wesentliches Ziel. Gegenüber einfacheren Verfahren wie der Manchestercodierung wird die erforderliche Bandbreite des Übertragungskanals reduziert.
- 4B3T bildet entsprechend je 4 Bits auf eine 3er Gruppe mit drei Spannungsstufen ab (Ternäres Signal), und damit 16 (24) Block-Codes auf 27 (33) Leitungscodes. Manche Block-Codes werden auf mehrere Leitungscodes abgebildet, so dass durch Wahl des „besseren“ Codes der aktuelle Gleichstromanteil jeweils reduziert werden kann. Dazu wird das Vorzeichen des Anteils bei der Übertragung summiert, die Summe beeinflusst die Wahl des Leitungscodes. Merkmale von 4B3T sind Taktrückgewinnung, geringer Gleichstromanteil und Bandbreitenreduktion. Diese Codierung wird auf 34 Mbit/s (E3) und 140 Mbit/s (E4) Koaxialübertragungsstrecken und auch für die UK0-Schnittstelle des ISDN-Basisanschlusses verwendet.
- Der Manchester-Code trägt die Bezeichnung 1B2B (1 Bit auf 2 Bits), nämlich 2 (21) Block-Codes auf 4 (22) Leitungscodes, verwendet von den vier jedoch nur zwei Leitungscodes, 01 und 10, da die beiden anderen keine Spannungswechsel enthalten. Die Kodierung ist simpel, sie ist gleichstromfrei und erlaubt die Taktrückgewinnung. Die erforderliche Leitungsbandbreite ist jedoch größer als ohne Code.
- 2B1Q bildet jeweils 2 (22) Bits auf einen Spannungspegel mit 4 (41) Stufen ab (Quaternärer Code). Der Code ermöglicht Bandbreitenreduktion, jedoch keine Taktrückgewinnung und keine Gleichstromfreiheit.
Umsetzung auf Spannungs- oder Intensitätspegel
Die Kodierung eines Leitungscodes wie 4B5B oder 8B10B wandelt eine Binärfolge in eine weitere Binärfolge um. Die kodierte Bitfolge muss dann noch auf Intensitäten umgesetzt werden. Mit NRZ (non return to zero) wird die einfache Zuordnung von logischen Werten (0 und 1) auf zwei Pegel bezeichnet. Bei NRZ-I werden ebenfalls nur zwei Pegel benutzt, die logische 1 wird jedoch einem Pegelwechsel zugeordnet, während eine logische 0 den Pegel konstant hält. FDDI verwendet bei der Übertragung über Glasfasern zum Beispiel erst 4B5B und dann NRZ-I. Bei der elektrischen Übertragung von Ethernet mit 100 Mbit/s über Twisted-Pair-Kabel (100-Base-TX) wird ebenfalls zunächst 4B5B verwendet. Daran wird zur Reduktion des Gleichspannungsanteils der drei-Pegel-Code MLT-3 angefügt (Pseudoternärsignal). Das wenig verbreitete Ethernet über Glasfaser (100-Base-FX) verwendet aber 4B5B/NRZ-I.
Bekannte Leitungscodes (Auswahl)
- NRZ-Code (RS-232, eigentlich kein Code)
- RZ-Code (Weiterentwicklung des NRZ-Codes)
- MLT-3-Code (gleichstromarme Umsetzung von Binärfolgen auf drei Spannungspegel)
- Manchester-Code (10 Mbit/s Ethernet) und differentieller Manchester-Code (Token-Ring)
- Biphase-Mark-Code
- 4B5B-Code (FDDI, 100 Mbit/s Ethernet)
- 8B10B-Code (Gigabit Ethernet)
- 64B65B-Code
- 64B66B (10 Gigabit Ethernet)
- HDB3-Code (ISDN-Primärmultiplexanschluss UK2)
- AMI-Code (modifizierter AMI-Code bei ISDN-Basisanschluss S0)
- B8ZS
- MMS43- oder 4B3T-Code (ISDN-Basisanschluss UK0)
- 2B1Q-Code (Teilnehmeranschlüsse, HDSL)
- Carrier Amplitude and Phase
Wikimedia Foundation.