-
Diese
Erfindung betrifft Datenströme,
die in einen Chipstrom codiert wurden, so dass eine Chiprate und
eine Phase des Chipstroms aus den codierten Daten abgeleitet werden
können,
und insbesondere bezieht sich die Erfindung auf ein Verfahren und
eine Vorrichtung zum Decodieren derartiger Chipströme.
-
Es
gibt viele Kommunikationssysteme, bei denen Daten zwischen einem
Sender und einem Empfänger übertragen
werden und bei denen der Sender nicht explizit eine Kopie des Taktsignals
desselben überträgt. Die
Daten werden unter Verwendung eines Codes übertragen, der sicherstellt,
dass Zeitinformationen in den übertragenen
Daten vorhanden sind. Derartige codierte Daten werden als ein „Chipstrom" bezeichnet. Bei
einem derartigen System muss der Empfänger sowohl die Daten als auch
die Zeitinformationen wiedergewinnen. Dies wurde in der Vergangenheit
unter Verwendung einer Phasenregelschleife (PLL = Phase-Locked Loop)
vorgenommen.
-
Eine
herkömmliche
digitale PLL führt
eine Überabtastung
des empfangenen Chipstroms unter Verwendung eines Takts durch, der
eine Frequenz aufweist, die ein ganzzahliges Vielfaches der übertragenen Chiprate
ist. Wenn die Chiprate erhöht
ist (um eine schnellere Kommunikation zu liefern) und/oder wenn
der Multiplikator des Überabtastungstakts
erhöht
ist (um einen besseren Betrieb der PLL zu liefern), kann die Frequenz
des Überabtasttakts
unhandhabbar hoch werden. Unter diesen Umständen könnte anstelle einer digitalen
eine analoge PLL verwendet werden. Bei einem System jedoch, das
einen analogen Empfänger-
(oder Sende/Empfangsgerät-)
Abschnitt und einen digitalen Steuerungsabschnitt aufweist, müsste eine
derartige analoge PLL entweder mit dem Empfän ger- (oder Sende/Empfangsgerät-) Abschnitt
integriert sein, eine spezielle analoge Unterstützungs-IS einnehmen oder in
eine Mischsignalsteuerung integriert sein. Alle dieser Optionen
sind kostspieliger als ein Integrieren der PLL in die digitale Steuerung.
-
Die
internationale Patentanmeldung WO97/08861 offenbart ein Verfahren
und eine Vorrichtung zum Kommunizieren von digitalen Daten in mehreren
Kanälen.
Das System umfasst entfernte Einheiten und eine zentrale Einheit,
zwischen denen Daten unter Verwendung einer Mehrzahl von Kanälen übertragen
werden, wobei die Daten in Rahmen angeordnet sind. Rahmen sind unter
Verwendung eines Entfernungsmessschemas synchronisiert, das Differenzen
bei Ausbreitungsverzögerungen
kompensiert.
-
Das
Patent US-A-5077753 der Vereinigten Staaten bezieht sich auf ein
Breitspektrum-Funkkommunikationssystem, das ein demoduliertes Signal
mit einer pseudozufälligen
Chipping-Sequenz korreliert und Takt- und Datensignale extrahiert.
Die Chipping-Sequenz ist normalerweise aus einem Satz von Codes
ausgewählt, der
einen Elf-Bit-Basker-Code umfasst.
-
Die
vorliegende Erfindung befasst sich mit den obigen Problemen und
insbesondere mit einem Wiedergewinnen von Daten und Zeitinformationen
auf eine derartige Weise, dass dasselbe in einer digitalen Steuerung
durchgeführt
werden kann, ohne den Bedarf nach einem Überabtasttakt, d. h. einem
Takt, der eine Taktrate aufweist, die viele Male schneller als die
Chiprate ist.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Decodieren
eines Datenstroms vorgesehen, der in einen Chipstrom codiert wurde,
so dass eine Chiprate und eine Phase des Chipstroms aus den codierten
Daten abgeleitet werden können,
wobei das Verfahren folgende Decodierschritte aufweist: Erzeugen
eines Taktsignals (clk), das eine Taktrate aufweist, die näherungsweise
gleich der Chiprate oder ein ganzzahliges Vielfaches derselben ist;
dadurch gekennzeichnet, dass das Verfahren ferner folgende Schritte
aufweist: Leiten des Chipstroms entlang einer mehrstufigen Verzögerungsleitung,
die eine Verzögerung
pro Stufe aufweist, die geringer als die Periode des Taktsignals
ist; Abtasten von Daten des Chipstroms für jeden Taktzyklus bei einer
Mehrzahl der Stufen der Verzögerungsleitung,
um einen Satz von Überabtastungen
(Überabtastungen,
Q0-Q6) für
jede Chipperiode zu erzeugen; Erzeugen eines Schätzwerts (Kantenpos) einer Position
einer Chipkante in dem Chipstrom in einem jeweiligen Satz der Überabtastungen für jeden
Taktzyklus; Auswählen
zumindest einer der Überabtastungen
(dec_chip(0), dec_chip(1)), die eine Position innerhalb eines eingegrenzten
Bereichs mit Bezug auf die geschätzte
Chipkantenposition aufweist, für
zumindest einige der Taktzyklen; und Ausgeben der ausgewählten Überabtastungen.
-
Obwohl
die Taktrate gewählt
sein kann, um ein kleines ganzzahliges Vielfaches der ungefähren Chiprate
zu sein, besteht kein Bedarf danach, um das Verfahren durchzuführen. Durch
das Leiten des Chipstroms durch die Verzögerungsleitung werden Überabtastungen
ohne den Bedarf nach einem Überabtasttakt
erhalten.
-
Bei
einer herkömmlichen
PLL ist die PLL wirksam, um die Taktfrequenz einzustellen, und deshalb
ist ein Oszillator mit variabler Frequenz erforderlich. Eine PLL-Handlung
kann bei der vorliegenden Erfindung durch ein Einstellen des Schätzwerts
der Position der Chipkante in den Überabtastungen erhalten werden,
wobei so der Bedarf nach einem Oszillator mit variabler Frequenz
umgangen wird. Bei der vorliegenden Erfindung ist die Taktrate in
der Tat vorzugsweise fest. Ferner weist der Einfachheit halber jede
ausgewählte Überabtastung
vorzugsweise eine vorbestimmte Position mit Bezug auf die geschätzte Chipkantenposition
auf.
-
Obwohl
die Verzögerung
pro Stufe in der Verzögerungsleitung
fest und stabilisiert sein kann, erhöht dies die Komplexität und die
Kosten des Empfängers.
Bei der vorliegenden Erfindung muss die Verzögerung pro Stufe der Verzögerungsleitung
nicht stabilisiert sein. Um Herstellungstoleranzen und eine Drift
bei der Verzögerung
pro Stufe beispielsweise in Abhängigkeit
von Zeit, Spannung und Temperatur zu berücksichtigen, umfasst das Verfahren
vorzugsweise ferner die folgenden Kalibrierungsschritte: Leiten
eines Signals, das eine bekannte Periode aufweist (beispielsweise
das oben erwähnte
Taktsignal), in die Verzögerungsleitung;
Abtasten von Daten des Signals mit bekannter Periode an einer Mehrzahl
von Stufen der Verzögerungsleitung,
um einen Satz von Kalibrierungsüberabtastungen
zu erzeugen; Schätzen
einer Angabe der Verzögerung
pro Stufe der Verzögerungsleitung
aus den abgetasteten Daten; und Speichern der Angabe einer Verzögerung pro
Stufe. Die Kalibrierungsschritte werden bevorzugt intermittierend
durchgeführt
und während
die Decodierschritte nicht durchgeführt werden. Zum Beispiel können die
Kalibrierungsschritte bei einem Einschalten, wenn die Vorrichtung überträgt und wenn
die Kommunikationsverbindung umgedreht wird, durchgeführt werden.
Bei einem Empfangen weist dann der Schritt des Auswählens zumindest
einer der Überabtastungen
vorzugsweise folgende Schritte auf: Vornehmen einer ersten Auswahl
einiger der Überabtastungen
für jeden
Taktzyklus in Abhängigkeit
von der gespeicherten Verzögerungsangabe;
Vornehmen einer zweiten Auswahl von zumindest einer der Überabtastungen,
die eine vorbestimmte Position mit Bezug auf die geschätzte Chipkantenposition aufweist,
aus der ersten Auswahl der Überabtastungen
für zumindest
einige der Taktzyklen.
-
Wie
es oben erwähnt
ist, kann eine PLL-Handlung bei der vorliegenden Erfindung durch
ein Einstellen des Schätzwerts
der Position der Chipkante in den Überabtastungen erhalten werden.
Genauer gesagt weist der Schritt des Erzeugens des Chipkantenpositionsschätzwerts
vorzugsweise folgende Schritte auf: Speichern eines Chipkantenpositionsschätz werts;
Erfassen irgendeiner Abweichung der Chipkantenposition von dem gespeicherten
Chipkantenpositionsschätzwert
für zumindest
einige der Taktzyklen; und Einstellen des gespeicherten Chipkantenpositionsschätzwerts
ansprechend auf eine derartige erfasste Abweichung. Der Einfachheit
halber kann der gespeicherte Chipkantenpositionsschätzwert begrenzt
sein, um einen vorbestimmten Bereich von Werten aufzuweisen. In
diesem Fall können
spezielle Schritte unternommen werden, falls der Chipkantenpositionsschätzwert eingestellt
werden soll, so dass derselbe außerhalb des Bereichs liegt.
Bei einem bevorzugten Ausführungsbeispiel
der Erfindung wird insbesondere,
falls für einen Taktzyklus der Wert
des gespeicherten Chipkantenpositionsschätzwerts über ein Ende des Bereichs desselben
hinaus eingestellt werden muss, derselbe anstelle dessen auf das
andere Ende des Bereichs desselben eingestellt und keine der Überabtastungen
für eine
Ausgabe ausgewählt;
und falls für
einen Taktzyklus der Wert des gespeicherten Chipkantenpositionsschätzwerts über das
andere Ende des Bereichs desselben hinaus eingestellt werden muss,
derselbe anstelle dessen auf das eine Ende des Bereichs desselben
eingestellt und werden zwei der Überabtastungen
für eine
Ausgabe ausgewählt.
-
Gemäß einem
dritten Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum
Decodieren eines Datenstroms vorgesehen, der in einen Chipstrom
codiert wurde, so dass eine Chiprate und eine Phase des Chipstroms
aus den codierten Daten abgeleitet werden können, wobei die Vorrichtung
folgende Merkmale aufweist: einen Takt (10) zum Erzeugen
eines Taktsignals (clk), das eine Taktrate aufweist, die näherungsweise gleich
der Chiprate oder ein ganzzahliges Vielfaches derselben ist, dadurch
gekennzeichnet, dass die Vorrichtung ferner folgende Merkmale aufweist:
eine mehrstufige Verzögerungsleitung
(14, 26(0)-(6)) zum Empfangen des Chipstroms,
die eine Verzögerung
pro Stufe aufweist, die geringer als die Periode des Taktsignals
ist; eine Einrichtung, die durch das Taktsignal getaktet ist, zum
Abtasten von Daten des Chipstroms bei jeder Stufe der Verzögerungsleitung,
um einen Satz von Überabtastungen
(Überabtastungen,
Q0-Q6) für
jede Chipperiode zu erzeugen; eine Einrichtung (20, 22)
die durch das Taktsignal getaktet ist, zum Erzeugen eines Schätzwerts (Kantenpos)
einer Position einer Chipkante in dem Chipstrom in einem jeweiligen
Satz der Überabtastungen; eine
Einrichtung (20, 22, 24), die auf das
Taktsignal anspricht, zum Auswählen
zumindest einer der Überabtastungen
(dec_chip(0), dec_chip(1)), die eine Position innerhalb eines eingegrenzten
Bereichs mit Bezug auf die geschätzte
Chipkantenposition aufweist, für
zumindest einige der Taktzyklen; und eine Einrichtung (24) zum
Ausgeben der ausgewählten Überabtastungen.
-
Diese
Vorrichtung ist vorzugsweise wirksam, um irgendeines oder mehrere
der bevorzugten Merkmale des Verfahrens des ersten Aspekts der Erfindung
durchzuführen.
-
Ein
spezifisches Ausführungsbeispiel
der vorliegenden Erfindung wird nun lediglich durch ein Beispiel mit
Bezug auf die zugehörigen
Zeichnungen beschrieben, in denen:
-
1 ein
Blockdiagramm einer Vorrichtung ist, die die Erfindung verkörpert;
-
2 ein
Schaltungsdiagramm einer abgetasteten Verzögerungsleitung ist, die einen
Teil der Vorrichtung von 1 bildet;
-
3 ein
Zeitdiagramm ist, um bei einem Verständnis des Betriebs der abgetasteten
Verzögerungsleitung
von 2 zu helfen;
-
4 zwei
Sätze von
Registern zum Speichern von Abtastwerten bei der Vorrichtung von 1 darstellt;
-
5a-f
Beispiele der Inhalte der Register von 4 zeigen;
-
6a-c
Beispiele der Inhalte der Register von 4 zeigen,
wenn ein Kantenpos-Zeiger von einem Extrem zu einem anderen in eine
Richtung springt, und
-
7a,
b Beispiele der Inhalte der Register von 4 zeigen,
wenn der Kantenpos-Zeiger von einem Extrem zu einem anderen in die
entgegengesetzte Richtung springt.
-
Zuerst
wird eine Übersicht
der Vorrichtung von 1 gegeben. Die Vorrichtung weist
zwei Betriebsmodi auf: „Decodieren" und „Kalibrierung". Der Kalibrierungsmodus
wird wiederholt eingesetzt, wenn die Vorrichtung nicht empfängt, beispielsweise
bei einem Einschalten, wenn die Vorrichtung überträgt und wenn die Kommunikationsverbindung
umgedreht wird. In dem Kalibrierungsmodus wird durch einen Schalter 12 ein Rechteckwellentaktsignal
clk von einem Taktgenerator 10 (oder irgendein anderes
Signal bekannter Periode) unter Steuerung einer Kalibrierungssteuerschaltung 16 als
ein Signal dl_Eingabe zu einer mehrstufigen abgetasteten Verzögerungsleitungsschaltung 14 geleitet.
Das clk-Signal wird
auch als eine Takteingabe zu der Verzögerungsleitungsschaltung 14 geliefert.
Jede Stufe der Verzögerungsleitungsschaltung 14 liefert
eine Verzögerung,
die kürzer
als die Periode des clk-Signals ist, die zwischen einer Schaltung
und einer anderen aufgrund von Herstellungstoleranzen variieren
kann und die mit Zeit, Spannung und Temperatur driften kann. Jede
Stufe der Verzögerungsleitungsschaltung 14 ist
abgegriffen, um ein jeweiliges Element eines Überabtastungen-Signals zu liefern.
Das Überabtastungen-Signal
wird der Kalibrierungssteuerschaltung 16 zugeführt, die
die Anzahl von Stufen der Verzögerungsleitungsschaltung 14 bestimmt,
die zusammen eine Verzögerung erzeugen,
die im Allgemeinen gleich der Periode des clk-Signals ist, und diese
Anzahl wird als ein Signal ffs_pro_Zyklus gespeichert.
-
Der
Decodiermodus der Vorrichtung wird eingesetzt, wenn die Vorrichtung
empfängt.
Die Vorrichtung empfängt
ein Chipstromsignal rxchip, das eine Chiprate aufweist, die näherungsweise
gleich der Frequenz des clk-Signals ist. Das Chipstromsignal rxchip
wird durch den Schalter 12 unter Steuerung der Kalibrierungssteuerschaltung 16 als
das dl_Eingabe-Signal zu der Verzögerungsleitungsschaltung 14 geleitet.
Die Verzögerungsleitungsschaltung 14 erzeugt
bei jedem Zyklus des clk-Signals ein Überabtastungen-Signal, das
eine Anzahl von Abtastwerten aufweist, die gleich der Anzahl von
Stufen in der Verzögerungsleitungsschaltung 14 ist, und
das Überabtastungen-Signal
wird zu einer Phasenauswahlschaltung 18 geleitet, die ferner
das vorhergehend berechnete ffs_pro_Zyklus-Signal von der Kalibrierungssteuerschaltung 16 empfängt. Bei
jedem Zyklus des clk-Signals wählt
die Phasenauswahlschaltung 18 eine vorbestimmte Anzahl
von Abtastwerten des Überabtastungen-Signals
aus, die so regelmäßig wie
möglich über die
ersten ffs_pro_Zyklus-Abtastwerte gestreut sind, beginnend mit dem
am wenigsten verzögerten
Abtastwert. Die ausgewählten
Abtastwerte werden als ein Signal ausgewählte_Abtastwerte zu einer Kantenextraktionsschaltung 20 geleitet,
die dieses Signal als aktuelle_ausgewählte_Abtastwerte speichert
und ferner das unmittelbar vorhergehende Signal als vorhergehende_ausgewählte_Abtastwerte
speichert. Die Kantenextraktionsschaltung 20 ist in Zusammenwirkung
mit einer Kantenpositionsschaltung 22 als eine Phasenregelschleife
wirksam. Die Kantenpositionsschaltung 22 behält ein Signal
Kantenpos bei, das ein Schätzwert
der Position einer Chipkante des Chipstroms innerhalb von aktuelle_ausgewählte_Abtastwerte
und vorhergehende ausgewählte_Abtastwerte
ist, und das Kantenpos-Signal wird zu der Kantenextraktionsschaltung 20 geliefert.
Die Kantenextraktionsschaltung 20 erzeugt einen Schätzwert dessen,
ob die Kante des eingehenden Chips früher oder später als erwartet auftritt, als
eine Funktion von aktuelle_ausgewählte_Abtastwerte, vorhergehende_ausgewählte_Abtastwerte
und Kantenpos und erzeugt ein entsprechendes auf oder ab-Signal,
das zu der Kantenpositionsschaltung 22 geliefert wird.
Die Kantenpositionsschaltung 22 modifiziert den Wert des
Kantenpos-Signals in Abhängigkeit
von dem auf oder ab-Signal. Bei jedem Zyklus des clk-Signals wählt die
Kantenextraktionsschaltung 20 zwei der Abtastwerte aus
dem Satz aktuelle_ausgewählte_Abtastwerte
und vorangehende_ausgewählte_Abtastwerte aus
und liefert dieselben als dec_chip(0), dec_chip(1) zu einer Wiederaufbauschaltung 24,
wobei die zwei ausgewählten
Abtastwerte dec_chip(0), dec_chip(1) zu jeder Zeit der Kantenpos-Position innerhalb
von aktuelle_ausgewählte_Abtastwerte
und vorangehende_ausgewählte_Abtastwerte
um einen vorbestimmten Betrag gleichmäßig beabstandet sind. Ferner
erzeugt bei jedem Zyklus des clk-Signals die Kantenpositionsschaltung 22 ein
Signal n_dec_chips, das angibt, ob jeder der ausgewählten Abtastwerte
dec_chip(0), dec_chip(1) bei einem Decodieren des Chipstroms verwendet
werden soll oder nicht, und liefert das Signal n_dec_chips zu der
Wiederaufbauschaltung 24. Ferner wählt bei jedem Zyklus des clk-Signals
die Wiederaufbauschaltung 24 keinen, einen, den anderen
oder beide der Abtastwerte dec_chip(0), dec_chip(1) in Abhängigkeit
von dem Wert von n_dec_chips aus und schließt denselben/dieselben in einem
Ausgangssignal decodierter_Strom ein oder wandelt die Bits von seriell
zu parallel um, um ein paralleles Ausgangssignal zu erzeugen.
-
Es
ist zu beachten, dass, falls die Chiprate des rxchip-Signals genau gleich
der Frequenz des clk-Signals wäre
(und falls die Verzögerung
jeder Stufe in der Verzögerungsleitung 14 sich
niemals veränderte), dann
bei einer Empfangssitzung der Wert des Kantenpos-Signals konstant
bleiben würde
und bei jedem Zyklus des clk-Signals ein Abtastwert bei einer konstanten
Position in dem Satz aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte
für die
Ausgabe ausgewählt
würde.
Das clk-Signal ist jedoch nicht mit dem rxchip-Signal synchronisiert.
Um damit umzu gehen, modifiziert die Vorrichtung den Wert des Kantenpos-Signals, so dass,
falls die Frequenz des clk-Signals etwas höher als die Chiprate des rxchip-Signals
ist, die geschätzte
Position der Chipkante, wie es durch das Kanten-pos-Signal definiert ist, sich in eine
Richtung durch den Satz von aktuelle_ausgewählte_Abtastwerte und vorangehende
ausgewählte_Abtastwerte
bewegt, und falls die Frequenz des clk-Signals etwas niedriger als die
Chiprate des rxchip-Signals ist, sich die geschätzte Position der Chipkante,
wie es durch das Kantenpos-Signal definiert ist, in die entgegengesetzte
Richtung durch den Satz aktuelle_ausgewählte_Abtastwerte und vorangehende_ausgewählte_Abtastwerte
bewegt. Wie es unten detaillierter beschrieben wird, wird, falls
und wenn die geschätzte
Position der Chipkante sich einem Ende des Satzes von aktuelle_ausgewählte_Abtastwerte
und vorangehende_ausgewählte_Abtastwerte
nähert,
zu dem anderen Ende gesprungen und werden zwei Abtastwerte anstelle
von einem ausgegeben; und falls und wenn die geschätzte Position
der Chipkante sich dem anderen Ende des Satzes aktuelle_ausgewählte_Abtastwerte
und vorangehende_ausgewählte_Abtastwerte
nähert,
wird zu dem ersten Ende gesprungen und kein Abtastwert anstelle
von einem Abtastwert gegeben.
-
Nachdem
ein Überblick
der Vorrichtung geliefert wurde, wird nun die Verzögerungsleitungsschaltung 14 mit
Bezug auf 2 und 3 detaillierter
beschrieben.
-
Das
dl_Eingabe-Signal wird der Verzögerungsleitungsschaltung 14 zugeführt, die
durch eine Reihe von Gattern 26(0)-(6) gebildet ist, typischerweise nichtinvertierenden
Puffern. Der Einfachheit halber sind in 2 lediglich
sieben Gatter 26(0)-(6) gezeigt; in der Praxis wären wahrscheinlich
mehr vorgesehen. Abgriffe werden von den Ausgängen der Gatter 26(0)-(6)
genommen, um jeweilige Signale D0-D6 zu liefern, die als die Dateneingaben
zu einer Reihe von Flip-Flops 28(0)-(6) geliefert werden,
die durch das clk-Signal getaktet sind. Die Ausgaben Q0-Q6 aus den Flip-Flops 28(0)-(6)
bilden das Überabtastungen-Signal.
Es ist ersichtlich, dass, falls die Verzögerung pro Gatter 26(0)-(6)
Tg beträgt,
dann das n-te Flip-Flop 26(n – 1) einen Abtastwert
von rxchip bei einer Zeit t – n.
Tg umfasst, wobei t die aktuelle Zeit ist.
-
Bei
dem oben beschriebenen Kalibrierungsmodus erzeugt das clk-Signal
ein charakteristisches Muster in dem Überabtastungen-Signal, aus
dem die Kalibrierungssteuerschaltung 16 den Schätzwert ffs_pro_Zyklus
der Periode des clk-Signals geteilt durch die Verzögerung Tg pro Gatter 26(0)-(6) erzeugen kann.
Falls beispielsweise ein Beispiel des Überabtastungen-Signals (Q0,
..., Q6) = (0, 0, 0, 1, 1, 1, 0) ist, dann wird ffs_pro_Zyklus als
6 geschätzt.
Die Verzögerungsleitungsschaltung 14 muss
genug Stufen aufweisen, um eine ausreichende Anzahl von Abtastwerten
unter langsamsten Gatterbedingungen zu liefern und um eine ganze
Chipperiode unter schnellsten Gatterbedingungen abzudecken. Bei
einem Prozess beispielsweise, bei dem die Verzögerung Tg pro
Gatter 26(0)-(6) als eine Funktion von Prozess, Zeit, Spannung
und Temperatur um einen Faktor von 4 variieren kann und zumindest
sechs Überabtastungen
innerhalb des Chips erforderlich sind, muss dann die Verzögerungsleitungsschaltung 14 zumindest
6 × 4
= 24 Gatter aufweisen.
-
3 ist
ein Zeitdiagramm für
die Verzögerungsleitungsschaltung 14,
wenn dieselbe in dem Decodiermodus wirksam ist. Das clk-Signal einer
Periode Tg ist in dem oberen Abschnitt der
Zeichnung gezeigt. Die Flip-Flops 28(0)-(6) latchen bei
der ansteigenden Flanke 30 des clk-Signals. Der nächste Abschnitt
von 3 zeigt in einer durchgezogenen Linie einen Abschnitt
des dl_Eingabe-Signals. Die verbleibenden Abschnitte von 3 zeigen
in Paaren die Eingangssignale D0-D6 zu den Flip-Flops 28(0)-(6)
und entsprechende Ausgangssignale Q0-Q6 aus denselben. Wie es zu
sehen ist, ist jedes Signal Dn von einem speziellen Gatter 26(n) um
Tg mit Bezug auf das Signal D(n – 1) von
dem vorhergehenden Gatter 26(n – 1) in der Verzögerungsleitungsschal tung 14 verzögert. Es
ist ferner zu sehen, dass bei dem gegebenen Beispiel ein Überabtastungen-Signal
von (Q0, ..., Q6) = (1, 1, 1, 0, 0, 0, 0) erzeugt wird.
-
Wie
es oben erwähnt
ist, wählt
bei jedem Zyklus des clk-Signals
die Phasenauswahlschaltung 18 eine vorbestimmte Anzahl
von Abtastwerten (ausgewählte_Abtastwerte)
des Überabtastungen-Signals
aus, die so regelmäßig wie
möglich über die
ersten ffs_pro_Zylus-Abtastwerte gestreut sind, beginnend mit dem
am wenigsten verzögerten
Abtastwert. Man nehme beispielsweise an, dass die erforderliche
Anzahl von Abtastwerten in ausgewählte_Abtastwerte Sechs beträgt (wobei
die Abtastwerte als P0, ..., P5 bezeichnet sind), und man nehme
an, dass der aktuelle Wert von ffs_pro_Zyklus 7 ist. In
diesem Fall würde
die Phasenauswahlschaltung 18 (P0, P1, P2, P3, P4, P5)
= (Q0, Q1, Q2, Q3, Q4, Q5, Q6) wählen,
d. h. Q3 und, falls verfügbar,
Q7 und einen jeglichen höher
nummerierten Abtastwert in Überabtastungen
weglassen. Allgemeiner für
den Fall ausgedrückt,
dass die vorbestimmte Anzahl von Abtastwerten in ausgewählte_Abtastwerte
Sechs beträgt,
kann die Auswahl der Abtastwerte in Überabtastungen für verschiedene
Werte von ffs_pro_Zyklus so sein, wie es in der folgenden Tabelle
angegeben ist.
-
-
Es
ist ersichtlich, dass die Phasenauswahlschaltung 18 durch
eine Array von Logikgattern oder auf andere Arten implementiert
sein kann.
-
Wie
es oben erwähnt
ist, werden die ausgewählten
Abtastwerte in ausgewählte_Abtastwerte
bei jedem Zyklus des clk-Signals
zu der Kantenextraktionsschaltung 20 geliefert, die das
empfangene Signal als aktuelle_ausgewählte_Abtastwerte in einem Register 32 speichert,
wie es in 4 gezeigt ist, und ferner das unmittelbar
vorhergehende Signal als vorhergehnde ausgewählte_Abtastwerte (die Abtastwerte
pP0, ..., pP5 umfassen) in einem Register 34 speichert.
Wie es ebenfalls oben erwähnt
ist, empfängt
die Kantenextraktionsschaltung 20 ein Kantenpos-Signal
von der Kantenpositionsschaltung 22. Das Kantenpos-Signal
kann die gleiche Anzahl von Werten wie die Anzahl von Abtastwerten
in ausgewählte
Abtastwerte annehmen, d. h. Sechs bei dem gegebenen Beispiel, wie
beispielsweise 0 ≤ Kantenpos ≤ 5. Die verschiedenen
Positionen in den Registern 32, 34, zu denen das
Kantenpos-Signal für
jeden seiner Werte 0, ..., 5 zeigen soll, sind jeweils in 5a-f
gezeigt, d. h. von zwischen den Registern, die Abtastwerte P2, P3
enthalten, bis zwischen die Register, die die Abtastwerte pP1, pP2
enthalten. Wie es ebenfalls oben erwähnt ist, gibt bei jedem Zyklus
des clk-Signals die Kantenextraktionsschaltung 20 zwei
der Abtastwerte dec_chip(0), dec_chip(1) aus, die um einen vorbestimmten
Betrag zu jeder Seite der Kantenpos-Position gleichmäßig beabstandet sind. Diese
zwei Abtastwerte dec_chip(0), de_chip(1) sind in 5a-f
markiert und für
jeden Wert von Kantenpos sind, wie es zu sehen ist, die Abtastwerte
dec_chip(0), dec_chip(1) und die Position von Kantenpos so, wie
es in der folgenden Tabelle angegeben ist.
-
-
5a-f
zeigen Beispiele der Abtastwerte P0-P5, pP0-pP5 des Chipstroms, wobei Kantenpos
mit einer Chipkante in dem Chipstrom korrekt ausgerichtet ist. Bei
jedem Zyklus des clk-Signals bestimmt die Kantenextraktionsschaltung 20,
ob Kantenpos von einer derartigen Chipkante gedriftet zu sein scheint.
Falls beispielsweise die zwei Abtastwerte zu der linken und die
zwei Abtastwerte zu der Rechten von dem Kantenpos (von links nach
rechts gelesen) 1, 0, 0, 0 oder 0, 1, 1, 1 sind, dann muss Kantenpos
erhöht
werden, und dies wird durch das auf_oder_ab-Signal der Kantenpositionsschaltung 22 angegeben.
Falls jedoch die zwei Abtastwerte zu der linken und der Rechten
von Kantenpos 1, 1, 1, 0 oder 0, 0, 0, 1 sind, dann muss Kantenpos
verringert werden, und dies wird durch das auf_oder_ab-Signal der
Kantenpositionsschaltung 20 angegeben. Falls jedoch die
zwei Abtastwerte zu der Linken und der Rechten von Kantenpos 1,
1, 0, 0 oder 0, 0, 1, 1 sind, gibt dies an, dass Kantenpos korrekt
positioniert ist. Falls die zwei Abtastwerte zu der Linken und der
Rechten von Kantenpos 0, 0, 0, 0 sind, wird angenommen, dass es
nicht möglich
ist, zu bestimmen, ob Kantenpos korrekt positioniert ist. Falls
die zwei Abtastwerte zu der Linken und der Rechten von Kantenpos
1, 1, 1, 1 sind, wird der dritte Abtastwert zu der Linken geprüft, falls
derselbe 1 ist, wird angenommen, dass es nicht möglich ist, zu bestimmen, ob
Kantenpos korrekt positioniert ist, und es wird kein Versuch unternommen,
Kantenpos zu ändern.
Falls derselbe jedoch 0 ist, wird eine Angabe, dass Kantenpos erhöht werden
muss, zu der Kantenpositionsschaltung 22 durch das auf_oder_ab-Signal
geliefert. Dieses letztgenannte Merkmal unterstützt bei einem Verriegeln von
Kantenpos auf die Chipkante während
einer Präambel
bei dem Beginn eines Empfangs, wenn Kantenpos anfänglich ein
beliebiger Wert, wie beispielsweise 0 gegeben wird. Wie es oben
beschrieben ist, werden normalerweise vier Abtastwerte verwendet,
um die Korrektheit von Kantenpos zu bewerten, aber es könnten normalerweise
andere Anzahlen von Abtastwerten verwendet werden, beispielsweise sechs
Abtastwerte. Es ist klar, dass die Kantenextraktionsschaltung 20 durch
ein Array von Logikgattern oder auf andere Arten implementiert sein
kann.
-
Wie
es oben erwähnt
ist, empfängt
die Kantenpositionsschaltung 22 das auf_oder_ab-Signal
und erzeugt das Kantenpos-Signal
und das n_dec_chips-Signal. Bei einem Bestimmen, ob das Kantenpos-Signal
zu verändern
ist, kann die Kantenpositionsschaltung 22 angeordnet sein,
um für
jeden Zyklus des clk-Signals, falls angemessen, unabhängig auf
jedes auf_oder_ab_Signal anzusprechen, oder dieselbe kann beispielsweise
angeordnet sein, um die auf_oder_ab-Signale für zwei oder mehr aufeinanderfolgende
Zyklen des clk-Signals zu mitteln. In den meisten Fällen gibt
das n_dec_chips-Signal,
das durch die Kantenpositionsschaltung 22 erzeugt wird,
an, dass lediglich einer der Abtastwerte dec_chip(0), dec_chip(1),
die durch die Kantenextraktionsschaltung 20 ausgegeben
werden, durch die Wiederaufbauschaltung 24 verwendet werden
soll, beispielsweise dec_chip(0). Vorausgesetzt, dass der Wert von
Kantenpos sich nicht verändert
oder derselbe zwischen dem minimalen und dem maximalen Wert desselben
(0 und 5 bei dem Beispiel) um Eins inkrementiert oder dekrementiert
wird, verändert
sich der wert von n_dec_chips nicht. Es gibt jedoch zwei Fälle, bei
denen dies nicht der Fall ist, wie es nun mit Bezug auf 6a-c bzw. 7a,
b beschrieben wird.
-
Mit
Bezug auf 6a-c kommt, wenn Kantenpos zeitlich
später
und später
(in den Zeichnungen nach rechts) bewegt wird, eine Zeit, wenn die
erwartete Position der Kante sich zu einer Zeit bewegt, die später als diese
ist, die durch Kantenpos = 0 angegeben ist, wie es in 6a zu
einer Zeit t gezeigt ist. In diesem Fall wird n_dec_chips gesetzt,
so dass weder dec_chip(0) noch dec_chip(1) verwendet wird. Bei dem
nächsten
Zyklus des clk-Signals zu einer Zeit t + Tc wird
Kantenpos auf 5 gesetzt und der Abtastwert dec_chip(0) wird verwendet.
Folglich lautet bei den Werten der Abtastwerte, die in 6a-c
gezeigt sind, die erhaltene Ausgabe wie folgt:
Zu einer Zeit
t, kein ausgegebener Abtastwert.
-
Zu
einer Zeit t + Tc Kantenpos von 0 auf 5
verändert;
ausgegebener Abtastwert dec_chip(0) = 0.
-
Bei
Zeit t + 2Tc bleibt Kantenpos bei 5; ausgegebener
Abtastwert dec_chip(0) = 1.
-
Kombinierte
Ausgabe für
t bis t + 2Tc: 0, 1.
-
Im
Gegensatz dazu kommt mit Bezug auf 7a, b,
wenn Kantenpos zeitlich früher
und früher
(in den Zeichnungen nach links) bewegt wird, eine Zeit, wenn die
erwartete Position der Kante sich zu einer Zeit bewegt, die früher als
diese ist, die durch Kantenpos = 5 angegeben ist, wie es in 7a bei
einer Zeit t gezeigt ist. In diesem Fall wird n_dec_chips gesetzt,
so dass sowohl dec_chip(0) als auch dec_chip(1) verwendet werden.
Bei dem nächsten
Zyklus des clk-Signals zu einer Zeit t + Tc wird
Kantenpos auf 0 gesetzt und der Abtastwert dec_chip(0) wird verwendet.
Folglich lautet bei den Werten der Abtastwerte, die in 7a,
b gezeigt sind, die erhaltene Ausgabe wie folgt: Bei Zeit t, ausgegebene
Abtastwerte dec_chip(0) = 0 und dec_chip(1) = 1.
-
Bei
Zeit t + Tc Kantenpos von 5 zu 0 verändert; ausgegebener
Abtastwert dec_chip(0) = 0.
-
Kombinierte
Ausgabe für
t – t
+ Tc: 0, 1, 0.
-
Es
ist ersichtlich, dass die Kantenpositionsschaltung 22 und
die Wiederaufbauschaltung 24 durch ein Array von Logikgattern
oder auf andere Arten implementiert sein können.
-
Es
ist zu beachten, dass das Ausführungsbeispiel
der Erfindung oben lediglich durch ein Beispiel beschrieben wurde
und dass viele Modifikationen und Entwicklungen an dem beschriebenen
Ausführungsbeispiel
innerhalb des Schutzbereichs der Erfindung vorgenommen werden können, der
durch die zugehörigen Ansprüche vorgesehen
ist.
-
Bei
dem oben beschriebenen Ausführungsbeispiel
verwendet die Kantenextraktionsschaltung beispielsweise aktuelle_ausgewählte_Abtastwerte
und vorhergehene_ausgewählte_Abtastwerte.
Alternativ könnte
die Verzögerungsleitungsschaltung 14 zweimal
so viele Stufen umfassen und könnte
die Phasenauswahlschaltung 18 zweimal so viele Abtastwerte
auswählen,
die über
die ersten 2 × ffs_pro_Zyklus-Abtastwerte gestreut
sind, so dass bei dem gegebenen Beispiel die Anzahl von Abtastwerten
in ausgewählte_Abtastwerte Zwölf betragen
würde.