Skip to content

Commit

Permalink
Final-Final version for printing
Browse files Browse the repository at this point in the history
  • Loading branch information
StefanD986 committed Jul 4, 2016
1 parent 1911339 commit 7e20cd1
Show file tree
Hide file tree
Showing 35 changed files with 172 additions and 153 deletions.
2 changes: 1 addition & 1 deletion 0_Bezeichnungen.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Es wurde versucht in dieser Arbeit durchgehend die selben Symbole für Signale mit der selben Bedeutung zu nehmen. Die selben Symbole wurden auch in den Blockschaltbildern verwendet.
Es wurde versucht in dieser Arbeit für Signale mit der selben Bedeutung im Text und in den Blockschaltbildern durchgehend die selben Symbole zu nehmen.

Einige generelle Konventionen denen in dieser Arbeit gefolgt wird:
\begin{itemize}
Expand Down
18 changes: 9 additions & 9 deletions 0_Glossar.tex
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@

\newglossaryentry{CA}{%
name={C/A},
description={Ein Code dessen Codewörter die Eigenschaft haben Orthogonal zueinander zu sein (d.h. geringe Kreuzkorrelation der Codewörter). Der C/A Code verwendet sogenannte \emph{Gold Folgen} die durch \gls{LFSR} erzeugt werden. C/A steht hierbei für \emph{Coarse/Acquisition}. Der C/A Code wird zur Spreizung des zivil nutzbaren GPS Signals benutzt \cite{specification2010gps}.}
description={Ein Code dessen Codewörter die Eigenschaft haben Orthogonal zueinander zu sein (d.h. geringe Kreuzkorrelation der Codewörter). Der C/A Code verwendet sogenannte \emph{Gold Folgen} die durch \gls{LFSR} erzeugt werden. C/A steht hierbei für \emph{Coarse/Acquisition}. Der C/A Code wird zur Spreizung des zivil nutzbaren GPS Signals benutzt \cite{specification2010gps}}
}

\newglossaryentry{PY}{%
Expand Down Expand Up @@ -140,33 +140,33 @@
\newacronym{TCXO}{TCXO}{\gls{l_TCXO}}
\newglossaryentry{l_TCXO}{%
name={Temperature Controlled Oscillator},
description={Ein Quarzoszillator, der zur verbesserten Frequenzstabilität temperaturkompensiert ist.}
description={Ein Quarzoszillator, der zur verbesserten Frequenzstabilität temperaturkompensiert ist}
}

\newacronym{PGA}{PGA}{Programmable Gain Amplifier}

%\newacronym{zword}{Z-Word}{\gls{l_zword}}
\newglossaryentry{zword}{%
name={Z-Word},
description={Anzahl der Sekunden seit dem \emph{zero-time point}. Der \emph{zero-time point} ist der Zeitpunkt um Mitternacht vom 5. Januar 1980 auf den 6. Januar 1980.}
description={Anzahl der Sekunden seit dem \emph{zero-time point}. Der \emph{zero-time point} ist der Zeitpunkt um Mitternacht vom 5. Januar 1980 auf den 6. Januar 1980}
}

\newacronym{TOW}{TOW}{\gls{l_TOW}}
\newglossaryentry{l_TOW}{%
name={Time-of-Week},
description={Die Time of Week gibt die Anzahl der Sekunden seit dem letzten Sonntag an. Verkürzte Version des \gls{zword}.}
description={Die Time of Week gibt die Anzahl der Sekunden seit dem letzten Sonntag an. Verkürzte Version des \gls{zword}}
}

\newacronym{HOW}{HOW}{\gls{l_HOW}}
\newglossaryentry{l_HOW}{%
name={Hand-over-Word},
description={Teil der vom GPS \gls{SV} gesendendeten NAV Daten. Der im HOW übertragene Wert gibt die \gls{TOW} zum Zeitpunkt des Beginn des nächsten Subframe an. HOW ist eine verkürzte Version von \gls{TOW}, da ein Subframe \SI{6}{\second} dauert.}
description={Teil der vom GPS \gls{SV} gesendendeten NAV Daten. Der im HOW übertragene Wert gibt die \gls{TOW} zum Zeitpunkt des Beginn des nächsten Subframe an. HOW ist eine verkürzte Version von \gls{TOW}, da ein Subframe \SI{6}{\second} dauert}
}

\newacronym{DMA}{DMA}{\gls{l_DMA}}
\newglossaryentry{l_DMA}{%
name={Direct Memory Access},
description={Technik bei der Daten zwischen Geräten, die an den gemeinsam genutzten Daten- und Adressbus angeschlossen sind, ohne Mitwirken des Prozessors ausgetauscht werden können.}
description={Technik bei der Daten zwischen Geräten, die an den gemeinsam genutzten Daten- und Adressbus angeschlossen sind, ohne Mitwirken des Prozessors ausgetauscht werden können}
}

\newacronym{AMC}{AMC}{Asynchronous Memory Controller}
Expand All @@ -176,13 +176,13 @@
\newacronym{FSM}{FSM}{\gls{l_FSM}}
\newglossaryentry{l_FSM}{%
name={Finite State Machine},
description={Endlicher Zustandsautomat.}
description={Endlicher Zustandsautomat}
}

\newacronym{FCW}{FCW}{\gls{l_FCW}}
\newglossaryentry{l_FCW}{%
name={Frequency Control Word},
description={Steuerwort, dass die Ausgangsfrequenz eines \gls{NCO} bestimmt. Dabei ist das Steuerwort nicht notwendigerweise \emph{gleich} der Ausgangsfrequenz, sondern lediglich proportional dazu.}
description={Steuerwort, dass die Ausgangsfrequenz eines \gls{NCO} bestimmt. Dabei ist das Steuerwort nicht notwendigerweise \emph{gleich} der Ausgangsfrequenz, sondern lediglich proportional dazu}
}

\newacronym{LUT}{LUT}{Look-Up-Table}
Expand All @@ -191,7 +191,7 @@

\newglossaryentry{Primitive}{%
name={Primitive},
description={Herstellerspezifisches Hardware Element in einem FPGA oder ASIC das eine spezielle Funktion bereitstellt. Beispiele sind PLL, Hardwaremultiplizierer, aber auch Flip Flops und Logik Gatter.}
description={Herstellerspezifisches Hardware Element in einem FPGA oder ASIC das eine spezielle Funktion bereitstellt. Beispiele sind PLL, Hardwaremultiplizierer, aber auch Flip Flops und Logik Gatter}
}

\newacronym{ELF}{ELF}{Executable and Linking Format}
Expand Down
3 changes: 3 additions & 0 deletions 0_hyphenation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@
Ac-qui-si-tion
Track-ing-loop
seg-ment-wei-se
Lo-kal-os-zil-la-tor
Re-chen-kno-ten
Sys-tem-ab-sturz
}
8 changes: 4 additions & 4 deletions 0_shortcuts.tex
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
\newcommand{\gpsfbit}{f_{bit}} % Informationsrate
\newcommand{\gpsLcode}{L} % Codelänge
\newcommand{\gpsfsamp}{f_S} % Frontend samplingrate
\newcommand{\gpsfcw}{\emph{FCW }}
\newcommand{\gpsfcw}{\emph{FCW}\xspace}

\newcommand{\ifft}[1]{\mathcal{F}^{-1}\left\{#1\right\}} % FFT{}
\newcommand{\fft}[1]{\mathcal{F}\left\{#1\right\}} % inverse FFT{}

\DeclareMathOperator*{\argmax}{arg\,max} % argmax

\newcommand{\comboard}{\emph{COM Board }}
\newcommand{\comfpga}{\emph{XCS6LX9} }
\newcommand{\dscubesat}{\emph{Dragsail-Cubesat} }
\newcommand{\comboard}{\emph{COM Board}\xspace}
\newcommand{\comfpga}{\emph{XCS6LX9}\xspace}
\newcommand{\dscubesat}{\emph{Dragsail-Cubesat}\xspace}
4 changes: 2 additions & 2 deletions 1_Einleitung/0_Einleitung_main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ \chapter{Einleitung}

Der Hardware-Teil des GPS Empfängers wurde bereits in vergangen Arbeiten entwickelt. Die Entwicklung des Software-Teils und die Integration auf das COM Board des \dscubesat standen jedoch noch aus. Die Software des GPS Empfängers teilt sich auf den FPGA und den DSP des COM Board auf. Im DSP werden vor allem weniger zeitkritische, aber speicher- und rechenintensive Teile implementiert. Im FPGA werden zeitkritische, gut parallelisierbare Teile implementiert. In der programmierbaren Hardware des FPGA wurde außerdem ein Softcore Prozessor integriert, der Aufgaben erledigt, deren Implementierung in reiner programmierbarer Hardware sehr umständlich wäre.

Die Arbeit gliedert sich in drei Teile. Nach einer kurzen Beschreibung zur Motivation des Projekts und einem Blick auf ähnliche Projekte werden im ersten Teil einige Grundlagen zum GPS Signal und GPS Empfängern besprochen. Ein wichtiger Parameter bei der Demodulation ist die Dopplerverschiebung des Signals, der durch die hohe Geschwindigkeit des \dscubesat im Orbit noch verstärkt wird. Deshalb wird eine Formel hergeleitet, mit der sich näherungsweise die maximale Dopplerverschiebung berechnen lässt. Ein weiterer Abschnitt gibt eine Übersicht über die für diese Arbeit relevanten Teile des COM Subsystem auf dem der GPS Empfänger implementiert wird.
Die Arbeit gliedert sich in drei Teile. Nach einer kurzen Beschreibung zur Motivation des Projekts und einem Blick auf ähnliche Projekte werden im ersten Teil einige Grundlagen zu GPS Signal und GPS Empfängern besprochen. Ein wichtiger Parameter bei der Demodulation ist die Dopplerverschiebung des Signals, der durch die hohe Geschwindigkeit des \dscubesat im Orbit noch verstärkt wird. Deshalb wird eine Formel hergeleitet, mit der sich näherungsweise die maximale Dopplerverschiebung berechnen lässt. Ein weiterer Abschnitt gibt eine Übersicht über die für diese Arbeit relevanten Teile des COM Subsystems, auf dem der GPS Empfänger implementiert wird.

Im zweiten Teil wird zuerst der Entwurf des Empfängers besprochen. Danach werden die Teile des Entwurfs besprochen, die bisher realisiert wurden. Abschließend werden einige Versuchsergebnisse präsentiert.
Im zweiten Teil wird zuerst der Entwurf des Empfängers besprochen. Danach werden die Teile des Entwurfs besprochen, die bisher realisiert wurden. Abschließend werden relevante Versuchsergebnisse präsentiert.

Ein wichtiger Teil der Entwurfsphase für die Software war die Umsetzung der Berechnungen in Festkomma Arithmetik. Im Appendix wird deshalb eine Einführung zu der hier verwendeten Notation und dem Festkommaentwurf gegeben.

Expand Down
6 changes: 3 additions & 3 deletions 1_Einleitung/30_Motivation.tex
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
\section{Motivation}
Der \dscubesat ist ein kleiner \gls{LEO} Satellit, der im Rahmen mehrerer Abschlussarbeiten an der FH Aachen und der RWTH Aachen entstanden ist\footnote{Einige der vorangegangenen Arbeiten zum Kommunikations-Subsystem sind z.B. \cite{DragsailKaiMA}, \cite{DragsailRalfMA}, \cite{DragsailAndrejMA},
Der \dscubesat ist ein etwa \SI{10x10x30}{cm} großer \gls{LEO} Satellit, der im Rahmen mehrerer Abschlussarbeiten an der FH Aachen und der RWTH Aachen entstanden ist\footnote{Einige der vorangegangenen Arbeiten zum Kommunikations-Subsystem sind z.B. \cite{DragsailKaiMA}, \cite{DragsailRalfMA}, \cite{DragsailAndrejMA},
\cite{DragsailUweMAGroundDataHandling}, \cite{DragsailVolkerMACommstandard}, \cite{DragsailGeorgMAGroundSDR}, \cite{DragsailNeelamMAGroundDSP} und weitere.}.

Um \enquote{Weltraumschrott} zu vermeiden ist das Ziel, dass Cubesats nicht länger als 25 Jahre im Orbit verbleiben sollten. Die Verweildauer wird unter anderem durch die Höhe des Orbits festgelegt in dem die Satelliten ausgesetzt werden. Die Orbithöhe in der ein Satellit von der Größe eines Cubesat maximal 25 Jahre bleibt wird von der NASA als etwa \SI{600}{\kilo\meter} angegeben \cite{NASAOrbitalDebris}.

Cubesats werden üblicherweise als Beiladung beim Start kommerzieller Satelliten in den Weltraum geschickt. Daher ist der Orbit nicht beliebig frei wählbar, sondern hängt davon wo der kommerzielle Satellit ausgesetzt werden soll.
Cubesats werden üblicherweise als Beiladung beim Start kommerzieller Satelliten in den Weltraum geschickt. Daher ist der Orbit nicht beliebig frei wählbar, sondern hängt davon ab wo der kommerzielle Satellit ausgesetzt werden soll.

Deshalb ist eines der Experimente an Board des Satelliten das Entfalten eines Segels am Ende der Lebenszeit des Satelliten um den Wiedereintritt zu beschleunigen und so die Verweildauer auch bei höheren Orbits zu begrenzen. Für das Experiment sind die Orbitdaten, bzw. die Änderung der Orbitdaten durch das Entfalten des Segels von Interesse. Die Orbitdaten werde durch Organisationen wie NORAD veröffentlicht. Die Genauigkeit dieser Orbitdaten für kleine Satelliten wurde in anderen Arbeiten untersucht, beispielsweise in \cite{TLEAccuracyKahr} oder \cite{TLEAccuracyDoyle}. Bedingt durch die geringe Größe ist sind diese Daten nicht immer sehr genau und weichen je nach Parameter um bis zu \SI{1.29}{\percent} oder \SI{370}{\percent} ab \cite{TLEAccuracyDoyle}.
Deshalb ist eines der Experimente an Board des Satelliten das Entfalten eines Segels am Ende der Lebenszeit des Satelliten um den Wiedereintritt zu beschleunigen und so die Verweildauer auch bei höheren Orbits zu begrenzen. Für das Experiment sind die Orbitdaten, bzw. die Änderung der Orbitdaten durch das Entfalten des Segels von Interesse. Die Orbitdaten werde durch Organisationen wie NORAD veröffentlicht. Die Genauigkeit dieser Orbitdaten für kleine Satelliten wurde in anderen Arbeiten untersucht, beispielsweise in \cite{TLEAccuracyKahr} oder \cite{TLEAccuracyDoyle}. Bedingt durch die geringe Größe sind diese Daten nicht immer sehr genau und weichen je nach Parameter um bis zu \SI{1.29}{\percent} oder \SI{370}{\percent} ab \cite{TLEAccuracyDoyle}.

Da GPS Signale auch von \gls{LEO} Satelliten empfangen werden können, bietet es sich an, dass der Satellit selbst seine Position und damit seinen Orbit berechnet. Aufgrund von Waffenexportbeschränkungen funktionieren jedoch die wenigsten GPS Empfänger Chips im Weltraum. Für den \dscubesat musste deshalb ein alternativer Weg gegangen werden. Die Rechenleistung auf heutigen Embedded Systems wie dem COM Board des \dscubesat reicht aus, um GPS Empfänger vollständig in Software zu implementieren. Der benötigte Hardware Teil beschränkt sich damit auf ein HF Frontend, was ein digitalisiertes Basisband Signal liefert.

Expand Down
2 changes: 1 addition & 1 deletion 1_Einleitung/60_Abgrenzung.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ \section{Ähnliche Arbeiten}

Eine weitere interessante Arbeit ist \cite{Birklykke2010}, die das Ergebnis eines mehrsemestrigen Projekts ist, welches sich speziell mit der Implementierung eines GPS Empfängers für kleine \gls{LEO} Satelliten beschäftigt hat. Der Quellcode des in der Arbeit entwickelten GPS Empfängers ist leider nicht verfügbar.

Es gibt auch mehrere kommerzielle Software Defined GPS Receiver, von denen das SwiftNav Piksi \cite{SwiftNavPiksi} dadurch hervorsteht, dass ein großer Teil der Software unter GPL Lizenz frei verfügbar ist. Ein elementarer Bestandteil, die FPGA Firmware ist allerdings nicht veröffentlicht. Für zukünftige Weiterentwicklung der hier vorgestellten Arbeit sollte jedoch untersucht werden ob die Open Source Teile des SwiftNav Piksi Projekts hilfreich sein können.
Es gibt auch mehrere kommerzielle Software Defined GPS Receiver, von denen das SwiftNav Piksi \cite{SwiftNavPiksi} dadurch hervorsteht, dass ein großer Teil der Software unter GPL Lizenz frei verfügbar ist. Ein elementarer Bestandteil, die FPGA Firmware ist allerdings nicht veröffentlicht. Für zukünftige Weiterentwicklung der hier vorgestellten Arbeit sollte jedoch untersucht werden, ob die Open Source Teile des SwiftNav Piksi Projekts hilfreich sein können.

Abseits von Realisierungen für Embedded Systeme ist auch das GNSS-SDR Projekt \cite{gnss-sdr} interessant. GNSS-SDR ist ein Open Source Framework mit dem sich SDR GNSS Receiver realisieren lassen. Der Schwerpunkt liegt dabei aber im Bildungs- und Forschungsbereich um Algorithmen zu testen und zu vergleichen. Für eine Echtzeit-Positionsbestimmung in einem Embedded System hat GNSS-SDR zu hohe Leistungsforderungen. Mit einem leistungsfähigen PC ist jedoch auch mit dem GNSS-SDR Receiver Echtzeit-Positionsbestimmung möglich.

Expand Down
2 changes: 1 addition & 1 deletion 2_Grundlagen/0_Grundlagen_main.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\chapter{Theoretische Grundlagen}
Dieses Kapitel gibt zuerst einige einführende Informationen über das GPS Signal und über die Demodulation. Danach wird der Einfluss des Dopplereffekts, mit besonderem Bezug auf die hohe Orbit Geschwindigkeit eine \gls{LEO} Satelliten untersucht. Zum Schluss wird ein Überblick über die Hardware des COM Board gegeben.
Dieses Kapitel gibt zuerst einige einführende Informationen über das GPS Signal und über die Demodulation. Danach wird der Einfluss des Dopplereffekts, mit besonderem Bezug auf die hohe Orbit Geschwindigkeit von \gls{LEO} Satelliten untersucht. Zum Schluss wird ein Überblick über die Hardware des COM Board gegeben.

\input{2_Grundlagen/10_GPS_Signal}

Expand Down
Loading

0 comments on commit 7e20cd1

Please sign in to comment.