Handgestrickter GPS-Receiver in einem FPGA

Die Bereitschaft der GNSS-Receiver-Hersteller, die Rohdaten zur Verfügung zu stellen scheint sich in letzter Zeit nicht signifikant zu verbessern. Dies muss inzwischen aber niemanden mehr ärgern oder allzu tief in die Tasche greifen lassen. Inzwischen gibt es gute Referenzimplementierungen für selbst gemachte GNSS-Receiver. Den Anfang machte Andrew Holme mit einem Spartan-3-FPGA in Zusammenarbeit mit einem Raspberry Pi.

Die Besonderheit bei diesem Projekt ist die Programmierung des FPGA mit Forth. Sicher keine Allerweltssprache aber für den Zweck hervorragend geeignet. Der Sprachcore passt ohne Probleme in den inzwischen recht kleinen Spartan 3 mit unter 10k Logic Cells. Das Projekt ist ein hervorragender Ausgangspunkt für eigene Entwicklungen.

Basierend darauf hat John Seamons vor kurzem eine eigene Implementierung mit einem Spartan 6 und einem Beaglebone Black gemacht. Der FPGA wäre tatsächlich in der Lage, die Rohdaten aufzubereiten und der Prozessor auf dem Beaglebone hätte genug Power, die Differenzsignale zu berechnen. Die Kosten für eine solche Kombination sind allerdings derzeit noch mit knapp 150€ zu hoch. Spannender könnten dann Systeme sein, die über einen Zynq-Prozessor von Xilinx verfügen. Dieser hat zwei vollwertige ARM-Kerne und einen groß bemessenen FPGA gleich mit drin. Für $15 pro Zynq liessen sich wesentlich kostengünstigere und stromsparende GNSS-Reciever bauen.