-
Die Erfindung bezieht sich auf eine
Vorrichtung, die zum Erzeugen von Spreizcodes dient und in einem
Mobilfunksystem Verwendung findet, sowie deren Verwendung in einem
CDMA-Übertragungssystem.
-
In einem CDMA-Mobilfunksystem werden Spreizcodes
eingesetzt, um verschiedene Zellen und Teilnehmer im Mobilfunknetz
unterscheiden zu können.
Zu diesem Zweck wird jedem Benutzer und jedem logischen Kanal eine
andere Folge der Werte –1 und
1 zugeordnet. Dadurch kann das dem einzelnen Benutzer zugeordnete
Signal nach dem Empfang von den anderen Signalen getrennt und rekonstruiert werden.
Dies wird als Code Division Multiple Access (CDMA) bezeichnet. Im
Gegensatz dazu werden bei TDMA (Time Division Multiple Access)-Mobilfunksystemen
die Signale zeitlich voneinander getrennt. Wichtige CDMA-Übertragungssysteme sind das
in den USA verwendete System IS-95
und das System UMTS (Universal Mobile Telecommunications System),
welches im 3rd Generation Partnership Project (3GPP)
spezifiziert ist. Die genaue Beschreibung der verwendeten Codierung
für UMTS
ist in der UMTS-Spezifikation "Spreading
and modulation (FDD)",
3rd Generation Partnership Project TS 25.213 V4.3.0
(2002-06), zu finden.
-
Alle verwendeten Spreizcodes lassen
sich auf Folgen der Binärwerte
0 und 1 zurückführen. Bei diesen
Folgen kann es sich beispielsweise um sogenannte Pseudo-Noise-Folgen
handeln, welche durch definierte Autokorrelations- und Kreuzkorrelationseigenschaften
gekennzeichnet sind. Während
in der theoretischen Darstellung eine Pseudo-Noise-Folge als Folge
der Binärwerte
0 und 1 dargestellt wird, handelt es sich bei der tatsächlich verwendeten Spreizfolge
um eine Folge der Werte +1 und –1.
Aus dem Binärwert
0 wird in der tatsächlichen
Spreizfolge jeweils der Wert +1. Pseudo-Noise-Folgen sind durch eine
Iterationsvorschrift definiert, wobei die Iteration im Körper GF(2),
also im Zahlenkörper
mit den beiden Elementen 0 und 1, ausgeführt wird.
-
Theoretische Grundlage der Pseudo-Noise-Folgen
und der definierenden Iterationsvorschrift ist die Theorie irreduzibler
primitiver Polynome über dem
Körper
GF(2). Eine Darstellung dieser Theorie und ihrer Anwendung im Mobilfunkbereich
findet sich zum Beispiel in dem Buch "CDMA Systems Engineering Handbook" von J.S. Lee, L.E.
Miller, Artech House, Boston/London, 1998, und dort insbesondere in
Kapitel 6.
-
Jede individuelle Pseudo-Noise-Folge
ist eindeutig festgelegt durch den Anfangszustand des Codegenerators,
welcher die Folge erzeugt, sowie durch das für die Iteration verwendete
Polynom. Dabei ist das Polynom und damit die Iterationsvorschrift in
Mobilfunkanwendungen entweder für
das gesamte Netzwerk festgelegt, oder es kommen insgesamt nur einige
wenige verschiedene Polynome zur Anwendung, wie dies zum Beispiel
bei UMTS-Systemen für die
Definition der Scrambling-Codes
der Fall ist. Der Anfangszustand ist für jede individuelle Pseudo-Noise-Folge
verschieden und wird häufig
durch die Code-Nummer festgelegt. In dem Codegenerator ist der Anfangszustand
durch die Belegung seiner Schieberegister gekennzeichnet.
-
In einer Basisstation bzw. in einer
Mobilstation muss daher zu einer gegebenen Code-Nummer und zu einer
ebenfalls vorgegebenen Iterationsvorschrift die zugehörige Pseudo-Noise-Folge generiert werden.
Beim Sendebetrieb muss die erzeugte Folge zur Codierung des Signals
verwendet werden. Im Empfangsmodus hingegen erlaubt die Verwendung der
Pseudo-Noise-Folge,
das gewünschte
Signal zu erkennen und von den Signalen für andere Benutzer zu unterscheiden.
Falls die Anfangswerte der gesuchten Folge bekannt sind, können die
weiteren Folgenwerte durch einfache Operationen der Schieberegister
ohne Schwierigkeiten erzeugt werden. Dabei muss auf die zeitliche Übereinstimmung
zwischen der zu sendenden bzw. der empfangenen Information einerseits
und der konstruierten Folge andererseits geachtet werden.
-
In verschiedenen Mobilfunkanwendungen
ist jedoch der Anfang der Folge und damit die Anfangsbelegung der
Schieberegister des Codegenerators nicht von vornherein bekannt
und muss berechnet werden. Dies ist zum Beispiel dann der Fall,
wenn die Codierung zu einem anderen Zeitpunkt gestartet werden soll
als die Signalübertragung
selbst. Dieser Fall tritt bei UMTS im sogenannten Compressed Mode
auf. Nähere
Informationen zu diesem Modus finden sich in der UMTS-Spezifikation "Physical channels
and mapping of transport channels onto physical channels (FDD)", 3rd Generation
Partnership Project TS 25.211 V4.4.0 (2002-03).
-
Der Anfang der Folge und damit die
Anfangsbelegung der Schieberegister ist auch dann nicht bekannt,
wenn die Code-Nummer nicht direkt die anfängliche Registerbelegung festlegt,
sondern stattdessen eine Verschiebung der verwendeten Pseudo-Noise-Folge um eine
gewisse Anzahl von Bits definiert. So wird zum Beispiel im UMTS-Standard
beim Empfang eines Signals im Mobilteil entsprechend dem 3GPP-Standard
der Code mit der Code-Nummer N als eine um N Bits verschobene Pseudo-Noise-Folge definiert.
Nähere
Informationen zu dem Zusammenhang zwischen der Code-Nummer und der zugehörigen Pseudo-Noise-Folge finden sich
in der UMTS-Spezifikation "Spreading
and modulation (FDD)",
3rd Generation Partnership Project TS 25.213 V4.3.0
(2002-06), und zwar insbesondere in Abschnitt 5.2.
-
Um den Anfangszustand der Schieberegister für den Fall
zu berechnen, dass die Folge einer zusätzlichen Verschiebung bzw.
einem zusätzlichen Offset
von N Bits unterworfen wurde, kann die Folge zum ursprünglichen
Anfangszeitpunkt gestartet und anschließend N-fach iteriert werden.
Auf diese Weise kann die gewünschte,
um N Bits verschobene Folge erhalten werden. Erst dann wird die
Ausgabe des Codegenerators als Code verwendet. Nachteilig an dieser
Vorgehensweise ist, dass die Anzahl der benötigten Operationen proportional
zur Größe der gewünschten
Verschiebung N ist und dadurch der rechnerische und zeitliche Aufwand
bei großen
Werten der Verschiebung N sehr groß wird.
-
Eine alternative Möglichkeit,
den Anfangszustand der Schieberegister zu erhalten, besteht darin, zu
jeder gewünschten
Verschiebung N die zugehörige
Belegung der Schieberegister des Codegenerators im Initialisierungszustand
in einer Tabelle zu speichern. Damit wird die Vorlaufzeit praktisch
zu Null gesetzt.
-
Im UMTS-Standard sind mit den Kanälen p/sCPICH,
p/sCCPCH, DPDCH, DPCCH, AICH und PICH mehrere gleichzeitige Kanäle vorgesehen,
die in bestimmten Kombinationen auftreten können und mit unterschiedlichen
Spreizcodes versehen werden können.
Des Weiteren verwenden einige dieser Kanäle unterschiedliche Startzeitpunkte
ihrer Rahmen. Für
die Demodulation dieser Kanäle
sind folglich mehrere Codegeneratoren erforderlich, die sich in
ihrer Arbeitsweise nicht unterscheiden.
-
Im UMTS-Standard setzt sich ein Spreizcode aus
einem Scrambling- und einem Channelization-Code zusammen. Die Channelization-Codes
gewährleisten
die Orthogonalität
zwischen verschiedenen Kanälen.
Die Scrambling-Codes sind im UMTS-Standard mit Hilfe von Pseudo-Noise-Folgen definiert.
In der UMTS-Spezifikation "Spreading
and modulation (FDD)",
3rd Generation Partnership Project TS 25.213
V4.3.0 (2002-06), ist in 10 des Abschnitts
5.2.2 ein Codegenerator dargestellt, wie er für die Erzeugung von Scrambling-Codes
im Downlink eingesetzt wird. Der dort gezeigte Codegenerator weist
eine LFSR (Linear Feedback Shift Register)-Struktur auf und besteht
im Wesentlichen aus zwei Reihenschaltungen von Schieberegistern,
die mit Funktionsbeschaltungen versehen sind. Die Funktionsbeschaltungen
sind durch die Polynome bestimmt, durch welche die zu erzeugenden
Scrambling-Codes de finiert werden. An seinen Ausgängen gibt
der Codegenerator den Realteil (I) und den Imaginärteil (Q)
des Scrambling-Codes
aus.
-
Bislang werden die Codegeneratoren
für die Scrambling-
und Channelization-Codes hardwaremäßig einzeln realisiert und
unabhängig
voneinander betrieben. Jeder Codegenerator ist dabei fest einem RAKE-Finger
zugeordnet. Die Signale, die den Beginn eines Rahmens bzw. Zeitschlitzes
signalisieren, werden von speziellen Hardware-Einheiten, sogenannten
Timern, erzeugt. Das sogenannte Symbol-Valid-Signal, das entsprechend
dem Spreizfaktor angibt, nach wie vielen aufsummierten Chips ein Symbol
erzeugt wurde, wird mittels eines Zählers in den RAKE-Fingern generiert.
-
Nachteilig an bisherigen Codegeneratoren und
der sie steuernden Hardware ist der hohe hardwaremäßige Aufwand
und der damit verbundene große
Chipflächenbedarf
sowie der hohe Energieverbrauch beim Betrieb der Hardware-Struktur.
-
Die Druckschrift
EP 1 283 613 A1 beschreibt einen
Empfänger
und ein Verfahren zur Erzeugung von inversen Spreizcodes. Die in
der
10 dargestellte Ausführungsform
zeigt eine Mehrzahl von Code-Generatoreinheiten zur Erzeugung von
Spreizcodes. An anderer Stelle der Beschreibung ist ausgeführt, dass
ebenso eine Speichereinheit vorgesehen ist, in welcher Parameter
zur Konfiguration der Code-Generatoreinheiten abgelegt sind, und
eine Konfigurationseinheit vorgesehen ist, welche die Code-Generatoreinheiten
anhand von aus der Speichereinheit ausgelesenen Parametern in einem
Zeitmultiplex-Verfahren konfiguriert.
-
Die Druckschrift
EP 0 963 070 A1 offenbart ebenfalls
eine Vorrichtung zur simultanen Erzeugung einer Vielzahl von Code-folgen und einen
die Vorrichtung aufweisenden CDMA-Funkempfänger.
-
In der Druckschrift
EP 1 028 540 A2 wird ein Spreizspektrum-Empfänger beschrieben,
welcher eine Mehrzahl von Entspreizern und einen PN-Code-Erzeugungsschaltkreis
zur Erzeugung einer Mehrzahl von PN-Codefolgen und einen Schalter zum
Herstellen von Verbindungen zwischen dem PN-Code-Erzeugungsschaltkreis
zu der Mehrzahl von Entspreizern enthält.
-
Aufgabe der Erfindung ist es, eine
Vorrichtung zur Erzeugung von Spreizcodes in einem Mobilfunksystem
zu schaffen, die sich durch einen geringen Realisierungsaufwand,
einen reduzierten Chipflächenbedarf
und einen kleinen Energieverbrauch auszeichnet. Insbesondere soll
die Vorrichtung in CDMA-Übertragungssystemen
verwendbar sein können.
-
Die der Erfindung zugrunde liegende
Aufgabenstellung wird durch die Merkmale der nebengeordneten Patentansprüche 1 und
9 gelöst.
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind
in den Unteransprüchen
angegeben.
-
Die erfindungsgemäße Vorrichtung dient zur Erzeugung
von Spreizcodes in einem Mobilfunksystem und umfasst eine Mehrzahl
von Codegeneratoreinheiten, eine Speichereinheit und eine Konfigurationseinheit.
-
Die Codegeneratoreinheiten sind zur
Erzeugung von Spreizcodes ausgelegt. Zu diesem Zweck werden die
Codegeneratoreinheiten vor der Erzeugung der Spreizcodes von der
Konfigurationseinheit mittels Parametern, die in der Speichereinheit
abgelegt sind, konfiguriert. Die Konfiguration erfolgt in einem
Zeitmultiplex-Verfahren, d.h. die Codegeneratoreinheiten werden
nicht gleichzeitig, sondern nacheinander konfiguriert.
-
Durch den Zeitmultiplex-Betrieb der
erfindungsgemäßen Vorrichtung
werden die bislang notwendigen Konfigurationseinheiten für jede einzelne Codegeneratoreinheit
eingespart. An ihre Stelle tritt die erfindungsgemäße Konfigurationseinheit.
Dadurch werden der Realisierungsaufwand, der Chipflächenbedarf
und der Energieverbrauch gegenüber herkömmlichen,
dem gleichen Zweck dienenden Vorrichtungen reduziert.
-
Ferner ermöglicht die erfindungsgemäße Vorrichtung
eine hohe Flexibilität
bezüglich
der Auslastung der Codegeneratoreinheiten. Da nicht stets sämtliche
Kanäle
aktiv sind, kann die Konfigurationseinheit derart ausgelegt werden,
dass nur die Codegeneratoreinheiten, deren zugehörige Kanäle aktiv sind, konfiguriert
werden.
-
Erfindungsgemäß enthält jede Codegeneratoreinheit
eine Schieberegisteranordnung, welche wiederum zwei aus Schieberegistern
aufgebaute Reihenschaltungen enthält. Die beiden Reihenschaltungen
sind vorzugsweise parallel geschaltet. An dem Ausgang jeder Schieberegisteranordnung
wird ein Scrambling-Code
ausgegeben. Diese Anordnung zur Erzeugung der Scrambling-Codes entspricht
dem Aufbau des Scrambling-Code-Generators,
der in der UMTS-Spezifikation "Spreading
and modulation (FDD)",
3rd Generation Partnership Project TS 25.213 V4.3.0
(2002-06), in 10 des Abschnitts 5.2.2
dargestellt ist.
-
Die Erfindung sieht des Weiteren
vor, dass die erfindungsgemäße Vorrichtung
mindestens eine erste Einheit zur Erzeugung von mindestens einem Channelization-Code
enthält,
und/oder dass mindestens eine Codegeneratoreinheit eine zweite Einheit zur
Erzeugung eines Channelization-Codes enthält.
-
Erfindungsgemäß weist jede Codegeneratoreinheit
eine Multiplikationseinheit auf. Mittels der Multiplikationseinheit
lässt sich
durch eine Multiplikation des in der betreffenden Codegeneratoreinheit
erzeugten Scrambling-Codes mit dem entsprechenden Channelization-Code
der gewünschte
Spreizcode erzeugen.
-
Die vorstehend beschriebene Multiplikation ermöglicht,
dass sich dadurch der Spreizcode oder zumindest ein Teil davon platzsparend
in einem der Multiplikationseinheit nachgeschalteten Zwischenspeicher
ablegen lässt.
Die Reduzierung des Speicherbedarfs beträgt aufgrund der durchgeführten Multiplikation
etwa 30%.
-
In jedem Zwischenspeicher können vorteilhafterweise
weitere Parameter, die von der Konfigurationseinheit und/oder der
Speichereinheit erhalten wurden, abgelegt werden. Insbesondere kann
es sich dabei um Parameter handeln, die sich auf den Beginn eines
Zeitschlitzes und/oder auf den Beginn eines Rahmens und/oder auf
die Fertigstellung eines Symbols beziehen. Der Parameter, der die
Fertigstellung eines Symbols angibt, ist beispielsweise das Symbol-Valid-Signal.
Die Abspeicherung dieser Parameter in den Zwischenspeichern ist
deswegen sinnvoll, weil dadurch Zähler, die in herkömmlichen RAKE-Fingern
dieselben Aufgaben erfüllen,
eingespart werden können.
-
Eine weitere bevorzugte Ausgestaltung
der Erfindung ist dadurch gekennzeichnet, dass die Zwischenspeicher
als Flip-Puffer
ausgelegt sind. Dies bedeutet, dass Bits in einen Teil eines Zwischenspeichers
eingelesen werden können,
während
gleichzeitig Bits aus einem anderen Teil des Zwischenspeichers ausgelesen
werden. Dadurch ist es möglich, den
Spreiz code schon im Voraus zu berechnen und während des Einlesevorgangs der
soeben berechneten Bits in den Zwischenspeicher die zu diesem Zeitpunkt
benötigten
Bits aus dem Zwischenspeicher auszulesen. Insbesondere wird dadurch
eine nur lose Kopplung der Codegeneratoreinheiten mit nachgeschalteten
Entspreizungseinheiten erzielt.
-
Vorzugsweise initialisiert die Konfigurationseinheit
vor der Erzeugung eines Scrambling-Codes die Schieberegister der
den Scrambling-Code erzeugenden Schieberegisteranordnung anhand
von aus der Speichereinheit ausgelesenen Parametern. Diese Initialisierung
der Schieberegisteranordnungen erfolgt in einem Zeitmultiplex-Verfahren,
d.h. die verschiedenen Schieberegisteranordnungen werden sukzessive
initialisiert.
-
Diese Initialisierung kann anhand
einer bereits oben beschriebenen Tabelle erfolgen, in welche zu
jeder Code-Nummer N die zugehörige
Belegung der Schieberegister im Initialisierungszustand eingetragen
ist.
-
Eine weitere Möglichkeit ist den beim Deutschen
Patent- und Markenamt eingereichten Patentanmeldungen mit den Titeln „Verfahren
und Vorrichtung zur Bestimmung von Initialisierungszuständen bei
Pseudo-Noise-Folgen" und „Verfahren
und Vorrichtung zur Berechnung eines iterierten Zustands einer rückgekoppelten
Schieberegisteranordnung" zu entnehmen.
Zu diesen Patentanmeldungen wurden vom Deutschen Patent- und Markenamt
die Offenlegungsschriften
DE
101 47 306 A1 bzw.
DE 102 16 240 A1 veröffentlicht. Der Bestimmung
der Anfangszustände
der Schieberegister liegt den in diesen Patentanmeldungen beschriebenen
Erfindungen die Berechnung einer bestimmten Matrix bzw. die Berechnung
einer bestimmten Abgriffsmaske für
die Schieberegister zugrunde. Die beiden genannten Patentanmeldungen
werden hiermit in den Offenbarungsgehalt der vorliegenden Patentanmeldung
aufgenommen.
-
Gemäß einer besonders bevorzugten
Ausgestaltung der Erfindung generiert eine Adressgenerierungseinheit
anhand von aus der Speichereinheit ausgelesenen Parametern Adressen,
die zum Auslesen von Initialisierungswerten aus mindestens einem Initialisierungswertspeicher
dienen. Anhand der Initialisierungswerte werden die Schieberegister
initialisiert. Die Adressgenerierungseinheit arbeitet vorzugsweise
nach einem der in den Offenlegungsschriften
DE 101 47 306 A1 und
DE 102 16 240 A1 angegebenen
Prinzipien. Dies ermöglicht
eine Initialisierung der Schieberegister mit nur geringem Zeitaufwand.
-
Vorzugsweise enthält die Konfigurationseinheit
mindestens zwei Initialisierungswertspeicher. Dabei sind in jeder
Schieberegisteranordnung die beiden aus den Schieberegistern gebildeten
Reihenschaltungen jeweils unterschiedlichen Initialisierungswertspeichern
zugeordnet. Demzufolge sind zwei funktionale Initialisierungswertspeicher
ausreichend.
-
Den mindestens zwei Initialisierungswertspeichern
kann vorteilhafterweise eine Berechnungseinheit nachgeschaltet sein.
Die Berechnungseinheit berechnet bei Bedarf Initialisierungsbits
für die
Schieberegister einer Codegeneratoreinheit. Durch die dadurch erfolgte
Initialisierung wird die Codegeneratoreinheit in die Lage versetzt,
ein Bit des Spreizcodes zu generieren.
-
Der Einsatz der Berechnungseinheit
ist besonders dann vorteilhaft, wenn die Wortbreite, die mit einem
Zugriff aus einem Initialisierungswertspeicher ausgelesen werden
kann, kleiner ist als die Wortbreite, die für die Initialisierung der Schieberegister
benötigt
wird. In diesem Fall sind zum Auslesen der benötigten Initialisierungsbits
mehrere Zugriffe auf den Initialisierungswertspeicher notwendig.
Durch die Berechnungseinheit wird die Anzahl dieser Zugriffe auf einen
vorgebbaren Maximalwert begrenzt. Demzufolge wird die Berechnungseinheit
nur dann eingesetzt, wenn beim Auslesen der benötigten Initialisierungsbits
die Anzahl der Zugriffe auf den Initialisierungswertspeicher den
Maximalwert übersteigen
würde. Die
Berechnungseinheit berechnet in diesem Fall zumindest eines der
Initialisierungsbits anhand derjenigen Initialisierungsbits, die
für die
Generierung des Bits, das in dem Spreizcode dem zu berechnenden Bit
vorausgeht, verwendet wurden.
-
Des Weiteren ist es vorteilhaft,
wenn die Konfigurationseinheit eine Steuereinheit aufweist, welche
den Codegeneratoreinheiten einen oder mehrere Zeitpunkte vorgibt,
ab welchen die Codegeneratoreinheiten die von ihnen erzeugten Spreizcodes
ausgeben können.
Ab diesem Zeitpunkt kann folglich von dem der jeweiligen Codegeneratoreinheit nachgeschalteten
RAKE-Finger auf den Spreizcode zugegriffen werden.
-
Besonders vorteilhaft lässt sich
die erfindungsgemäße Vorrichtung
zur Erzeugung von Spreizcodes in einem CDMA-Übertragungssystem verwenden.
Insbesondere kommen hier CDMA-Übertragungssysteme
in Betracht, die nach dem Übertragungsstandard
UMTS oder IS-95 arbeiten.
-
Die Erfindung wird nachfolgend anhand
eines in der Zeichnung dargestellten Ausführungsbeispiels der Erfindung
näher erläutert. In
der einzigen Figur der Zeichnung ist ein schematisches Schaltbild einer
Vorrichtung 1 gezeigt, mittels welcher Spreizcodes für die Demodulation
von Datenkanälen
in einem CDMA-Mobilfunksystem erzeugt werden können. Das CDMA-Mobilfunksystem basiert
vorliegend auf dem UMTS-Standard.
-
Die Vorrichtung 1 umfasst
ein Datenbus-Interface 2, eine Speichereinheit 3,
eine Konfigurationseinheit 4, Dualcode-Generatoreinheiten 5 bis 24, Multicode-Generatoreinheiten 25 bis 49,
Searchercode-Generatoreinheiten 50 und 51, eine
Konvertierungseinheit 58, eine Berechnungseinheit 59 sowie eine
Verzögerungseinheit 60.
In der Figur sind von den Dual- bzw. Multicode-Generatoreinheiten 5 bis 49 aus
Gründen
der Über sichtlichkeit
nur die Dual- bzw. Multicode-Generatoreinheiten 5, 24, 25 und 49 dargestellt.
-
Die Konfigurationseinheit 4 enthält als Bauelemente
Steuereinheiten 52 und 53, eine Adressgenerierungseinheit 54,
Speichereinheiten 55 und 56 und eine Berechnungseinheit 57.
Ferner weist die Konfigurationseinheit 4 Pipeline-Bauelemente 61, 62 und 63 auf.
-
Die Steuereinheit 52 speist
sowohl die Steuereinheit 53 als auch die Konvertierungseinheit 58.
-
Die Steuereinheit 53 weist
Verbindungen zu dem Datenbus-Interface 2 und
zu der Speichereinheit 3 auf. Die Steuereinheit 53 speist
die Adressgenerierungseinheit 54, die Konvertierungseinheit 58 und
das Pipeline-Bauelement 61.
-
Hinter die Adressgenerierungseinheit 54 sind
in einer Parallelschaltung die Speichereinheiten 55 und 56 angeordnet.
Die Speichereinheiten 55 und 56 sind ausgangsseitig
mit der Berechnungseinheit 57 verbunden.
-
Die Konvertierungseinheit 58,
die Berechnungseinheit 59 und die Verzögerungseinheit 60 sind in
der angegebenen Reihenfolge hintereinander geschaltet.
-
Die Pipeline-Bauelemente 61, 62 und 63 sind in
Reihe geschaltet.
-
Die Dualcode-Generatoreinheiten 5 bis 24 und
die Multicode-Generatoreinheiten 25 bis 49 sind identisch
aufgebaut. Exemplarisch ist nachfolgend der Aufbau der Dualcode-Generatoreinheit 5 beschrieben.
-
Die Dualcode-Generatoreinheit 5 enthält einen
Scrambling-Code-Generator 5.1,
einen Multiplizierer 5.2, einen Demultiplexer 5.3,
einen Zwischenspeicher 5.4 und einen Multiple xer 5.5.
Der Scrambling-Code-Generator 5.1 weist eingangsseitig
Verbindungen zu den Ausgängen
der Berechnungseinheit 57 und des Pipeline-Bauelements 63 auf.
Der Ausgang des Scrambling-Code-Generators 5.1 ist an einen
Eingang des Multiplizierers 5.2 geschaltet. Der zweite
Eingang des Multiplizierers 5.2 weist eine Verbindung zu
der Verzögerungseinheit 60 auf.
Dem Multiplizierer 5.2 sind in Reihe der Demultiplexer 5.3, der
Zwischenspeicher 5.4 und der Multiplexer 5.5 nachgeschaltet.
Die Steuereingänge
des Demultiplexers 5.3 und des Multiplexers 5.5 werden
von der Steuereinheit 52 beaufschlagt.
-
Die Searchercode-Generatoreinheiten 50 und 51 weisen
ebenfalls einen zueinander identischen Aufbau auf. Nachfolgend ist
der Aufbau der Searchercode-Generatoreinheit 50 exemplarisch
beschrieben. Die Searchercode-Generatoreinheit 50 enthält einen
Scrambling-Code-Generator 50.1, einen Channelization-Code-Generator 50.2,
einen Multiplizierer 50.3, einen Demultiplexer 50.4,
einen Zwischenspeicher 50.5, einen Multiplexer 50.6 und eine
Steuereinheit 50.7. Der Scrambling-Code-Generator 50.1 weist eingangsseitig
eine Verbindung zu dem Ausgang der Berechnungseinheit 57 auf.
Der Channelization-Code-Generator 50.2 weist
eingangsseitig eine Verbindung zu einem Ausgang der Steuereinheit 53 auf.
Die Steuereinheit 50.7 ist eingangsseitig mit der Steuereinheit 53 und
dem Pipeline-Bauelement 63 verbunden. Die Ausgänge des Scrambling-Code-Generators 50.1 und
des Channelization-Code-Generators 50.2 sind an jeweils
einen Eingang des Multiplizierers 50.3 geschaltet. Dem Multiplizierer 50.3 sind
in Reihe der Demultiplexer 50.4, der Zwischenspeicher 50.5 und
der Multiplexer 50.6 nachgeschaltet. Die Steuereingänge des Scrambling-Code-Generators 50.1,
des Channelization-Code-Generators 50.2, des Demultiplexers 50.4 und
des Multiplexers 50.6 werden von der Steuereinheit 50.7 beaufschlagt.
-
Im Folgenden wird die Funktionsweise
der Vorrichtung 1 erläutert.
-
Die Dualcode-Generatoreinheiten 5 bis 24, die
Multicode-Generatoreinheiten 25 bis 49 und
die Searchercode-Generatoreinheiten 50 und 51 sind dazu
ausgelegt, die Spreizcodes für
die jeweils nachgeschalteten RAKE-Finger zu erzeugen. Dazu werden
die Dualcode-Generatoreinheiten 5 bis 24, die Multicode-Generatoreinheiten 25 bis 49 und
die Searchercode-Generatoreinheiten 50 und 51 von
der Konfigurationseinheit 4 in einem Zeitmultiplex-Betrieb
konfiguriert. Die für
die Konfiguration notwendigen Parameter sind in der Speichereinheit 3 abgelegt.
Vorzugsweise handelt es sich bei der Speichereinheit 3 um
einen wiederbeschreibbaren Speicher.
-
Die Steuereinheit 53 erhält über das
Datenbus-Interface 2 von einem nicht in der Figur dargestellten
Prozessor Anweisungen, welche der Dual- bzw. Multi- bzw. Searchercode-Generatoreinheiten 5 bis 51 Spreizcodes
erzeugen sollen und somit zu konfigurieren sind. Zur Konfiguration
der Dual- bzw. Multi- bzw. Searchercode-Generatoreinheiten 5 bis 51 lädt die Steuereinheit 53 die
jeweils benötigten Parameter
aus der Speichereinheit 3 und steuert in Abhängigkeit
von diesen Parametern die Adressgenerierungseinheit 54 sowie
die Konvertierungseinheit 58.
-
Die Adressgenerierungseinheit 54,
die Speichereinheiten 55 und 56 und die Berechnungseinheit 57 dienen
zur Initialisierung der Scrambling-Code-Generatoren 5.1 bis 51.1.
Die Scrambling-Code-Generatoren 5.1 bis 51.1 weisen
in dem vorliegenden Ausführungsbeispiel
der Erfindung den Aufbau des Codegenerators auf, der in 10 des Abschnitts 5.2.2 der UMTS-Spezifikation "Spreading and modulation
(FDD)", 3rd Generation Partnership Project TS 25.213
V4.3.0 (2002-06), dargestellt ist. Bei der Initialisierung der Scrambling-Code-Generatoren 5.1 bis 51.1 kommt
es darauf an, die Anfangsbelegung der jeweils 18 Schieberegister
einer Reihenschaltung in Abhängigkeit
von der vorgegebenen Code-Nummer N und des Rahmenoffsets zu bestimmen.
Die Code-Nummer N ist einer der in der Speichereinheit 3 abgelegten
Parameter. Die Anfangsbelegungen für eine Reihenschaltung sind
in der Speichereinheit 55 abgelegt. Diese jeweils aus 18
Bit bestehenden Initialisierungszustände sind als X_seed bezeichnet.
Die Anfangsbelegungen der zweiten Reihenschaltung sind in der Speichereinheit 56 abgelegt.
Diese ebenfalls jeweils aus 18 Bit bestehenden Initialisierungszustände sind
mit der Bezeichnung Y_seed versehen. Die Speichereinheiten 55 und 56 sind
vorzugsweise als ROMs (Read Only Memory) ausgelegt.
-
Eine Möglichkeit, um die zu der Code-Nummer
N und dem Rahmenoffset zugehörigen
Initialisierungszustände
der Schieberegister zu bestimmen, besteht darin, die Belegung der
Schieberegister in Abhängigkeit
von der Code-Nummer N in einer Tabelle zu speichern. Aufwandsgünstigere
Alternativen dazu sind in den bereits oben erwähnten deutschen Patentanmeldungen
mit den Aktenzeichen 101 47 306.0-51 und 102 16 240.9-53 des Deutschen
Patent- und Markenamts angegeben.
-
Zum Betrieb der Vorrichtung 1 kann
eine der vorstehend genannten Möglichkeit
genutzt werden, um anhand der Code-Nummer N und des Rahmenoffsets
in der Adressgenerierungseinheit 54 Adressen X_addr und
Y_addr zu bestimmen, unter denen die zugehörigen Initialisierungszustände X_seed
und Y_seed in den Speichereinheiten 55 und 56 zu
finden sind. Da die Speichereinheiten 55 und 56 vorliegend als
16-bit-ROMS ausgeführt
sind, werden von der den Speichereinheiten 55 und 56 nachgeschalteten Berechnungseinheit 57 bei
einem Zugriff allerdings nicht die jeweils 18 Bits der Initialisierungszustände X_seed
und Y_seed ausgelesen, sondern es werden lediglich 16-bit-Datenwörter X_data
bzw. Y_data ausgelesen, wobei die Initialisierungszustände X_seed und
Y_seed die Datenwörter
X_data bzw. Y_data jeweils umfassen.
-
Die Initialisierungszustände X_seed
und Y-seed sind zudem nicht word-aligned in den Speichereinheiten 55 und 56 abgespeichert.
Daher sind aufgrund der 16-bit-Zugriffe auf die Speichereinheit 55 bzw. 56 im
schlechtesten Fall drei Zugriffe notwendig, um einen aus 18 Bit
bestehenden Initialisierungszustand X_seed bzw. Y_seed auszulesen.
Dies ist der Fall, wenn in dem ersten Zugriff auf die mittleren
16 Bits des Initialisierungszustands X_seed bzw. Y_seed zugegriffen
wurde. Um die Anzahl der Zugriffe auf maximal zwei zu verringern,
wird für
den Fall, dass drei Zugriffe erforderlich wären, das nachfolgend beschriebene
Verfahren angewendet.
-
In einem ersten Verfahrensschritt
wird aus der Speichereinheit 55 bzw. 56 der Initialisierungszustand
X_seed bzw. Y_seed für
die Generierung des vorhergehenden Spreizcode-Bits ausgelesen. In
einem zweiten Verfahrensschritt wird das fehlende Bit des gesuchten
Initialisierungszustands X_seed bzw. Y_seed in der Berechnungseinheit 57 berechnet,
indem die Schiebeoperation des Scrambling-Code-Generators 5.1 bis 51.1 rechnerisch
simuliert wird. In einem abschließenden dritten Verfahrensschritt
wird das mittels der Simulation berechnete Bit den 17 Bit aus den
Speicherzugriffen hinzugefügt
und man erhält
den gesuchten Initialisierungszustand X_seed bzw. Y_seed.
-
Mit den Initialisierungszuständen X_seed bzw.
Y_seed lassen sich die Scrambling-Code-Generatoren 5.1 bis 51.1 in
einem Zeitmultiplex-Betrieb konfigurieren. Der Zeitmultiplex-Betrieb wird mittels eines
Steuersignals GN gesteuert. Das Steuersignal GN gibt den Scrambling-Code-Generatoren 5.1 bis 51.1 an,
welcher der Scrambling-Code-Generatoren 5.1 bis 51.1 in
dem betreffenden Zeitpunkt initialisiert werden soll und für welchen
folglich die Initialisierungszustände X_seed bzw. Y_seed bestimmt
sind. Das Steuersignal GN wird in der Steuereinheit 53 erzeugt
und über
die Pipeline-Bauelemente 61 bis 63 an die Scrambling-Code-Generatoren 5.1 bis 51.1 weitergeleitet.
-
Für
die Generierung des Scrambling-Codes sind des Weiteren ein Steuersignal
SGC, welches für die
Steuerung der Scrambling-Code-Generatoren 5.1 bis 51.1 benötigt wird
und welches insbesondere den Startzeitpunkt für die Generierung der Scrambling-Codes
angibt, ein Signal SS, das den Beginn eines Zeitschlitzes anzeigt,
und ein Signal FS, das den Beginn eines Rahmens anzeigt, erforderlich.
Die Steuersignal SGC und die Signale SS und FS werden in der Steuereinheit 53 erzeugt
und durch die Pipeline-Bauelemente 61, 62 und 63 an
die Scrambling-Code-Generatoren 5.1 bis 49.1 und
an die Steuereinheiten 50.7 und 51.7, welche die
Scrambling-Code-Generatoren 50.1 und 51.1 steuern, übermittelt.
Der Startzeitpunkt für
die Generierung der Scrambling-Codes ist auf einen Referenzzeitpunkt bezogen,
der durch ein sogenanntes Chip-Counter-Signal CC angegeben wird.
Das Chip-Counter-Signal
CC wird in der Steuereinheit 52 erzeugt. Mittels des Steuersignals
SGC und der Signale SS, FS und CC werden die Scrambling-Code-Generatoren 5.1 bis 51.1 in
die Lage versetzt, die gewünschten Scrambling-Codes
zu der gewünschten
Zeit zu erzeugen.
-
Die Berechnungseinheit 59 dient
zum einen zur Berechnung von Channelization-Code-Bits CCB für die Dualcode-Generatoreinheiten 5 bis 24 und
die Multicode-Generatoreinheiten 25 bis 49.
Diese Berechnung wird in der Berechnungseinheit 59 mit
Hilfe von zwei Channelization-Code-Generatoren ausgeführt. Zum anderen wird in der
Berechnungseinheit 59 ein sogenanntes Symbol-Valid-Signal
SV erzeugt. Das Symbol-Valid-Signal SV zeigt dem Akkumulator eines
der Vorrichtung 1 nachgeschalteten RAKE-Fingers an, dass
das Symbol erzeugt wurde und dass der Akkumulator zurückgesetzt
werden kann. Das Symbol-Valid-Signal SV hängt von dem Spreizfaktor SF
ab. Der Spreizfaktor SF und ein Steuersignal CGC für die Steuerung
der Erzeugung der Channelization-Code-Bits CCB wird der Berechnungseinheit 59 von
der Steuereinheit 53 übermittelt.
Die Channelization-Code-Bits CCB und das Symbol-Valid-Signal SV werden an die Multiplizierer 5.2 bis 49.2 weitergeleitet.
-
Die Konvertierungseinheit 58 sorgt
dafür, dass
in der Zeitspanne, in welcher die Scrambling-Code-Bits erzeugt werden,
die entsprechende Anzahl von Channelization-Code-Bits CCB erzeugt wird,
welche anschließend
in der betreffenden Dual- bzw.
Multicode-Generatoreinheit 5 bis 49 benötigt werden.
Die Verzögerungseinheit 60 stellt
sicher, dass in die Multiplizierer 5.2 bis 49.2 gleichzeitig
die zueinander gehörenden
Scrambling-Code-Bits und Channelization-Code-Bits CCB eingehen.
-
Die Berechnung der Channelization-Codes für die Searchercode-Generatoreinheiten 50 und 51 wird
in den Channelization-Code-Generatoren 50.2 und 51.2 durchgeführt. Dazu
werden an die Channelization-Code-Generatoren 50.2 und 51.2 das
Steuersignal CGC und der Spreizfaktor SF übertragen.
-
In den Dual- bzw. Multi- bzw. Searchercode-Generatoreinheiten 5 bis 51 werden
die Spreizcodes in den Multiplizierern 5.2 bis 49.2, 50.3 und 51.3 durch
Multiplikation der jeweiligen Scrambling-Codes mit den jeweiligen
Channelization-Codes berechnet.
-
Die Spreizcodes werden bereits vor
ihrer Verwendung in den Descrambling-Einheiten der RAKE-Finger berechnet.
Bis zu ihrer Verwendung werden die Spreizcodes in den Zwischenspeichern 5.4 bis 49.4, 50.5 und 51.5 zwischengespeichert.
-
Die Zwischenspeicher 5.4 bis 49.4, 50.5 und 51.5 sind
als Flip-Puffer ausgelegt, sodass die Demultiplexer 5.3 bis 49.3, 50.4 und 51.4 die
soeben berechneten Bits der Spreizcodes in jeweils einen Teil der
Zwischenspeicher 5.4 bis 49.4, 50.5 und 51.5 einlesen
können,
während
die zu diesem Zeitpunkt benötigten
Bits der Spreizcodes von den Multiplexern 5.5 bis 49.5, 50.6 und 51.6 ausgelesen
werden und an die RAKE-Finger weitergeleitet werden. Die Datenbreite,
auf welcher die Bits der Spreizcodes in den Zwischenspeichern 5.4 bis 49.4, 50.5 und 51.5 abgelegt
werden, entspricht der Anzahl der I- und Q- Chips, die in der Entspreizungseinheit
eines RAKE-Fingers in einem Arbeitsschritt verarbeitet werden kann.
-
Die Steuereinheit 52 übermittelt
an jeden Multiplexer 5.5 bis 49.5 ein oder mehrere
Signale SC, durch welche der Zeitpunkt vorgegeben wird, ab welchem
mit dem Auslesen des in dem betreffenden Zwischenspeicher 5.4 bis 49.4 zwischengespeicherten
Spreizcodes begonnen werden kann. Die Generierung des jeweiligen
Spreizcodes muss bis zu diesem Zeitpunkt abgeschlossen sein.
-
Neben den Bits des Spreizcodes werden
in den Zwischenspeichern 5.4 bis 49.4, 50.5 und 51.5 ferner
für jede
der Dual- bzw. Multi-
bzw. Searchercode-Generatoreinheiten 5 bis 51 die
Signale SS, FS und das Symbol-Valid-Signal SV abgelegt. Somit kann
der Beginn eines Zeitschlitzes oder Rahmens aus den Signalen SS
oder FS und dem Signal CC abgeleitet werden. Mittels des Symbol-Valid-Signals
SV lässt
sich die Integrate & Dump-Einheit in einem
RAKE-Finger steuern.