Download - GNU Radio
GNU RadioGNU Radio
Chen ZhifengChen Zhifeng
Chen Ke-YuChen Ke-Yu
Electrical and Computer EngineeringElectrical and Computer Engineering
University of FloridaUniversity of Florida
OutlineOutline
Why GNU Radio?Why GNU Radio? Extensive knowledge involvedExtensive knowledge involved What is implemented currently?What is implemented currently? LibraryLibrary ArchitectureArchitecture Development environmentDevelopment environment Development BoardsDevelopment Boards Current IssuesCurrent Issues What is next? What is next?
Why GNU Radio?Why GNU Radio? Almost free!Almost free!
All the software are free (Python and C++ source code/linux environment)All the software are free (Python and C++ source code/linux environment) In most condition, no need expensive RF test machine!In most condition, no need expensive RF test machine! No need to purchase development and emulation toolsNo need to purchase development and emulation tools Only a development board needed (Universal Software Radio Peripheral)Only a development board needed (Universal Software Radio Peripheral)
FlexibleFlexible Software: Software:
reconfigurable for many other modulation methods for both standardize reconfigurable for many other modulation methods for both standardize radio or self-defined radioradio or self-defined radio
it is possible to improve the quality of the received signal by utilizing, in it is possible to improve the quality of the received signal by utilizing, in software, certain mathematical algorithmssoftware, certain mathematical algorithms
Hardware: Hardware: Rx and Tx are selectable Rx and Tx are selectable Intermediate frequency is controllable Intermediate frequency is controllable
Best choice for research use and radio amateurBest choice for research use and radio amateur
Extensive knowledge involvedExtensive knowledge involved
Software and environment:Software and environment:
Python/Numeric python library/wxPythonPython/Numeric python library/wxPython
C++/boost C++ libratiesC++/boost C++ libraties
Linux environment and lots of support packages: Linux environment and lots of support packages:
FFTW/cppunit/SWIG/SDCC/FFTW/cppunit/SWIG/SDCC/
GNU Radio architectureGNU Radio architecture
Communications and RF:Communications and RF:
DSPDSP
Digital communicationsDigital communications
Wireless communications theoryWireless communications theory
FPGA and Assemble language may be usedFPGA and Assemble language may be used
What is implemented currentlyWhat is implemented currently Base SystemBase System
Provides the runtime and various signal processing primitives Provides the runtime and various signal processing primitives
Hardware SupportHardware Support
Universal Software Radio Peripheral (USRP)Universal Software Radio Peripheral (USRP)
Audio Device SupportAudio Device Support
ALSA (Advanced Linux Sound Architecture)ALSA (Advanced Linux Sound Architecture)
OSS (Open Sound System)OSS (Open Sound System)
Graphics SupportGraphics Support
wxPython based GUIwxPython based GUI
SDL video librarySDL video library
General Signal ProcessingGeneral Signal Processing
Specialty Application AreasSpecialty Application Areas
LibraryLibrary
Communication related implementationCommunication related implementation AM demodulationAM demodulation Differential BPSK / QPSKDifferential BPSK / QPSK GMSK modulation / demodulationGMSK modulation / demodulation Narrow band FM transmitter / receiver Narrow band FM transmitter / receiver Wide band FM transmitter & broadcast FM Wide band FM transmitter & broadcast FM
receiverreceiver
Library (cont.)Library (cont.)
GNU radio utilitiesGNU radio utilities CRC generatorCRC generator Socket setup (TCP / UDP)Socket setup (TCP / UDP) Compute frequency response of a digital filterCompute frequency response of a digital filter Control National IMX2306 & SDR-1000 frequeControl National IMX2306 & SDR-1000 freque
ncy synthesizerncy synthesizer Some utilitiesSome utilities
Convert unsigned mask into signed integerConvert unsigned mask into signed integer Gcd, Lcm, Log2Gcd, Lcm, Log2 Return input ‘x’ that is reverse orderReturn input ‘x’ that is reverse order
Library (cont.)Library (cont.)
GUI examplesGUI examples Provide window application for different usageProvide window application for different usage FFT sink testFFT sink test wxPython EditBox, SliderwxPython EditBox, Slider DrawingDrawing Waterfall sink testWaterfall sink test Oscilloscope Test ApplicationOscilloscope Test Application
Library (cont.)Library (cont.)
pagerpager Create USRP source object supplying compleCreate USRP source object supplying comple
x floatsx floats Flex pager protocol demodulation blockFlex pager protocol demodulation block
Architecture Architecture – overall– overall
Software
Hardware
Architecture Architecture – Hardware– Hardware
User-defined Code
RF Front end
Sender
User-defined Code
Receiver
DAC
ADC RF Front end
FPGAUSB
USB FPGA
USRP (mother board)PC
Architecture Architecture – Hardware– Hardware
User-defined Code
RF Front end
DACUSB FPGA
Support USB2.0/At this stage, USB 1.x is not supported at allSupport USB2.0/At this stage, USB 1.x is not supported at all
1.1. Support 32MB/sec across the USB.Support 32MB/sec across the USB.
2.2. All samples sent over the USB interface are in 16-bit signed integers in IQ All samples sent over the USB interface are in 16-bit signed integers in IQ format, format,
16-bit I and 16-bit Q data (complex), resulting in 8M complex samples/sec 16-bit I and 16-bit Q data (complex), resulting in 8M complex samples/sec across the USB.across the USB.
Architecture Architecture – Hardware– Hardware
User-defined Code
RF Front end
DACUSB FPGA
Includes digital down converters (DDC) implemented with cascaded Includes digital down converters (DDC) implemented with cascaded integrator-comb (CIC) filters.integrator-comb (CIC) filters.DDCDDC Down converts the signal from the IF band to the base band.Down converts the signal from the IF band to the base band. Decimates the signal so that the data rate can be adapted by the USB Decimates the signal so that the data rate can be adapted by the USB
2.0 and is reasonable for the computers' computing capability.2.0 and is reasonable for the computers' computing capability.
Digital up converters (DUCs) on the transmit side are actually contained in Digital up converters (DUCs) on the transmit side are actually contained in the AD9862 CODEC chips, not in the FPGA.the AD9862 CODEC chips, not in the FPGA.
The only transmit signal processing blocks in the FPGA are the The only transmit signal processing blocks in the FPGA are the interpolators.interpolators.
Architecture Architecture – Hardware– Hardware
User-defined Code
RF Front end
DACUSB FPGA
4 high-speed 14-bit DA converters, DAC clock frequency is 128 MS/s 4 high-speed 14-bit DA converters, DAC clock frequency is 128 MS/s (stay below about 50MHz or so to make filtering easier.)(stay below about 50MHz or so to make filtering easier.)
4 high-speed 12-bit AD converters, sampling rate is 64M samples per 4 high-speed 12-bit AD converters, sampling rate is 64M samples per second.second.
Architecture Architecture – Hardware– Hardware
User-defined Code
RF Front end
DACUSB FPGA
One mother board support up to four daughter boards. One mother board support up to four daughter boards. 2. Several kinds of daughter boards available2. Several kinds of daughter boards available
Architecture Architecture – Software– Software
GNU radio has provided some useful APIsGNU radio has provided some useful APIs What we are interested in at this time is What we are interested in at this time is
how to use the existing moduleshow to use the existing modules that has that has been provided in GNU radio project been provided in GNU radio project to to communicate between two end systemscommunicate between two end systems
User-defined Code
RF Front end
Sender
DACUSB FPGA
PC
Architecture Architecture – Software– Software
How these modules co-work?How these modules co-work? C++C++
Performance-critical modulesPerformance-critical modules
PythonPython GlueGlue to connect modules to connect modules Non performance-critical modulesNon performance-critical modules
Architecture Architecture – Software– Software
At python level, what we need to do is always just At python level, what we need to do is always just to to draw a diagramdraw a diagram showing showing the signal flow the signal flow
from the source to the sinkfrom the source to the sink in our mind. in our mind.
C++
C++
V1
V2
V3
C++
C++
C++
V1
V2
V3
C++
Source
Sink
SPE (Stani’s Python Editor)SPE (Stani’s Python Editor) FreeFree Lack of powerful debug tool (breakpoint)Lack of powerful debug tool (breakpoint)
Development environmentDevelopment environment
Explorer ofProject and
Class membersCode editor
Interpreter & debug window
Development environment (cont.)Development environment (cont.)
WingwareWingware More powerfulMore powerful For personal version, the license fee to two stFor personal version, the license fee to two st
ations are $60ations are $60Code editor
Interpreter
Explorer ofProject and
Class members
Debuginformation
Development BoardsDevelopment Boards
Description Price
USRP Motherboard $700.00
BasicTX -- 2 MHz to 200 MHz Transmitter $75.00
BasicRX -- 2 MHz to 300+ MHz Receiver $75.00
LFTX -- DC-30 MHz Transmitter $75.00
LFRX -- DC-30 MHz Receiver $75.00
TVRX -- 50 MHz to 870 MHz Receiver $100.00
DBSRX -- 800 MHz to 2.4 GHz Receiver $150.00
RFX400 -- 400-500 MHz Transceiver $275.00
RFX900 -- 800-1000MHz Transceiver $275.00
RFX1200 -- 1150 MHz - 1450 MHz Transceiver $275.00
RFX1800 -- 1.5-2.1 GHz Transceiver $275.00
RFX2400 -- 2.3-2.9 GHz Transceiver, 20+mW output $275.00
USRP MotherboardUSRP Motherboard
Four 64 MS/s 12-bit analog to digital Four 64 MS/s 12-bit analog to digital ConvertersConverters
Four 128 MS/s 14-bit digital to analog Four 128 MS/s 14-bit digital to analog ConvertersConverters
Four digital downconverters with Four digital downconverters with programmable decimation ratesprogrammable decimation rates
Two digital upconverters with Two digital upconverters with programmable interpolation ratesprogrammable interpolation rates
High-speed USB 2.0 interface (480 Mb/s)High-speed USB 2.0 interface (480 Mb/s) Capable of processing signals up to 16 Capable of processing signals up to 16
MHz wideMHz wide Modular architecture supports wide Modular architecture supports wide
variety of RF daughterboardsvariety of RF daughterboards Auxiliary analog and digital I/O support Auxiliary analog and digital I/O support
complex radio controls such as RSSI and complex radio controls such as RSSI and AGCAGC
Fully coherent multi-channel systems Fully coherent multi-channel systems (MIMO capable)(MIMO capable)
BasicTXBasicTX2 MHz to 200 MHz Transmitter2 MHz to 200 MHz Transmitter
designed for use with designed for use with external RF frontends external RF frontends as an intermediate as an intermediate frequency (IF) interface.frequency (IF) interface.
DAC outputs are DAC outputs are directly transformer-directly transformer-coupled to SMA coupled to SMA connectors (50Ω connectors (50Ω impedance)impedance)
direct access to all of direct access to all of the signals on the the signals on the daughterboard interfacedaughterboard interface
BasicRXBasicRX2 MHz to 300+ MHz Receiver2 MHz to 300+ MHz Receiver
designed for use with designed for use with external RF frontends external RF frontends as an intermediate as an intermediate frequency (IF) interface.frequency (IF) interface.
ADC inputs are directly ADC inputs are directly transformer-coupled to transformer-coupled to SMA connectors (50Ω SMA connectors (50Ω impedance) impedance)
direct access to all of direct access to all of the signals on the the signals on the daughterboard interfacedaughterboard interface
LFTXLFTXDC-30 MHz TransmitterDC-30 MHz Transmitter
very similar to the very similar to the BasicTX and BasicRX, BasicTX and BasicRX, respectively, with 2 respectively, with 2 main differencesmain differences
Use differential Use differential amplifiers instead of amplifiers instead of transformers, their transformers, their frequency response frequency response extends down to DC.extends down to DC.
have 30 MHz low pass have 30 MHz low pass filters for antialiasing.filters for antialiasing.
LFRXLFRXDC-30 MHz ReceiverDC-30 MHz Receiver
• very similar to the very similar to the BasicTX and BasicTX and BasicRX, BasicRX, respectively, with 2 respectively, with 2 main differencesmain differences
Use differential Use differential amplifiers instead of amplifiers instead of transformers, their transformers, their frequency response frequency response extends down to DC.extends down to DC.
have 30 MHz low pass have 30 MHz low pass filters for antialiasing.filters for antialiasing.
TVRXTVRX50 MHz to 870 MHz Receiver50 MHz to 870 MHz Receiver
a complete VHF and a complete VHF and UHF receiver system UHF receiver system based on a TV tuner based on a TV tuner modulemodule
can receive a 6 MHz can receive a 6 MHz wide block of spectrum wide block of spectrum from anywhere in the 50-from anywhere in the 50-860 MHz range.860 MHz range.
All tuning and AGC All tuning and AGC functions can be functions can be controlled from software.controlled from software.
– Note: The TVRX is the only daughterboard which is NOT MIMO capable. A MIMO
capable version is expected in Q1 2007.
DBSRXDBSRX800 MHz to 2.4 GHz Receiver800 MHz to 2.4 GHz Receiver
a complete receiver system a complete receiver system for 800 MHz to 2.4 GHz for 800 MHz to 2.4 GHz with a 3-5 dB noise figure.with a 3-5 dB noise figure.
features a software features a software controllable channel filter controllable channel filter as narrow as 1 MHz, or as as narrow as 1 MHz, or as wide as 60 MHz.wide as 60 MHz.
MIMO capable, and can MIMO capable, and can power an active antenna power an active antenna via the coax.via the coax.
Note: The DBSRX is NOT guaranteed to cover the 2.4-2.48 GHz ISM band.
RFX400RFX400400-500 MHz Transceiver400-500 MHz Transceiver
• 100+mW output (20dBm)100+mW output (20dBm)
• ideal for UHF TV, public safety ideal for UHF TV, public safety and land-mobile and land-mobile communications, low-power communications, low-power unlicensed devices (like key-unlicensed devices (like key-fobs), wireless sensor networks fobs), wireless sensor networks (motes), and amateur radio.(motes), and amateur radio.
minor modifications to the board minor modifications to the board can move the frequency range can move the frequency range to anywhere from 200 MHz to to anywhere from 200 MHz to 800 MHz800 MHz
RFX900RFX900 800-1000MHz Transceiver800-1000MHz Transceiver
• 200+mW output (23dBm)200+mW output (23dBm) with a 902-928 MHz ISM-band filter installed for with a 902-928 MHz ISM-band filter installed for
filtering strong out-of-band signals (like pagers). filtering strong out-of-band signals (like pagers). The filter can easily be bypassed to allow usage The filter can easily be bypassed to allow usage
over the full frequency range, enabling use with over the full frequency range, enabling use with cellular, paging, motes, and two-way radio, in cellular, paging, motes, and two-way radio, in addition to the ISM band.addition to the ISM band.
RFX1200RFX1200 1150 MHz - 1450 MHz Transceiver1150 MHz - 1450 MHz Transceiver
• 200+mW output (23dBm)200+mW output (23dBm)
• Coverage of navigation, Coverage of navigation, satellite, and amateur satellite, and amateur bands.bands.
RFX1800RFX1800 1.5-2.1 GHz Transceiver1.5-2.1 GHz Transceiver
• 100+mW output (20dBm)100+mW output (20dBm) Coverage of DECT, US-DECT, and PCS Coverage of DECT, US-DECT, and PCS
(including unlicensed) frequencies.(including unlicensed) frequencies.
RFX2400RFX2400 2.3-2.9 GHz Transceiver2.3-2.9 GHz Transceiver
50mW output 50mW output (17dBm)(17dBm)
with a bandpass filter with a bandpass filter around the ISM band around the ISM band (2400-2483 MHz). (2400-2483 MHz).
The filter can be The filter can be easily bypassed, easily bypassed, allowing for coverage allowing for coverage of the full frequency of the full frequency range.range.
DemoDemo
SocketJPEG
EncoderModulation
Hard Disk
SocketHard Disk Demodulation
Demo (cont.)Demo (cont.)Modulation
Demodulation
Bit to ByteGray codeEncoder
DifferentialEncoder
Real to Complex
Byte to BitGray codeDecoder
DifferentialDecoder
Real to Complex
Current issuesCurrent issues
Need a USRP + Microtune 4937 Need a USRP + Microtune 4937 Need a python IDENeed a python IDE A long way to be commercializedA long way to be commercialized
High performance CPU requirementHigh performance CPU requirement The software is still under developmentThe software is still under development
What is next?What is next?--possible applications and issues--possible applications and issues
The clock recovery block doesn’t work in the The clock recovery block doesn’t work in the DBPSK modulationDBPSK modulation
Add more functions, such as DQPSK, FSK… Add more functions, such as DQPSK, FSK… into our demointo our demo
We may test the transmission by actual wireless We may test the transmission by actual wireless connection, since receiver doesn’t ensure connection, since receiver doesn’t ensure correct demodulation, for example, carrier correct demodulation, for example, carrier tracking, clock recovery, we may need to add:tracking, clock recovery, we may need to add: cyclic redundancy check (CRC)cyclic redundancy check (CRC) Retransmission control (ARQ)Retransmission control (ARQ)
Based on what we have done, we may deploy a Based on what we have done, we may deploy a research-oriented project next research-oriented project next