Entfernungsbestimmung durch

Transcrição

Entfernungsbestimmung durch
Humboldt-Universität zu Berlin
Mathematisch-Naturwissenschaftliche Fakultät
Institut für Informatik
Entfernungsbestimmung durch
Phasenmessungen mit einer Zynq
Software-Defined Radio (SDR) Architektur
Bachelorarbeit
zur Erlangung des akademischen Grades
Bachelor of Science (B. Sc.)
eingereicht von:
geboren am:
geboren in:
Andreas Borger
17.03.1987
Ajagus (Kasachstan)
Gutachter/innen: Prof. Eckhard Grass
Dr. Frank Winkler
eingereicht am:
verteidigt am:
Inhaltsverzeichnis
1 Einleitung
1.1 Struktureller Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Grundlagen
2.1 Synchronität . . . . . . . . .
2.2 Trägerfrequenz . . . . . . .
2.3 I,Q - Diagramm . . . . . . .
2.4 Mathematische Grundlagen
2.5 Mathematische Simulation .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Die Zynk Software-Defined Radio(SDR) Architektur
3.1 Hardware . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Analog Devices - Fmcomms1 . . . . . . . .
3.1.2 Digilent - ZedBoard . . . . . . . . . . . . .
3.1.3 Xilinx - ZynqTM -7000 AP SoC . . . . . . .
3.2 Konfiguration . . . . . . . . . . . . . . . . . . . .
3.2.1 Das Referenzdesign . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Implementierung des Lösungsansaztes
4.1 Phasenmessung mit einem ZynkBoard . . . . . . . . . . .
4.1.1 Die richtige Quelle des Sinussignals . . . . . . . . .
4.1.2 Der Phasensprung . . . . . . . . . . . . . . . . . .
4.1.3 Anpassung des Referenzdesigns zur Vermeidung des
4.1.4 VHDL-Code des Filters . . . . . . . . . . . . . . .
4.2 Synchronisation zweier ZynqBoards . . . . . . . . . . . . .
4.2.1 Pmod - Schnittstelle . . . . . . . . . . . . . . . . .
4.2.2 Externer Referenztakt . . . . . . . . . . . . . . . .
4.3 Ergebnisse der Messung . . . . . . . . . . . . . . . . . . .
5 Zusammenfassung
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
.
.
.
.
.
5
6
6
7
8
10
.
.
.
.
.
.
12
12
13
15
16
18
18
. . . . . . . .
. . . . . . . .
. . . . . . . .
Phasensprungs
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
21
21
22
23
24
25
28
28
28
30
32
2
1 Einleitung
In der modernen Welt steigt die Nachfrage für Ortungssysteme vor allem im zivilen Bereich weiter an. Das mobile Telefon hat seine starke Ausbreitung in der Bevölkerung nicht
nur aus dem Grund der Telekommunikation, sondern weil es ein immer breiteres Spektrum
an Funktionalitäten implementiert. So liegt es nahe dem Nutzer auch ein zuverlässiges
Werkzeug zur Positionsbestimmung anzubieten. Die heutigen zur Verfügung stehenden
Methoden zur Bestimmung der Position eines mobilen Knotens; wie GPS (time difference
of arrival), Lokalisierung mit Richtantennen, Lokalisierung durch die Signalstärke und
noch andere sind auf ihren Einsatzgebieten bereits gut entwickelt und weit verbreitet.
Allerdings haben diese auch gewisse Nachteile, die sich vor allem in den Kosten, aber
auch in der Genauigkeit äußern. GPS beispielsweise arbeitet zwar global, verliert jedoch
absolut seine Wirksamkeit in geschlossenen Räumen und in Tunneln. Mit Sicherheit
kann das Prinzip von GPS auch in geschlossenen Räumen angewandt werden, allerdings
müsste eine hohe Hardwaregüte garantiert werden, um eine hinreichende Präzision zu
erreichen, was wiederum mit Kostensteigerungen verbunden ist. Die Positionsbestimmung
mit Richtantennen ist auf Grund des hohen Kostenaufwands nur begrenzt einsetzbar. Der
größte Nachteil liegt wohl in der Genauigkeit, welche, wie bereits erwähnt, nur mit hoher
Hardwaregüte erreicht werden kann. Ein weiteres, nicht weniger interessantes, Verfahren,
speziell für Innenräume gut geeignet, ist das Fingerprinting. Die Fingerprints müssen
jedoch manuell erfasst werden, was bei großen Gebäuden und zunehmender Granularität
mit hohem Zeitaufwand verbunden sein kann.
Alle oben genannten Verfahren haben eines gemeinsam, sie arbeiten alle mit elektromagnetischen Wellen und nutzen deren Charakteristiken, zumeist die Signalstärke und die
Laufzeit, weniger jedoch die Phasenlage, die sich unter bestimmten Voraussetzungen allerdings gut einsetzen lässt. Die Ausnutzung der Phasenlage bietet eine hohe Genauigkeit
bei sogar mittlerer Hardwaregüte und ist robust gegenüber der Signalstärke, was vor
allem in geschlossenen Räumen, durch niedrige Sendeleistungen, ihren Vorteil bietet. Der
größte Nachteil bei Phasenmessungen bleibt gewiss das Problem der Synchronisation,
welche absolut gewährleistet werden muss. Nur durch die Synchronität des Senders und
des Empfängers lässt sich eine stehende Welle erzeugen und die Phase korrekt messen.
Das Problem der Synchronisation ist wohl der Hauptgrund warum die Entfernungsbestimmung und anschließend die Positionsbestimmung durch Phasenmessungen ungeachtet
bleibt. Des weiteren lässt sich bei diesem Verfahren nur die relative Bewegung, d.h. ein
Knoten nähert sich bzw. entfernt sich vom Referenzpunkt detektieren. Ist die absolute
Position anfänglich bekannt, so bietet sich eine Objektverfolgung mit hoher Präzision an.
Aus den beiden Hauptgründen kann das Verfahren nur als integraler Teil mit anderen
Verfahren zum Einsatz kommen, die das Problem der Synchronisation lösen und eine
zumindest grobe Anfangsposition bestimmen, sind diese beiden Aufgaben gelöst, steht
einer Positionsbestimmung unter einem Zentimeter mit sogar niedrigen Trägerfrequenzen
nichts mehr im Wege. Diese enorme Genauigkeit diente als Motivation für diese Arbeit, die
es sich zur Aufgabe stellt die Genauigkeit nicht nur theoretisch sondern betont praktisch
zu demonstrieren.
3
1.1 Struktureller Aufbau
In der vorliegenden Arbeit soll untersucht werden, inwiefern Messungen der Phase eines
komplexen i-q-Signals zur Bestimmung der relativen Distanz zweier unabhängiger mobiler
Funkstationen, genutzt werden können. Allerdings soll bereits an dieser Stelle die Vorwegnahme darüber gemacht werden, dass die Unabhängigkeit zwischen den Messstationen
nicht komplett aufgehoben wird, denn dieses erfordert einen weit höheren Aufwand,
welcher in weiterführenden Projekten unternommen werden kann.
Dabei soll zunächst ein Grundgedanke bzw. eine Idee darüber aufgestellt werden, wie
diese Aufgabenstellung mit den vorliegenden Mitteln möglichst einfach und dennoch
hinreichend präzise bewältigt werden kann. Diese Grundidee soll bereits zu Beginn der
Arbeit eine grobe Vorstellung darüber vermitteln, wie die Phase gemessen werden soll,
sodass der Leser im Verlauf der Entwicklung der Lösung nicht die Übersicht verliert. Um
die skizzenhafte Grundidee formal zu beschreiben werden einige mathematische Grundlagen eingeführt, um sodann aufbauend einen theoretischen Lösungsansatz vorzustellen.
Im dritten Teil findet man eine Einführung in die Zynq Software-Defined Radio (SDR)
Architektur, mit welcher der Lösungsansatz praktisch umgesetzt werden soll, dabei soll
im Laufe dieser Einführung ersichtlich werden, dass der Lösungsansatz, welcher im ersten
Teil zu finden ist, nicht willkürlich gewählt wurde, sondern im starken Maße durch die
gegebene Hardware geleitet wird, die im gewissen Sinne es sogar gestattet, die konkrete
Implementierung übersichtlich zuhalten, welche jedoch einen komplett anderen Lösungsansatz nicht verbietet. Des weiteren findet man viele Hinweise darauf, wie die eine oder
andere Funktionalität in der Zynk-Architektur zu verwenden ist und von welchen man
Abstand nehmen sollte.
Im vierten Teil konzentriert sich die Arbeit auf die praktische Implementierung des
Lösungsansatzes und die dabei auftretenden Probleme. Eines der wichtigsten Probleme,
die in Verbindung mit Hardware stehen, sind gewiss die Einbußen bei der Genauigkeit der Messungen, welche jedoch durch die Steigerung der Hardwarequalität gut zu
beherrschen sind, sonst jedoch, wegen ihrer unvorhersehbaren Natur algorhytmisch nur unter hohem Aufwand gelöst werden können und deshalb in Kauf genommen werden müssen.
Im letzten Teil werden die Ergebnisse aus Experimenten an der Hardware zusammengestellt und kommentiert. Des weiteren soll abgeschätzt werden, inwiefern die erarbeitete
Lösung die Aufgabenstellung im Ganzen löst und bei Bedarf mögliche Verbesserungen in
Aussicht stellt. Darüber hinaus soll an dieser Stelle eine möglichst objektive Bewertung
darüber abgegeben werden, wie gut relative Entfernungsmessungen in synchronisierten
SDR-Anordnungen realisierbar sind.
4
2 Grundlagen
Das Grundprinzip der Entfernungsmessung baut auf der Tatsache auf, dass eine sinusoidale Schwingung eine Wellenlänge aufweist, welche durch die Frequenz bestimmt wird.
Unter der Annahme, dass die Frequenz im zeitlichen Verlauf konstant bleibt, kann auch
die Wellenlänge als solches angenommen werden. Nimmt man nun die Wellenlänge als
Längeneinheit, d.h. den Abstand zwischen zwei Punkten innerhalb einer Periode, so lässt
sich die Sinusschwingung als eine Art Lineal einsetzen, wobei eine höhere Frequenz stets
eine feinere Granularität bei Entfernungsmessungen liefert, da die Wellenlänge umgekehrt
proportional zur Frequenz ist. Die Frage stellt sich nun, wie man eine elektromagnetische Schwingung, die sich mit der Lichtgeschwindigkeit ausbreitet, als eine Art Lineal
einsetzen kann, denn für eine Messung muss das Lineal zum Stillstand gebracht werden,
um dieses als Längenreferenz nutzen zu können. Der Geräteaufbau, der in dieser Arbeit
für die Verifikation zum Einsatz kommen soll, ist in der Abbildung 1 zur Illustration
gegeben; der Sender sendet eine Sinusschwingung mit einer konstanten Frequenz. Der
Empfänger empfängt dieses Signal und bringt dieses mit einer passenden Abtastfrequenz
zum Stillstand. Dies kann nur durch eine exakte Synchronisation des Senders mit dem
Empfänger erreicht werden. Die sich ausbreitende Welle steht natürlich nicht wirklich, es
ist der Empfänger, der die Messpunkte an der Phase so ansetzt, dass die ankommende
Schwingung nun keine Schwingung mehr ist, sondern eine durch die Messpunkte imaginär
verlaufende Gerade, die sich parallel zur x-Achse hin zieht. Diese Gerade bleibt nun
konstant, solange sich die Parameter des Sendesignals nicht ändern und die beiden Geräte
nicht von ihren Positionen fort bewegt werden. Soll eine Entfernungsmessung erfolgen,
bewegt man den Empfänger vom Sender hinweg oder zu ihm hin, dadurch ändert sich
die Phase, die Gerade senkt sich entsprechend ab oder steigt auf. Auf diese Weise lässt
sich eine Phasenumkehr beobachten oder sogar einzelne Winkelgrade ausmessen, dazu ist
aber eine hohe Abtastrate unabdingbar.
Abbildung 1: Grundaufbau
5
2.1 Synchronität
Die Synchronität ist dabei von zentraler Bedeutung. Die Frequenzen des Signals
und der Messfolge müssen mathematisch exakt gleich sein, andernfalls entsteht keine
konstante Gerade, sondern eine niederfrequente Schwingung, die eine Phasenmessung
und damit auch eine Entfernungsmessung unmöglich macht.
Siehe Abbildung 2.
Abbildung 2: Ungleiche Frequenzen
2.2 Trägerfrequenz
Ein weiterer wichtiger Punkt, welcher die Entfernungsmessung durch die Phasenlage
erst sinnvoll macht, ist der Einsatz von Trägerfrequenzen, welche eine sehr feine
Granularität erlauben. In der Praxis bedeutet dies, dass die Basisfrequenz mit welcher die
eigentliche Berechnung der Phase durch die erwähnten Messpunkte erfolgt, tausendfach
niedriger ausfallen kann, als die Trägerfrequenz, welche eine sehr kurze Wellenlänge
aufweist. Ein Beispiel soll diese wichtige Tatsache kurz demonstrieren. Seien die Parameter
wie folgt gegeben; Die Basisfrequenz φ0 = 2.4M hz, dies macht eine Wellenlänge β0 =
125m. Eine Trägerfrequenz φt = 2.4Ghz, hat eine Wellenlänge βt = 12, 5cm. Man beachte
die Einheiten. Dabei ist es wohl am interessantesten die Tatsache, dass die Basisfrequenz
ein Verhalten aufweist, als wäre diese die Trägerfrequenz selbst. Die Verschiebung der
Phase des Trägers um ein viertel der Periode, verschiebt auch die Basiswelle um ein
viertel der Periode, obwohl die Wellenlängen sich um das tausendfache unterscheiden. Die
Zusammenhänge dieses Effekts entziehen sich beim ersten Blick dem Erklärungsversuch,
aus dem Standpunkt der Mathematik stellt dieses jedoch kein Mysterium dar und werden
in folgenden Abschnitten aufgezeigt.
6
Die Vorteile beim Einsatz von Trägerfrequenzen liegt außer dem beschriebenen Effekt
darin, dass erstens die Anzahl der anfallenden Messdaten durch die niedrige Basisfrequenz
geringer ausfällt, und zweitens die Möglichkeit zwei Basisfrequenzen auf den Träger komplex zu modellieren, welche eine weitere Dimension einführt. Der Einsatz von komplexen
Basisfrequenzen ist im folgenden Abschnitt erläutert.
2.3 I,Q - Diagramm
Im ersten Abschnitt der Einleitung wurde bereits die Vorwegnahme gemacht, dass das zu
messende Funksignal komplexer Natur ist. In diesem Zusammenhang ist komplex nicht
mit kompliziert zu verwechseln, denn das Grundsignal, dass hier genutzt werden soll, ist
ein einfacher Sinus. Komplex bedeutet vielmehr den Fakt, dass das modulierte Signal aus
mehreren einfachen Signalen gebildet wird. In unserem Fall sind es genau zwei, und zwar
Sinus und Cosinus, dabei soll nochmal daran erinnert werden, dass die Kosinusfunktion
nichts anderes darstellt, als eine um 90◦ -Grad verschobene Sinusfunktion. In einem I,Q Diagramm sind auf der X-Achse die Amplitude des I -Signals und auf der Y-Achse die
Amplitude des Q-Signals abgebildet.
Abbildung 3: I,Q - Diagramm
Aufgrund der 90◦ -Grad-Verschiebung von I und Q zueinander, entsteht im zeitlichen
Verlauf eine rotierende Bewegung des Vektors M, ab nun als Zeiger bezeichnet. Dabei
ist die Kreisfrequenz gleich der Basisfrequenzen von I (blau) und Q, andernfalls entstünde keine Kreisbewegung. Soll nun der Phasenwinkel φ gemessen werden, muss der
Zeiger zum Stillstand gebracht werden, um sodann durch die Bewegung des Sende- bzw.
Empfängergeräts diesen in die entsprechende Position zu bringen. Der Zeiger wird zum
Stillstand gebracht, indem man, wie in Abbildung 3 rechts dargestellt, Messpunkte mit
der selbigen Frequenz in I und Q erzeugt. Dieser Ansatz entspricht dem Prinzip
des stroboskopischen Effekts.
7
Der Vorteil der komplexen Ebene liegt in erster Linie an der Möglichkeit
die Bewegungsrichtung des Empfängers zu bestimmen, indem man die Rotationsrichtung des Zeigers beobachtet.
2.4 Mathematische Grundlagen
In diesem Abschnitt soll nochmal genauer auf die mathematischen Prinzipien der Zusammenhänge eingegangen werden, die im vorherigen Abschnitt bildhaft dargestellt sind.
Dabei soll der Schwerpunkt bei der IQ-Modulation liegen. Die IQ-Modulation wird in der
Literatur unter der Bezeichnung Quadraturamplitudenmodulation aufgeführt. Die Bezeichnung IQ-Modulation kommt aus dem Englischen, wo I für In-Phase und Q für Quadrature
Component stehen. Die Quadraturamplitudenmodulation wird in der gegenwärtigen Zeit
fast ausschließlich in der digitalen Nachrichtentechnik angewandt, nichtsdestotrotz lässt
sie sich ideal für die Entfernungsbestimmung verwenden, schon aus dem Grund, dass
dadurch die Möglichkeit entsteht die Bewegungsrichtung mit zu bestimmen.
In der Abbildung 4 ist schematisch das Prinzip der Modulation auf der Senderseite und
die Demodulation auf der Empfängerseite dargestellt.
Abbildung 4: Modulation, Demodulation
Der Modulator multipliziert I mit dem Träger LO, der die Kosinusfunktion mit einer
konstanten Frequenz darstellt. Q wird mit dem selbigen multipliziert, aber um -90 Grad
Phasenverschoben. Anschließend werden beide Signale addiert.
Bei der Demodulation wird die Prozedur umgekehrt angewandt, allerdings entstehen
8
aufgrund der weiteren Multiplikation des empfangenen Signal mit dem Träger LO hochfrequente Schwingungen, die mit einem Tiefpassfilter LPF aus dem Spektrum entfernt
werden. Desweiteren kann das Signal nach der Tiefpassfilterung entsprechend den auftretenden konstanten Faktoren von 12 verstärkt werden, um diese zu kompensieren.
Der im letzten Absatz beschriebene Sachverhalt lässt sich mathematisch wie folgt formalisieren.
a(t) = I(t)cos(ω t) − Q(t)sin(ω t)
π
= I(t)cos(ω t) + Q(t)cos(
+ ω t)
2
(1)
a(t) ist das modulierte Ausgangssignal (in der Abbildung 4 als ausgehender Pfeil dargetellt). Der Parameter ω ist dabei die Trägerfrequenz.
Auf der Seite des Demodulators sei das empfangene Signal als a(t) bezeichnet, dann
ist das demodulierte Signal I r mathematisch wie folgt;
Ir (t) = a(t)cos(ω t)
= I(t)cos(ω t)cos(ω t) − Q(t)sin(ω t)cos(ω t)
1
1
= I(t)[1 + cos(2ω t)] − Q(t)sin(2ω t)
2
2
1
1
= I(t) + [I(t)cos(2ω t) − Q(t)sin(2ω t)]
2
2
(2)
Der zweite Summand in der letzten Zeile der Formel wird, wie bereits oben erwähnt,
durch die Tiefpassfilterung entfernt, sodass am Ende 12 I(t) zurückbleibt. Der Faktor
kann durch eine Verstärkung des Signals ebenso entfernt werden. Letztlich erhält man,
unter der Voraussetzung der Störungsfreiheit des Übertragungskanals, die I Komponente
original wieder.
Die Gewinnung der Q Komponente wird analog wie in der Formel (2) dargestellt
errechnet, allerdings wird mit -sin(ω t) multipliziert statt mit cos(ω t).
In der digitalen Nachrichtentechnik sind I und Q zwei unabhängig von einander kodierbare Datenströme. Die Kodierung ist dabei so definiert, dass den einzelnen Dateneinheiten
bzw. Symbole konkrete Zeigerstellungen auf der komplexen I,Q - Ebene zugewiesen sind.
Die Zeigerzustände werden dabei durch Winkel und Länge beschrieben.
Auf Grund der unregelmäßigen Natur der Daten, bewegt sich der Zeiger entsprechend
komplex. Soll dieses System zur Entfernungsmessung verwendet werden, ist die nachrich-
9
tentechnische Kodierung überflüssig. In diesem Fall wird I = sin(θ t) und Q = cos(θ t)
belegt, sodass der Zeiger, wie in Abbildung 3 dargestellt, eine Rotation vollführt, und
zwar mit der Kreisfrequenz von θ.
Im Abschnitt 2.2 wird erläutert, dass die Verschiebung der Phase im Träger, sich
entsprechend auf die Basisfrequenz, hier I und Q, niederschlägt. Das Interessante dabei
ist, dass obwohl der Träger eine viel kürzere Wellenlänge aufweist als das Basissignal,
überträgt sich die Phase des Trägers direkt auf I und Q. Dies sieht man deutlich in der
Formel;
Ir (t) = a(t)cos(ω t)
= sin([θ t − ω t] + φ )cos(ω t)
1
= (sin(θ t + φ ) + sin(θ t − 2ω t + φ ))
2
1
= (sin(θ t + φ )
2
= sin(θ t + φ )
(3)
In der vierten Zeile der Gleichung (3) wurde der zweite Summand entfernt, dies soll
die Wirkung des LPF illustrieren. Weiterhin ist der halbierende Faktor durch eine Verstärkung kompensiert.
Diese Gleichung hat eine Phasenverschiebung φ im empfangenen Signal a(t), diese setzt
sich bis zum Schluss durch.
2.5 Mathematische Simulation
In diesem Abschnitt soll eine rechnerische Sequenz mit konkreten Frequenzen durchgeführt werden, die dann in der Implementierung zum Einsatz kommen sollen. Ziel ist
es die Genauigkeit dieses Ansatzes bei idealen Voraussetzungen zu demonstrieren, aber
auch eine Prognose auf mögliche Fehlerquellen finden, die untrennbar mit der technischen
Umsetzung verbunden sind.
Seien folgende konstanten gegeben:
Basisfrequenzen:
θI = θQ = F Hz.
Trägerfrequenz:
ω = 10F Hz. (10-fache der Basisfrequenz)
Phasenverschiebung: π
Weiterhin sei I = sin(θI t) und Q = cos(θQ t).
10
Damit entstehen nach der Anwendung von (1) folgende modulierte Signale a(t) (grün)
und b(t) mit der Phasenverschiebung um π :
Abbildung 5: Phasenverschiebung im Träger
Nach der Anwendung der Formel (3) der Signale a(t) und b(t) aus der Abbildung 5 entstehen entsprechend die demodulierten Basisüberlagerungen auf dem Träger. Der Träger
wurde hier absichtlich nicht weg gefiltert, um die Phasenverschiebung zu demonstrieren.
Es lässt sich recht gut erkennen, dass die Verchiebung um 180◦ (blau) sich sowohl im
Träger, als auch in der Basisschwingung wiederfindet. Damit steht aber auch ein
Problem in Verbindung, denn bereits kleinere Schwankungen in der Phase (Jitter) des
Träger übertragen sich auch auf die Basis und verhindern eine präzise Messung.
Abbildung 6: Phasenverschiebung in der Basis (nur I dargestellt)
Damit sind alle mathematisch relevanten Grundlagen dargestellt worden und rechnerisch
nachvollzogen, die für eine Messung der Phasenverschiebung gebraucht werden. Eine
konkrete Implementierung dieses Ansatzes ist im dritten Teil zu finden.
11
3 Die Zynk Software-Defined Radio(SDR) Architektur
Dieser Teil der Arbeit führt in die Zynk Architektur soweit ein, sodass die spätere
Implementierung des Ansatzes nachvollzogen werden kann. Die in diesem Projekt zur
Verfügung stehende Hardware besteht aus zwei nennenswerten Hauptmodulen, die im
weiteren zunächst getrennt beschrieben werden und später, wie diese softwaretechnisch
untereinander kommunizieren. Die Betonung liegt dabei auf dem hier zum Einsatz
kommenden FPGA, welches es erlaubt Hardware-Lösungen flexibel und schnell umzusetzen
und zu testen.
3.1 Hardware
Die komplette Hardware, die hier als Zielhardware zum Einsatz kommen soll, besteht
aus zwei Modulen; ZedBoard und Fmcomms1, wobei das ZedBoard als Trägerplatine
mit dem fmcomms1 mittels FMC Anschluss erweitert wird.
Abbildung 7: ZedBoard (ohne fmcomms1)
12
Abbildung 8: AD - Fmcomms1 (Radiomodul)
3.1.1 Analog Devices - Fmcomms1
Das AD-FMCOMMS1-EBZ von Analog Devices ist eine Software-Defined Radioplattform (SDR), dies bedeutet, dass die meisten relevanten Parameter per Softwareschnittstelle verändert bzw. konfiguriert werden können, was ein, durch die Flexibilität,
breites Experimentier- und Anwendungsspektrum erlaubt. Es stellt zwei parallel arbeitende Pfade zum Senden und Empfangen zur Verfügung. Dies hat den Vorteil, dass
Experimente mit hoher Synchronisationsabhängigkeit direkt auf einem Gerät durchgeführt werden können, ohne zwei Geräte synchronisieren zu müssen. Desweiteren besitzt
diese Platine einen Analog-to-Digital Converter mit einer 14 Bit-Resolution, wodurch
ein Sinussignal sauber beschrieben werden kann und dadurch die Möglichkeit entsteht
einzelne Winkelgrade auszumessen.
13
Abbildung 9: fmcomms1 - schematische Darstellung der Hauptfunktionsmodule
In Abbildung 9 sind die Hauptfunktionsmodule des Funkmoduls dargestellt. Auf der
linken Seite ist durch den roten Kasten die FMC - Schnittstelle dargestellt, die physische
Verbindung mit dem ZedBoard. Das Layout ist recht übersichtlich entworfen; Die obere
Reihe, die aus den Blöcken AD9122, ADL5375 und ADL5620 besteht, bildet den Sendepfad. Der AD9122 ist ein 16-Bit Digital-Analog Converter mit einer maximalen Abtastrate
von 1250 msps. Er ist mit dem FPGA durch 16+1 Pins verbunden, wobei 16 davon die
Datenleitung darstellen und 1 Pin zur Synchronisation des FPGA’s mit dem DAC dient,
zwei weiteren Pins für den differenziellen Takt. Der DAC hat zwei Datenkanäle, die als
I und Q bezeichnet werden. Nach dem DAC folgt ein 2-Kanal I-Q-Modulator, dieser
erlaubt eine feine Frequenzeinstellung. Schließlich wird das ausgehende Signal durch den
ADL5620 verstärkt.
Die untere Reihe, die aus den Blöcken AD9643, AD8366 und ADL5380 besteht, bildet den Empfangspfad. Der Demodulator ADL5380 operiert im Frequenzbereich von
400Mhz - 6000Mhz und bringt das empfangene Signal entsprechend der Fromel (3) (siehe math. Grundlagen) auf I und Q. Ein per Software steuerbarer Operationsverstärker
AD8366 verstärkt die beiden Kanäle bis zu 20dB. Anschließend folgt ein Analog-to-Digital
Converter Ad9643. Dieser tastet das analoge Signal mit maximal 250msps und einer
Auflösung von 14-Bit. Zu beachten ist, dass die Abtastrate nicht frei regeluierbar ist,
sondern es stehen drei Abtastraten zur Verfügung; 170msps, 210msps und 250 msps. Diese
14
Tatsache hat in sofern eine Auswirkung auf die Aufgabenlösung, dass das zumessende
Sinussignal eine viel niedrigere Frequenz aufweist und zweitens dieses keinen ganzzahligen
Faktor mit den Abtastraten besitzt. Somit kann der in der Grundidee erwähnter Ansatz,
bei welchem die Messpunkte in gleicher Frequenz wie das eingehende Siganl gesetzt
werden, nicht durch Einstellungen am ADC gelöst werden. Der ADC ist mit dem FPGA
durch 14-Bit Datenleitung verbunden und einem differentiellen Takt zur Synchronisation
des FPGA’s.
Die mittlere Reihe(grün), die aus den Blöcken AD9548, AD9523-1 und zwei ADF4351
besteht, bildet das globale Taktsystem. Der AD9548 ist ein PLL basierter Taktgenerator.
Er bezieht dabei einen differentiellen Referenztakt von 30MHz von dem FPGA, bereinigt
diesen in Bezug auf Jitter und gibt seinerseits einen Refferenztakt von 30.72MHz an
den Taktverteiler AD9523-1. Der Taktverteiler AD9523-1 besitzt 14 unabhängig per
Software einstellbare Taktausgänge. Die gewünschten Ausgangsfrequenzen werden intern
mit Integerbasierten Multiplikatoren und Dividierern erreicht. Zu beachten ist auch das
die ADC und DAC Module ihren operativen Takt vom Taktverteiler bekommen, eine
Änderung der Samplingrate muss deswegen am AD9523-1 vorgenommen werden. Die
maximale Ausgangsfrequenz des Taktverteilers ist 1000MHz, aus diesem Grund sind zwei
ADF4351 eingebaut. Die beiden Frequenzsynthesatoren bringen die 1000MHz schließlich
auf dei gewünschte Trägerfrequenz von 2.4MHz, die als standartisiert gelten.
3.1.2 Digilent - ZedBoard
Das ZedBoard ist eine geeignete Entwicklungsplattform für Einsteiger in der FPGA
Entwicklung. Das Board beinhaltet alle notwendigen Schnittstellen und unterstützenden
Funktionen, die eine Vielzahl von Anwendungen ermöglichen. Die Erweiterbarkeit durch
die FMC - Schnittstelle des Boards macht es ideal für schnelles Prototyping und Proof-ofConcept-Entwicklung. Die Schnittstellen, die für die Implementierung im Rahmen dieser
Arbeit relevant sind, sind in erster Linie der FMC - Anschluss, über diesen wird das
Radiomodul fmcomms1 verbunden. Der JTAG ist eine Schnittstelle für die Programmierung des FPGA’s und zur Übertragung eines Softwareprogramms auf den 512Mb großen
DDR3 - Hauptspeicher. Ein USB UART Ausgang erlaubt die Ausgabe von Daten an
einen Terminal, die von der laufenden Software erzeugt werden. Die Pmods Ein/Ausgänge
erlauben die Einspeisung und Herausleitung von Referenztakten. Desweiteren stehen
Schiebeschalter, Druckknöpfe und LEDs zur freien Nutzung bereit, über diese lassen
sich grundlegende Konfigurationsmoglichkeiten realisieren. Als Massenspeicher dient eine
SD-Karte auf der Rückseite der Platine. Die CPU ist hier durch eine Zynq realisiert,
deren Einzelheiten, wegen des interessanten Aufbaus, gesondert im nächsten Subkapitel
aufgezeigt werden.
15
Abbildung 10: ZedBoard - Darstellung von oben mit Beschriftung
3.1.3 Xilinx - ZynqTM -7000 AP SoC
Die Zynq System-on-Chip Architektur setzt sich aus zwei verschiedenartigen Recheneinheiten zusammen. Auf der einen Seite steht das Processing System mit einem
herkömmlichen Dual-Core ARM Processor und weiteren Mikrokontrollern zur Unterstützung, welcher sich mit Hochsprachen wie C programmieren lässt. Somit lassen sich
sogar moderne Betriebssysteme, wie Linux problemlos ausführen. Auf der anderen Seite
steht die Programmable Logic, d.h. eine rekonfigurierbare Hardware, die allgemein
als Field Programmable Gate Array, kurz FPGA, bezeichnet wird.
Die Grundlegende Struktur eines FPGA’s ist ein grosses Array aus Basisblöcken.
Die einheitlichen Basisblöcke bestehen aus jeweils mehreren LUTs (Look Up Tables),
Flip-Flops und Multiplexern. Ein Look-Up-Table besteht vereinfacht gesehen aus mehreren (meistens 4 bis 6) Eingängen und einem Ausgang, damit lassen sich, in Kombination
mit anderen Basisblöcken, beliebige n-stellige bool’sche Funktionen realisieren. Dabei
wird die vordefinierte Wahrheitstabelle des jeweiligen LUT’s in einem dazugehörigen
flüchtigen SRAM Speicher, während des Konfigurationszyklus des FPGA’s, abgelegt. Die
Ausgänge der LUT’s, also ihre Ergebnisse, können weiterhin mit Multiplexern verbunden
16
sein, um diese kombinatorisch zu veschalten. Die Endergebnisse werden Schließlich in
Flip-Flops festgehalten und können an den Ausgängen des Basisblocks gelesen werden.
Durch die Verschaltung mehrerer Basisblocks können sowohl kombinatorische, als auch
sequenzielle logische Schaltungen programmiert werden. Die Verbindung zwischen den
einzelnen Basisblocks und anderen Komponenten ist durch ein Gitter realisiert, welches
zunächst alle Komponente miteinander verbindet. An den Kreuzungspunkten befindet
sich wiederrum programmierbare Zellen, die abhängig vom Programm die einzelnen Verbindungsstellen jeweils öffnen bzw. schließen. Dadurch lassen sich komplexe Funktionen
realisieren.
Abbildung 11: Zynq - Blockdiagram
In der Abbildung 11 ist ein Blockdiagramm der gesamten Zynq dargestellt. Das oben
beschriebene FPGA ist im Programmable Logic (gelber Bereich) definiert. Im Proces-
17
sing System befinden sich die Dual-Core CPU mit weiteren wichtigen Mikrokontrollern,
wie DRAM Kontroller, Flash Kontroller, dem DMAC, dem Interrupt Kontroller usw.
Desweiteren ist auf der linken Seite in acht grauen Kästchen die Ein/Ausgänge, die
zur Verfügung stehen, angedeutet. Ein weiterer nenneswerter Punkt ist die Verbindung
zwischen dem Processing System und Programmable Logic. Die Kommunikation zwischen
den beiden Systemen wird über ein extra dafür angelegtes Bussystem, dem AXI - Port,
abewickelt. Dieser steht zur freien Nutzung zur Verfügung.
Die Gesamtarchitektur erlaubt eine zielgerichtete und effektive Implementierung vieler
Anwendungen. Im Rahmen dieser Arbeit wird die signalverarbeitende Hardware im FPGA
definiert und per Treibersoftware, ausgeführt mit dem Processing System, gesteuert.
Dadurch entsteht das klassische Bild eines PC’s, bei dem eine CPU die gesamte Steuerung
der Peripherie übernimmt, nur das in diesem Fall die Peripherie im FPGA eigens definiert
werden kann. Daraus ergibt sich ein immenser Vorteil in Flexibilität und Management
bei der Zynq - Architektur.
3.2 Konfiguration
Dieser Teilabschnitt gibt hauptsächlich eine grobe Einführung in beispielhafte Konfiguration, die von Analog Devices für das Radiomodul - Fmcomms1 als Referenzdesign zur
Verfügung gestellt wird. Eine Konfiguration in diesem Zusammenhang ist die gesamte
Menge an Beschreibungen, die das Verhalten des FPGA’s definieren. Das Verhalten wird
dabei mit speziellen Hardwarebeschreibungssprachen festgelegt und solange gehalten bis
das FPGA mit einem anderen Programm rekonfiguriert wird.
3.2.1 Das Referenzdesign
Das Referenzdesign ist so geplant worden, dass es wie eine Art Bindeglied bzw. Zwischenschicht zwischen dem Processing System und dem Radiomodul daherkommt.
In der Abbildung 12 ist das Referenzdesign als vereinfachtes Blockdiagramm, unter
Hervorhebung wesentlicher Bestandteile, gegeben. Jeder Block implementiert eine oder
mehrere Funktionen, die mit Verilog und VHDL (Hardwarebeschreibungssprachen) in
der programmierbaren Logik definiert sind. Im folgenden ist eine kurze Beschreibung
einzelner Funktionen aufgeführt;
18
Abbildung 12: Zynq - Blockdiagram
Die programmierbare Logik ist in zwei Parallele Pfade, dem Sende- und Empfangspfad,
aufgeteilt. Im Grundaufbau sind es zwei, bis auf die Richtung des Datenflusses, identische
Konstrukte. Die Hauptunterschiede stellen die beiden Blöcke ad9643 und ad9122 dar,
welche sich, dem jeweiligen Aufgabenbereich entsprechend, in ihren Funktionen von
einander unterscheiden. Auf der Empfangsseite ist der ad9643 über den FMC-Anschluss
direkt mit dem Analog-to-Digital Wandler, der sich auf dem Radiomodul befindet, verbunden. Der Block ad9643 nimmt das digitalisierte Signal entgegen. Der differentielle Takt
ermöglicht die Detektion sowohl der steigenden, als auch die der fallenden Taktflanken,
was einen doppelten Durchsatz an Daten bei gleicher Frequenz zur Folge hat. Die Daten
der parallelen Kanäle I und Q werden in den ad9643 sequentiell eingespeist, d.h zwischen
ADC und ad9643 gibt es nur eine differentielle Leitung, welche abwechselnd für I und Q
Daten belegt wird. Dabei werden I Daten bei geraden Takten angelegt und Q Daten bei
ungeraden. An seinem Ausgang hingegen hat der ad9643 zwei getrennte Datenleitungen
für I und Q, auch der Takt ist nicht mehr differentiell, d.h nur halb so schnell, wie am
Eingang. Der Single-Takt wird dann zur Synchronisation weiterer Komponente genutzt,
wie dem DMA-Controller und einem zwischem dem DMAC und dem ad9643 geschaltetem
Puffer. Ein weiteres Signal adc data write am Ausgang des ad9643 meldet dem Puffer
19
die Bereitschaft zur Übernahme der einzelnen Daten. Der Puffer hat im wesentlichen
die Aaufgabe die Datenleitung zu verbreitern, d.h. er nimmt vom ad9643 ein 16 Bit
breites Datum, wartet auf das nächste 16 Bit breite Datum, legt diese zusammen zu
einem 32 Bit breiten Datum und sendet diese an den DMA-Controller über seinen 32 Bit
breite Datenleitung. Es ist also ein First-in First-out Buffer, der die paarweise Ausgabe implementiert. Der DMA-Controller ist über einen AXI Interconnect mit einem
Processing System internen Bus verbunden, an welchem der RAM-Controller sitzt. Das
AXI Bussystem ist ein nur im FPGA, also der programmierbaren Logik verwendeter Bus,
welcher nach außen hin eine Überbrückung braucht, eine solche ist der AXi Interconnect.
Der AXI Interconnect ist zum RAM hin über eine High Performance Leitung, die eine
hohe Datenrate erlaubt, verbunden. Eine weitere Leitung zwischen der CPU und dem
DMA-Controller ist für die Steuerung desselbigen verfügbar. Der ad9643 besitzt ebenso
einen AXI Eingang zur Steuerung über die CPU per Software.
Somit lässt sich die Aufnahme des empfangenen Signals bequem per Software initiieren
und anschließend im RAM auswerten. Dieser Lösungsansatz macht das System sehr
flexibel und schnell änderbar, was in der Entwicklungsphase sehr vorteilhaft ist.
Aud der Senderseite ist, wie bereits erwähnt der selbe Aufbau, wie auf der Empfängerseite, mit der Ausnahme, dass dort der Block ad9122 anstelle des ad9643 sitzt. Im
weiteren sind kurz die einzelnen Funktionen von ad9643 und ad9122 beschrieben.
AD9643
Die wesentliche Funktion des ad9643 ist, wie bereits oben beschrieben, eine Schnittstelle
zwischen dem ADC und dem DMA-Controller bereit zu stellen. Desweiteren implementiert diese Einheit aber auch eine I,Q - Korrektion. Aufgrund vielseitiger Störeinflüsse
im Übertragungskanal entstehen Verschiebungen in der Phase zwischen I und Q, diese
stehen dann nicht mehr im 90◦ Winkel zu einander. Außerdem können Fehler in der
Amplitude der einzelnen I und Q Signale entstehen. Die konkrete Funktionsweise dieses
Korrekturalgorithmuses soll hier nicht zum Gegenstand der Untersuchung werden, kann
aber bei Interesse nachgeschlagen werden [15].
AD9122
Die wesentliche Funktion des ad9122 ist, wie bereits oben beschrieben, eine Schnittstelle
zwischen dem DAC und dem DMA-Controller bereit zu stellen. Desweiteren implementiert
diese Einheit das Direct Digital Sampling, diese Funktion erzeugt direkt im ad9122 einen
sinusförmigen Punkteverlauf, der zum DAC gesendet wird. Diese Funktion erlaubt somit
die Generierung von einfachen Sinussignalen, deren Frequenz über die AXI-Schnittstelle
per Software eingestellt werden kann. Allerdings besteht ein Nachteil in der Hinsicht,
dass die Frequenzeinstellstufen recht grob ausfallen, was in einigen Fällen unerwünscht
oder diese Funktion gar unbrauchbar macht. Weitere Deteils dazu findet man im Kapitel
Implementierung des Lösungsansatzes.
20
4 Implementierung des Lösungsansaztes
Die Implementierung des Lösungsansatzes ist in zwei Hauptabschnitte eingeteilt. Der erste
Teil implementiert den Ansatz auf einem einzigen ZynqBoard. Aufgrund der parallelen
Existenz beider Pfade, d.h. Sende- und Empfangspfad, bietet sich die Möglichkeit den
Lösungsansatz auf einem Gerät zu implementieren. Diese Herangehensweise hat den
Vorteil, dass die Synchronisation zweier Geräte, wegen der absoluten Synchronität aller
Komponente auf einem Gerät, zunächst komplett entfällt und damit auch Störeinflüsse,
wie Phasenjitter. Somit lässt sich die Korrektheit des Ansatzes praktisch prüfen.
Im zweiten Abschnitt dieses Kapitels beschäftigt sich die Arbeit mit der Synchronisation zweier ZynqBoards mit Hilfe eines dritten unabhängigen Taktgebers, dabei wird
Schritt für Schritt aufgezeigt, was dabei beachtet werden sollte. Anschließend stehen die
Ergebnisse der beiden Ansätze gegenüber.
4.1 Phasenmessung mit einem ZynkBoard
Die Phasenmessung auf einem ZynqBoard lässt sich recht unproblematisch realisieren. Der
Sender sendet, wie im ersten Kapitel vorgestellt, ein sinusförmiges Signal, welches direkt
vom eigenen Empfänger verarbeitet wird. Das Problem der Synchronisierung entfällt
in diesem Fall, denn auf einem Modul werden alle Komponente aus einem Taktgeber
gespeist, wodurch sich eine absolute Synchronität einstellt.
Der Lösungsansatz aus dem ersten Kapitell schlägt vor; das eingehende Signal mit
der exakt gleichen Frequenz, wie das Signal selbst, abzutasten. Dadurch erhält man eine
Menge an Messwerten bzw. Punktemenge, welche alle auf einer Geraden liegen, anhand
dieser lässt sich im Verlauf der Zeit kontinuirlich die Phase bestimmen.
Doch wie soll man die Abtastfrequenz an die des eingehenden Signals anpassen?
Der ad9643 Analog-to-Digital Converter (siehe Abb. 12 bzw. Abb. 9) auf der Empfangsseite bietet diese Möglichkeit nicht, d.h. er besitzt keine Möglichkeit der freien
Frequenzeinstellung. Um genauer zu sein hat er genau drei zur Einstellung verfügbare
Frequenzen; 245 760 000 Sps, 210 MSps und 170 MSps, wobei Sps eine Abkürzung für
Samples per Second (engl.) ist. Der erste Wert ist aus dem Grund so präzise angegeben,
weil dieser in der Implementierung seine Verwendung findet. Ein weiterer Ansatz wäre
die Einstellung der Frequenz des Signals auf der Senderseite passend zum ADC vorzunehmen, sodass der ADC die gleiche Frequenz des Signals wiederfindet, exakt passend zu
seiner Abtastfrequenz.
Theoretisch lassen sich sinusförmige Signale auf der Senderseite direkt im ad9122 (siehe
ad9122, Kapitell 3) erzeugen, dadurch könnte man, anstatt auf der Empfängerseite die
Abtastfrequenz an das eingehende Signal anzupassen, direkt die passende Frequenz auf
21
der Senderseite erzeugen. Allerdings sind die Einstellmöglichkeiten für die Frequenz recht
eingeschränkt, so lässt sich die Frequenz nur in etwa rund 5000 Hz Schritten einstellen.
Desweiteren besteht eine Differenz zwischen Soll und Ist Werten, was eine korrekte Einstellung unmöglich macht und im Ganzen diese Methode für unsere Zwecke unbrauchbar
macht. Ein kleines Beispiel aus der Praxis soll das Einstellproblem nochmal verdeutlichen;
z.B. liefert das ad9122 bei einer Frequenzeinstellung von genau Fsoll = 3 072 000 Hz
eine tatsächliche Frequenz von Fist = 3 073 100, wobei die letzten Hz Einheiten bei
jeder Initialisierung etwas anders ausfallen. Dies macht das Ganze recht unvorhersehbar
und für unsere Zwecke, wo eine mathematisch genaue Frequenz verlangt wird, unbrauchbar.
4.1.1 Die richtige Quelle des Sinussignals
Aus den oben genannten Gründen muss also ein anderer Weg gefunden werden, um ein
sauberes sinusförmiges Signal auf der Senderseite zu erzeugen. Die einfachste Methode,
die sich in Verbindung mit den vorliegenden Hardware anbietet, ist es ein Satz an vorgefertigten Funktionswerten, die eine Sinusperiode beschreiben, im RAM-Speicher des
Processing System (siehe Abb. 12) abzulegen und diese dann mit DMA zyklisch an
den ad9122 zu liefern. In experimenteller Praxis zeigt dieser Ansatz tatsächlich recht
stabile Ergebnisse und liefert daher in diesem Rahmen eine brauchbare Methode.
Allerdings muss noch geklärt werden, wie der erwähnte Satz an Funktionswerten hinsichtlich seiner Parameter gewählt werden sollte. Die Frage stellt sich also;
Wie viele Punkte müssen eine Periode beschreiben, um eine gewünschte Frequenz zu
erhalten?
Dies hängt von der Abtastfrequenz des ad9122 Digital-to-Analog Converter (DAC)
auf der Senderseite ab. Die Frequenz Fa des ausgehenden Signals lässt sich durch eine
einfache Formel beschreiben; Fa = SpR
Hz. Wobei Spr die Abtastrate des DAC’s ist und
P
P die Anzahl der Punkte, die genau eine Periode beschreiben.
Die Abtastfrequenz von DAC und ADC werden identisch eingestellt, und zwar
FDAC/ADC = 245 760 000 Sps. Durch die Versorgung durch eine einzige Taktquelle ist die
Synchronität beider Komponente sichergestellt. Mit Hilfe von MATLAB werden Funktionswerte, die genau eine Sinusperiode für I und eine Kosinusperiode für Q beschreiben,
erzeugt und direkt in einem C Programm für das Processing System mit in den RAM
geladen. Durch die Anwesenheit der Funktionswerte direkt im Arbeitsspeicher der CPU
ist die schnelle Abänderung der gleichen mit geringem Aufwand verbunden, dies lässt
einen gewissen Freiraum für Experimente. Die Anzahl P der Funktionswerte, welche
die erwähnte Sinusperiode bzw. Kosinusperiode beschreibt, wird auf P = 80 festgelegt.
Im Laufe der Entwicklung sind auch testweise P = 160, 240 aber auch P = 40 usw.
ausprobiert worden, allerdings erwies sich P = 80 als mehr oder weniger „optimal“. Die
zunehmende Abnahme der Punkteanzahl führt zu hohen Basisfrequenzen, was wiederrum die Qualität des zu sendenden Signals deutlich herabsetzt und die Phasenmessung
letztendlich beeinträchtig. Der Anstieg der Anzahl andererseits führt zu sehr niedrigen
Frequenzen, dies hat den Nachteil, dass die Reaktionszeit während der Messung stark
22
abnimmt und dadurch schnelle Abstandsänderungen nicht erfasst werden. Die Anzahl
der Punkte ist P = 80 und die Abtastrate A = 245 760 000 Sps, somit ist die Frequenz
des Basissignals nach der Formel
Fa = PA = 245760000
= 3 072 000 Hz.
80
Damit ist auch die Anzahl der anfallenden Werte, die analysiert werden müssen, pro
Sekunde 3 072 000. Diese Werte werden per DMA (sieh Abb. 12) in den Arbeitsspeicher
des Processing Systems geladen und sodann durch die CPU analysiert, dabei werden
aus den Werten zunächst der Phasenwinkel und anschließend die Entfernung aus der
Wellenlänge errechnet. Die Wellenlänge ist dabei von der Trägerfrequenz abhängig, welche
in unserem Fall eine Größe von 2.4 GHz darstellt. Die Wellenlänge λ lässt sich durch die
einfache Formel errechnen:
λ = Fc , wobei c die Lichtgeschwindigkeit und Ft die Trägerfrequenz. Mit konkreten
t
Werten in unserem Experiment: λ = 30000000000cm/s
= 12,5 cm/P. Bei dieser Rechnug ist
2400000000P/s
die Frequenz statt der üblichen Einheit Hertz in P/s (Perioden pro Sekunde) angegeben.
Damit ergibt sich eine Wellenlänge λ von 12,5 cm pro Periode.
Die Berechnug des Phasenwinkels bzw. der Entfernung durch die CPU ist einerseits
sehr flexibel, da sie eine schnelle Implementierung von komplexen Algorithmen zulässt.
Andererseits entsteht ein Problem in Verbindung mit der sequentiellen Arbeitsweise einer
CPU und dem begrenzten Arbeitsspeicher. Das empfangene Signal wird durch den ADC
digitalisiert und die Werte werden in den RAM mit DMA geladen, erst wenn dieser Prozess
vollendet ist, beginnt die CPU den Speicherinhalt von vorne nach hinten abzuarbeiten.
In der Zeit, wo die Verarbeitung durch die CPU stattfindet, kann das empfangene Signal
nicht angehalten werden oder gespeichert werden, dadurch gehen Informationen verloren.
Die CPU ist deshalb gezwungen das empfangene Signal fensterweise abzuarbeiten und
kann daher die Kontinuität des Signals nicht aufrechterhalten, es kommt zum Signalabriss.
Die Diskontinuität in der Verarbeitung führt zu foldendem Problem:
4.1.2 Der Phasensprung
Die CPU beginnt die Abarbeitung mit dem ersten Wert im Speicher, dies ist auch der
Anfang des Fensters (siehe Abb. 13). Da der ADC mit einer Abtastrate von 245 760
000 Sps operiert, entstehen 80 Werte pro Periode. Aus diesem Grund muss die CPU
immer nur den 80. Punkt auswerten, um die Periode zu treffen. Aufgrund der absoluten
Synchronität aller Komponente auf einem ZynqBoard, entsteht innerhalb eines Fensters die gewünschte Gerade. Im nächsten empfangenen Fenster ist die Phase allerdings
verschoben (Das Zeitfenster zwischen den Empfangsphasen ist die Auswertungsphase).
Dieser Missstand lässt sich auch ohne weiteres nicht korrigieren. Man müsste in der Lage
sein die Zeitfenster beliebig in der Zeitachse verschieben zu können, dann könnte man
diese so ausrichten, dass alle Empfangsfenster Phasengleich sind. Doch diese Möglichkeit
ist nicht gegeben. Desweiteren ist die Dauer der Auswertungszeit individuell von der
23
jeweiligen CPU abhängig und die Verwendung einer anderen CPU würde eine andere
Dauer aufweisen.
Der Phasensprung lässt sich jedoch trotzdem relativ einfach vermeiden, dazu muss
lediglich die Filterung des 80. Wertes in den FPGA auslagert werden. D.h.
anstatt alle Werte, welche den Signalverlauf beschreiben, in den Arbeitsspeicher zu schreiben, wird jeweils nur der 80. Wert zum DMAC weitergeleitet, sodass letztendlich die
CPU alle Werte auswerten darf und nicht nur den 80., dafür sind es auch 80-mal weniger
Werte im Speicher. Durch die Auslagerung kommt es zu keinem Signalabriss, denn das
FPGA arbeitet synchron mit dem ADC zusammen, alle empfangenen Werte werden in
Echtzeit ausgewertet.
Aufnahmesphase
Auswertungsphase
Aufnahmesphase
80
1
2
3
t in µs
Abbildung 13: Phasensprung zwischen zwei Aufnahmefenstern
4.1.3 Anpassung des Referenzdesigns zur Vermeidung des Phasensprungs
Die Abb. 14 zeigt das mit dem Filter ergänzte Referenzdesign (zum vgl. siehe Abb. 12).
Die Auslagerung der Filterung in die programmierbare Logik bringt den Vorteil, dass
die Auswertung des Signals kontinuirlich verläuft, anstatt fensterweise, wie es bei einer
CPU der Fall ist. Der Filter hat im einfachsten Fall lediglich die Aufgabe im bestimmten
Intervall die empfangenen Werte weiterzuleiten, alle anderen Werte werden unterdrückt.
Das Intervall kann durch eine programmierbare Schnittstelle seitens der CPU eingestellt
werden, in diesem Fall ist es 80. Der Filter zählt die ihm übergebenen Werte ab und
leitet den 80. Wert durch. Ist die Frequenz des Basissignal genau 3 072 000 Hz entsteht
die gewünschte Gerade über den gesammten Zeitraum, solange der Sender das Signal
sendet, ohne Abrisse und Sprünge. Nun kann sich die Phase nur in dem Fall ändern,
wenn der Abstand zwischen Sender und Empfänger sich ändert, sonst nicht. Die Berechnung der eigentlichen Entfernung kann dabei weiterhin von der CPU übernommen werden.
Der Code für den Filter ist denkbar einfach, dennoch soll er vollständigkeitshalber hier
aufgeführt werden. Listing 1 zeigt den VHDL-Code des Filters. VHDL (Very High Speed
Integrated Circuit Hardware Description Language) ist eine speziell für die Beschreibung
von Hardware entwickelte Sprache.
24
Abbildung 14: Referenzdesign mit Filter
4.1.4 VHDL-Code des Filters
Listing 1: Filter (VHDL)
library
us e i e e e
us e i e e e
us e i e e e
us e i e e e
ieee ;
. std_logic_1164 . a l l ;
. std_logic_unsigned . a l l ;
. std_logic_arith . a l l ;
. numeric_std . a l l ;
entity f i l t e r is
Port (
adc_data_in : i n STD_LOGIC_VECTOR (3 1 downto 0 ) ;
data_wr : i n STD_LOGIC;
adc_clk : i n STD_LOGIC;
25
c n t _ i n t e r v a l l : i n STD_LOGIC_VECTOR ( 15 downto 0 ) ;
data_rd : out STD_LOGIC;
data_out : out STD_LOGIC_VECTOR (3 1 downto 0 )
);
end f i l t e r ;
architecture Behavioral of f i l t e r i s
s i g n a l cn t : STD_LOGIC_VECTOR ( 15 downto 0 ) := " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 " ;
s i g n a l i n t e r v a l l : STD_LOGIC_VECTOR ( 15 downto 0 ) := " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 " ;
begin
a : process ( clk_inter )
begin
i f ( r i s i n g _ e d g e ( adc_clk ) ) then
data_rd <= ’ 0 ’ ;
i f ( data_wr = ’ 1 ’ ) then
c nt <= c nt + ’ 1 ’ ;
end i f ;
i f ( cn t ( 1 1 downto 0 ) = i n t e r v a l l ( 1 1 downto 0 ) ) then
data_out ( 31 downto 0 ) <= adc_data_in ( 3 1 downto 0 ) ;
data_rd <= ’ 1 ’ ;
c nt <= " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 " ;
end i f ;
end i f ;
end p r o c e s s ;
26
i n t e r v a l l ( 1 5 downto 0 ) <= c n t _ i n t e r v a l l ( 1 5 downto 0 ) when
c n t _ i n t e r v a l l ( 1 5 downto 14 ) = " 0 1 " ;
end B e h a v i o r a l ;
Ende des Listings
Der Filter besitzt vier Eingänge und zwei Ausgänge. Der Eingang Namens cnt intervall
erlaubt die softwareseitige Einstellung des Abstandes in welchem die Daten weitergeleitet
werden dürfen. Das eingehende Signal data wr signalisiert dem Filter, dass ein gültiges
Datum auf der Datenleitung adc data in anliegt und somit der Zähler cnt um eins
inkrementiert werden muss. Ist die Gleichheit des cnt-Registers mit dem vorgegebenem
intervall erreicht, wird ein Datum an den Ausgangregister data out angelegt und über das
Signal data rd seinerseits signalisiert, dass ein Datum gelesen werden kann. Der Zähler
cnt wird resetet.
Der Filter ist in diesem Ansatz recht einfach gehalten, in weiterer Entwicklung kann
aber auch die komplette Berechnung der Phase und anschließend die Entfernung implementiert werden. In diesem prototypischen Ansatz ist nur das wesentlichste in den FPGA
ausgelagert worden zur Vermeidung des Phasensprungs.
27
4.2 Synchronisation zweier ZynqBoards
Die Synchronisation zweier ZynqBoards kann auf zwei Wegen erfolgen; Die Synchronisation der Fmcomms1-Radio Module oder die Synchronisation der ZynqBoards selbst.
Das Fmcomms1-Radio Modul bietet einen Eingang zur Einspeisung eines externen
Taktes (siehe Abb. 9, Eingang: slave clock in), welcher als Referenztakt für den ClockDistributor verwendet werden kann. Somit lassen sich mehrere Radiomodule durch einen
unabhängigen Taktgeber synchronisieren. Desweiteren hat das Radiomodul einen Master
Clock Out, damit kann man zwei Radiomodule ohne einen dritten Taktgeber synchronisieren. In dieser Konfiguration agiert ein Modul als Master, das zweite als Slave.
Der zweite Weg zur Synchronisation von mehreren ZynqBoard-Systemen ist die Einspeisung des synchronisierenden Taktes direkt durch die verfügbaren Pmod - Schnittstellen.
Im Rahmen dieser Arbeit ist die Entscheidung für diese Lösung gefallen, da sie sich als
lehrreicher erwiesen hat.
4.2.1 Pmod - Schnittstelle
Die Pmod - Schittstelle (abk. Peripheral Module, siehe Abb. 10) ist ein in Digilent
PmodTM Interface Specification definierter Schnittstllenstandart. Sie erlaubt eine einfache Verbindung von mehreren FPGA Modulen. Jede Schnittstelle bietet sechs Pins, doch
in unserem Fall wird nur ein Pin zur Takteinspeisung benötigt. In diesem Zusammenhang
ist es wichtig zu erwähnen, dass nicht alle Leitungen für hohe Frequenzen geeignet sind.
Für solche Zwecke gibt es ausgezeichnete Leitungen. Eine Pmod Leitung muss demnach
mit bestimmten Ein- bzw. Ausgängen auf den entsprechenden FPGA Input-Output
Bänken liegen, welche hohe Frequenzen erlauben.
4.2.2 Externer Referenztakt
Die Abb. 15 zeigt das schon bekannte Design mit geänderter Taktversorgung. Im
Referenzdesign versorgt eine System Clock im Processing System alle beteiligten Komponente. Im modifizierten Design ist die System Clock abgekoppelt und ein externer
Referenztakt über die Pmod Schnittstelle von außen eingespeist. Dieser Takt ist an alle
Komponente angeschlossen, sowohl an die auf dem Radiomodul, als auch an die, die
im FPGA sitzen. Somit operieren alle Komponente synchron. In dieser Konfiguration
können nun zwei ZynqBoards, ausgestattet mit dem selben Design, mit einer externen
Taktquelle verbunden werden, was eine synchrone Arbeit beider Geräte garantiert.
28
Bei der Auswahl des externen Referenztaktes muss strikt auf die Einhaltung des erlaubten Frequenzbereichs, als auch auf die Pegel geachtet werden, andernfalls akzeptiert die
PLL die Referenzfrequenz nicht. In diesem Fall MUSS die Frequenz 30 MHz betragen,
geringe Abweichungen von nicht mehr als 0.15% sind allerdings zulässig. Der Pegel der
FPGA BANK 13 ist auf 3.3 V ausgelegt. Für die optische Überprüfung, ob die Frequenz
von der PLL akzeptiert wird oder nicht, ist das Signal locked eingeführt worden, welches
direkt auf eine Leuchtdiode gelegt ist. Die sechste Leuchtdiode auf dem ZedBoard leuchtet
rot auf, sobald die korrekte Referenzfrequenz am Pin JA4 anliegt.
Zur Überprüfung ob der Clock Generator und der Clock Distributor auf dem Radiomodul gelocked sind, muss per Software über die SPI - Schnittstelle auf entsprechende
Statusregister zugegriffen werden.
Abbildung 15: Externer Referenztakt
29
4.3 Ergebnisse der Messung
Zur Abschätzung der Messgenauigkeit sind 5000 Einzelmessungen für jede Frequenz
aufgezeichnet worden. Dabei ist die absolute Entfernung der Antennen zu einander bei
allen Messungen gleich (ca. 3m). Jede Messung hat eine durch die Hardware bedingte
Abweichung und zusätzlich eine durch die Kanalstörung bedingte Abweichung, welche
sich überlagern und somit eine Ungenauigkeit entstehen lassen, die in der Abb. 16 widergegeben ist. Die Kanalstörung hat bei diesem Aufbau einen weit geringeren Anteil,
als die der Hardware. Diese Schlussfolgerung lässt sich aus dem Vergleich zwischen dem
roten Grafen und dem schwarzen Grafen ziehen. Der schwarze Graf repräsentiert die
Messung auf einem Gerät, was die Synchronisation entfallen lässt. Der rote Graf stellt die
Messung auf zwei Geräten mit Synchronisation dar. Bei der Suche nach der Quelle der
zusätzlichen Ungenauigkeit auf zwei Geräten, konnte der Jitter (dt. Phasenunruh) als
Fehlerquelle fixiert werden. Der Jitter entsteht dadurch, dass der Referenztakt nicht direkt
als Arbeitstakt genutzt wird, sondern als Regelspannung für einen spannungsgesteuerten
Oszillator. Dadurch kann keine absolute Synchronisation erreicht werden, da ständig
nachgeregelt wird. Als Folge springt der Zeiger um einem Mittelwert hin und her, was zu
einem deutlichen Verlust der Genauigkeit führt.
1
2.4 GHz
1.2 GHZ
0.6 GHz
2.4 GHz ein Geraet
0.9
0.8
Verteilung in %
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
50
100
150
200
250
300
Winkel in [°Grad]
Abbildung 16: Phasenmessungen in Abhängigkeit von der Frequenz
Das Diagramm in Abbildung 16 zeigt deutlich die Unstabilität beim Versuch einen
bestimmten Winkelgrad (hier ca. 150◦ ) über 5000 Messungen zu halten. Der Jitter,
welcher durch die ungenügende Synchronität entsteht, verursacht eine von der Frequenz
abhängige Streueung, welche eine hohe Messpräzision praktisch unmöglich macht.
30
100
90
80
Praezision in %
70
60
50
40
30
20
2.4 GHz
1.2 GHZ
0.6 GHz
2.4 GHz ein Geraet
10
0
0
10
20
30
Genauigkeit in [mm]
40
50
60
Abbildung 17: Darstellung in Abhängigkeit von der Wellenlänge
Die Abbildung 17 zeigt die Messgenauigkeit in Prozent. Die Winkelgrade sind entsprechend der jeweiligen Wellenlängen in die Einheit Millimeter umgerechnet. Alle Messungen
zeigten eine Abweichung, die unterhalb der 40 mm Grenze liegt, somit ist eine 40 mm
- Schrittweite bei der Messung garantiert. In einer Genauigkeit innerhalb der 10 mm
Marke lagen ca. 60% aller Messungen. Bemerkenswert ist auch die erwartungsgemäße
Frequenzunabhängigkeit.
31
5 Zusammenfassung
Die Ergebnisse der Messungen bestätigen die generelle Eignung der Phasenmessung
zur Bestimmung der relativen Entfernung zweier mobiler Funkstationen. Die hohe Genauigkeit, die der theoretische Ansatz bietet, verliert sich jedoch schnell unter realen
Bedingungen. Der Hauptgrund für den Verlust der Genauigkeit ist die unzureichende
Synchronität der operierenden Hardwarekomponenten. Soll dieses Verfahren zur Bestimmung der Entfernung herangezogen werden, muss zunächst unbedingt das Problem der
Synchronisation gelöst werden. In dieser Arbeit ist die Synchronisation der Hardwarekomponenten durch einen globalen Taktgeber realisiert. Unter realen Bedinungen ist eine
solche Abhängigkeit von globalen Takten allerdings höchst unerwünscht.
Eine weiterer unerwünschter Effekt, welcher allerdings generell mit Funkübertragung in
Verbindung steht, ist der Fresnel-Effekt. Die aus dem Effekt resultierende Dämpfung
beeinträchtigt das Signal in einigen Positionen bis hin zur absoluten Unbrauchbarkeit der
Messung. Zur Abminderung der Dämpfung können allerdings Richtantennen eingesetzt
werden.
Eine positive Eigentschaft bei diesem Verfahren ist die erwartete und mit dem Ergebnis
bestätigte Frequenzunabhängigkeit, welche ein breites Anwendungsspektrum für viele
Funkstandards bietet.
Die Zynq Software-Defined Radio Architektur hat sich in vielen experimentellen Anordnungen, während der Erarbeitung der Lösung der Aufgabe, als äußerst flexibel erwiesen.
Relative Entfernugsmessungen sind in SDR-Anordnungen ohne allzu große Verluste in
der Messgenauigkeit durchaus realisierbar.
32
Literaturverzeichnis
[1] F i s c h e r, Erik: Simulation und Realisierung eines auf differentiellen Laufzeiten
basierenden Systems zur Positionsbestimmung und Anpassung an diverse Netzwerkstandards. (2006), S. 14
[2] H o s k i n g, Rodger H.: Software Defined Radio Handbook. 9 (2012), S. 3–12
[3] L o u i s e H . C ro c k e t t, Martin A. Enderwitz Robert W. S. Ross A. Elliot E.
Ross A. Elliot: The Zynq Book Tutorials. Bd. 1.2. Strathclyde Glasgow, 2014. –
7–100 S.
[4] X i l i n x: 7 Series FPGAs Configurable Logic Block. 1.7 (2014), S. 15–45. – User
Guide
[5] N ü h r m a n n, Dieter: Das große Werkbuch Elektronik. Bd. 4. Franzis Verlag, 1998.
– 3455–3470 S. – Werkbuch
[6] Analog Devices: Dual Analog-to-Digital Converter (ADC). Rev. E (2011-2014), S.
23–30. – AD9643 - Data Sheet
[7] Analog Devices: TxDAC+ Digital-to-Analog Converter (DAC). Rev. B (2009-2011),
S. 19–49. – AD9122 - Data Sheet
[8] Analog Devices: Wideband Synthesizer with Integrated VCO. Rev. 0 (2012), S. 2. –
ADF4351 - Data Sheet
[9] Analog Devices: Clock Generator. Rev. G (2009-2014), S. 22–44. – AD9548 - Data
Sheet
[10] Analog Devices: Clock Distribution. Rev. C (2010-2013), S. 20–45. – AD9523-1 Data Sheet
[11] Analog Devices: Fmcomms1 Schematic. Rev. C (2013), S. 1–13. – Schematic
[12] Digilent: ZedBoard Schematic. Rev. C (2013), S. 9. – Schematic
[13] Quadtrature (I-Q) Modulation Tutorial. http://www.fourier-series.com/IQMod/.
– Interaktive Simulationsprogramme
[14] Quadrature Amplitude Modulation (QAM). http://www.ni.com/white-paper/
3896/en/. – Einführung in die QAM
[15] AD-FMCOMMS1-EBZ User Guide. http://wiki.analog.com/resources/eval/
user-guides/ad-fmcomms1-ebz. – Quelle für das Referenzdesign und die Software
33
Selbständigkeitserklärung
Ich erkläre hiermit, dass ich die vorliegende Arbeit selbständig verfasst und noch nicht
für andere Prüfungen eingereicht habe. Sämtliche Quellen einschließlich Internetquellen,
die unverändert oder abgewandelt wiedergegeben werden, insbesondere Quellen für Texte,
Grafiken, Tabellen und Bilder, sind als solche kenntlich gemacht. Mir ist bekannt, dass
bei Verstößen gegen diese Grundsätze ein Verfahren wegen Täuschungsversuchs bzw.
Täuschung eingeleitet wird.
Berlin, den 31. März 2015
34

Documentos relacionados