-
Hintergrund
der Erfindung
-
Seit
einigen Jahrzehnten hat sich die Leistungsfähigkeit von IC- und Lasertechniken
ungefähr jede
18 Monate verdoppelt. Diese Techniken wurden verwendet, um einer
schnell wachsenden Nachfrage an globaler Kommunikationskapazität nachzukommen.
Diese Nachfrage wächst
momentan wesentlich schneller, als die zugrundeliegende Verbesserungsgeschwindigkeit
der unterstützenden
Techniken. Als Beispiel hat sich der Datenkommunikationsverkehr über das
Internet in letzter Zeit jede neun Monate verdoppelt. Die Nachfrage
an zusätzlicher
Kommunikationsbandbreite beansprucht die Leistungsfähigkeit der
aktuellen elektronischen und optischen Techniken stark.
-
Insbesondere
hat sich der Ethernet-LAN-Standard in zunehmendem Maße hinsichtlich
der Geschwindigkeit um Zehnerfaktoren weiterentwickelt, beginnend
mit 10 Megabit pro Sekunde (Mb/s) im Jahr 1982. Im Jahr 1999 wurden
Vorschläge
hinsichtlich eines Ethernetstandards mit 10 Gigabit pro Sekunde
(Gb/s) vorgelegt. Der neueste übernommene
Ethernetstandard sieht vor, serielle Daten mit 1 Gb/s zu übertragen
und verwendet eine 8B/10B-Leitungscodierung, die in der Veröffentlichung „A DC-Balanced,
Partitioned-Block 8b/10b Transmission Code" von A. X. Widmer und P. A. Franaszek
im IBM-Journal for Research and Development im September 1983 beschrieben
ist. Bei der 8b/10b-Leitungscodierung wird jedes Acht-Bit-Eingangswort
durch einen Zehn-Bit-Code
dargestellt, der von dem Ethernet-Medium übertragen wird. Im Gegenzug
zu diesem Overhead von 25% bietet die 8b/10b-Codierung Gleichanteilsfreiheit
und eine garantierte Übergangsdichte.
Mit dem 10-Bit-Code kann zudem eine Auswahl an Steuerworten dargestellt
werden, welche zum Signalisieren und zur Rahmenbildung verwendet
werden.
-
Der
große
Overhead bei der 8b/10b-Codierung führt beim Betrieb zu Nachteilen,
wenn diese bei 10 Gb/s-Übertragungen
verwendet wird. Die Patentanmeldung US 09/522,782, auf die hier
bezuggenommen ist, offenbaren die Erfinder (unter anderem Walker)
ein 64b/66b-Kodierschema, das die meisten Vorteile des 8b/10b-Codierens
bietet, jedoch einen wesentlich kleineren Overhead aufweist.
-
Die 1 ist
ein Blockdiagramm, das ein Beispiel 10 des 10 Gb/s-Ethernet-Datenkommunikationssystems
zeigt, das in der oben genannten Patentanmeldung offenbart ist.
Das Datenkommunikationssystem empfängt über den XAUI-Bus 18 mit
vier Bahnen einen seriellen Bitstrom, der 4 × 8b/10b codiert ist, und gibt über den
XAUI-Bus 19 mit
vier Bahnen einen seriellen Bitstrom aus, der 4 × 8b/10b codiert ist.
-
Das
Datenkommunikationssystem 10 umfaßt den Sender (transmitter) 20 und
den Empfänger (receiver) 22.
Der Sender 20 setzt sich aus einer seriellen Anordnung
von 4 × 10b/8b-Codierern 32,
dem 64b/66b-Codierer 50, dem Scrambler 33, dem
Rahmenzusammensetzer (frame assembler) 34 und dem Multiplexer 35 zusammen.
Der Eingang des 4 × 10b/8b-Codierers
ist mit dem XAUI-Bus 18 verbunden. Der Ausgang des 4 × 10b/8b-Codierers
ist mit dem Eingang des 64b/66b-Codierers über den Pseudo-XGMII-Bus 42,
der 37 Leiter aufweist, verbunden.
-
Der
Nutzdatenfeld-Ausgang des 64b/66b-Codierers 50 ist über den
Nutzdatenfeld-Bus 43 mit dem Eingang des Scramblers 33 verbunden.
Der Haupt-Übergangsausgang
(master transition output) des 64b/66b-Codierers ist über den Haupt-Übergangsbus
(master transition bus) MT mit dem Haupt-Übergangseingang des Rahmenzusammensetzers 34 verbunden.
-
Der
Ausgang des Scramblers 33 ist über den Bus 44 mit
dem Nutzfeldeingang des Rahmenzusammensetzers 34 verbunden.
Der Ausgang des Rahmenzusammensetzers ist über den Bus 45 mit dem
Eingang des Multiplexers 35 verbunden. Der Multiplexer
erzeugt einen seriellen Bitstrom mit 10 Gb/s, der an das Ethernetmedium 40 ausgegeben wird.
-
Der
Empfänger 22 setzt
sich aus einer seriellen Anordnung des Demultiplexers 36,
des Rahmenzerlegers (frame disassembler) 37, des Descramblers 38,
des 66b/64b-Decodierers 52 und
des 4 × 8b/10b-Codierers 39 zusammen.
-
Der
Demultiplexer 36 empfängt
von dem Ethernetmedium 40 einen seriellen Bitstrom mit
10 Gb/s. Der Ausgang des Demultiplexers ist über den Bus 46 mit
dem Eingang des Rahmenzerlegers 37 verbunden.
-
Der
Nutzfeldausgang des Rahmenzerlegers 37 ist über den
Bus 47 mit dem Eingang des Descramblers 38 verbunden.
Der Haupt-Übergangsausgang
des Rahmenzerlegers ist über
den Bus MT mit dem Haupt-Übergangseingang
des 66b/64b-Codierers 52 verbunden.
-
Der
Ausgang des Descramblers 38 ist über den Bus 48 mit
dem Nutzfeldeingang des 66b/64b-Codierers 52 verbunden.
-
Der
Ausgang des 66b/64b-Decodierers 52 ist über den Pseudo-XGMII-Bus 49,
der 37 Leiter aufweist, mit dem Eingang des 4 × 8b/10b-Codierers 39 verbunden.
Der Ausgang des 4 × 8b/10b-Codierers ist
mit dem XAUI-Bus 19 verbunden.
-
Die
in 1 dargestellte Breite der Busse 43–48 sind
maximale parallele Breiten; es können Seriell/Parallel-Techniken
verwendet werden, um die parallele Breite dieser Busse wesentlich
zu reduzieren.
-
In
dem Sender 20 des Datenkommunikationssystems 10 ist
der 4 × 10b/8b-Decodierer 32 mit dem
XAUI-Bus 18 verbunden, um serielle leitungskodierte 10-Bit-Worte
bei einer Bitrate von 4 × 3,125 Gb/s
zu empfangen. Der 4 × 10b/8b-Codierer
decodiert die 8b/10b-Codierung der leitungskodierten 10-Bit-Worte,
um die entsprechenden 8-Bit-Worte wiederherzustellen,
und erzeugt für
jedes Wort ein Steuerwort-Flag, das angibt, daß das Wort ein Steuerwort ist,
wenn es gesetzt ist. Der 4 × 10b/8b-Decodierer überträgt die Vierergruppe
der 8-Bit-Worte und deren entsprechenden Steuerwort-Flags über den Pseudo-XGMII-Bus 42 an
den 64b/66b-Codierer 50. In dieser Beschreibung wird der
Begriff „quad" verwendet, um eine
Vierergruppe von 8-Bit-Worten zu bezeichnen. Der Pseudo-XGMII-Bus
setzt sich aus 37 Leitern zusammen, von denen 32 den Quads zugeordnet
sind, vier den Steuerwort-Flags der Quads zugeordnet sind, und ein
Leiter einem Taktsignal zugeordnet ist.
-
Der
64b/66b-Codierer 50 ermittelt, ob eines der acht Steuerwort-Flags,
die zu den zwei Quads gehören,
gesetzt ist. Wenn kein Steuerwort-Flag gesetzt ist, sind die Quads
ausschließlich
aus Informationsworten zusammengesetzt, und der 64b/66b-Codierer
erzeugt ein Nutzfeld, das sich aus den beiden Quads zusammensetzt.
Der 64b/66b-Codierer
erzeugt zudem in einem ersten Zustand einen 2-Bit-Hauptübergang
mit den Bits 0 und 1. Wenn mindestens eines der Steuerwort-Flags
gesetzt ist, umfassen die Quads zumindest ein Steuerwort und der 64b/66b-Codierer
erzeugt ein Nutzfeld, das sich aus einem TYPE-Wort und sieben weiteren
Worten zusammensetzt. Die sieben weiteren Worte können Informationsworte,
komprimierte Steuerworte oder sowohl Informationsworte als auch
komprimierte Steuerworte sein. Der 64b/66b-Codierer erzeugt in einen zweiten
Zustand, der dem ersten Zustand entgegengesetzt ist, zudem den 2-Bit-Hauptübergang
mit den Bits 0 und 1. Die Nutzfelderstrukturen sind im weiteren
mit bezug auf die 2A–2C beschrieben.
-
Unabhängig von
den Inhalten der Nutzfelder und der Richtung des Hauptübergangs
führt der 64b/66b-Codierer 50 das
Nutzfeld über
seinen Nutzfeldausgang und den Bus 43 an den Scrambler 33, und
führt den
Hauptübergang
geeignet in einer Pipeline angeordnet an den Haupt-Übergangseingang des
Rahmenzusammenstellers 34.
-
Der
Scrambler 33 verscrambelt die Nutzfelder der Rahmen, so
daß der
sich ergebende Bitstrom statistisch gleichanteilsfrei ist und zudem
zufällig
erscheint, wenn die Rahmen übertragen
werden. Das Scrambeln der Nutzfelder ermöglicht es dem Empfänger, leicht
mit den Hauptübergängen zu
synchronisieren, die nicht verscrambelt sind. In einer weiteren
Ausführung
des Datenkommunikationssystems 10 verscrambelt der Scrambler
die Nutzfelder mit dem Polynom x58 + x39 + x0. Es können alternative
Polynome verwendet werden und umfassen x65 +
x47 + x0, x58 + x19 + x0 und x65 + x 18 + x0.
-
Der
Rahmenzusammensetzer 34 empfängt das verscrambelte Nutzfeld
von dem Scrambler 33 sowie den Hauptübergang von dem 64b/66b-Codierer 50 und
bildet aus dem verscrambelten Nutzfeld und dem Hauptübergang
einen 66-Bit-Rahmen.
-
Die 2A zeigt
die Grundstruktur des Rahmens 70, der aus zwei Quads erzeugt
wurde. Jedes Quad setzt sich aus vier Worten mit 8 Bits zusammen.
Der Rahmen setzt sich aus dem 2-Bit-Hauptübergangsfeld 71 zusammen,
auf welches das 64-Bit-Nutzfeld 72 folgt. Das Hauptübergangsfeld 71 (main
transition field) nimmt den 2-Bit-Hauptübergang auf. Wie oben bemerkt,
wird das Nutzfeld von dem Scrambler 33 verscrambelt und
der Rahmen 70 wird gebildet.
-
Es
werden zwei verschiedene Rahmenarten erzeugt, welche die in 2 dargestellte Grundstruktur haben, die
jedoch hinsichtlich der Struktur ihrer Nutzfelder jedoch unterschiedlich
sind. Die Struktur der Nutzfelder hängt davon ab, ob zwei Quads
ausschließlich
aus Informationsworten zusammensetzt sind, oder nicht. Die Struktur
des Nutzfeldes wird durch den Hauptübergang angeben, der in dem Hauptübergangsfeld
gespeichert ist.
-
Die 2B zeigt
die Struktur des Rahmens 73, der erzeugt wird, wenn sich
zwei Quads ausschließlich
aus Informationsworten zusammensetzen. In diesem Fall ist der Hauptübergang
in dem Hauptübergangsfeld 71 01
und das Nutzfeld 72 ist aus acht Informationsworten zusammengesetzt,
welche die Quads bilden, d. h. 64 Bits.
-
Die 2C zeigt
die Struktur des Rahmens 76, der erzeugt wird, wenn die
Quads zumindest ein Steuerwort umfassen. In diesem Fall ist der
Hauptübergang
in dem Haupt-Übergangsfeld 71 10
und das Nutzfeld 72 setzt sich aus dem 8-Bit-Unterfeld 77 und dem
56-Bit-Unterfeld 78 zusammen. Das 8-Bit-Unterfeld mit acht
Bits ist von einem TYPE-Wort belegt und das 56-Bit-Unterfeld ist
durch eine komprimierte Version der Quads belegt. Insbesondere liegen
alle Informationsworte, die in den Quads vorliegen, unverändert in
dem 56-Bit-Unterfeld vor. Das 56-Bit-Unterfeld kann bis zu sieben
Informationsworte aufnehmen, d. h. die maximale Anzahl von Informationsworten
in zwei Quads, die mindestens ein Steuerwort umfassen. Ferner werden
das Paketbeginn-Steuerwort
S und das Paketende-Steuerwort T verworfen, wenn diese in den Quads
erscheinen, und werden nicht an das 56-Bit-Unterfeld übertragen.
Statt dessen gibt der Wert des TYPE-Worts die Anwesenheit und Position
des Steuerworts S oder des Steuerworts T an. Schließlich werden
alle in den Quads verbleibenden Steuerworte komprimiert, indem diese
neu kodiert werden, wobei weniger als acht Bits verwendet werden,
und die neu kodierten Steuerworte werden in das 56-Bit-Unterfeld
eingefügt.
In einer Ausführung
werden die verbleibenden Steuerworte durch Codes mit sieben Bit
neu codiert, die so gewählt
werden, daß sie
eine gegenseitige Hamming-Distanz von vier Bits aufweisen.
-
Bezugnehmend
auf 1 empfängt
der Multiplexer 35 die 66-Bit-Rahmen von dem Rahmenzusammensteller
und bringt diese zur Übertragung über das
Ethernetmedium 40 bei einer Bitrate von 10 Gb/s in serielle
Form.
-
In
dem Empfänger 22 des
Datenkommunikationssystems 10 empfängt der Demultiplexer 36 von dem
Ethernetmedium 40 den seriellen Datenstrom mit einer Bitrate
von 10 Gb/s. Der Demultiplexer unterteilt den Bitstrom in 66-Bit-Rahmen
und führt
die Rahmen dem Rahmenzerleger 37 zu.
-
Der
Rahmenzerleger 37 verarbeitet jeden einzelnen Rahmen, um
den Hauptübergang
von dem verscrambelten Nutzfeld zu trennen, und leitet den Hauptübergang,
geeignet in Pipeline-Form angeordnet, an den Hauptübergangs-Eingang
des 66b/64b-Decodierers 52. Der Rahmenzerleger führt dem
Descrambler 38 das verscrambelte Nutzfeld zu.
-
Der
Descrambler 38 entscrambelt das verscrambelte Nutzfeld
mittels selbstsynchronisierendem Entscrambeln, welches komplementär zu dem Verscrambelvorgang
ist, der von dem Scrambler 33 durchgeführt wird. Der Descrambler führt das
sich ergebende wiederhergestellte Nutzfeld dem Nutzfeldeingang des
66b/64b-Decodierers 52 zu.
-
Der
66b/64b-Decodierer 52 decodiert das wiederhergestellte
Nutzfeld abhängig
von dem entsprechenden Hauptübergang,
welcher von dem Rahmenzerleger 37 empfangen wurde. Wenn
sich der Hauptübergang
in seinem ersten Zustand befindet, gibt der 66b/64b-Decodierer lediglich
die acht Worte des Nutzfeldes als zwei aufeinanderfolgende Quads aus.
Der 66b/64b-Decodierer gibt zudem ein Steuerwort-Flag für jedes
Wort in den Quads aus. Wenn sich der Hauptübergang in seinem zweiten Zustand befindet,
stellt der 66b/64b-Decodierer zwei Quads wieder her, aus denen der
ursprüngliche
Rahmen erzeugt wurde, bevor diese zusammen mit einem Steuerwort-Flag
für jedes
Wort innerhalb der Quads ausgegeben werden. Der 66b/64b-Decodierer
stellt zwei Quads wieder her, indem das TYPE-Wort gelesen wird und
indem jedes komprimierte Steuerwort in dem Feld dekomprimiert wird.
Ferner fügt
der 66b/64b-Decodierer zudem ein Paketstart-Steuerwort (start-of-packet
control word) oder ein Paketende-Steuerwort (end-of-packet control
word) an die von dem TYPE-Wort angegebene Stelle in dem Quad ein,
wenn das TYPE-Wort angibt, daß von
dem 64b/66b-Codierer 50 entweder ein Paketstart-Steuerwort
S oder ein Paketende-Steuerwort T verworfen wurde.
-
Der
66b/64b-Decodierer 52 überträgt die Quads
und deren entsprechenden Steuerworte parallel über dem Pseudo-XGMII-Bus 49 an
den 4 × 8b/10b-Codierer 39.
-
Der
4 × 8b/10b-Codierer 39 wendet
die 8b/10b-Codierung auf die Quads an, welche über den Pseudo-XGMII-Bus 43 empfangen
wurden, wobei der Codierer abhängig
von den Steuerwort-Flags für
jedes Wort arbeitet, welche die Quads bilden. Der 4 × 8b/10b-Codierer gibt über den
XAUI-Bus 19 die sich ergebenden 10-Bit-Leitungscodierungsworte aus.
-
Es
ist üblich,
Datenkommunikationssysteme mit einer Selbsttesteinrichtung auszustatten,
um zu ermöglichen,
daß der
korrekte Betrieb des Datenkommunikationssystems bestätigt werden
kann. Üblicherweise
wird das Datenkommunikationssystem getestet, indem eine Testsequenz,
die aus einer bekannten Sequenz von Zufallszahl-Mustern gebildet ist, über das
Datenkommunikationssystem übertragen
wird, und indem am Empfänger
Fehler ermittelt werden. Der Empfänger kann am Sender oder entfernt
angeordnet sein.
-
Die 3 ist
ein Blockdiagramm, die ein Beispiel 60 eines Datenkommunikationssystems
darstellt, welches eine übliche
Selbsttest-Einrichtung umfaßt.
Das Datenkommunikationssystem 60 basiert auf dem in 1 dargestellten
Kommunikationssystem 10, wobei Elemente des Datenkommunikationssystems 60,
welche Elementen des Datenkommunikationssystems 10 entsprechen,
mit den gleichen Bezugszahlen gekennzeichnet sind und hier nicht weiter
beschrieben werden.
-
Das
Datenkommunikationssystem 60 umfaßt ferner einen Bitfehlerraten-Tester 61,
sowie den Auswähler
(selector) 62 und den Auswähler (selector) 63.
Aus dem Stand der Technik sind Bitfehlerraten-Tester bekannt. Das
dargestellte Beispiel des Bitfehlerraten-Testers 61 umfaßt den Testsequenzgenerator 64 und
den Fehlerdetektor 65.
-
Der
Auswähler 62 hat
zwei Dateneingänge, einen
Steuereingang und einen Datenausgang. Ein Dateneingang ist mit dem
Ausgang des Rahmenzusammenstellers 34 verbunden. Der andere
Dateneingang ist mit dem Ausgang des Testsequenzgenerators 64 verbunden.
Der Steuereingang ist mit der Steuerleitung 66 verbunden.
Der Datenausgang ist mit dem Eingang des Multiplexers 35 verbunden.
-
Der
Auswähler 63 hat
einen Dateneingang, einen Steuereingang und zwei Datenausgänge. Der Dateneingang
ist mit dem Ausgang des Demultiplexers 36 verbunden. Der
Steuereingang ist mit der Steuerleitung 66 verbunden. Ein
Datenausgang ist mit dem Eingang des Rahmenzerlegers 37 verbunden.
Der andere Datenausgang ist mit dem Eingang des Fehlerdetektors 65 verbunden.
-
Wenn
das Selbsttestaktivierung-Steuersignal STE der Steuerleitung 66 nicht
aktiviert (not asserted) ist, verbindet der Auswähler 62 den Ausgang des
Rahmenzusammensetzers 34 mit dem Eingang des Multiplexers 35,
und der Auswähler 63 verbindet den
Ausgang des Multiplexers 36 mit dem Eingang des Rahmenzerlegers 37.
In diesem Zustand arbeitet das Datenkommunikationssystem 60 wie
oben beschrieben. Wenn das STE-Steuersignal aktiviert (asserted)
ist, verbindet der Auswähler 62 den
Ausgang des Testsequenzgenerators 64 mit dem Eingang des Multiplexers 35,
und der Auswähler 63 verbindet
den Ausgang des Demultiplexers 36 mit dem Eingang des Fehlerdetektors 65.
Der Fehlerdetektor synchronisiert automatisch mit der von dem Demultiplexer empfangenen
Testsequenzausgabe und erzeugt jedesmal ein Fehlersignal, wenn die
empfangene Testsequenz einen Fehler beinhaltet. Der Fehlerdetektor kann
die Anzahl der Fehler zählen,
welche in einer vorbestimmten Zeit auftreten, oder die während des Empfangs
einer vorbestimmten Anzahl an Bits auftreten, um eine Bitfehlerrate
zu erzeugen.
-
Es
kann ein üblicher
erhältlicher
Testsequenzgenerator verwendet werden, da der Testsequenzgenerator 64 eine
Testsequenz erzeugt, die aus 231 – 1 Bit
(ungefähr
2,14 Milliarden) zusammengesetzt ist. Mit einer Taktrate von 10
GHz hat die Testsequenz eine Zykluszeit von ungefähr 0,2 Sekunden,
welches eine zweckmäßige Zykluszeit
für die
meisten Testarten von Datenkommunikationssystemen darstellt. Der
Testsequenzgene rator gibt die Testsequenz in Rahmen von 66 Bits
aus, die mit dem Eingang des Multiplexers 35 kompatibel
sind.
-
Jedoch
hat eine Testsequenz mit 231-Bit eine maximale
Lauflänge
(maximum run length) von 31 Bit. Eine Lauflänge von 31 Bit tritt bei normalen 64b/66b-kodierten
Bitströmen
häufiger
als einmal pro 1010 Bits auf. Als Ergebnis
testet eine Testsequenz mit 31 Bit den Grundfehler (error floor)
nicht ausreichend. Es könnte
ein Testsequenzgenerator verwendet werden, der eine längere Testsequenz
erzeugt, der jedoch den Nachteil einer wesentlich längeren Zyklusdauer
mit sich bringt. Die Zyklusdauer eines Tests mit 258 Bit
ist ungefähr
333 Tage. Dies würde
es erschweren, einen Teil der Testsequenz zu wiederholen, welcher
einen Fehler im Datenkommunikationssystem hervorgerufen hat.
-
Ein
weiterer Nachteil eines üblichen
Testsequenzgenerators ist, daß die
Testsequenz in jedem Empfänger
in dem Datenkommunikationssystem, der sich nicht im Selbsttestmodus
befindet, wie ein Fehler erscheint. Es ist möglich, daß einige Empfänger zur
Erholung von einem solchen Fehlerzustand erheblich Zeit benötigen.
-
Ein
weiterer Nachteil ist, daß die
Testsequenz in dem Sender 20 nach dem Rahmenzusammensetzer 34 eingefügt ist,
so daß die
Testsequenz den Demultiplexers 36 nicht hinsichtlich der
Fähigkeit zur
Synchronisationserlangung testet.
-
Schließlich fügen der
Bitfehlerratentester 61 und die Auswähler 52 und 63 dem
Datenkommunikationssystem 10 einen wesentlichen Schaltungsaufwand
hinzu.
-
Die
Druckschrift
US 6,148,194 offenbart
ein Funkplanungswerkzeug (radio deployment tool, RDT), um die Grenzen
einer Zelle zu ermitteln, wobei das Funkplanungswerkzeug einen digitalen
Signalprozessor für
adaptive Pulscodierungsmodulation umfaßt, der mit einem Scramblerschaltkreis
verbunden ist. Um ein Testsignal zu erzeugen, wird die Stummtaste
eines drahtlosen Handapparats gedrückt. Ein digitalisierter codierter
0-Bit-Strom wird erzeugt,
der mit dem Scrambler kombiniert wird, welcher bekannte pseudozufällige Sequenzen
aufweist. Der Verscrambler setzt dann die verscrambelte Kombination
in das Nutzfeld eines Testpakets, welches in das Testsignal eingebracht
wird. Die Verwendung der Stummtaste zum Erzeugen von Testpaketen
erlaubt, daß das
gesamte Nutzfeld der Testpakete mit pseudo-zufälligen Sequenzen besetzt werden
kann. Das Testsignal wird über
Funk auf ein RDT-Mobilteil übermittelt.
Die Daten in dem Nutzfeld des empfangenen Pakets, welches in dem
empfangenen Signal enthalten ist, wird entpackt und durch einen
Descrambler entscrambelt, der die von dem Verscrambler verwendete
Scramble-Sequenz kennt.
-
Die
Druckschrift
US 5,228,042 offenbart
ein Verfahren und einen Schaltkreis zum Testen eines Schaltkreises
mit einer Vielzahl von Übertragungspfaden
einschließlich
eines ersten linearen Rückkopplungs-Schieberegisters,
das geeignet ist, eine periodische Sequenz von Pseudo-Zufallstestdaten auf
den Übertragungspfaden
zu erzeugen und ein zweites lineares Rückkopplungs-Schieberegister, das
beim Einschalten des Testschaltkreises mit den übertragenen Testdaten synchronisiert.
Der Steuerschaltkreis initialisiert den binären 15-Bit-Wert, welcher in
dem Schieberegister gespeichert ist, mit einem Wert ungleich Null,
um zu vermeiden, daß das Schieberegister
Bitmuster nur mit Nullen erzeugt.
-
Es
ist ein Ziel der vorliegenden Erfindung, eine Selbsttesteinrichtung
vorzusehen, die eine Testsequenz verwendet, welche eine Lauflänge (run length)
aufweist, die lang genug ist, um den Grundfehler (error floor) eines
hochqualitativen Datenkommunikationssystems zu testen, das eine
Testsequenz mit einer kurzen Periodendauer erzeugt, die an Empfängern, welche
nicht in einem Selbsttestmodus sind, nicht als Fehler erscheint,
und die Fähigkeit
des Demultiplexers zur Neusynchronisierung testet.
-
Dieses
Ziel wird jeweils durch ein Verfahren zum Erzeugen einer Testsequenz
in einem Datensender nach Anspruch 1, durch ein Verfahren zum Durchführen eines
Selbsttests eines Datenempfängers
nach Anspruch 8 sowie durch ein Datenübertragungssystem nach Anspruch
12 und durch ein Datenempfangssystem nach Anspruch 8 erreicht.
-
Vorteilhafte
Ausführungen
der Erfindung sind in den abhängigen
Ansprüchen
definiert.
-
Gemäß einem
Aspekt umfaßt
das Verfahren zum Selbsttesten eines Datenkommunikationssystems
einen voreinstellbaren Scrambler und einen komplementären voreinstellbaren
Descrambler. In dem Verfahren wird der voreinstellbare Scrambler auf
einen Voreinstellungs-Zustand voreingestellt. Ein Initialwert-Nutzfeld
(seed payload field) wird durch den voreinstellbaren Scrambler verscrambelt,
um Felder einer Testsequenz zu erzeugen. Die Felder der Testsequenz
werden übertragen
und entsprechende empfangene Testsequenzfelder werden empfangen.
Die empfangenen Testsequenzfelder werden mit dem voreinstellbaren
Descrambler entscrambelt bzw. descrambelt, um entsprechende wiederhergestellte
Testsequenzfelder zu erzeugen. Unterschiede zwischen den wiederhergestellten
Testsequenzfeldern und dem Initialwert-Nutzfeld werden dann als
Fehler detektiert.
-
Die
Kombination das voreingestellten Zustands und des Initial-Nutzfeldes
veranlaßt
den voreinstellbaren Scrambler, die Testsequenz inklusive einer
gewünschten
Bitsequenz zu erzeugen. Das Initialwert-Nutzfeld kann eines von
einer Sequenz verschiedener Initialwert-Nutzfelder sein, die, wenn
sie verscrambelt werden, die Testsequenz so erzeugen, daß diese
entsprechende verschiedene gewünschte Bitmuster
umfaßt.
-
Der
voreinstellbare Scrambler kann auf den Voreinstellungszustand voreingestellt
werden, indem in der Testsequenz eine Endbit-Sequenz detektiert wird
und der voreinstellbare Scrambler auf den Voreinstellungs-Zustand
voreingestellt wird, wenn die Endbit-Sequenz detektiert wird.
-
Das
Verfahren kann ferner das Detektieren der Endbit-Sequenz in den
wiederhergestellten Testsequenzfeldern und das Voreinstellen des
einstellbaren Descramblers auf den Voreinstellungszustand umfassen,
wenn die Endbit-Sequenz detektiert ist.
-
Ferner
umfaßt
das Verfahren ein Verfahren zum Erzeugen einer Testsequenz in einem
Datensender, der einen Scrambler umfaßt, wobei in einem normalen
Betriebsmodus Nutzfelder durch einen Scrambler verscrambelt werden,
um entsprechende verscrambelte Nutzfelder zu erzeugen, und die verscrambelten
Nutzfelder werden gesendet. Dann wird in einem Selbsttest-Betriebsmodus
durch den Scrambler ein Initialwert-Nutzfeld verscrambelt, um Felder
der Testsequenz zu erzeugen, und die Felder der Testsequenz werden
gesendet.
-
Der
Scrambler kann ein voreinstellbarer Scrambler sein. In diesem Fall
wird der voreinstellbare Scrambler auf einen Voreinstellungszustand
voreingestellt und die Kombination des Voreinstellungs-Zustands
und das Initialwert-Nutzfeld veranlaßt den voreinstell baren Scrambler,
eine Testsequenz zu erzeugen, welche ein gewünschtes Bitmuster umfaßt.
-
Gemäß einem
weiteren Aspekt wird ein Verfahren zum Selbsttesten eines Datenempfängers vorgesehen,
das einen Descrambler umfaßt.
In dem Verfahren werden in einem normalen Betriebsmodus verscrambelte
Nutzfelder als empfangene Nutzfelder empfangen und die empfangenen
Nutzfelder werden mit dem Descrambler entscrambelt bzw. descrambelt.
Dann werden in einem Selbsttest-Betriebsmodus empfangene Testsequenzfelder
empfangen, die durch Verscramblen eines Initialwert-Nutzfelds erzeugt
wurden, die empfangenen Testsequenzfelder werden mit dem Descrambler
entscrambelt, um entsprechende wiederhergestellte Testsequenzfelder
zu erzeugen, und Unterschiede zwischen den wiederhergestellten Testsequenzfeldern
und dem Initialwert-Nutzfeld
werden als Fehler detektiert.
-
Gemäß einem
weiteren Aspekt wird ein Datenkommunikationssystem vorgesehen, das
eine eingebaute Selbsttesteinrichtung aufweist. Das Datenkommunikationssystem
umfaßt
eine Initialwert-Nutzfeld-Quelle, einen voreinstellbaren Scrambler,
einen voreinstellbaren Descrambler und einen Fehlerdetektor. Der
voreinstellbare Scrambler umfaßt
einen Eingang, der mit der Initialwert-Nutzfeld-Quelle verbunden
ist, und einen Ausgang, der mit einem Datenübertragungsmedium gekoppelt
ist. Der voreinstellbare Scrambler wird auf einen Voreinstellungszustand
voreingestellt. Der voreinstellbare Descrambler umfaßt einen
Eingang, der mit dem Übertragungsmedium
gekoppelt ist, sowie einen Ausgang. Der Fehlerdetektor umfaßt einen
Eingang, der mit dem Ausgang des voreinstellbaren Descramblers verbunden
ist, und wird betrieben, um eine Fehlerangabe zu erzeugen, wenn
sich eine von dem voreinstellbaren Descrambler wiederhergestellte
Testsequenzfeld-Ausgabe von dem Initialwert-Nutzfeld unterscheidet.
-
Das
Datenkommunikationssystem kann ferner einen Detektor und eine Steuerung
umfassen. Der Detektor ermittelt eine Endbit-Sequenz, die von dem
voreinstellbaren Scrambler erzeugt wurde. Die Steuerung arbeitet
abhängig
von dem Detektor, um den voreinstellbaren Scrambler auf den Voreinstellungs-Zustand
voreinzustellen. Das Datenkommunikationssystem kann ferner einen
zusätzlichen
Detektor und eine zusätzliche
Steuerung umfassen. Der zusätzliche
Detektor detektiert die Endbit-Sequenz an dem Eingang des voreinstellbaren
Descramblers. Die zusätzliche
Steuerung arbeitet abhän gig
von dem Detektor, um den voreinstellbaren Descrambler auf den Voreinstellungszustand
voreinzustellen.
-
Die
Erfindung umfaßt
ferner einen Datensender mit einer Selbsttesteinrichtung. Der Datensender umfaßt eine
Nutzfeldquelle, eine Initialwert-Nutzfeldquelle und einen Scrambler.
Der Scrambler arbeitet in einem normalen Betriebsmodus, um von der
Nutzfeldquelle Nutzfelder zu empfangen, und um die Nutzfelder zu
verscrambeln, um entsprechende verscrambelte Nutzfelder zu erzeugen,
und arbeitet alternativ in einem Selbsttestmodus, um ein Initialwert-Nutzfeld
von der Initialwert-Nutzfeldquelle zu empfangen, und um das Initialwert-Nutzfeld
zu verscrambeln, um Felder einer Testsequenz zu erzeugen, die zum
Senden vorgesehen sind.
-
Der
Scrambler kann ein voreinstellbarer Scrambler sein, der auf einen
Voreinstellungszustand voreingestellt werden kann, wobei in diesem Fall
eine Kombination des Voreinstellungszustands und des Initialwert-Nutzfelds
den voreinstellbaren Scrambler dazu veranlaßt, die Testsequenz zu erzeugen,
welche ein gewünschtes
Bitmusters umfaßt.
-
Schließlich ist
ein Datenempfänger
mit einer Selbsttesteinrichtung vorgesehen. Der Datenempfänger umfaßt einen
Descrambler und einen Fehlerdetektor. Der Descrambler umfaßt einen
Ausgang und wird in einem normalen Betriebsmodus betrieben, um empfangene
Nutzfelder zu descrambeln, um entsprechende wiederhergestellte Nutzfelder
zu erzeugen, und wird alternativ in einem Selbsttest-Betriebsmodus
betrieben, um empfangene Testsequenzfelder zu entscrambeln, die
durch Verscrambeln eines Initialwert-Nutzfeldes erzeugt wurden, um entsprechende
wiederhergestellte Testsequenzfelder zu erzeugen. Der Fehlerdetektor
umfaßt
einen Eingang, der mit dem Ausgang des Descramblers verbunden ist.
Der Fehlerdetektor wird betrieben, um Fehlerangaben zu erzeugen,
wenn sich die wiederhergestellten Testsequenzfelder von dem Initialwert-Nutzfeld unterscheiden.
-
Der
Descrambler kann ein voreinstellbarer Descrambler sein, wobei in
diesem Fall der Datenempfänger
ferner eine Steuerung umfaßt,
die bei Bedarf betrieben wird, um den voreinstellbaren Descrambler
auf den Voreinstellungszustand voreinzustellen.
-
Kurzbeschreibung
der Zeichnungen
-
Die 1 ist
eine Blockdiagramm, die ein Beispiel eines 10 Gb/s-Ethernet-Datenkommunikationssystems
darstellt, das in der oben genannten Patentanmeldung offenbart ist.
-
Die 2A zeigt
die Grundstruktur des Rahmens, der von dem in 1 dargestellten
Datenkommunikationssystem aus zwei Quads erzeugt wird.
-
Die 2B zeigt
die Struktur des Rahmens, die erzeugt wird, wenn zwei Quads ausschließlich aus
zwei Informationsworten bestehen.
-
Die 2C zeigt
die Struktur des Rahmens, die erzeugt wird, wenn die Quads zumindest
ein Steuerwort umfassen.
-
Die 3 ist
ein Blockdiagramm, die ein Beispiel eines in der 1 dargestellten
Datenkommunikationssystems darstellt, das eine übliche Selbsttesteinrichtung
enthält.
-
Die 4 ist
ein Blockdiagramm das ein Beispiel eines erfindungsgemäßen 10 Gb/s-Ethernet-Datenkommunikationssystems
zeigt. Das Datenkommunikationssystem umfaßt eine Selbsttesteinrichtung.
-
Die 5A ist
ein Blockdiagramm, das ein Beispiel einer seriellen Version eines
voreinstellbaren Scramblers des in 4 dargestellten
Kommunikationssystems zeigt.
-
Die 5B ist
ein Blockdiagramm, das ein Beispiel einer seriellen Version eines
voreinstellbaren Descramblers des in 4 dargestellten
Datenkommunikationssystems zeigt.
-
Die 6 ist
ein Blockdiagramm, das ein Beispiel von drei aufeinanderfolgenden
Stufen des Schieberegisters darstellt, welches einen Teil des voreinstellbaren
Scramblers und des voreinstellbaren Descramblers bildet, die in
den jeweiligen 5A und 5B dargestellt
sind.
-
Die 7 ist
ein Blockdiagramm eines Beispiels einer parallelen Version des voreinstellbaren Scramblers
des in 4 dargestellten Datenkommunikationssystems.
-
Detaillierte
Beschreibung der Erfindung
-
Die
Erfindung basiert auf der Betrachtung, daß der Testsequenzgenerator 64 des
in 3 dargestellten üblichen Bitfehlerratentesters 61 wesentliche
Gemeinsamkeiten hinsichtlich des Schaltkreises mit dem Scrambler 33 aufweist,
welcher verwendet wird, um die Nutzfelder in dem Datenkommunikationssystem 60 zu
verscrambeln. Die Erfindung basiert auf der Erkenntnis, daß eine Selbsttesteinrichtung
einfacher und kostengünstiger
vorgesehen werden könnte,
als es der in 3 dargestellte übliche Ansatz
vorsieht, wenn der bestehende Scrambler dazu verwendet werden könnte, eine
Testsequenz zu erzeugen.
-
In
einem ersten Aspekt der Erfindung wird in dem Selbsttest-Betriebsmodus
des Datenkommunikationssystems dem bestehenden Scrambler, beispielsweise
der in 1 dargestellte Scrambler 33, ein Initialwert-Nutzfeld
(seed payload field) oder ein entsprechendes Voreinstellungs-Nutzfeld
(preset payload field) zugeführt.
Der bestehende Scrambler wird im normalen Betriebsmodus zum Verscrambeln der
Nutzfelder verwendet. Der Scrambler 33 verscrambelt das
Initialwert-Nutzfeld, um die Felder einer Testsequenz zu erzeugen.
Jedes Feld wird mit pseudo-zufälligen
Bits gefüllt.
Jedem Feld der Testsequenz wird ein Hauptübergang hinzugefügt und die
sich ergebenden 66-Bit-Rahmen
werden gesendet.
-
In
dem Empfänger
werden die Testsequenzfelder von den empfangenen Rahmen als empfangene
Testsequenzfelder getrennt und die empfangenen Testsequenzfelder
werden mit dem bereits bestehenden Descrambler, beispielsweise der
in 1 dargestellte Descrambler 38, entscrambelt
bzw. descrambelt. Der bestehende Scrambler wird im normalen Betriebsmodus
verwendet, um die verscrambelten Nutzfelder zu entscrambeln. Das
Entscrambeln der empfangenen Testsequenzfelder führt zu wiederhergestellten
Testsequenzfelder, die mit den Initialwert-Nutzfeldern identisch
sind, wenn keine Übertragungsfehler
vorliegen. Die Unterschiede zwischen den wiederhergestellten Testsequenzfeldern
und dem Initialwert-Nutzfeld werden als Übertragungsfehler detektiert.
-
Daher
bietet die Erfindung eine Selbsttesteinrichtung, ohne einen separaten
Testsequenzgenerator vorsehen zu müssen.
-
In
einer Ausführung
wird als Scrambler 33 ein 58-Bit-Scrambler verwendet, um
Störungen durch
Fremdeinwirkung (malicious jamming) zu verhindern. Wie oben bemerkt,
hat die von einem 58-Bit-Scrambler erzeugte Testsequenz eine zu
lange Periodendauer, um für
das Testen der meisten Datenkommunikationssysteme zweckmäßig zu sein. Ein
zweiter Aspekt der Erfindung überwindet
diesen Nachteil, indem zum Erzeugen der Testsequenz ein voreinstellbarer
58-Bit-Scrambler statt des üblichen 58-Bit-Scramblers 33 verwendet
wird. Der voreinstellbare Scrambler wird zu Beginn des Erzeugens der
Testsequenz auf einen Voreinstellungszustand voreingestellt und
wird wieder auf den Voreinstellungszustand voreingestellt, nachdem
dieser eine Testsequenz mit einer vorbestimmten Anzahl an Bits erzeugt
hat. Beispielsweise kann ein voreinstellbarer Scrambler auf seinen
Voreinstellungszustand voreingestellt werden, nachdem eine Testsequenz
von 231-Bits erzeugt wurde. Eine solche
Testsequenz hat eine Periodendauer von ungefähr 0,21 Sekunden, welches eine
akzeptable Periodendauer für
das Testen der meisten Datenkommunikationssysteme darstellt.
-
Der
voreinstellbare Scrambler kann konfiguriert werden, zu detektieren,
wenn dieser die letzten Bits erzeugt, welche das Ende einer Testsequenz
bilden, die aus einer vorbestimmten Anzahl an Bits zusammengesetzt
ist. Diese Bits werden Endbit-Sequenz der Testsequenz genannt. Der
voreinstellbare Scrambler kann zudem konfiguriert werden, um sich selbst
voreinzustellen, wenn dieser die Endbit-Sequenz detektiert.
-
Durch
das Verwenden eines voreinstellbaren Scramblers als 58-Bit-Scrambler
und durch wiederholtes Voreinstellen des voreinstellbaren Scramblers auf
den Voreinstellungszustand gemäß der Erfindung werden
die weiteren Nachteile von üblichen
Testsequenzgeneratoren überwunden.
Die Erfindung ermöglicht
es, daß die
Testsequenz mit einem gewünschten
Bitmuster erzeugt werden kann, das dort an einer vorbestimmten Stelle
erscheint. Das gewünschte
Bitmuster kann verwendet werden, um spezielle Leistungsfähigkeitsmerkmale
des Datenkommunikationssystems zu testen. Beispielsweise kann das
gewünschte
Bitmuster eines sein, welches das Grundrauschen (noise floor) eines
hochqualitativen Datenkommunikationssystems genau testet. Ein solches
ge wünschtes
Bitmuster wäre
eines, das eine Lauflänge
(run length) von wesentlich mehr als 31 Bit aufweist.
-
Beispielsweise
kann die Testsequenz so konfiguriert werden, daß sie mit einem gewünschten Bitmuster
mit einer Lauflänge
von 46 Nullen beginnt, indem der Inhalt des von dem voreinstellbaren 58-Bit-Scramblers
empfangenen Initialwert-Nutzfeldes geeignet gewählt wird, und indem ferner
der Voreinstellungszustand gewählt
wird, auf den der voreinstellbare Scrambler voreingestellt wird.
Ein anderer Voreinstellungszustand kann hervorrufen, daß die 46-Bit-Lauflängensequenz
später
in der Testsequenz erscheint. Es kann ein anderes Initialwert-Nutzfeld verwendet
werden, um eine Lauflänge
von Einsen oder Nullen vorzusehen, bis zu einer maximalen Lauflänge, die
der Länge
des Scramblers entspricht. Dem voreinstellbaren Scrambler kann während jeder Testsequenz
eine Sequenz von zwei oder mehr verschiedenen Initialwert-Nutzfeldern
zugeführt
werden, um den voreinstellbaren Scrambler zu veranlassen, eine Testsequenz
mit entsprechenden verschiedenen gewünschten Bitmustern zu erzeugen.
-
Ein
weiterer Vorteil bei der Verwendung eines voreinstellbaren Scramblers
als 58-Bit-Scramblers
und bei der Verwendung eines voreinstellbaren Scramblers, um die
Testsequenz zu erzeugen, liegt darin, daß die von dem voreinstellbaren
Scrambler ausgegebenen Testsequenzfelder dem Rahmenzusammensetzer 34 zugeführt werden,
der aus den Testsequenzfeldern und deren jeweiligen Hauptübergängen 66-Bit-Rahmen
ausbildet. Als Ergebnis erscheint jedem Empfänger der von dem Transmitter
in dessen Selbsttestmodus erzeugten Bitstrom als normaler Bitstrom,
unabhängig
davon, ob sich der Empfänger
in seinem Selbsttestmodus befindet, oder nicht. Darüber hinaus
testet die Testsequenz die Synchronisierungsfähigkeiten des Demultiplexers
in dem Empfänger.
-
Als
58-Bit-Descrambler in dem Empfänger wird
ein voreinstellbarer Descrambler verwendet. Der voreinstellbare
Descrambler rastet (locks) mit der empfangenen Testsequenz ein,
nachdem 58 Bit empfangen wurden. Sobald dieser eingerastet ist, entscrambelt
bzw. descrambelt der voreinstellbare Descrambler die empfangenen
Testsequenzfelder, indem ein Descrambelvorgang verwendet wird, der komplementär zu dem
Verscrambeln ist, welches von dem voreinstellbaren Scrambler 133 ausgeführt wurde.
Als Ergebnis ist die Ausgabe des voreinstellbaren Descramblers eine
Sequenz von wiederhergestellten Testsequenzfeldern, welche identisch
mit den Initialwert-Nutzfeldern sind, die dem voreinstellbaren Scrambler
zugeführt
wurden, wenn keine Übertragungsfehler
auftreten. Ein Übertragungsfehler
wird identifiziert, indem ermittelt wird, ob eines der von dem voreinstellbaren
Descrambler ausgegebenen wiederhergestellten Testsequenzfelder sich
von dem Initialwert-Nutzfeld unterscheidet.
-
Die 4 ist
ein Blockdiagramm, das ein Beispiel 100 eines erfindungsgemäßen 10 Gb/s Ethernet-Datenkommunikationssystems
darstellt. Das Datenkommunikationssystem umfaßt eine Selbsttesteinrichtung.
Diejenigen Elemente des in 4 dargestellten
Datenkommunikationssystems, welche dem in 1 dargestellten
Datenkommunikationssystem entsprechen, werden durch die gleichen
Bezugszeichen bezeichnet und nicht nochmals beschrieben.
-
Das
digitale Sendesystem 100 umfaßt den erfindungsgemäßen Sender 120 und
den erfindungsgemäßen Empfänger 122.
Der Sender umfaßt
einen voreinstellbaren Scrambler 133 und der Empfänger umfaßt einen
voreinstellbaren Descrambler 138 und einen Fehlerdetektor 165.
-
Der
Eingang des zurücksetzbaren
Scramblers 133 ist über
den Bus 43 mit dem Nutzdatenausgang des 64b/66b-Codierers 50 verbunden.
Der Ausgang des zurücksetzbaren
Scramblers ist über
den Bus 44 mit dem Nutzfeld-Eingang des Rahmenzusammensetzers 34 verbunden.
Der Eingang des voreinstellbaren Descramblers 138 ist über den
Bus 47 mit dem Nutzfeld-Ausgang des Rahmenzerlegers 37 verbunden.
Der Ausgang des voreinstellbaren Descramblers ist über den
Bus 48 mit dem Nutzfeld-Eingang des 66b/64b-Decodierers 52 verbunden.
Der Ausgang des voreinstellbaren Descramblers ist zudem mit dem
Eingang des Fehlerdetektors 165 verbunden.
-
Die
Steuerleitung 66 ist mit den Steuereingängen des voreinstellbaren Scramblers 133,
des voreinstellbaren Descramblers 138, des 64b/66b-Codierers 50,
des 66b/64b-Decodierers 52 und
des Fehlerdetektors 165 verbunden.
-
Das
Datenkommunikationssystem 100 hat einen normalen Betriebsmodus
und einen Selbsttest-Betriebsmodus. Während des normalen Betriebsmodus
ist das STE-Steuersignal
der Steuerleitung 66 nicht aktiviert (not asserted) ist.
Dadurch arbeitet der 64b/66b-Codierer 50 wie oben beschrieben und
setzt den voreinstellbaren Scrambler 133 zudem auf seinen üblichen
Betriebsmodus, indem die oben beschriebene Endbit-Sequenz den voreinstellbaren Scrambler
nicht voreinstellt. Mit dem 64b/66b-Codierer und dem voreinstellbaren
Scrambler, die gerade beschrieben wurden, codiert der 64b/66b-Codierer Blocks,
die über
den XAUI-Bus 18 empfangen werden, um Nutzfelder zu erzeugen,
und der voreinstellbare Scrambler verscrambelt die Nutzfelder, um
entsprechende verscrambelte Nutzfelder zu erzeugen. Die verscrambelten
Nutzfelder werden in Rahmen ausgebildet, die in serielle Form gebracht
werden und über
das Ethernet-Medium 40 gesendet werden.
-
Ferner
verursacht die Nichtaktivierung des STE-Steuersignals, daß der 66b/64b-Decodierer 52 wie
oben beschrieben arbeitet und versetzt den voreinstellbaren Descrambler 168 in
seinen üblichen Betriebsmodus,
in der die oben beschriebene Endbit-Sequenz den voreinstellbaren Scrambler
nicht voreinstellt. Mit dem 66b/64b-Decodierer und dem voreinstellbaren
Descrambler, die wie beschrieben arbeiten, wird ein von dem Ethernet-Medium 40 empfangener
serieller Bitstrom in Rahmen unterteilt. Aus den Rahmen werden verscrambelte
Nutzfelder und Hauptübergänge extrahiert
und die Nutzfelder werden mit dem voreinstellbaren Descrambler entscrambelt,
um entsprechende wiederhergestellte Nutzfelder zu erzeugen. Der
66b/64b-Codierer dekodiert die wiederhergestellten Nutzfelder abhängig von
den entsprechenden Hauptübergänge, um
Datenblocks zu erzeugen, um diese über den XAUI-Bus 19 auszugeben.
Schließlich
deaktiviert das Steuersignal den Fehlerdetektor 165.
-
Im
Selbsttest-Betriebsmodus ist das STE-Steuersignal der Steuerleitung 66 aktiviert
(asserted). Das STE-Steuersignal veranlaßt den 64b/66b-Codierer 50,
als Quelle eines Initialwert-Nutzfeldes (seed payload field) zu
arbeiten, indem alle Worte auf einen vorbestimmten Wert gesetzt
werden. In einer Ausführung
ist das Initialwert-Nutzfeld aus den Worten 55h 00h 00h 01h 00h 00h 00h 01h gebildet, die zusammen einen lokalen Fehler (Local
Fault) anzeigen. Dieses Initial-Nutzfeld wird Nutzfeld für lokale
Fehler genannt. Einige Ausführungen
des 64b/66b-Codierers werden konfiguriert, um abhängig von
einem Steuersignal zu arbeiten, um selbständig ein Nutzfeld für lokale
Fehler zu erzeugen. In diesem Fall kann das STE-Steuersignal verwendet
werden, um diese Funktion zu aktivieren, oder ein Befehl kann über den
XAUI-Bus gesendet werden, um den 64b/66b-Codierer zu veranlassen, das
Nutzfeld für
lokale Fehler zu erzeugen. Das Verwenden des Nutzfeldes für lokale
Fehler als Initialwert-Nutzfeld hat den Vorteil, daß die Empfänger, welche
sich nicht in ihrem Selbsttest-Betriebsmodus finden, dadurch die
Testsequenz ignorieren. Eine Alternative zu dem Initialwert-Nutzfeld
ist ein Leerlauf-Nutzfeld (Idle Payload field), das sich aus den Steuerworten
zusammensetzt, welche einen Leerlaufzustand (Idle Condition) angeben.
-
Der
64b/66b-Codierer 50 erzeugt ferner für jedes Initialwert-Nutzfeld
einen Hauptübergang
und führt
den Hauptübergang über den
Bus MT dem Hauptübergangs-Eingang
des Rahmenzusammensetzers 34 zu.
-
Während der
Zeit, in der das STE-Steuersignal der Steuerleitung 66 aktiviert
ist, gibt der 64b/66b-Codierer wiederholt das Initialwert-Nutzfeld sowie
dessen Hauptübergang
an den jeweiligen voreinstellbaren Scrambler 33 und den
Rahmenzusammensetzer 34 aus. Die Rate, mit der das Initialwert-Nutzfeld
und dessen Hauptübergang
ausgegeben werden, ist die gleiche, mit der die Nutzfelder und deren
Hauptübergänge während des
normalen Betriebsmodus ausgegeben werden.
-
Das
Aktivieren des STE-Steuersignals schaltet zudem den voreinstellbaren
Scrambler 133 auf seinen voreingestellten Betriebsmodus.
Die Zustandsänderung
des STE-Steuersignals
setzt den voreinstellbaren Scrambler auf seinen Voreinstellungszustand.
Der voreinstellbare Scrambler überwacht
in seinem voreingestellten Betriebsmodus die Testsequenz, um die
Endbit-Sequenz zu detektieren, welche das Ende der Testsequenz angibt,
und stellt sich selbst jedesmal, wenn es die Endbit-Sequenz detektiert,
auf seinen Voreinstellungszustand.
-
In
einer Ausführung
wird der voreinstellbare Scrambler voreingestellt, indem die folgende 58-Bit-Zahl
als Voreinstellungszustand in den Voreinstellungsscrambler 133 eingesetzt
wird: 10101111 11111111 11100000 10111111 11111100 00000111 11111111
10, indem das Bit, welches sich am weitesten links befindet, das älteste Zustandsbit
ist und das Bit, das sich am weitesten rechts befindet, das neueste
Zustandsbit ist.
-
In
dieser Ausführung
verursacht die Kombination des Voreinstellungszustands und des oben beschriebenen
Initialwert-Nutzfeldes, daß der
voreinstellbare Scrambler 133 eine Testsequenz erzeugt, welche
mit einem gewünschten
Bitmuster beginnt, das aus einem Bitlauf von 46 Nullen (46-bit run
length of zeros) gebildet ist. Es kann ein anderer Voreinstellungszustand
verwendet werden, um den voreinstellbaren Scrambler dazu zu veranlassen,
die Testsequenz mit einem anderen gewünschten Bitmuster zu erzeugen.
Andere gewünschte
Bitmuster können verwendet
werden, um verschiedene Aspekte der Leistungsfähigkeit des Datenkommunikationssystems
zu testen. Beispielsweise kann das gewünschte Bitmuster, welches sich
aus einem Bitlauf von 46 Nullen zusammensetzt, später in der
Testsequenz angeordnet sein. Andere Werte des Voreinstellungszustands
und des Initialwert-Nutzfeldes können
verwendet werden, um ein gewünschtes
Bitmuster zu erzeugen, welches jede gewünschte Lauflänge von Einsen
oder Nullen aufweist, bis zu der Anzahl der Stufen in dem voreinstellbaren
Scrambler. Als weiteres Beispiel kann die Testsequenz so erzeugt
werden, daß sie
ein gewünschtes
Bitmuster umfaßt,
welches einen spezifischen Zustand des Grundlinien-Abgleitens (baseline
wander condition) hervorruft, beispielsweise ein maximales Abgleiten
von der Grundlinie oder ein minimales Abgleiten von der Grundlinie.
Schließlich
kann dem voreinstellbaren Scrambler während der Erzeugung der Testsequenz eine
Sequenz von zwei oder mehr verschiedenen Initialwert-Nutzfeldern
zugeführt
werden, so daß die Testsequenz
mit entsprechenden verschiedenen gewünschten Bitmustern erzeugt
wird. In dieser Offenbarung soll der Begriff „ein Initialwert-Nutzfeld" so verstanden werden,
daß dieser
ein Initialwert-Nutzfeld umfaßt,
welches ein Teil einer Sequenz von zwei oder mehr Initialwert-Nutzfeldern
ist.
-
Das
dem voreinstellbaren Scrambler zugeführte Initialwert-Nutzfeld kann
in ein anderes Initialwert-Nutzfeld geändert werden, wenn der voreinstellbare
Scrambler in Reaktion auf das Detektieren der Endbit-Sequenz zurückgesetzt
wird. Das veränderte Initialwert-Nutzfeld ändert die
Endbit-Sequenz, welche in der Testsequenz auftritt, nachdem die
vorbestimmte Anzahl an Bits detektiert wurde.
-
Der
voreinstellbare Scrambler 133 führt dem Nutzfeldeingang des
Rahmenzusammensetzers 34 64-Bit-Testsequenzfelder zu. Der
Rahmenzusammensetzer bildet aus den von dem voreinstellbaren Scrambler 133 empfangenen
Testsequenzfeldern und deren entsprechenden, von dem 64b/66b-Codierer 50 empfangenen
Hauptübergängen 66-Bit-Rahmen und führt diese
66-Bit-Rahmen dem Multiplexer 35 zu. Beispielsweise kann der
Rahmenzusammensteller seinem Hauptübergang jedem Testsequenzfeld
anhängen,
wie es in 2A dargestellt ist.
-
Jedoch
kann der Hauptübergang
in einer beliebigen Weise in das Testsequenz-Feld eingebracht werden,
solange diese beliebige Weise dem Empfänger bekannt ist. Ferner kann
in ein Datenkommunikationssystem, das keine Hauptübergänge verwendet, ein
beliebiges Synchronisierungsmuster in das Testsequenz-Feld in einer
beliebigen Weise eingebracht werden oder an dieses angehängt werden,
solange der Empfänger
das Synchronisierungsmuster und diese beliebige Weise kennt, um
Informationen bezüglich
des Nutzfeldes vorzusehen. Das Synchronisierungsmuster kann jedes
stabile, mittels Computer überprüfbares Muster
sein. Beispielsweise kann ein Paritätsbit des Nutzfeldes als Synchronisierungsmuster
verwendet werden. In diesem Fall würde der Empfänger die
Phase des Demultiplexers 36 verschieben, bis ein stabiles
Bit gefunden wird, welches in Übereinstimmung
mit der Parität
des Nutzfeldes ist.
-
Der
Multiplexer 35 erzeugt aus dem 66-Bit-Rahmen einen seriellen
Bitstrom und führt
diesen Bitstrom dem Ethernetmedium 40 zu.
-
In
dem Empfänger 122 unterteilt
der Demultiplexer 36 den von dem Ethernetmedium 40 empfangenen
seriellen Bitstrom in 66-Bit-Rahmen und führt diese Rahmen dem Rahmenzerleger 37 (frame
disassembler) zu. Der Rahmenzerleger 37 verarbeitet jeden
Rahmen, um den Hauptübergang
von dem empfangenen Testsequenz-Feld zu trennen und führt den
Hauptübergang
dem Hauptübergangseingang des
66b/64b-Decodierers 52 zu. Der Rahmenzerleger führt ferner
dem voreinstellbaren Descrambler 138 das empfangene Testsequenz-Feld
zu.
-
Das
STE-Steuersignal schaltet den voreinstellbaren Descrambler 138 in
seinen voreingestellten Betriebsmodus. In dem voreingestellten Betriebsmodus
entscrambelt der voreinstellbare Descrambler die von dem Rahmenzerleger 37 empfangenen
Testsequenzfelder, um entsprechende wiederhergestellte Testsequenzfelder
zu erzeugen. Zudem überwacht der
voreinstellbare Descrambler jedesmal, wenn dieser die Endbit-Sequenz
detektiert, die empfangenen Testsequenzfelder, um die Endbit-Sequenz
zu detektieren, und nimmt an sich selbst eine Voreinstellung auf
den gleichen Voreinstellungszustand wie der voreinstellbare Scrambler 133 vor.
Der voreinstellbare Descrambler führt dem 66b/64b-Decodierer 52 und dem
Fehlerdetektor 165 die wiederhergestellten Testsequenzfelder
zu.
-
Das
STE-Steuersignal setzt den 66b/64b-Decodierer, so daß dieser
die wiederhergestellten Testsequenzfelder ignoriert, welche von
dem voreinstellbaren Descrambler 138 ausgegeben werden.
Zudem aktiviert das STE-Steuersignal den Fehlerdetektor 165.
Der Fehlerdetektor untersucht die von dem voreinstellbaren Descrambler
empfangenen Testsequenzfelder. Wenn das Datenkommunikationssystem
fehlerfrei ist, dann ist jedes wiederhergestellte Testsequenzfeld
mit dem oben beschriebenen Initialwert-Nutzfeld identisch. Der Fehlerdetektor
detektiert, ob sich jedes wiederhergestellte Testsequenzfeld von
dem Initialwert-Nutzfeld unterscheidet und zählt die Anzahl der Testsequenzfelder
mit Fehler als fehlerhafte Testsequenzfelder, um eine Schätzung der
Bitfehlerrate vorzusehen. Alternativ kann der Fehlerdetektor jeden
Unterschied zwischen den wiederhergestellten Testsequenzfeldern
und dem Initialwert-Nutzfeld detektieren und zählen. Wenn dies durchgeführt ist,
teilt der Fehlerdetektor die Fehleranzahl durch Drei, um die Bitfehlerrate
zu schätzen,
da der voreinstellbare Descrambler den Effekt jedes Bitfehlers mit
Drei multipliziert.
-
Die 5A ist
ein Blockdiagramm, das ein Beispiel einer seriellen Version des
voreinstellbaren Scramblers 133 zeigt, welcher mittels
des Polynoms x58 + x39 +
x0 verscrambelt. Einem Fachmann liegen Modifikationen
des Beispiels nahe, um das Scrambling mit anderen Polynomen zu implementieren.
Der voreinstellbare Scrambler setzt sich aus dem Schieberegister 201,
den XOR-Gattern 202 und 203, dem Voreinstellungszustand-Generator 204,
dem AND-Gatter mit N Eingängen 205 und
der Steuerung 206 zusammen. N ist die Anzahl an Stufen
in dem Schieberegister.
-
Ein
Multiplexer (nicht dargestellt) bildet aus dem Initialwert-Nutzfeld,
welches von dem 64b/66b-Codierer 50 (4)
empfangen wurde, einen seriellen Bitstrom. Der serielle Bitstrom
wird an dem Eingang 210 empfangen, der mit einem Eingang des
XOR-Gatters 202 verbunden ist. Der andere Gattereingang
des XOR-Gatters 202 ist mit dem Ausgang des XOR-Gatters 203 verbunden.
Der Ausgang des XOR-Gatters 202 ist mit dem Ausgang 212 und ferner
mit dem Dateneingang D des Schieberegisters 201 verbunden.
Die verscrambelte serielle Bitstromausgabe an dem Ausgang 212 wird über einen
Demultiplexer (nicht dargestellt) an den Rahmenzusammensetzer 34 (4)
weitergeleitet.
-
Der
Voreinstellungszustand-Generator 204 setzt sich aus 58
Zustandsgeneratoren zusammen, die jeweils gemäß der entsprechenden Stelle
des 58-Bit-Voreinstellungszustands auf 0 oder 1 gesetzt sind. In
dem oben betrachteten Beispiel des Voreinstellungszustands setzt
der Voreinstellungszustand-Generator die Eingänge P der jeweiligen Stufen 1 bis 58 auf
01 11111111 11100000 00111111 11111101 00000111 11111111 11110101.
Schaltkreisblöcke
zum Erzeugen eines vorbestimmten Zustandsatzes sind im Stand der
Technik bekannt und werden hier nicht weiter beschrieben.
-
Die 5A zeigt
vier beispielhafte Stufen 1, 2, 39 und 58 als
Beispiel des Schieberegisters 201, welches 58 Stufen aufweist.
Jede Stufe ist auf den Zustand voreinstellbar, auf den ihr Voreinstellungseingang
P gesetzt ist. Jede Stufe hat einen Datenausgang Q. Der Voreinstellungseingang
P jeder Stufe des Schieberegisters 201 ist mit verschiedenen Eingängen des
Voreinstellungszustand-Generators 204 verbunden.
-
Der
Dateneingang Q jeder Stufe des Schieberegisters 201 ist
mit verschiedenen Eingängen
des AND-Gatters mit N-Eingängen 205 verbunden.
Das AND-Gatter mit N-Eingängen ist
konfiguriert, zu detektieren, wenn die Endbit-Sequenz an den Ausgängen des
Schieberegisters erscheint. Jeder Eingang des AND-Gatters 205 ist
invertierend oder nicht-invertierend (durch x-Symbole angegeben),
abhängig von
den Einsen und Nullen der Endbit-Sequenz. Wenn das Schieberegister 58 Stufen
hat, ist das AND-Gatter
mit N-Eingängen 205 ein
Gatter mit 58 Eingängen
und die Endbit-Sequenz entspricht den letzten 58 Bits der Testsequenz.
Wenn die Endbit-Sequenz in den Ausgängen des Schieberegisters erscheint,
ist der Eingang des Gatters, das mit einem Ausgang im Zustand 0
verbunden ist, und ein Eingang, der mit einem Ausgang im 1-Zustand
verbunden ist, ist nicht-invertierend. Wenn beispielsweise die Bits
1, 2 und 58 invertierend, der Endbit-Sequenz 010 sind, dann sind
die Gattereingänge 1 und 58 invertierend
und der Eingang 2 ist nicht-invertierend.
-
Der
Ausgang des AND-Gatters mit N-Eingängen 205 ist mit einem
Eingang der Steuerung 206 verbunden. Der andere Eingang
der Steuerung empfängt über die
Steuerlei tung 66 ein Selbsttest-Aktivierungs-Steuersignal
STE. Der Ausgang der Steuerung ist mit dem voreingestellten Eingang
PS des Schieberegisters 201 verbunden.
-
Die
Datenausgänge
Q der Stufen 39 und 58 des Schieberegisters 201 sind
zudem mit den Eingängen
des XOR-Gatters 203 verbunden.
-
Im
normalen Betriebsmodus des Datenkommunikationssystems 100 hält der niedrige
Zustand des Steuersignals STE den Ausgang der Steuerung 205 auf
niedrigem Pegel, wodurch die Voreinstellungseingänge PS des Schieberegisters 201 auf niedrigem
Pegel gehalten werden. Dadurch werden jegliche Voreinstellungen
der Inhalte des Schieberegisters 201 vermieden, und der
voreinstellbare Scrambler 133 verscrambelt die von dem 64b/66b-Codierer 50 empfangenen
Nutzfelder mit dem Polynom x58 + x39 + x0.
-
Im
Selbsttest-Betriebsmodus liegt das Initialwert-Nutzfeld an dem Eingang
des voreinstellbaren Scramblers 133 an. Das Steuersignal
STE weist seinen hohen Pegel auf. Die Zustandsänderung des Steuersignals STE
veranlaßt
den Ausgang der Steuerung 206, den Zustand für einen
Taktzyklus zu ändern.
Durch den hohen Pegel des Voreinstellungseingangs PS des Schieberegisters 201 wird
der Pegel des Voreinstellungseingang jeder Stufe in die Stufe geladen
und der Pegel wird an den Datenausgang Q der Stufe übertragen.
Wenn der Voreinstellungseingang auf seinen niedrigen Pegel zurückgeht,
verscrambelt der voreinstellbare Scrambler das Nutzfeld für lokale
Fehler, das mit dem Schieberegister 201 beginnt, welches
auf den voreingestellten Zustand voreingestellt ist. In dem oben
beschriebenen Beispiel sind die ersten 46 Stellen des Ausgangs alle Nullen.
-
Der
voreinstellbare Scrambler 133 fährt mit dem Verscrambeln des
lokalen Fehler-Nutzfeldes fort,
bis die letzten 58 ausgegebenen Bits der oben beschriebenen Endbit-Sequenz entsprechen.
Beispielsweise sind die letzten 64 Bits, welche von dem voreinstellbaren
Scrambler am Ende der Testsequenz von 231-Bits
ausgegeben werden (40 2B BA 29 1E 44 6E DD)hex.
-
Wenn
die letzten von dem voreinstellbaren Scrambler 133 ausgegebenen
58 Bits die Endbit-Sequenz sind, erscheint die Endbit-Sequenz zusätzlich an
den Datenausgängen Q
des Schieberegisters 201. Dadurch wird der Eingang des
AND-Gatters mit N-Eingängen 205,
der Ausgang der Steuerung 206 und der Voreinstellungseingang
PS des Schieberegisters 201 alle auf einen hohen Pegel
gesetzt. Der hohe Pegel des Voreinstellungseingangs PS lädt ein weiteres
Mal den Pegel des Voreinstellungseingangs P jeder Stufe in die Stufe
und setzt jeden Datenausgang Q jeder Stufe auf den Pegel des Voreinstellungseingangs.
Die Pegeländerungen
der Datenausgänge
Q des Schieberegisters verursachen, daß der Ausgang des AND-Gatters
mit N-Eingängen
auf einen niedrigen Pegel geht. Der niedrige Pegel des Ausgangs
des AND-Gatters mit N-Eingängen
kehrt zu dem Ausgang der Steuerung zurück und der Voreinstellungseingang
PS des Schieberegisters geht auf seinen niedrigen Pegel zurück, und
der Zyklus wiederholt sich.
-
Der
Ausgang der Steuerung 206 kann verwendet werden, um das
Initialwert-Nutzfeld zu verändern,
das dem voreinstellbaren Scrambler 133 zugeführt wird,
wenn der voreinstellbare Scrambler voreingestellt wird. Dadurch
kann die Testsequenz nach der Voreinstellung so erzeugt werden,
daß sie
verschiedene gewünschte
Bitmuster der Testsequenz umfaßt,
die vor der Voreinstellung erzeugt wurde. Zwei unterschiedliche
Initialwert-Nutzfelder
können sich
abwechseln. Alternativ kann eine Schleife verwendet werden, die
aus einer Sequenz von mehr als zwei Initialwert-Nutzfeldern besteht,
von denen zumindest zwei verschieden sind.
-
Wenn
das Initialwert-Nutzfeld verändert
wird, wird auch die Endbit-Sequenz der Testsequenz verändert. In
diesem Fall kann der voreinstellbare Scrambler 133 mehr
als ein Gatter mit N-Eingängen umfassen.
Jedes Gatter mit N-Eingängen
detektiert eine andere Endbit-Sequenz. Die Ausgänge der Gatter mit N-Eingängen werden über einen
Auswähler an
die Steuerung 206 geführt,
wobei der Auswähler den
Ausgang des Gatters mit N-Eingängen
wählt, welches
die Endbit-Sequenz der aktuell erzeugten Testsequenz detektiert.
Der voreinstellbare Descrambler 138 kann eine entsprechende
Anordnung umfassen.
-
Die 5B ist
ein Blockdiagramm, das ein Beispiel einer seriellen Version eines
voreinstellbaren Descramblers 138 zeigt. Die Elemente des
voreinstellbaren Descramblers 138, welche Elementen des
voreinstellbaren Scramblers 133 entsprechen, der in 5A gezeigt
ist, werden mit den gleichen Bezugszeichen bezeichnet und werden
nicht nochmals beschrieben. In dem voreinstellbaren Descrambler
werden die Bits des Test sequenzfeldes, die über den Eingang 214 von
dem Rahmenzerleger 37 empfangen werden, dem Eingang D des
Schieberegisters 201 zugeführt. Dies entspricht dem Testsequenzfeld,
das von dem in 5A dargestellten voreinstellbaren
Scrambler erzeugt wurde, und dem Eingang D des Schieberegisters
zugeführt
wird. Der Ausgang des XOR-Gatters 202 führt das wiederhergestellte
Testsequenzfeld an den Ausgang 216.
-
Der
Ausgang des AND-Gatters mit N-Eingängen 205 ist mit einem
Eingang des AND-Gatters mit
zwei Eingängen 209 verbunden.
Der andere Eingang des AND-Gatters 209 empfängt das
Selbsttest-Aktivierungssteuersignal STE über die Steuerleitung 66.
Der Ausgang des AND-Gatters 209 ist mit dem Voreinstellungseingang
PS des Schieberegisters 201 verbunden.
-
Während des
normalen Betriebsmodus hält der
niedrige Pegel des Steuersignals STE den Ausgang des AND-Gatters 209 auf
niedrigen Pegel, wodurch der Voreinstellungseingang PS des Schieberegisters 201 auf
niedrigem Pegel gehalten wird. Dadurch wird jegliche Voreinstellung
der Inhalte des Schieberegisters 201 unterbunden und der
voreinstellbare Descrambler 138 entscrambelt die verscrambelten
Nutzfelder mit dem Polynom x58 + x39 + x0, um entsprechende
wiederhergestellte Nutzfelder zu erzeugen, welche an den 66b/64b-Decodierer 52 ausgegeben
werden.
-
Während des
Selbsttestmodus wechselt das Steuersignal STE auf einen hohen Pegel,
wodurch der Ausgang des AND-Gatters mit N-Eingängen 209 den Voreinstellungseingang
PS des Schieberegisters 201 steuern kann. Der Ausgang des
AND-Gatters 209 ist anfänglich
auf niedrigem Pegel, so daß der voreinstellbare
Descrambler die empfangenen resultierenden Testsequenzfelder entscrambelt,
bis die letzten von dem voreinstellbaren Descrambler 138 empfangenen
58 Bit die Endbit-Sequenz darstellen.
-
Wenn
die letzten empfangenen 58 Bits die Endbit-Sequenz sind, erscheint
die Endbit-Sequenz zudem
an den Datenausgängen
Q des Schieberegisters 201. Dadurch gehen der Eingang des
AND-Gatters mit N-Eingängen 205,
der Ausgang des AND-Gatters 209 und der Voreinstellungseingang
PS des Schieberegisters 201 alle auf hohen Pegel. Durch
den hohen Pegel des Voreinstellungseingangs wird der Pegel des Voreinstellungseingangs
P jeder Stufe in die Stufe geladen, wodurch die Pegel der Datenausgänge Q des
Schieberegisters verändert
werden. Dadurch geht der Ausgang des AND-Gatters mit N-Eingängen 205 auf
niedrigen Pegel. Die niedrigen Pegel der Ausgänge der AND-Gatter 205 und 209 gehen
auf den Voreinstellungseingang PS des Schieberegisters und damit
auf seinen niedrigen Pegel zurück.
Dadurch kann der voreinstellbare Descrambler die empfangenen Testsequenzfelder
entscrambeln, beginnend mit dem Schieberegister 201, das
auf den Voreinstellungszustand voreingestellt wird. Diese Voreinstellungssequenz
wiederholt sich jedesmal, wenn die Endbit-Sequenz empfangen wird.
-
Es
sollte bemerkt werden, daß der
Voreinstellungsübergang,
der in dem voreinstellbaren Descrambler 138 stattfindet,
wenn die Endbit-Sequenz empfangen wird, nahtlos und störungsfrei
stattfindet.
-
Die 6 ist
ein Blockdiagramm, das ein Beispiel von drei aufeinanderfolgenden
Stufen darstellt, die einen Teil des in 5A und 5B gezeigten
Schieberegisters 201 bilden. In einer Ausführung besteht
das Schieberegister aus 58 gleichen Stufen. Im folgenden wird die
Stufe 220 beschrieben. Die Stufe 220 setzt sich
aus dem Verzögerungselement 222 und
dem Auswähler
mit zwei Eingängen 224 zusammen.
Der Ausgang des Auswählers
ist mit dem Dateneingang D des Verzögerungselements verbunden.
Ein Eingang des Auswählers
ist mit dem Ausgang der vorhergehenden Stufe 226 verbunden. Der
andere Eingang ist mit dem Ausgang des Voreinstellungszustand-Generators 204 verbunden,
der der Stufe 220 entspricht. Der Steuereingang des Auswählers ist über die
Voreinstellungsleitung mit dem Voreinstellungseingang PS des Schieberegisters verbunden.
-
Der
Datenausgang Q des Verzögerungselements 222 ist
mit der nächsten
Stufe 228 und zudem mit dem Eingang des AND-Gatters mit
N-Eingängen 205 verbunden,
das in den 5A und 5B dargestellt
ist. Der Takteingang des Verzögerungselements
ist über
die Taktleitung mit dem Takteingang C des Schieberegisters 201 verbunden.
-
Wenn
sich der Voreinstellungseingang PS auf niedrigem Pegel befindet,
verbindet der Auswähler 224 den
Ausgang Q der vorhergehenden Stufe 226 mit dem Dateneingang
D des Verzögerungselements 222.
Mit dem nächsten
Taktzyklus wird der Pegel des Dateneingangs D mit dem Ausgang des
Verzögerungselements 222 und
somit mit der nächsten Stufe 228 getaktet.
Wenn der Voreinstellungseingang PS auf hohem Pegel ist, verbindet
der Auswähler 224 den
Ausgang des Voreinstellungszustand-Generators 204, der
der Stufe 220 entspricht, mit dem Dateneingang D des Verzögerungselements.
Mit dem nächsten
Taktzyklus wird der nächste Pegel,
der der Stufe 220 entspricht, mit dem Ausgang Q des Verzögerungselements
und mit dem Eingang der nächsten
Stufe 228 getaktet. Somit wird der Ausgang der Stufe 220 auf
den Voreinstellungszustand eingestellt.
-
Die 7 ist
ein Blockdiagramm eines Beispiels einer parallelen Version des in 5A dargestellten
voreinstellbaren Scramblers 133. Die Elemente des in 7 dargestellten
voreinstellbaren Scramblers, welche den Elementen des in 5A dargestellten
voreinstellbaren Scramblers entsprechen, werden mit den gleichen
Bezugszeichen gekennzeichnet und werden hier nicht nochmals beschrieben.
-
Im
weiteren wird ein Beispiel 250 eines parallelen voreinstellbaren
58-Bit-Scramblers beschrieben, der ein 64-Bit-Nutzfeld mittels des
Polynoms x58 + x39 +
x0 verscrambelt, um ein verscrambeltes 64-Bit-Nutzfeld
zu erzeugen. Für
den Fachmann sind Modifikationen des dargestellten Beispiels ersichtlich,
beispielsweise die Verwendung eines anderen Polynoms und/oder das
Verscrambeln von Nutzfeldern mit einer anderen Größe.
-
Der
voreinstellbare Scrambler 250 setzt sich aus dem Auswähler 252,
dem Scrambleregister 254 und dem XOR-Gatterfeld 256 zusammen.
Der voreinstellbare Scrambler umfaßt ferner einen Voreinstellungsgenerator 204,
das AND-Gatter mit N-Eingängen 205 und
die oben beschriebene Steuerung 206.
-
Der
Voreinstellungszustand-Generator setzt sich aus den 58 Zustandsgeneratoren
zusammen, die mit 1–58 durchnumeriert
sind. Ein beispielhafter Zustandsgenerator ist mit dem Bezugszeichen 258 dargestellt.
Der Zustandsgenerator hat einen Ausgang P, der gemäß der entsprechenden
Stelle des 58-Bit-Voreinstellungszustands auf 0 oder 1 gesetzt ist.
Die restlichen 57 Zustandsgeneratoren haben die gleiche Struktur
und Funktion.
-
Der
Auswähler 252 setzt
sich aus 58 Umschalter mit zwei Eingängen (two-input change-over switches)
zusammen, die mit 1–58 durchnumeriert sind.
Ein beispielhafter Schalter ist mit dem Bezugszeichen 260 dargestellt.
Der Schalter 260 hat zwei Eingänge A und B, einen Ausgang
M und einen Steuereingang. Der Schalter verbindet Eingang A mit
dem Ausgang M, wenn die Voreinstellungsleitung PS nicht aktiviert
ist, und verbindet den Eingang B mit dem Ausgang M, wenn die Voreinstellungsleitung
PS aktiviert ist. Die verbleibenden 57 Schalter haben die gleiche
Struktur und Funktion.
-
Das
Scrambleregister 254 setzt sich aus 58 Latches zusammen,
die mit 1–58 durchnumeriert sind.
Ein beispielhafter Latch ist mit dem Bezugszeichen 262 dargestellt.
Der Latch 262 hat einen Eingang E, einen Ausgang S und
einen Steuereingang. Der Latch überträgt den Pegel
an seinem Eingang E an seinen Ausgang S, wenn das Ladesignal der
Ladeleitung L bei der Ankunft eines neuen Nutzfeldes am Eingang
des voreinstellbaren Scramblers 250 aktiviert ist. Die
verbleibenden 57 Latches haben die gleiche Struktur und Funktion.
-
Das
XOR-Gatterfeld 256 setzt sich aus 64 Exklusiv-ODER(XOR)-Gatter
mit drei Eingängen
zusammen, die mit 1–64 durchnumeriert
sind. Ein beispielhaftes XOR-Gatter ist mit dem Bezugszeichen 265 dargestellt.
Das XOR-Gatter 265 hat einen Eingang X, einen Eingang Y,
einen Eingang Z und einen Ausgang T. Die verbleibenden XOR-Gatter
haben die gleiche Struktur und Funktion.
-
Die
Eingänge
A der Schalter 1–58 des
Auswählers 252,
die mit A(1–58)
gekennzeichnet sind, sind gemäß den Ausgängen T der
XOR-Gatter 1–58 des
XOR-Gatterfeldes 256 verbunden, die mit T(1–58) gekennzeichnet
sind. Die Ausgänge
B der Schalter 1–58 des
Auswählers,
die mit B(1–58)
gekennzeichnet sind, sind gemäß den Eingängen P der Zustandsgeneratoren 1–58 des
Voreinstellungszustandgenerators 204 verbunden, die mit
P(1–58)
gekennzeichnet sind. Alle Steuereingänge der Schalter 1–58 des
Auswählers
sind mit der Voreinstellungsleitung PS verbunden. Die Voreinstellungsleitung
ist mit dem Ausgang der Steuerung 206 verbunden. Die Ausgänge M der
Umschalter 1–58 des
Auswählers, die
mit M(1–58)
gekennzeichnet sind, sind gemäß der Eingänge E der
Latches 1–58 des
Scrambelregisters 254 verbunden, die mit E(1–58) gekennzeichnet sind.
-
Alle
Steuereingänge
der Latches 1–58 des Scrambelregisters 254 sind
mit der Ladeleitung L verbunden. Die Ladeleitung wird jedesmal aktiviert, wenn
der voreinstellbare Scrambler 250 ein neues Nutzfeld von
dem 64b/66b-Codierer 50 empfängt.
-
Die
Ausgänge
S der Latches 1–58 des Scrambelregisters 254,
die mit S(1–58)
gekennzeichnet sind, sind gemäß den Eingängen X der
XOR-Gatter 7–54 des
XOR-Gatterfeldes 256 verbunden,
die mit X(7–64)
gekennzeichnet sind. Zudem sind die Ausgänge S der Latches 1–39 des
Scrambleregisters, die mit S(1–39)
gekennzeichnet sind, gemäß den Eingängen Y der
XOR-Gatter 26–64 des XOR-Gatterfeldes 256 verbunden,
die mit Y(26–64) gekennzeichnet
sind.
-
Der
Eingang, der durch I(1–64)
gekennzeichnet ist, stammt von dem Nutzfeldausgang des 64b/66b-Codierers 50 und
ist mit den Eingängen
Z der XOR-Gatter 1–64 des
XOR-Gatterfelds 256 verbunden,
die mit Z(1–64)
gekennzeichnet sind.
-
Die
Ausgänge
T des XOR-Gatters 1–64 des XOR-Gatterfelds 256,
die durch T(1–64)
gekennzeichnet sind, sind mit dem Ausgang des mit O(1–64) gekennzeichneten,
voreinstellbaren Scramblers 250 verbunden. Ferner sind
die Ausgänge
T der XOR-Gatter 40–64 des
XOR-Gatterfelds, welche durch T(40–64) gekennzeichnet sind, mit
den Eingängen
Y der XOR-Gatter 1–25 des
XOR-Gatterfelds verbunden, die mit Y(1–25) gekennzeichnet sind. Schließlich sind
die Ausgänge
T der XOR-Gatter 59–64 des
XOR-Gatterfelds,
die mit T(59–64)
gekennzeichnet sind, mit den Eingängen X der XOR-Gatter 1–6 des
XOR-Gatterfelds verbunden, die mit X(1–6) gekennzeichnet sind.
-
Während des
normalen Betriebsmodus des Datenkommunikationssystems 100 hält der niedrige Pegel
des Steuersignals STE den Ausgang der Steuerung 206 auf
niedrigem Pegel, wodurch die Voreinstellungsleitung PS des Auswählers 252 auf
niedrigem Pegel gehalten wird. Dadurch werden die Ausgänge T der
XOR-Gatter 1–58 des
Gatterfelds 256 mit den jeweiligen Ausgängen M der Schalter 1–58 des
Auswählers
verbunden, und somit mit den Eingängen E der Latches 1–58 des
Scrambleregisters 254. Der voreinstellbare Scrambler 250 wird
nicht zurückgesetzt
und der voreinstellbare Scrambler verscrambelt die Nutzfelder mit
dem Polynom x58 + x39 + x0.
-
Während des
Selbsttest-Betriebsmodus empfängt
der voreinstellbare Scrambler 250 das Initialwert-Nutzfeld
an seinem Eingang I. Das Steuersignal STE befindet sich auf seinem
hohen Pegel. Die Zustandsänderung
des Steuersignals STE hat zur Folge, daß der Ausgang der Steuerung 206 für einen Taktzyklus
auf seinen hohen Pegel ändert.
Der hohe Pegel der Voreinstellungsleitung PS veranlaßt den Auswähler 252,
die Ausgänge
P der Elemente 1–58 des
Voreinstellungs-Generators 252 mit den jeweiligen Ausgängen M der
Schalter 1–58 des
Auswählers zu
verbinden, und somit mit den Eingängen E der Latches 1–58 des
Scrambleregisters 254. Das Ladesignal lädt daraufhin die Ausgänge des
Voreinstellzustand-Generators in die Latches 1–58 des
Scrambleregisters. Dadurch werden die Pegel der Ausgänge T der
XOR-Gatter gesetzt, welche die Ausgabe des voreinstellbaren Scramblers 250 vorsehen.
In dem oben beschriebenen Beispiel werden die Ausgänge auf
(00 00 00 00 00 28 FF 03)hex gesetzt.
-
Wenn
die Voreinstellungsleitung PS auf ihren niedrigen Pegel zurückkehrt,
werden die Ausgänge der
XOR-Gatter 1–58 des
XOR-Gatterfelds 256 ein weiteres Mal den jeweiligen Ausgängen M der
Schalter 1–58 des
Auswählers 252 zugeführt, und
somit den Eingängen
E der Latches 1–58 des
Scrambleregisters 254. Jedoch unterscheiden sich die Ausgaben
der XOR-Gatter wegen der Voreinstellungsoperation von deren vorherigem
Zustand vor dem Voreinstellen. Der voreinstellbare Scrambler 250 verscrambelt
das Nutzfeld für
lokale Fehler beginnend mit Scrambleregister 254, das auf
den Voreinstellungszustand voreingestellt wurde.
-
Der
voreinstellbare Scrambler 250 fährt damit fort, das lokale
Fehler-Nutzfeld zu verscrambeln, um aufeinanderfolgende Felder der
Testsequenz zu erzeugen, bis die Zustände der Ausgänge S des Scrambleregisters 254 der
oben beschriebenen Endbit-Sequenz
entsprechen.
-
Wenn
die Zustände
des Ausgangs S des Scrambelregisters 254 der Endbit-Sequenz
entsprechen, ändert
der Ausgang des AND-Gatters mit N-Eingängen 205 seinen Zustand.
Dadurch gehen sowohl der Ausgang der Steuerung 206 als
auch die Voreinstellungsleitung PS des Scrambleregisters auf einen
hohen Pegel. Der hohe Pegel der Voreinstellungsleitung lädt ein weiteres
Mal den Voreinstellungszustand-Ausgang des Voreinstellungszustand-Generators 204 in
das Scrambleregister. Der Voreinstellungszustand ändert den
Zustand der Ausgänge
des Scrambelregisters, wodurch der Ausgang des AND-Gatters mit N-Eingängen auf
einen niedrigen Pegel geht. Der niedrige Pegel des Ausgangs des
AND-Gatters 205 bringt den Ausgang der Steuerung und den
Voreinstel lungseingang PS des Scrambelregisters zurück auf ihre
niedrigen Pegel, und der Zyklus wiederholt sich.
-
Dem
Fachmann liegt es nahe, daß ein
parallel-voreinstellbarer Descrambler vorgesehen werden kann, indem
der parallele voreinstellbare Scrambler 250 in einer Weise
neu angeordnet wird, die zu der Weise analog ist, in welcher der
serielle voreinstellbare Scrambler von 5A neu
angeordnet wird, um den seriellen voreinstellbaren Descrambler von 5B vorzusehen.
-
Die
Ausführungen
des Datenkommunikationssystems 100, des Senders 120 und
des Empfängers 122,
die in dieser Offenbarung beschrieben sind, können durch integrierte Schaltkreise
mit geringem oder hohem Integrationsgrad, mit entsprechend konfigurierten
ASICs, mit Gate-Arrays, oder mit anderer geeigneter Hardware ausgeführt werden.
-
Die
Erfindung wurde bezüglich
eines Beispiels beschrieben, in dem ein 64b/66b-Codierer 50 als Quelle des
Initialwert-Nutzfeldes dient. Jedoch ist dies nicht grundlegend
für die
Erfindung. Der Sender 120 kann eine Quelle für Initialwert-Nutzfelder
umfassen, die unabhängig
von dem 64b/66b-Codierer ist. Beispielsweise kann ein Auswähler mit
zwei Eingängen
und 64 Kanälen
(nicht dargestellt) zwischen dem Nutzfeldausgang des 64b/66b-Codierers
und dem Eingang des voreinstellbaren Scramblers 133 angeordnet
werden. Eine Eingangsgruppe des Auswählers ist mit dem Ausgang des
64b/66b-Codierers verbunden, wobei die andere Eingangsgruppe verbunden
ist, um das Initialwert-Nutzfeld zu empfangen, beispielsweise das
Nutzfeld für
lokale Fehler. Beispielsweise kann ein Generator als Quelle für das Initialwert-Nutzfeld
verwendet werden, der dem Voreinstellungszustand-Generator 204 von 7 gleicht. Die
Ausgänge
des Auswählers
sind mit dem Eingang des voreinstellbaren Scramblers verbunden.
Der Auswähler
wird von dem Steuersignal STE gesteuert, um dem voreinstellbaren
Scrambler das Initialwert-Nutzfeld zuzuführen, wenn das Steuersignal STE
aktiviert ist.
-
Die
Erfindung wurde mit Bezug auf Beispiele beschrieben, die bestimmte
logische Zustände
verwenden. Jedoch ist es dem Fachmann naheliegend, daß die in
dieser Offenbarung beschriebenen Funktionen und Strukturen mit anderen
logischen Zuständen
ausgeführt
werden können.
-
Obwohl
diese Offenbarung Ausführungen der
Erfindung im Detail zeigt, die der Darstellung dienen, soll die
Erfindung nicht auf die beschriebenen exakten Ausführungen
begrenzt sein, wobei zahlreiche Modifikationen innerhalb des Gegenstands
der Erfindung ausgeführt
werden können,
der durch die angefügten
Ansprüche
definiert ist.