gnu radio - unidsp56-homepage · 4 gnu radio dl9gfa gnu radio - Überblick freie software-arbeits-...
TRANSCRIPT
GNU RadioGNU Radio
Gerrit Buhe, DL9GFAHAM-Radio 2011
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
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
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
5 GNU Radio DL9GFA
GNU Radio – PythonGNU Radio – Python
Blockschaltbild und automatisch generiertes Python-Skript mit eingebundenen C++ Routinen
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
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
8 GNU Radio DL9GFA
GRC – Erstes BeispielGRC – Erstes Beispiel
9 GNU Radio DL9GFA
GRC – Erstes BeispielGRC – Erstes Beispiel
10 GNU Radio DL9GFA
GRC – Erstes BeispielGRC – Erstes Beispiel
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
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
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
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
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')
16 GNU Radio DL9GFA
USRP2 / WBX - PraxisbeispielUSRP2 / WBX - Praxisbeispiel
17 GNU Radio DL9GFA
USRP2 / WBX - PraxisbeispielUSRP2 / WBX - Praxisbeispiel
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
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
20 GNU Radio DL9GFA
FCD - PraxisbeispielFCD - Praxisbeispiel
21 GNU Radio DL9GFA
FCD - PraxisbeispielFCD - Praxisbeispiel
22 GNU Radio DL9GFA
FCD - PraxisbeispielFCD - Praxisbeispiel
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
24 GNU Radio DL9GFA
SoftRock - PraxisbeispielSoftRock - Praxisbeispiel
25 GNU Radio DL9GFA
SoftRock - PraxisbeispielSoftRock - Praxisbeispiel
26 GNU Radio DL9GFA
SoftRock - PraxisbeispielSoftRock - Praxisbeispiel
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
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.)
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
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