Documentation

SDR

For the SDR hardware, several different plates have been considered. Finally, we have decided that the most appropriate plate for this project is the USRP B210, due to the trade-off between price and flexibility.

USRP B210

The USRP (Universal Software Radio Peripheral) is a flexible and affordable transceiver that turns a standard PC into a powerful wireless prototyping system.

Overview

The USRP B210 comes straight from the R&D labs of Ettus Research providing early access to cutting edge experimental hardware covering 70MHz – 6GHz with integrated RFIC technology, a Spartan6 FPGA, and USB 3.0 connectivity. This new platform enables experimentation with wide range of applications including: FM and TV broadcast, cellular, WiFi, ISM, and more. The USRP B210 features two receive and two transmit channels, incorporates an open FPGA and includes an external power supply. It uses new Analog Devices RFIC to deliver a cost-effective experimentation platform and a high bandwidth USB 3.0 bus with up to 56 MHz of instantaneous bandwidth in 1x1 operation and up to 32MHz of instantaneous bandwidth in 2x2 operation on select USB 3.0 chipsets (backwards compatibly to USB 2.0 for 6MHz of instantaneous bandwidth). The two transmit pairs and receive pairs each share a local oscillator for fully coherent MIMO applications. With this new kit, users can develop their GNU Radio applications and seamlessly port their designs to higher performance USRP systems such as USRP N210 with industry proven 1 Gigabit Ethernet connectivity or the USRP E100 embedded form factor, both including discrete RF boards with higher sensitivity, dynamic range, and IP3 performance using the common USRP Hardware Driver (UHD) framework.

Features

  • Radio functionality
    • 2 Transmit, 2 Receive
    • Full duplex or half duplex
    • Frequency range: 70 MHz to 6 GHz
    • Baseband: 12-bit ADC/DAC
    • Up to to 61.44 MS/s allows up to 56 MHz of real time bandwidth per channel
    • Up to 32 MHz of real time bandwidth in 2x2 MIMO mode
  • USB 3.0 interfaceFPGA – Spartan 6 XC6SLX75
    • Up to 3.2Gb/s sustainable transfer rates
    • Supports USB 2.0 controllers
  • USRP Hardware Driver™ (UHD) compatible
  • Prototyping platform for Analog Devices AD9361 RFIC.
  • Prototyping platform for Analog Devices AD9361 RFIC.

GNU Radio

GNU Radio is a free software development toolkit that provides signal processing blocks to implement software-defined radios and signal processing systems. It can be used with external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic, and commercial environments to support both wireless communications research and real-world radio systems.

Overview

The GNU Radio software provides the framework and tools to build and run software radio or just general signal processing applications. The GNU Radio applications themselves are generally known as 'flowgraphs', which are a series of signal processing blocks connected together, thus describing a data flow. As with all software-defined radio systems, reconfigurability is a key feature. Instead of using different radios designed for specific but disparate purposes, a single, general-purpose, radio can be used as the radio front-end, and the signal-processing software (here, GNU Radio), handles the processing specific to the radio application.

GNU Radio Companion

GNU Radio Companion (GRC) is a graphical tool for creating signal flow graphs and generating flow-graph source code, making easier working with GNU Radio.

For this project, GNU Radio Companion 3.7.10 has been used.

These flowgraphs can be written in either C++ or the Python programming language. The GNU Radio infrastructure is written entirely in C++, and many of the user tools are written in Python.

Additional Modules

For the experiments following the ieee 802.11 standard, the GitHub repository gr-ieee802-11 have been used as a base, modifying it. This module allows sending and receiving messages following this standard, and manually select the modulation of the OFDM frame at run-time.