30
GNU Radio GNU Radio Gerrit Buhe, DL9GFA HAM-Radio 2011

GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

Embed Size (px)

Citation preview

Page 1: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

GNU RadioGNU Radio

Gerrit Buhe, DL9GFAHAM-Radio 2011

Page 2: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

2 GNU Radio DL9GFA

InhaltInhalt● Einleitung 'Software Radio' und 'Cognitive Radio'● GNU Radio

º Überblick

º Python Framework

º GNU Radio Companion – GRC

º Die möglichen Programmierebenen

º Erstes Praxisbeispiel unter GRC (Quellen, Senken, Funktionsblöcke, GUI)

º GRC – Wichtige Hinweise (Synchronisation, Flußkontrolle)

● Hardware für GNU Radio und ihre Anwendung

º Konzept der Aufgabenteilung

º WBX von Ettus Research

º USRP2 von Ettus Research

º USRP2+WBX Praxisbeispiel unter GRC

º FUNcube Dongle

º FUNcube Dongle Praxisbeispiel unter GRC

º HF-Frontends der SoftRock-Klasse

º SoftRocks in der Praxis unter GRC

● GNU Radio Projekte im Internet● Wie kann ich starten?

º Installation und erste Hardware

● Zusammenfassung und Referenzen

Page 3: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

3 GNU Radio DL9GFA

Software Radio & Cognitive RadioSoftware Radio & Cognitive Radio

● Es gibt verschiedene SWR-Konzepte in Abhängigkeit vom Ort des AD-Wandlers

º Heterodynstrukturen mit AD/DA-Wandlung im Basisband oder auf hoher Zwischenfrequenz

º Direktmischer mit AD/DA-Wandlung im Basisband oder direkte HF-Signalabtastung

º Systemdesign entscheidet über Kompromisse zwischen Performance und Flexibilität

● Ideales SWR nutzt statt spezifischer Hardware nur einen „General Purpose Prozessor“ (GPP) und AD/DA-Wandler

º Alle Signalverarbeitung in Form von Algorithmen auf GPP

º Standardisierung der Schnittstellen erlaubt Wiederverwendung von Software-Modulen (SCA – Software Communications Architecture)

º SCA ermöglicht auch Nachladen neuer Verfahren/Standards wenn nötig (autom. SW update)

● 'Cognitive Radio' ist der nächste Evolutionsschritt

º CR sind intelligente und lernende Software Radios

º Sie beobachten ihre spektrale Umgebung und passen sich den Gegebenheiten an (reaktiv, proaktiv, bis hin zu kooperativem Ressourcenmanagement)

º Vision der Regulierungsbehörden ohne dedizierte Frequenzzuweisungen, die oft ineffizient sind

● GNU Radio ist eine Plattform für SWR und läßt sich als Basisebene unter kognitiven Verarbeitungsschichten verwenden

Page 4: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

4 GNU Radio DL9GFA

GNU Radio - ÜberblickGNU Radio - Überblick

● Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und Empfängern

● Es bietet eine Menge fertiger Signalverarbeitungsroutinen und Funktionsblöcke

● Die Anwendungen sind hauptsächlich in Python geschrieben, während die Signalverarbeitungsblöcke in C++ implementiert sind

● Python ist eine einfach zu erlernende objektorientierte Skriptprogrammiersprache

● GNU Radio wird vor allem im akademischen und industriellen Umfeld zum schnellen „Prototyping“ eingesetzt

● Es gibt fertig verfügbare HF-Frontends zum Einsatz mit GNU Radio, aber auch Eigenbaulösungen sind einfach über die PC-Audiokarte nutzbar

● GNU Radio eignet sich hervorragend für den Hobbyeinsatz

º Freie Verfügbarkeit (GNU General Public License)

º Fertige Signalverarbeitungsblöcke verringern Einstiegshürde

º Eigene HF-Hardware ist einfach adaptierbar

º Viele Amateurfunkbeispiele im Internet verfügbar

º GNU Radio-Foren für Diskussion und Hilfe

Page 5: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

5 GNU Radio DL9GFA

GNU Radio – PythonGNU Radio – Python

Blockschaltbild und automatisch generiertes Python-Skript mit eingebundenen C++ Routinen

Page 6: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

6 GNU Radio DL9GFA

GNU Radio Companion - GRCGNU Radio Companion - GRC

● Grafische Benutzeroberfläche zur Entwicklung von Signalverarbeitungsanwendungen ● Einfacher Einstieg für 'Nichtprogrammierer'● Funktionsblöcke werden mit der Maus auf die Arbeitsfläche gezogen und verbunden● Auf Knopfdruck wird ein Python-Skript erstellt und gestartet

Filter

Schnittstellen GUI

Modulation

DSP-Bibliothek Ausführungsumgebung

Page 7: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

7 GNU Radio DL9GFA

GNU Radio - ProgrammierungGNU Radio - Programmierung

● Die Programmierung ist auf verschieden Ebenen möglich● Wer mit den bereits vorhandenen Funktionsblöcken

auskommt, kann ausschließlich grafisch arbeiten

GRCGRC

PythonPython

C++C++

Grafisches Grafisches EntwicklungswerkzeugEntwicklungswerkzeug

Zusammenfügen der Blöcke und Zusammenfügen der Blöcke und ParameterübergabeParameterübergabe

Echtzeit-SignalverarbeitungEchtzeit-Signalverarbeitung

Page 8: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

8 GNU Radio DL9GFA

GRC – Erstes BeispielGRC – Erstes Beispiel

Page 9: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

9 GNU Radio DL9GFA

GRC – Erstes BeispielGRC – Erstes Beispiel

Page 10: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

10 GNU Radio DL9GFA

GRC – Erstes BeispielGRC – Erstes Beispiel

Page 11: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

11 GNU Radio DL9GFA

GRC – HinweiseGRC – Hinweise

● Es gibt verschiedene Quellen und Senken für Datenströme

º PC-Audiokarte

º USB mit dedizierter Hardware (Bsp. USRP)

º Ethernet-Schnittstelle (TCP, UDP)

º Dateien aus denen gelesen und in die geschrieben werden kann

º 'pipes' durch die von/zu anderen Programmen Daten gestreamt werden können (ähnlich VAC – Virtual Audio Cable)

º Grafisch als Oszilloskop, Spektrumanalysator, Wasserfallspektrum, Textaus- und eingabe

● Das Datenformat zu verbindender Schnittstellen muß identisch sein und ggf. konvertiert werden (complex/float)

● Die Datenraten an den Schnittstellen müssen überein stimmen (ganzzahlige! Dezimierung, Interpolation)

● Abweichende Takte an HW-Schnittstellen führen zu automatisch generierten Puffern die Latenz einbringen und überlaufen können (Fehlermeldungen aUaO usw. beachten)

● Falls der Takt der Daten nicht von Hardware bestimmt ist (numerisch generiert, oder aus Datei), muß eine Flußkontrolle mit Takt eingebaut werden ('Throttle'-Block unter [Misc])

● Bei Performance-Problemen die Datenraten auf nötiges Minimum begrenzen und Wiederholrate grafischer Ausgaben verringern

Page 12: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

12 GNU Radio DL9GFA

Hardware für GNU RadioHardware für GNU Radio

HF Frontend

● Mischt HF ins analoge Basisband und umgekehrt

● Direkt-Quadratur-(de)modulator

Analog-Digital-Wandlung

● AD- und DA-Wandlung (jeweils I und Q)

● Abtastraten-dezimierung und -Interpolation

Software-(De-)Modulation

● Bekommt bzw. generiert digitales Basisband (I/Q)

● (De-)Moduliert und macht hör- bzw. lesbar

Page 13: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

13 GNU Radio DL9GFA

Hardware für GNU RadioHardware für GNU Radio

AttnAttn

~~

~~ WBX Transceiver

FPGA

(DDC, DUC,NCOs,Mikro-

controller,uvm.)

FPGA

(DDC, DUC,NCOs,Mikro-

controller,uvm.)

DACDAC

DACDAC

ADCADC

ADCADC

Ether-net

Ether-net

USRP2 Mainboard

Page 14: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

14 GNU Radio DL9GFA

WBX von Ettus ResearchWBX von Ettus Research

● Die US-Firma Ettus Research (www.ettus.com) bietet

º Leistungsfähige Digital-Hardware mit USB oder Ethernet-Schnittstelle

º Diverse HF-Frontends in verschiedenen HF-Bereichen

HF-Frontend WBX

● Transceiver 50 MHz...2.2 GHz ● Voll-Duplex● Direkt-Quadratur(de)modulator● 5 dB...6 dB Rauschmaß● IIP3: +5 dBm... +10 dBm● IIP2: +40 dBm... +55 dBm● 50 mW...100 mW Sendeleistung● Schaltung frei verfügbar

Page 15: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

15 GNU Radio DL9GFA

USRP2 von Ettus ResearchUSRP2 von Ettus Research

● Die US-Firma Ettus Research (www.ettus.com) bietet

º Leistungsfähige Digital-Hardware mit USB oder Ethernet-Schnittstelle

º Diverse HF-Frontends in verschiedenen HF-Bereichen

Universal Software Radio Peripheral (USRP2)

● Zwei 100 MS/s 14-Bit-AD-Wandler● Zwei 400 MS/s 16-Bit-DA-Wandler● FPGA mit programmierbarer Dezimierung (DDC) und Interpolation (DUC)● 25 MHz HF-Bandbreite vom/zum PC● Gigabit Ethernet-Schnittstelle zum PC● Analoge (AD/DA) und digitale Schnittstellen für Hilfsfunktionen (AGC, RSSI, etc.)● Schaltpläne frei verfügbar● VHDL-Quelltext frei verfügbar● Autarker Betrieb möglich ('stand alone')

Page 16: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

16 GNU Radio DL9GFA

USRP2 / WBX - PraxisbeispielUSRP2 / WBX - Praxisbeispiel

Page 17: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

17 GNU Radio DL9GFA

USRP2 / WBX - PraxisbeispielUSRP2 / WBX - Praxisbeispiel

Page 18: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

18 GNU Radio DL9GFA

FUNcube Dongle (FCD)FUNcube Dongle (FCD)

● Empfänger 64 MHz... 1.7 GHz („SMA zu USB“)

● I/Q-Ausgabe mit 96 kHz Abtastrate

● Projekt der AMSAT UK

● Direkte GRC-Unterstüzung

Page 19: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

19 GNU Radio DL9GFA

FUNcube Dongle (FCD)FUNcube Dongle (FCD)

● Empfänger 64 MHz... 1.7 GHz („SMA zu USB“)

● I/Q-Ausgabe mit 96 kHz Abtastrate

● Projekt der AMSAT UK

● Direkte GRC-Unterstüzung

Page 20: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

20 GNU Radio DL9GFA

FCD - PraxisbeispielFCD - Praxisbeispiel

Page 21: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

21 GNU Radio DL9GFA

FCD - PraxisbeispielFCD - Praxisbeispiel

Page 22: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

22 GNU Radio DL9GFA

FCD - PraxisbeispielFCD - Praxisbeispiel

Page 23: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

23 GNU Radio DL9GFA

SoftRock-artige RX/TXSoftRock-artige RX/TX

● Direktmischstrukturen mit Quadratur-Abtastung (QSD) eines Subbandes● I/Q-Basisband wird analog an PC-Audiokarte ausgegeben bzw. von dort erhalten

● Schmaler Empfangskanal muß mit komplexem Oszillator demoduliert werden

● Einfache Einbindung in GRC durch PC-Audiokarte möglich

Page 24: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

24 GNU Radio DL9GFA

SoftRock - PraxisbeispielSoftRock - Praxisbeispiel

Page 25: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

25 GNU Radio DL9GFA

SoftRock - PraxisbeispielSoftRock - Praxisbeispiel

Page 26: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

26 GNU Radio DL9GFA

SoftRock - PraxisbeispielSoftRock - Praxisbeispiel

Page 27: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

27 GNU Radio DL9GFA

GNU Radio ProjekteGNU Radio Projekte

● Im Internet sind viele frei verfügbare GNU Radio Projekte zu finden, die zum Experimentieren einladen

º Diverse Voll-Duplex SDR-Transceiver für Amateurfunk (AM, FM, SSB, CW, digital Modes)

º Satelliten-Telemetrieempfänger, u.a. mit FUNcube Dongle

º NOAA APT Empfänger für Wetterbilder

º DVB - Digitale Videoübertragung der Webcam auf 23cm

º OpenBTS – GSM-Basisstation

º DECT-Empfänger (PHY, MAC, teilw. höhere Ebenen)

º HDTV-Sender und -Empfänger

º TETRA Transceiver

º ADS-B & Mode-S Transponder-Empfang zur Bestimmung von Flugzeugposition, Höhe, Richtung etc.

º AIS – Automatisches Identifikations-System für Schiffe (Geschwindigkeit, Richtung, Tonnage, Name, Ziel etc.)

º WLAN-Sender und -Empfänger in voller Bandbreite inkl. MIMO

º ZigBee PHY IEEE 802.15.4 (interoperabel mit Mica2, MicaZ, Telos B)

º RDS-UKW-Radio

º Fading Simulator mit Echtzeit-Rayleigh-Fading (via Matlab)

º GMSK-Bodenstations-Transceiver für Satelliten (z.B. Aprizesat 3&4, 128kbit/s downlink, 9.6kb/s uplink)

º RFID Generation 2

º GPS-Empfänger

º DCF77-Empfänger

º Empfänger für Motorola Smartnet trunked radio system

º Transceiver für Logitechs drahtlose Tastaturen

Page 28: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

28 GNU Radio DL9GFA

Wie kann ich starten?Wie kann ich starten?

● Installation von GNU Radio inklusive GRCompanion

º GNU Radio ist frei und kann im Quelltext oder binär (Linux) heruntergeladen werden

º Erstellung aus den Quellen ist unter Linux-Distributionen, xBSD und Mac OS X einfach möglich (Anleitung unter gnuradio.org)

º Viele Linux-Distributionen bieten fertige Pakete zur komfortablen Installation an (Empfehlung Ubuntu, Kubuntu)

º Windows-Compilierung und Installation ist nur sehr Erfahrenen zu empfehlen

º Windows-Nutzer können Linux-Live-Distribution von USB-Stick/DVD einsetzen oder Linux in einer Virtuellen Maschine installieren (z.B. VirtualBox.org)

º Anleitungen und Diskussionsforen im Internet bieten Hilfe!

● Hardware

º Die PC-eigene Audiokarte ist für einfache Versuche gut geeignet (z.B. Audiosignalverarbeitung)

º Einfache Direktmisch-Empfänger und -Sender sind schnell selbst gebaut (Quarzoszillator, Mischer, Filter, Verstärker)

º Fast jede Software Radio Hardware kann mit GNU Radio betrieben werden (Basisband-I/Q, 12kHz-ZF etc.)

Page 29: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

29 GNU Radio DL9GFA

ZusammenfassungZusammenfassung

● Software Radio ist ein spannendes Thema, insbesondere für den Amateurfunk

● GNU Radio ist ein hervorragendes und noch dazu frei verfügbares Werkzeug zur Umsetzung

● Es kann für nahezu alle Spielarten des Amateurfunks eingesetzt und einfach erweitert werden

● Erfolgreiche Beschäftigung mit Software Radio erfordert Fachwissen auf verschiedenen Gebieten

● GNU Radio mit GRC verringert die Einstiegshürde deutlich

Page 30: GNU Radio - UniDSP56-Homepage · 4 GNU Radio DL9GFA GNU Radio - Überblick Freie Software-Arbeits- und Entwicklungsumgebung zur Implementierung von Software-definierten Sendern und

30 GNU Radio DL9GFA

Internet-ReferenzenInternet-Referenzen

● Projektseiten

º http://gnuradio.org

º https://cgran.org/ - 3rd Party GNU Radio applications

º http://ossie.wireless.vt.edu/ - Open Source SCA Implementation - Embedded

● Interessante Seiten mit direktem Amateurfunkbezug

º http://www.oz9aec.net/index.php/gnu-radio

º http://www.dl8rds.de/index.php/GNURadio_and_USRP2

º http://f4dan.free.fr/sdr_eng.html - gute Übersicht über Hard- und Software zum Thema

● Mailing-Listen und Diskussions-Foren● http://gnuradio.org/redmine/wiki/gnuradio/MailingLists

º http://lists.darc.de/mailman/listinfo/sdr - DARC-Reflektor zu SDR

● Podcasts

º http://chaosradio.ccc.de/cre087.html - Chaosradio Express zu SDR mit GNU Radio

● Erwerb von geeigneter Hardware

º http://www.ettus.com - USRPx-Hardware mit diversen HF-Frontends

º http://www.funcubedongle.com - FUNcubeDongle der AMSAT UK

º http://www.funkamateur.de - OnlineShop →Bausätze → SDR-Kits, FA-SDR-Transceiver

º http://www.kb9yig.com/ - SoftRock-Kits