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