Edit v4.002 from 2004-11-17 to 2020-04-20 by MJa+HSc
HDB-3-Code
(/116/
S. 371, 4.1.8.2 HDB-3-Code)
= (High Density Bipolar, zu dt.
"hohe Dicht bipolarer Zeichen")
ist eine Erweiterung des
AMI-Codes.
Der Zusatz "3" sagt aus,
dass bei diesem Leitungscode nicht mehr als drei
"0" Zustände in Folge auftreten.
Algorithmus
Für denn HDB3-Code gelten folgende Regeln:
Folgen vier (oder mehr) "0" Zustände aufeinander,
so wird das vierte "0" Datenbit durch ein Verletzungsbit (V-Bit)
ersetzt.
Dieses Verletzungsbit nimmt hierbei die gleiche Polarität an wie das
letzte vorangegangene "1" Datenbit.
Liegt zwischen dem letzten Verletzungsbit und dem nach Regel 1
einzusetzenden nächsten Verletzungsbit eine gerade Anzahl von "1"
(MJa: oder "0")
Datenbits, so muss das Erste der "0" Datenbit auf "1"
gesetzt werden. Dieses Bit wird als Bipolar -Bit (B -Bit) bezeichnet.
Die Polarität dieser Bipolar Bit entspricht der AMI Regel,
d.h. es wird mit der entgegen gesetzten Polarität zum Vorgänger
"1" Datenbit gesetzt.
Das Bipolar-Bit und das folgende Verletzungsbit besitzen stets die gleich
Polarität.
Um den HDB-3-Code generieren zu können
muss man also Vergangenheit und Zukunft kennen.
Erläuterung zum HDB-3-Code
Um ihn zu generieren ist es sehr nützlich eine solche
Übersichtstabelle zu erstellen. Hier kann man folgendes erkennen:
Ein schwarzes Datenbit (Lfd. Nr. 4) wird gesetzt,
wenn in der Eingabe "intBD" eine 1 steht.
Die Richtung des Datenbits ist abhängig vom Wert
des Richtungsweisers "intBitHL" =
1.
Was setzt das schwarze Datenbit?
Den Einsenzähler "intBDAnz1" um eine Stelle erhöhen, z.B.
von 1 auf 2,
Den Nullenzähler "intBDAnz0" auf 0 setzen und
Den Richtungsweiser negieren, z.B. von
1 auf -1.
Ist kein schwarzes Datenbit (Lfd. Nr.6) gesetzt,
d.h. in der Eingabe steht eine
0 wird
der Nullenzähler "intBDAnz0" wird um eine Stelle
erhöht, z.B. von 0 auf 1.
Ein
rotes Verletzungsbit
(Lfd. Nr. 9) wird gesetzt wenn der Nullenzähler "intBDAnz0" den Wert
4
hat. Die Richtung des Verletzungsbit ist abhängig vom Wert des
Richtungsweisers "intBitHL" =
1
Was setzt das
rote Verletzungsbit?
den Einsenzähler "intBDAnz1" wieder auf 0, z.B. von
3 auf 0
den Nullenzähler "intBDAnz0" wieder auf 0, z.B. von
4 auf 0,
obwohl in der Eingabe eine 0 steht.
der Verletzungsbit Zähler "intBVAnz" wird um eine Stelle
erhöht, z.B. von 0 auf 1
Ein blaues Bipolar Bit
(Lfd. Nr. 12) wird gesetzt, wenn
die Summe der nächsten 4 Bit den Wert
0 hat,
("intBSumme" = 0),
der Einsenzähler "intBDAnz1" eine gerade Zahl z.B.
2,
und
der Verletzungsbit Zähler "intBVAnz" einen Wert
größer als 0 im Bsp.
1
hat.
Die Richtung ist abhängig vom Richtungsweisers
"intBitHL" =
-1.
Was setzt ein
blaues Bipolar Bit?
NICHTS!
Achtung, das blaue Bipolar Bit
verändert nicht denn durch die Eingabe ("intBD")
0 hoch gezählten Nullzähler
("intBDAnz0"),
obwohl es im HDB-3 Datenstrom ein gesetztes Daten Bit darstellt!