-
Die
Erfindung betrifft ein Verfahren zur Erkennung und Kompensation
von Übertragungsfehlern,
die bei der seriellen Übertragung
digitaler Daten zwischen einem Sender und einem Empfänger in
Form von Bitverschiebungen (Bit-slip-Fehlern) auftreten. Des Weiteren
ist Gegenstand der Erfindung eine auf der Empfängerseite zur Durchführung des
Verfahrens einsetzbare Schaltungsanordnung.
-
In
der Kommunikation, insbesondere der Telekommunikation, aber auch
auf anderen Anwendungsgebieten, werden digitale Datensignale vielfach
sequentiell übertragen.
Der Datensender und der Datenempfänger müssen dabei stets genau die
gleiche Frequenz und Phasenlage zueinander besitzen, damit es zu
keiner Veränderung
des Informationsgehaltes der übertragenen
Daten kommt. Am Empfänger
müssen
die Daten also synchronisiert auf den Sender abgetaktet werden.
Durch ungünstige
Dateninhalte (lange „0"- oder „1"-Folgen) oder Störeinflüsse auf
der Übertragungsstrecke
(wie immer diese geartet ist – ob
beispielsweise als kürzere oder
längere
drahtgebundene oder aber als Funkübertragungsstrecke) kann es
aber zum Beispiel durch Temperaturänderungen oder Versorgungsspannungsstörungen zu
unerwünschten
Phasenverschiebungen kommen. Zudem können bei ungünstigen
Phasenlagen für
eine kurze Zeit mehrere Bits des übertragenden Signals gestört sein,
bis sie am Empfänger
mit einem Bitversatz wieder abgetaktet werden können. Werden längere Datenströme übertragen,
so ist die Wahrscheinlichkeit relativ hoch, dass zumindest kürzere Sequenzen
eines digitalen Signals so übertragen
werden, dass die Bitstörungen
nicht in den Zeitraum der Code-Abtaktung fallen.
-
Die
hieraus resultierende Verfälschung
des Informationsgehalts der am Empfänger abgetakteten Daten ist
dann lediglich durch den Bitversatz bzw. die Bitverschiebung bedingt,
während
die Daten selbst im Grunde fehlerfrei übertragen werden. Man spricht
in diesem Zusammenhang von Bit-slip-Fehlern. Eine solche geringfügige Verfälschung
von Informationen kann demnach auf ein kurzes Zeitintervall begrenzt
und anschließend
ohne Neusynchronisation beseitigt werden, wenn es gelingt, aufgetretene
Bit-slip-Fehler bei den am Empfänger
eingehenden Daten zu erkennen und diese zu kompensieren.
-
Zum
Stand der Technik werden die folgenden Dokumente genannt:
-
Das
Dokument (1) offenbart dabei ein System zur Erkennung und Kompensation
von Übertragungsfehlern,
welche in Form von Bitverschiebungen (bit slip) auftreten. Dort
ist in der Zusammenfassung beschrieben, dass die zu übertragenden
Daten in Bitsequenzen aufgeteilt werden, wobei der Nutzsequenz (middle block)
bei ihrer Erweiterung zur Übertragungssequenz
zusätzlich
Sequenzen sowohl vorangestellt als auch nachgestellt werden (head
block, tail block). Des weiteren geht aus der Beschreibung in Spalte
6, Zeile 33 bis 63 hervor, dass zur Bitverschiebungs- (bit slip)
Erkennung und -Kompensation eine Markierung in der Übertragungssequenz
enthalten ist.
-
Das
Dokument (2) beschreibt ein weiteres System zur Erkennung und Kompensation
von Übertragungsfehlern
bei einer seriellen Datenübertragung,
welche in Form von Bitverschiebungen (bit slippage) auftreten. Diese
Dokument beschreibt in der Zusammenfassung, dass neben der Erkennung
von Bitverschiebungen auch die Richtung der Bitverschiebung bestimmt
werden kann. Ferner werden in die Übertragungssequenz Erweiterungen
und Markierungen (pointer) zur Erkennung und Kompensation der Bitverschiebungen eingebracht.
-
Das
Dokument (3) beschreibt ein Verfahren zur Erkennung und Kompensation
von Bitverschiebungen bei der Datenübertragung und der Datensynchronisation.
Das Verfahren bezieht sich dabei auf eine Dekodierung von in Gruppen
von Blöcken übertragenen
Daten. Jeder Block hat n1 + n2 Bits, wobei n1 die Länge des korrespondierenden
Informationswortes ist. Das Informationswort wird zu einem Fehlerschutzblock
von n1 + n2 Bits durch die Anwendung eines linearen Fehlerschutzcodes
und einen Offset, der die Position des Block innerhalb der Gruppe
aufzeigt, aufgeweitet. Eine Synchronisation wird durch eine inkrementale
Generierung von einem die Position inner der Gruppe anzeigenden
Syndrom herbeigeführt.
Falls eine Korrektur eines Fehlers für notwendig befunden wird,
beginnt diese nach der Synchronisation. Die Synchronisation wird
erneut gestartet, falls zu viele Fehler aufgetreten sind.
-
Das
Dokument (4) offenbart eine Synchronisiereinrichtung für einen
Digitalsignal Demultiplexer. Es besteht dort die Aufgabe eines Ausgleichens
eines Bitschlupfes beim Demultiplexen eines gemultiplexten Signals.
Eine Bitschlupf-Erkennungseinrichtung
erkennt dabei einen Bitschlupf und steuert einen Taktfrequenzumschalter
derart, dass durch Taktbeschleunigung oder Taktverlangsamung am
Hauptrahmenzähler
die Anzahl der an die Ausgänge
des Demultiplexer abgegebenen Bits auf den Nennwert zurückgeführt werden.
-
Der
Erfindung liegt daher die Aufgabe zugrunde, ein effizientes Verfahren
zur Erkennung und Kompensation von Bit-slip-Fehlern anzugeben. Weiterhin besteht
die Aufgabe darin, eine zur Durchführung des Verfahrens für den Einsatz
auf der Empfängerseite
geeignete Schaltungsanordnung zu schaffen.
-
Die
Aufgabe wird durch ein Verfahren mit den Merkmalen des Hauptanspruchs
gelöst.
Eine zur Erkennung und Beseitigung aufgetretener Bit-slip-Fehler
empfängerseitig
einzusetzende Schaltungsanordnung wird durch die Merkmale des Anspruchs
15 charakterisiert. Vorteilhafte Ausgestaltungen bzw. Weiterbildungen
der Erfindung sind durch die jeweiligen Unteransprüche gegeben.
-
Das
erfindungsgemäße Verfahren
macht sich die eingangs dargelegte Überlegung zunutze, dass digitale
Daten, abgesehen von eventuellen Bit-slip-Fehlern, für eine kurze
Zeitspanne und damit für
kurze Datenbitsequenzen mit relativ hoher Wahrscheinlichkeit ungestört übertragen
werden können,
so dass gegebenenfalls nur die Bit-slip-Fehler zu kompensieren sind.
-
Gemäß der Erfindung
wird daher der zur Übertragung
vorgesehene digitale Datenstrom senderseitig in jeweils gleich breite
Bitsequenzen (Nutzsequenzen) unterteilt, wobei es sich hierbei,
den vorangegangenen Ausführungen
folgend, vorzugsweise um kurze Sequenzen mit einer Breite von einem
Halbbyte, einem Byte, einem Wort oder einiger, weniger Bytes (Byte-Gruppen)
handelt. Zwar ist zu erwarten, dass mit abnehmender Breite dieser
Nutzsequenz die Übertragungssicherheit
steigt, jedoch gilt es hier im Hinblick auf den Übertragungsaufwand beziehungsweise
das Verhältnis
von Nutzdaten- zu Übertragungsdatenmenge
sowie die dem erfindungsgemäßen Verfahren
zugrunde liegende Vorgehensweise (gegebenenfalls empirisch) zu einem
praxisgerechten Kompromiss zu gelangen. Nach dem Verfahren werden
nämlich
jeder Nutzsequenz vor der Aussendung an festgelegter Stelle (Markierungsbereich)
eine Markierung in Form einer bekannten, jeweils gleichartigen Bitfolge
(Markierungssequenz) sowie gegebenenfalls weitere Pufferbits hinzugefügt. In welchen
Fällen den
Nutzsequenzen außer
der Markierungssequenz auch noch Pufferbits hinzugefügt werden,
wird später noch
zu erläutern
sein.
-
Die
durch die Erweiterung jeder Nutzsequenz mit der Markierungssequenz
und gegebenenfalls den Pufferbits entstehenden Bitsequenzen (Übertragungssequenzen)
werden vom Sender zum Empfänger
als sequentieller Datenstrom übertragen.
Empfängerseitig
werden durch einen Vergleich des Markierungsbereiches jeder Übertragungssequenz
des empfangenen Datenstroms mit der ursprünglichen Markierungssequenz
aus der Anzahl von Bits und der Position einer zusammenhängenden
im Markierungsbereich wiederkehrenden Teilsequenz (Identitätssequenz)
der ursprünglichen
Markierungssequenz die Anzahl und die Richtung von bei der Übertragung
der jeweiligen Übertragungssequenz
gegebenenfalls aufgetretenen Bit-slips ermittelt. Sofern kein Bit-slip-Fehler aufgetreten
ist, ist die Bitfolge des Markierungsbereiches der empfangenen Übertragungssequenz
mit der Bitfolge der Markierungssequenz identisch, das heißt aber
auch, die Identitätssequenz
entspricht der ursprünglichen
Markierungssequenz.
-
Im
Falle eines Bit-slips hingegen findet sich zwar beispielsweise eine
dem 3. bis 5. Bit der ursprünglichen
beispielsweise 5 Bit langen Markierungssequenz entsprechende Bitsequenz (=
Identitätssequenz)
im Markierungsbereich einer empfangen Übertragungssequenz wieder,
jedoch steht diese Identitätssequenz – eben wegen
des Bit-slips – innerhalb
des Markierungsbereiches an anderer Position als in der Markierungssequenz.
Nach dem Vergleich wird schließlich
der Inhalt eines in seiner Breite der Nutzsequenz entsprechenden, aber
um die festgestellte Anzahl und Richtung von Bit-slips gegenüber der
ursprünglichen
Position der Nutzsequenz (Nutzbereich) innerhalb jeder empfangenen Übertragungssequenz
verschobenen Lesefensters zur Anzeige oder zur weiteren Verarbeitung
als Bit-slip korrigierte Nutzsequenz ausgegeben.
-
Bei
der Markierungssequenz handelt es sich um Bitfolgen mit einer gegenüber der
maximal erkenn- und kompensierbaren Bitverschiebung mindestens doppelten
Anzahl von Bits (Bitbreite). Bei Verwendung kürzerer Markierungssequenzen
ist zwar in vielen Fällen
noch das Erkennen von Bitfehlern möglich, jedoch lassen sich dann
ohne Kenntnis der Vorgeschichte aus dem Lesefensterinhalt kausal
keine eindeutigen Aussagen über
die Art, beispielsweise die Richtung eines aufgetretenen Bit-slips treffen, so
dass eine Kompensation der Fehler in diesen Fällen nicht möglich ist.
-
Wesentlich
ist zudem, dass jede Nutzsequenz im Zuge ihrer Erweiterung zur Übertragungssequenz durch
die Markierungssequenz und eventuelle Pufferbits mindestens so erweitert
wird, dass sowohl vor ihrem ersten als auch nach ihrem letzten Bit
eine der maximal erkenn- und kompensierbaren Bitverschiebung entsprechende
Anzahl von Bits erweitert ist. Die zur Markierung geeigneten Bitfolgen,
zu denen im Rahmen des Ausführungsbeispiels
noch nähere
Erläuterungen
gegeben werden sollen, können
empirisch oder rechnerisch ermittelt werden. Soweit vorstehend und
im folgenden von dem ersten, letzten oder n-ten Bit einer Bitfolge
bzw. Bitsequenz die Rede ist, bezieht sich dies auf die Abfolge
der Aussendung, der Übertragung
bzw. des Empfangs der Bits. Folglich meint „vor dem ersten Bit" dem ersten zur Übertragung
vorgesehenen oder dem ersten empfangenen Bit vorangestellt. Analoges
gilt selbstverständlich
für „nach dem
letzten Bit" und „vor" oder „nach" einer Sequenz.
-
Gemäß einer
möglichen
Ausgestaltung ergibt sich bei der Durchführung des Verfahrens folgender
Verfahrensablauf. Zunächst
wird der zu übertragende
digitale Datenstrom in jeweils gleichbreite Bitsequenzen – die Nutzsequenzen – unterteilt.
Diese Nutzsequenzen werden jede um eine stets gleiche Bitfolge – die Markierungssequenz – erweitert,
welche vorzugsweise eine gegenüber
der Nutzsequenz geringere Bitbreite aufweist. Die Erweiterung erfolgt
für alle
Nutzsequenzen jeweils an einer gleichen festgelegten Stelle – dem Markierungsbereich.
Die solchermaßen
erweiterte Nutzsequenz wird gegebenenfalls noch um weitere Pufferbits
erweitert. Vom Sender wird zum Empfänger ein sequentieller, aus
mehreren in der vorstehenden Weise entstandenen Übertragungssequenzen bestehender
Datenstrom übertragen.
Der Markierungsbereich jeder vom Empfänger empfangenen Übertragungssequenz
des Datenstroms wird mit der ursprünglich zur Markierung verwendeten
Markierungssequenz verglichen. Mittels des Vergleichs werden Anzahl
von Bits und die Position einer zusammenhängenden im Markierungsbereich
wiederkehrenden Teilsequenz (Identitätssequenz) der ursprünglichen
Markierungssequenz bestimmt. Anschließend wird die Zahl und die
Richtung von bei der Übertragung
der jeweiligen Übertragungssequenz
gegebenenfalls aufgetretenen Bit-slips ermittelt, indem die Bit-Positions-Differenz
zwischen der Markierungssequenz und der Identitätssequenz gebildet wird. Diese
Differenz entspricht der Anzahl aufgetretener Bit-slips. Beim Vorhandensein
von Bit-slips lässt
sich aus der Position der Identitätssequenz innerhalb des Markierungsbereichs
die Richtung der Bitverschiebung (rechts oder links = Verschiebung
nach vorn oder hinten, bezogen auf die Abfolge der Bitübertragung)
schließen.
Findet sich die Identitätssequenz
am Anfang des Markierungsbereichs liegt eine Bitverschiebung nach
links und umgekehrt beim Auffinden der Identitätssequenz am Ende des Markierungsbereichs
eine Bitverschie bung nach rechts vor. Gegebenenfalls aufgetretene
Bit-slip-Fehler
werden dann kompensiert, indem ein in seiner Bitbreite mit der Bitbreite
der Nutzsequenz übereinstimmendes
Lesefenster innerhalb der jeweiligen empfangenen Übertragungssequenz
aus dem ursprünglich
der Nutzsequenz vorbehaltenen Bereich (Nutzbereich) in Richtung
und Anzahl entsprechend der festgestellten Bit-slips verschoben
wird. Die sich danach innerhalb des Lesefensters befindende Bitsequenz
wird schließlich
als Nutzsequenz der Ausgabe oder der weiteren Verarbeitung zur Verfügung gestellt.
-
Im
Sinne des erfindungsgemäßen Verfahrens
kann die Markierungssequenz jeweils vor einer Nutzsequenz angefügt werden,
wobei dann die dabei entstehende Bitsequenz vor dem Aussenden nach
der Nutzsequenz um eine der maximal erkennbaren und kompensierbaren
Bitverschiebung entsprechende Anzahl von Pufferbits ergänzt werden
muss. Dies ist notwendig, damit die bei einer eingetretenen Verschiebung
quasi vorübergehend
verlorengehenden Bits bei der Kompensation des Bit-slips nicht aus
der vorhergehenden oder der nachfolgenden Nutz- bzw. Übertragungssequenz
beschafft werden müssen.
Jede Übertragungssequenz bildet
somit einen selbstständig
rekonstruierbaren Datenblock.
-
Die
Markierungssequenz dient, wie später
nochmals im Ausführungsbeispiel
erläutert
wird, vorrangig dem Erkennen aufgetretener Bit-slip-Fehler sowie
der Feststellung ihrer Anzahl und Richtung. Würde man nun die Nutzsequenz
lediglich jeweils vor ihrem ersten Bit um die Markierungssequenz
erweitern, dann könnte zwar
empfängerseitig
ein Bit-slip-Fehler festgestellt werden, jedoch wäre zumindest
bei einer Bitverschiebung nach rechts eine Korrektur ohne Rückgriff
auf die Bits einer nachfolgenden Übertragungssequenz nicht möglich, da
bei einer solchen Verschiebung das oder die letzten Bits der Nutzsequenz
quasi aus der Übertragungssequenz
herausgeschoben würden.
Diese Bits wären
demnach verloren bzw. müssten
aus der nachfolgenden Übertragungssequenz „wiederbeschafft" werden.
-
Bei
einer gegenseitigen Abhängigkeit
der Übertragungssequenzen
voneinander würde
aber die Rekonstruktion der Nutzsequenzen beziehungsweise die Kompensation
der Bit-slips übermäßig erschwert
werden und die praktische Umsetzung des Verfahrens in eine Schaltung
aufgrund der höheren
Komplexität schwerer
beherrschbar sein.
-
Den
vorstehenden Ausführungen
folgend, muss also beim Auftreten von maximal zwei Bit-slips – und dies
ist nach praktischen Erfahrungen in den meisten Fällen die
maximal auftretende Bitverschiebung – eine an ihrem Anfang mit
der Markierungssequenz erweiterte Nutzsequenz an ihrem Ende um zwei
Pufferbits ergänzt
werden. Nur so ist sichergestellt, dass bei einer gegebenenfalls
durch die Auswertung der Markierungssequenz festgestellten Rechtsverschiebung
von zwei Bits, diese wiedergewonnen werden können, da sie dann in den Bereich
der Pufferbits der Übertragungssequenz
verschoben wurden und dort noch zur Verfügung stehen. In umgekehrter
Weise ist natürlich
beim Anhängen
der Markierungssequenz an das Ende der Nutzsequenz deren Erweiterung
um Pufferbits vor dem ersten Bit erforderlich.
-
Entsprechend
einer möglichen
Ausgestaltung des Verfahrens ist es aber auch möglich, die Markierungssequenz
teilweise vor und teilweise nach der Nutzsequenz anzufügen. Vorteilhafterweise
kann dabei unter Umständen
auf ein Hinzufügen
von Pufferbits verzichtet werden, da geeignete Markierungssequenzen
die Pufferbit-Funktion mit übernehmen
können.
Dies ist zum Beispiel dann der Fall, wenn das Verfahren zur Erkennung
und Kompensation von Bit-slips mit einer Verschiebung um maximal
zwei Bits verwendet werden soll, und eine sechs Bit breite Markierungssequenz
in der Weise eingesetzt wird, dass drei ihrer Bits am Anfang der Nutzsequenz
und die anderen drei am Ende der Nutzsequenz angefügt werden.
Bei dieser Ausgestal tung des Verfahrens erfüllt die Markierungssequenz
neben ihrer Funktion der Erkennung von Bit-slips gleichzeitig auch die
Funktion der Pufferbits.
-
Das
erfindungsgemäße Verfahren
lässt es
unter grundsätzlicher
Beibehaltung des Prinzips auch zu, die Markierungssequenz in die
Nutzsequenz einzufügen.
Allerdings ist es dann erforderlich, da die dabei entstehende Übertragungssequenz
an ihrem Anfang und ihrem Ende durch Bits der Nutzsequenz begrenzt
wird, dieser Sequenz Pufferbits voranzustellen und am Ende anzufügen.
-
Nach
einer anderen Variante des erfindungsgemäßen Verfahrens kann es sich
bei der Markierungssequenz auch um die Wiederholung der Nutzsequenz
handeln. Dies ist dann möglich,
wenn ausschließlich Nutzsequenzen
einer bestimmten Beschaffenheit übertragen
werden, wozu im Ausführungsbeispiel
noch nähere
Erläuterungen
gegeben werden sollen. In einer Abwandlung dieser Variante kann
es sich bei der Markierungssequenz außerdem um eine Bitfolge handeln,
welche einer Spiegelung der Bits der Nutzsequenz an der Grenze zwischen
der Nutzsequenz und der Markierungssequenz entspricht. Auch die
Verwendung einer zur Nutzsequenz inversen Bitfolge als Markierungssequenz
ist für
bestimmte Nutzsequenzen möglich.
In logischer Konsequenz ist auch die Verwendung einer Bitfolge möglich, welche
der invertierten und an der Grenze zwischen der Nutzsequenz und
der Markierungssequenz gespiegelten Nutzsequenz entspricht.
-
Eine
grundsätzlich
gleichen Überlegungen
folgende Variante des Verfahrens lässt sich für die Übertragung digitaler Daten
mit gleichen Inhaltstypus angeben. Bei dieser Variante des Verfahrens
wird der digitale Datenstrom senderseitig in jeweils ein Byte breite
Bitsequenzen unterteilt. Als Markierungssequenz wird dabei keine
der Nutzsequenz hinzugefügte
Bitfolge, sondern ein Teil der Nutzsequenz selbst verwendet. Selbstverständlich muss
es sich hierbei bei der Markierungssequenz ebenfalls um eine jeweils
gleichartige Bitfolge han deln, was auf Grund dessen, dass die Daten
der Nutzsequenzen jeweils vom gleichen Inhaltstypus sind, möglich ist.
Um neben der Erkennung von Bit-slips auch deren Kompensation zu
ermöglichen,
ist es auch bei dieser Variante des Verfahrens gegebenenfalls nötig, die
mit der Markierung versehene Nutzsequenz um Pufferbits zu erweitern.
Die Rekonstruktion der Nutzsequenzen erfolgt bei dieser Verfahrensvariante
in analoger Weise durch die Verschiebung eines Lesefensters innerhalb
der empfangenen Übertragungssequenz.
-
Zu
der zuletzt beschriebenen Verfahrensvariante gibt es wiederum verschiedene
Ausgestaltungsmöglichkeiten.
So kann es sich bei der Markierungssequenz um eine mit dem ersten
Bit der Nutzsequenz beginnende und zusammenhängende Bitfolge der Nutzsequenz
handeln, wobei die Nutzsequenz nach ihrem letzten Bit um eine entsprechende
Anzahl von Pufferbits ergänzt
ist. Ebenso ist es aber auch möglich,
als Markierungssequenz eine das letzte Bit der Nutzsequenz einschließende zusammenhängende Bitfolge
festzulegen. In diesem Falle muss die Nutzsequenz selbstverständlich vor
ihrem ersten Bit durch Pufferbits ergänzt werden. Auch die Verwendung
einer zusammenhängenden
Bitfolge innerhalb der Nutzsequenz ist bei einer entsprechenden
Beschaffenheit der zu übertragenden
Daten denkbar. Jedoch muss die Sequenz dann am Anfang und am Ende
durch eine der Anzahl der maximal in einer Richtung auftretenden
Bit-slips entsprechende Zahl von Pufferbits erweitert werden.
-
Eine
zur Durchführung
des Verfahrens geeignete Schaltungsanordnung, mittels welcher empfängerseitig
Bit-slip-Fehler bei entsprechend dem dargestellten Verfahren durch
eine Markierungssequenz und gegebenenfalls Pufferbits erweiterten Übertragungssequenzen
festgestellt und kompensiert werden können, umfasst zumindest ein
Eingangsregister zur Zwischenspeicherung von empfangenen Bitsequenzen
mit einer der Breite der Übertragungssequenzen
entsprechenden Bitbreite, wobei dieses Register den Zugriff auf
jedes einzelne Bit einer darin gespeicherten Bitsequenz ermöglicht.
Weiterhin umfasst die Schaltungsanordnung eine zum Vergleich von
Teilsequenzen der Übertragungssequenzen
untereinander oder mit der Markierungssequenz und zur Ableitung
einer Adresse aus dem Vergleichsergebnis dienende Vergleichs- und
Adressiereinheit sowie einen Multiplexer. Die mittels der Vergleichs-
und Adressiereinheit abgeleitete Adresse wird zur Adressierung des
Multiplexers verwendet. Über
den Multiplexer werden in Abhängigkeit
seiner Adressierung durch die Vergleichs- und Adressiereinheit unterschiedliche,
aber in ihrer Breite und Bitfolge stets der Nutzsequenz entsprechende
Bereiche der jeweiligen in dem Eingangsregister zwischengespeicherten
und von diesem abgegriffenen Übertragungssequenz
an eine Anzeige oder weitere Verarbeitungseinheiten durchgeschaltet.
-
Bei
einer möglichen
Ausgestaltung umfasst die Vergleichs- und Adressiereinheit eine
der doppelten Anzahl der maximal berücksichtigten Bitverschiebungen
+1 entsprechende Anzahl von Komparatoren, welche zum Vergleich von
Bitfolgen dienen. Außerdem
ist mit den Ausgängen
der Komparatoren ein Selektor-Generator
verbunden, mittels welchem die Adresse zur Adressierung des Multiplexers
gebildet wird. Vorteilhafterweise kann die Selektor-Generator-Funktion
mit der internen Multiplexer-Ansteuerung logisch zusammengefaßt werden,
wobei sich die Schaltlogik wesentlich vereinfacht oder ganz entfällt.
-
Eine
andere Ausgestaltungsform der erfindungsgemäßen Schaltungsanordnung, bei
welcher die Markierungssequenz mit hoher Wahrscheinlichkeit ein
Bestandteil der Nutzsequenz-Folge ist und der Vergleich in der Vergleichs-
und Adressiereinheit Byte-seriell erfolgt, umfasst neben den Komparatoren
getaktete Zähler zum
Zählen
der ohne, oder mit Bit-slip nach rechts oder links empfangenen Übertragungssequenzen
sowie weitere den Zählern
nachgeordnete Komparatoren, die einen Mehrheitsentscheid durchführen. Die
Zähler
werden bei jedem Treffer pro Byte-Takt um 1 inkrementiert, wenn
der Eingangs-Vergleicher
einen Hit meldet und der höchstmögliche Zählerstand
noch nicht erreicht ist. Die Zähler
werden bei jedem Byte-Takt um 1 dekrementiert, wenn der Eingangs-Vergleicher
einen Miss meldet und der Zählerstand
größer 0 ist.
Die Adressierung des Multiplexers erfolgt bei dieser Ausgestaltungsform über einen
gepufferten mit den UND-verknüpften
Ausgängen
der Komparatoren verbundenen Selektor-Generator. Außerdem werden
die vom Eingangsregister abgegriffenen Bitfolgen den Eingängen des
Multiplexers über
ein Schieberegister oder ein FIFO zugeführt, dessen Tiefe mit dem der
Zähler
korreliert.
-
Die
Erfindung soll nun anhand von Ausführungsbeispielen näher erläutert werden.
In den zugehörigen Zeichnungen
zeigen:
-
1: 5 Bit breite Markierungssequenzen,
welche auf ihre Eignung für
das erfindungsgemäße Verfahren
bei 2-Bit-slip-Fehlern überprüft wurden.
-
2:
Das Prinzipschaltbild einer Schaltungsanordnung für maximal
2-Bit-slip-Fehler bei Verwendung der Markierungssequenz c) gemäß der 1.
-
3:
Eine Schaltungsanordnung zur Erkennung und Kompensation von 1-Bit-slip-Fehlern
bei ASCII-Namens-Strings.
-
4a:
Eine Schaltungsanordnung für
die Verwendung einer mit der Nutzsequenz identischen Markierungssequenz.
-
4b:
Eine Schaltungsanordnung für
die Verwendung einer Markierungssequenz, welche einer an der Grenze
zwischen Nutzsequenz und Markierungssequenz gespiegelten Nutzsequenz
entspricht.
-
In
der 1 sind unterschiedliche (a bis
d), jeweils 5 Bit breite Markierungssequenzen dargestellt, die auf
ihre Eignung zur Erkennung und Kompensation von 2-Bit-slip-Fehlern
untersucht wurden. Außerdem
ist eine generelle Übersicht
zur Eignung aller 32 mit 5 Bit möglichen
Sequenzen angegeben. Die unter a) untersuchte Markierungssequenz
betrifft die Bitfolge „00100". Bei dieser Bitfolge
zeigt sich, dass 1-Bit-slip-Fehler, unabhängig davon
ob es sich um eine Bitverschiebung nach links oder rechts handelt,
sowohl erkennbar als auch reparierbar sind.
-
Dies
ergibt sich daraus, dass eine um 1 Bit nach links verschobene Markierungssequenz
eindeutig von einer um ein 1 Bit nach rechts verschobenen Markierungssequenz
unterscheidbar ist (Zeilen 1 und 2 von a). Ein mit „X" angegebenes Bit
signalisiert dabei einen beliebigen, nicht bekannten Zustand („1" oder „0") des entsprechenden
Bits. Dieser Zustand ergibt sich zum Beispiel, indem entweder das
erste Bit einer von vornherein nicht bekannten Nutzsequenz durch
einen Bit-slip-Fehler
in den Markierungsbereich 2 verschoben wurde oder ein Bit
einer vorlaufenden Übertragungssequenz
in den Markierungsbereich 2 gelangt ist.
-
Während die
genannte Bitfolge zur Erkennung und Kompensation von 1-Bit-slip-Fehlern
geeignet ist, ist eine sichere Kompensation von 2-Bit-slip-Fehlern
mit dieser Bitfolge jedoch nicht möglich. Da die mit „X" bezeichneten Bits
der 1, wie erläutert, beliebige Zustände aufweisen
können,
kommt es hier zu Kollisionen derart, dass eine um 1 Bit nach links
verschobene Markierung nicht eindeutig von einer 2 Bit nach rechts
verschobenen (Zeilen 1 und 4), eine um 1 Bit nach rechts verschobene
nicht eindeutig von einer um 2 Bit nach links verschobenen (Zeilen
2 und 3) sowie eine um 2 Bit nach links verschobene Markierungssequenz
nicht eindeutig von einer um 2 Bit nach rechts verschobenen (Zeilen
3 und 4) unterscheidbar ist.
-
Ersetzt
man zum Beispiel die beiden mit „X" gekennzeichneten Bits der Zeile 3 durch
die möglicherweise
aus der Nutzsequenz eingeschobene Bitfolge `01` und gleichzeitig
die mit „X" gekennzeichneten
Bits der 4. Zeile durch die Bitfolge `10`, die beispielsweise aus
einer vorlaufenden Übertragungssequenz
(oder wenn die Markierungssequenz am Ende der Nutzsequenz angehängt wurde
aus der Nutzsequenz) in den Markierungsbereich eingeschoben wurde,
so wird der Konflikt offensichtlich.
-
Ähnlich verhält es sich
mit der unter b) genannten Sequenz der Form `00010`. Die beiden
unter c) und d) genannten Markierungssequenzen sind hingegen sowohl
zur Erkennung als auch zur eindeutigen Kompensation von Bit-slips
mit einer Bitverschiebung um maximal 2 Bits geeignet. Hier ist erkennbar,
dass die Zeilen 1 bis 4 beider Sequenzen, unabhängig davon, welchen Zustand
die mit „X" gekennzeichneten
Bitpositionen einnehmen, stets zweifelsfrei voneinander unterscheidbar
sind. Somit kann bei Verwendung einer geeigneten Auswerteelektronik
eine möglicherweise
bitverschobene Nutzsequenz zuverlässig rekonstruiert werden.
-
Für die Markierungssequenz
c) ist eine entsprechende Schaltungsanordnung in der 2 dargestellt. Die
Schaltungsanordnung umfasst ein Eingangsregister 4, eine
Vergleichs- und Adressiereinheit 5 und einen Multiplexer 6.
Sie ist einem hinsichtlich der weiteren Schaltungseinheiten nicht
dargestellten Empfänger
zugeordnet. Am Empfänger
werden die eingehenden Übertragungssequenzen
zunächst
kurzzeitig in dem Eingangsregister 4 zwischengespeichert.
In dem dargestellten Beispiel besteht jede der eingehenden Übertragungssequenzen
aus einer an ihrem Ende um die unter c) in der 1 angegebene
Markierungssequenz (MMMMM) `00011` sowie an ihrem Anfang um zwei
Pufferbits (FF) 3 erweiterte Nutzsequenz (t......1).
-
Die
die Nutzsequenz und Markierungssequenz aufnehmenden Bereiche, der
Nutzbereich 1 und der Markierungsbereich 2, sind
in der Figur gekennzeichnet. Mittels der Komparatoren 8, 8', 8'', 8''', 8'''' wird der Markierungsbereich 2 der
zwischengespeicherten Übertragungssequenz
auf die Wiederkehr einer zusammenhängenden, in der ursprünglichen
Markierungssequenz c) nach 1 enthaltenen
Bitfolge überprüft. Der
in dem Komparator 8 erfolgende Vergleich wird mit `ja`
(je nach gewählter
Logik eine `0` oder eine `1`) beantwortet, wenn die ersten drei
Bits des Markierungsbereichs mit den letzten drei Bits der ursprünglichen
Markierungssequenz übereinstimmen.
Dies ist gleichbedeutend mit einem Bit-slip in Form einer Bitverschiebung
um 2 Bits nach links. Die entsprechenden Verhältnisse sind in Bezug auf die
anderen Komparatoren 8', 8'', 8''', 8'''' der Figur ohne
Weiteres entnehmbar.
-
Wie
ersichtlich, ist der Markierungsbereich 2 für den Fall,
dass kein Bit-slip aufgetreten ist, mit der ursprünglichen
Markierungssequenz identisch, so dass der Vergleich im Komparator 8'' zum Ergebnis `ja` führt. Die
Ausgänge
der Komparatoren 8, 8', 8'', 8'', 8'''' sind auf einen 8:3-Selektor-Generator 7 geführt. In
diesem wird in der aus der Figur erkennbaren Weise die Adresse für den Multiplexer 6 gebildet.
Vorteilhafterweise kann die Selektor-Generator-Funktion mit der internen Multiplexer-Ansteuerung
logisch zusammengefaßt
werden, wobei sich die Schaltlogik wesentlich vereinfacht oder ganz
entfällt.
Entsprechend dem durch die Komparatoren 8, 8', 8'', 8''', 8'''' gelieferten
Vergleichsergebnis und der daraus generierten Adresse wird eine
der an den Eingängen
des Multiplexers 6 anstehenden Bitsequenzen auf dessen
Ausgang durchgeschaltet. Wie aus der Schaltung erkennbar wird, handelt
es sich bei den am Eingangsregister 4 abgegriffenen und
den Eingängen des
Multiplexers 6 zugeführten
Bitfolgen um Bitfolgen, welche einem gedachten, in seiner Bitbreite
mit der Nutzsequenz identischen, auf der Übertragungssequenz verschobenen
Lesefenster entsprechen, wobei dies durch den auf jedes Bit in dem
Eingangsregister 4 möglichen
Zugriff realisiert ist. Dem zur Folge wird der Inhalt des mit der
festgestellten Bitverschiebung korrelierenden Lesefensters durch
den Multiplexer 6 auf den Ausgang der Schaltungseinheit
für die
Anzeige oder zur weiteren Verarbeitung durchgeschaltet.
-
Für Varianten
des Verfahrens, bei denen die Markierungssequenz der Nutzsequenz
vorangestellt oder in diese eingefügt werden, lassen sich ausgehend
von der Schaltungsanordnung nach der 2 ähnliche Schaltungsvarianten
finden. Die zur Markierung verwendbaren Bitsequenzen (Markierungssequenzen)
können
auf rechentechnischem Wege bzw. empirisch bestimmt werden. Nach
der Theorie ist dabei für
einfache Markierungsverfahren, im Falle des Anfügens der Markierungssequenz
vor oder nach der Nutzsequenz für
die Erkennung und Beseitigung einer Bitverschiebung von maximal
2 Bit, das Hinzufügen
einer Anzahl von 5·m
+ 1 Bits erforderlich, mit m = 2 für die maximale Anzahl von Bit-slips,
wenn die 2·m
+ 1 Bit lange Identitätssequenz immer
vollständig
in der Markierungssequenz enthalten sein soll (also keine "X"-Bit-Positionen enthalten soll.
-
Hiervon
entfallen 4·m
+ 1 Bits auf die Markierung und 2, also m Bits werden als Pufferbits 3 benötigt. Etwas
weniger Bits sind erforderlich, wenn die Markierungssequenz in zwei
Teile geteilt und vor und hinter der Nutzsequenz jeweils eine Halbmarkierung
angefügt
wird. Sofern jede Hälfte
der Markierungssequenz zumindest eine Bitbreite hat, die der maximalen
Anzahl von zu kompensierenden Bit-slips entspricht, so ist hier
eine Erweiterung der Nutzsequenz von insgesamt 3·m + 1 Bits ausreichend. Für beide
Verfahrensvarianten lassen sich für die Markierungssequenz aber,
wie die 1 zeigt, auch einzelne, deutlich
kürzere
Bitsequenzen finden, die dennoch eine eindeutige Erkennung von Anzahl
und Art aufgetretener Bit-slips
und damit deren Kompensation zulassen.
-
Für 2-Bit-slip-Fehler
sind solche geeignete Markierungssequenzen z.B. „00011", „00111", „11000" oder „11100". Nach der Theorie
ist dabei für
dieses etwas schwierigere Markierungsverfahren, im Falle des Anfügens der
Markierungssequenz vor oder nach der Nutzsequenz für die Erkennung
und Beseitigung einer Bitverschiebung von maximal 2 Bit, das Hinzufügen einer
Anzahl von 3·m
+ 1 Bits erforderlich, mit m = 2 für die maximale Anzahl von Bit-slips,
wenn die 2·m
+ 1 Bit lange Identitätssequenz
bis zu m „X"-Bit-Positionen enthalten
kann, die reale Identitätssequenz
also m + 1 bis 2·m
+ 1 Bits lang ist.
-
Hier
entfallen 2·m
+ 1 Bits auf die Markierung und m Bits werden als Pufferbits benötigt. Die
in dieser Weise gegen Bit-slip-Fehler
geschützte
Nutzsequenz kann beliebigen Inhalt besitzen, die zu übertragende
Datenmenge erhöht
sich bei dieser Vorgehensweise nicht unerheblich.
-
Es
wurde nun gefunden, dass je nach der Art der zu übertragenden Informationen
auch die Möglichkeit besteht,
Teile der Nutzsequenz selbst mit zur Markierung zu verwenden. Ein
Beispiel hierfür
sind ASCII-Strings. Es handelt sich also hierbei um Nutzsequenzen
vom gleichen Inhaltstypus. Die Inhalte dieser Nutzsequenzen können, bezogen
auf ASCII-Werte" und
ihre wahrscheinlichkeitsbehafte Wertcodierung untersucht werden.
Dabei ergibt sich im Hinblick auf die Unterteilung nach ihren höchstwertigsten
3 Bits folgende Gruppierung der ASCII-Zeichen.
"000x xxxx" | Steuerzeichen,
nur wenige in normalen Texten: CR, LF, TAB, EOF |
"0010 xxxx" | Satz-
und Sonderzeichen |
"0011 0000" .. "00111001" | Ziffern |
"0011 1010" .. "0100 0000" | Satz-
und Sonderzeichen |
"0100 0001" .. "0101 1010" | Großbuchstaben |
"0101 1011" .. "0110 0000" | Satz-
und Sonderzeichen |
"0110 0001" .. "0111 1010" | Kleinbuchstaben |
"0111 1011" .. "0111 1111" | Satz-
und Sonderzeichen |
"1xxx xxxx" | obere
Satz- und Sonderzeichen, falls vorhanden |
-
Es
wird ersichtlich, dass somit die ASCII-Zeichen gruppenweise entsprechend
der ersten drei Bits einer Nutzsequenz unterschieden werden können. Das
in der 3 dargestellte Beispiel betrifft eine Schaltungsanordnung,
mittels welcher 1-Bit-slip-Fehler bei Nutzsequenzen, welche ausschließlich ASCII-Namens-Strings
in Form von Kleinbuchstaben enthalten, erkannt und kompensiert werden
können.
Bei dieser Schaltung erfolgt der Vergleich in der Vergleichs- und
Adressiereinheit 5 in 3 Byte-seriell.
Diese umfasst daher neben den Komparatoren 8, 8', 8'' getaktete Zähler 9, 9', 9'' zum Zählen der ohne, oder mit einem
Bit-slip nach rechts oder links empfangenen Übertragungssequenzen sowie
weitere den Zählern
nachgeordnete Komparatoren 11, 11'. Mit dem Ergebnis der Zähler-Vergleiche
wird der Multiplexer 6 eingestellt und auftretende Bit-Slip-Fehler
werden so korrigiert.
-
Vorteilhafterweise
kann die Selektor-Generator-Funktion 7 mit der internen
Multiplexer-Ansteuerung logisch zusammengefaßt werden, wobei sich die Schaltlogik
wesentlich vereinfacht oder ganz entfällt und auf den Bufferspeicher
reduziert. Der Multiplexer-Ausgang muß um die führenden Bits „011" erweitert werden,
die beim Shift-Register-Eingang weggeschnitten wurden. Die Byte-Information
(Nutzsequenz) muss um die maximal mögliche Stringlänge verzögert werden.
Der Selektor-Generator 7 muss
daher gepuffert werden, da er für die
ganze Stringlänge
fixiert sein muss. Im Eingangsregister 4 wird in den Zellen
F8 ... F1 der jeweilige ASCII-Wert zwischengespeichert, F0 ist das
für die
1-Bit-slip-Fehler notwendige Pufferbit 3. Die zweite Komparator-Stufe
mit den Komparatoren 11, 11' trifft einen Mehrheitsentscheid,
der aber eine „gewisse" Mindest-String-Länge voraussetzt.
Die Zähler 9, 9' und 9'' werden bei jedem Treffer pro Byte-Takt
um 1 inkrementiert, wenn der Eingangs-Vergleicher 8, 8' oder 8'' einen Hit meldet und der höchstmögliche Zählerstand
noch nicht erreicht ist. Die Zähler
werden bei jedem Byte-Takt um 1 dekrementiert, wenn der Eingangs-Vergleicher einen
Miss meldet und der Zählerstand
größer 0 ist.
-
Diese
Schaltungsanordnung von 3 kann auch für z.B. allgemein
gebräuchliche
Programmnamen verwendet werden, wenn die Kleinbuchstaben-Vergleicher 8, 8' und 8'' ersetzt werden durch Vergleicher,
die den Wert „wahr" generieren bei {Großbuchstaben
ODER Kleinbuchstaben ODER Ziffern ODER „§ "ODER „$ "ODER „%" ODER „&" ODER „_"}. Jetzt können auch
mehrere Vergleicher 8, 8' oder 8'' zeitgleich
einen Hit melden, es ist zu beachten, dass in diesem Fall die Zählerdifferenz
im Prinzip erhalten bleibt und dass die Vergleicher 11, 11' und das AND-Gatter
so angelegt sind, dass bei gleichem Zählerstand der Fall „bit-slip-no-0" bevorzugt wird.
Der Multiplexer 6 und das Schieberegister 10 sind
dann 8 Bit breit auszulegen, das Schieberegister muß dann auch
die Eingangsregister-Bits F8...F6 benutzen, im Multiplexer-Pfad „0" ist dann beim Schieberegister-Eingang
das höchstwertigste
Bit auf den Wert „0" zu legen.
-
Wird
bei den Vergleichern 8, 8' und 8'' auch
bei den Satz-, allen Sonder- und den Steuerzeichen CR, LF, TAB,
EOF der Wert „wahr" abgegeben, dann
können
beliebige Texte und Textdateninhalte korrekt bearbeitet werden.
Das Schieberegister 10 und der Buffer von 7 müssen hierbei
nur so tief ausgelegt sein, daß Fehlentscheidungen
mit sehr hoher Wahrscheinlichkeit ausgeschlossen werden.
-
Am
besten und einfachsten werden die Zählung, die Vergleichs-Operationen und die
String-Nachbearbeitung durch einen (möglicherweise sehr einfachen)
Mikroprozessor durchgeführt.
Anstatt des Shift-Registers 10 vor den Eingängen des
Multiplexers 6 kann auch ein FIFO verwendet werden. Eine
dynamische Stringlänge
ist so realisierbar.
-
Spezielle
Schaltungsvarianten ergeben sich bei der Verwendung von Markierungssequenzen,
welche unmittelbar aus der jeweiligen Nutzsequenz abgeleitet werden
oder bei denen es sich um eine Wiederholung oder um eine Spiegelung
der Nutzsequenz an der Grenze zwischen der Nutzsequenz und der Markierungssequenz
handelt. Allerdings ist diese Vorgehensweise an bestimmte Voraussetzungen
gebunden. So muss eine solche Nutzsequenz in jedem Falle einen Bitwechsel
beinhalten, darf also nicht ausschließlich aus `1` oder `0` bestehen.
Die Verfahrensvariante ist zudem beschränkt auf bestimmte ASCII-Werte
und kleine Zahlenwerte, für
welche die normalerweise für
eine Bitfolge bestimmter Breite möglichen Kodierungen nicht vollständig ausgenutzt
werden können,
die also redundant kodiert sind.
-
Markierungssequenzen,
welche durch eine Invertierung oder eine Invertierung und Spiegelung
der Nutzsequenz unmittelbar aus der jeweiligen Nutzsequenz abgeleitet
werden, haben diese vorher genannten Nachteile nicht.
-
Beschränkt man
sich beispielsweise auf eine 4 Bit breite Sequenz für die Kodierung
von vier verschiedenen Werten (möglich
wäre die
Kodierung von 16, nämlich
24 Werten), so könnten diese beispielsweise
wie folgt kodiert sein: 0 ≅ „0101", 1 ≅ „0111", 2 ≅ „1000", 3 ≅ „1100". Diese Code-Wort-Menge
für sich
genommen ist aber, wie weiter unten erläutert wird, nicht 1-Bit-Slip-fest,
weil hierfür
mindestens 5 Bits erforderlich sind. Wenn man jedoch jede dieser
Nutzsequenzen um sich selbst, ihren Spiegelwert (also „0101" um „1010"; „0111" um „1110"; „1000" um „0001" und „1100" um „0011" – symmetrische Codeverdoppelung)
oder die invertierte Sequenz (also „0101" um „1010"; „0111" um „1000"; „1000" um „0111" und „1100" um „0011" – invertierte Codeverdoppelung)
ergänzt,
ist die Erkennung und Beseitigung von Bit-slip-Fehlern möglich. Die
entsprechenden Schaltungsanordnungen sind durch die 4a und 4b verdeutlicht.
Hier verringert sich die Zahl der Komparatoren 8, 8', so dass der
Selektor-Generator entfallen kann. Die vorzunehmenden Vergleiche
werden aus der jeweiligen Schaltung deutlich ersichtlich.
-
Wie
zu erkennen ist, betrifft die 4a eine
Schaltungsanordnung für
den Fall, dass die Markierungssequenz mit der Nutzsequenz identisch
ist, während
die 4b eine Schaltungsanordnung betrifft, bei welcher die
an der Grenze zwischen der Nutzsequenz und der Markierungssequenz
gespiegelte Nutzsequenz als Markierungssequenz verwendet wird. Wie
bereits weiter oben dargestellt, sind bei speziellen Folgen auch
Markierungssequenzen einsetzbar, bei denen es sich um Bitsequenzen
handelt, welche einer Invertierung der in den 4a oder 4b verwendeten
Markierungssequenz entsprechen. Hierzu ist nur eine geringfügige Abwandlung
der in den 4a und 4b angegebenen
Schaltungsanordnungen erforderlich. Dabei muss lediglich ein Eingang
jedes Komparators und der Eingang 2 (und 3) des Multiplexers invertiert
werden. Die Schaltungsanordnungen nach den 4a und 4b sowie
ihrer erläuterten
Abwandlungen und die ihnen zugrunde liegenden Markierungssequenzen
kommen jedoch nur bei einer bestimmten Form von Nutzsequenzen in
Frage. Die grundsätzliche
Bedingung bei den Schaltungsvarianten nach den 4a und 4b – und dies
ist zugleich ein Nachteil dieser Variante – besteht, wie bereits erläutert, darin,
dass in der Nutzsequenz zumindest ein Bitwechsel erfolgen muss,
das heißt,
die Nutzsequenz darf nicht ausschließlich aus `0` oder `1` bestehen. Diese
letzte Beschränkung
gilt nicht bei den invertierten Abwandlungen aber auch hier sind
nicht alle Werte verwendbar.
-
Alle
vorstehend erläuterten
Verfahrensvarianten ohne/mit Invertierung und ohne/mit symetrischer
Vertauschung lassen sich schließlich
auch noch, in Abhängigkeit
der zu übertragenden
Daten und der sich hieraus ergebenden Nutzsequenzen sowie ei ner
jeweils verwendeten Markierungssequenz miteinander kombinieren.
-
Andere
spezielle Schaltungsvarianten ergeben sich, wenn eine nur kleine
Zahlenmenge oder gleichbedeutend kleine Alternativen-Auswahl übertragen
werden soll. Hier kann auf die Verwendung von Markierungssequenzen
ganz verzichtet werden, wenn eine geeignete redundante Wertedarstellung
gewählt
wird, die zudem Bit-slip-fest ist. Die Verfahrensvariante ist also
beschränkt
auf kleine Zahlenwerte, für
welche die normalerweise für
eine Bitfolge bestimmter Breite möglichen Kodierungen nicht vollständig ausgenutzt
werden können,
die also redundant kodiert sind.
-
Die
nachstehende Übersicht
gibt beispielhaft an für
welche Anzahl k verschiedener zu übertragender Werte sich bei
welcher Bitbreite n wie viele mögliche
Bitkombinationen (Permutationen) ergeben und wie viele dieser Kombinationen
Bit-slip-fest in
Bezug auf eine Bitverschiebung von maximal 1 Bit (m = 1) sind, d.
h. geeignet sind, die eindeutige Erkennung von Bitverschiebungen
um 1 Bit sowie ihrer Art (rechts oder links) und ihre Kompensation
ausschließlich
mittels der Nutzsequenz selbst zu ermöglichen.
-
-
-
Die Übersicht
ist, um zwei Beispiele herauszugreifen, wie folgt zu interpretieren.
Sind beispielsweise lediglich zwei verschiedene Werte (k = 2) zu übertragen
und werden zu deren Kodierung 4 Bit (n = 4) verwendet, so bestehen
91 Varianten für
die Kodierung, von denen jedoch nur 16 ganz bestimmte (für beide
Werte gleichzeitig ganz bestimmte Kodierungen) Kodierungskombinationen
Bit-slip-fest sind. Bei einer Kodierung mit weniger als 4 Bit findet
sich keine Bit-slip-feste Kombination. Für die Kodierung von vier verschiedenen
Werten (k = 4) werden mindestens 5 Bit (n = 5) benötigt, um
Bit-slip-feste Kombinationen
für die
Kodierung zu finden. Von den möglichen
27405 Kombinationen der Kodierung vier verschiedener Werte mit 5
Bit erweisen sich dabei nur 246 als Bit-slip-fest. Die möglichen Permutationen (bei
denen jeweils nur aus `0` oder `1` bestehende Kodierungen nicht
zugelassen bzw. berücksichtigt
wurden) sowie die Anzahl Bit-slip-fester Kombinationen wurden rechnerisch
mittels eines Software-Programms ermittelt.
-
Eine
Schaltung ist hier einfach zu realisieren, für jeden möglichen Wert wird die Nutzsequenz
mit einem Komparator auf das zugehörige Code-Muster und alternativ
auf die zugehörigen
Bit-slip-Fehler-Muster abgeprüft.
Liegt genau ein Hit vor, dann wurde dieser Wert gefunden und zugleich
der Fehlertypus festgestellt. Bei einer zulässigen Wertekodierung kann
immer nur genau ein Wert als Treffer gemeldet werden, andernfalls bei
Mehrfach-Hit ist die Werte-Kodierung unzulässig. Wird kein Hit vermeldet,
dann ist die vorliegende Nutzsequenz unzulässig, das empfangene Datum
weist mehr Bit-slip-Fehler auf als maximal zulässig oder es ist generell gestört.
-
Zusammenfassend
offenbart die Erfindung also ein Verfahren zur Erkennung und Kompensation
von bei der Übertragung
digitaler Daten auftretenden Bit-slip-Fehlern und eine hierfür auf der
Empfängerseite
einsetzbare Schaltungsanordnung. Nach dem Verfahren wird der zur Übertragung
vorgesehene digitale Datenstrom senderseitig in jeweils gleich breite
Bitsequenzen (Nutzsequenzen) unterteilt und mit einer Markierung versehen.
Mittels der Markierung und der erfindungsgemäßen Schaltungsanordnung werden
eventuell aufgetretene Bitverschiebungen empfängerseitig hinsichtlich ihrer
Anzahl und Art (rechts oder links) erkannt. Die Kompensation erfolgt
durch die Schaltungsanordnung mittels der zur Markierung verwendeten
Bitsequenz und weiteren den Nutzsequenzen gegebenenfalls senderseitig
hinzugefügten
Pufferbits. Zur Markierung werden entweder die Nutzsequenzen um
geeignete Bitfolgen (Markierungssequenzen) erweitert oder, in Abhängigkeit von
der Beschaffenheit der zu übertragenden
Daten, Teile der Nutzsequenzen selbst verwendet.
-
Es
versteht sich, daß die
vorstehend genannten Merkmale der Erfindung nicht nur in der jeweils
angegebenen Kombination, sondern auch in anderen Kombinationen oder
in Alleinstellung verwendbar sind, ohne den Rahmen der Erfindung
zu verlassen.