Universal Software Radio Peripheral

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found.

File:USRP1.jpg
A rev 3 USRP1 platform, serial #140, with an attached TVRX daughterboard

Universal Software Radio Peripheral (USRP) is a range of software-defined radios designed and sold by Ettus Research and its parent company, National Instruments. Developed by a team led by Matt Ettus, the USRP product family is intended to be a comparatively inexpensive hardware platform for software radio, and is commonly used by research labs, universities, and hobbyists.[1]

Most USRPs connect to a host computer through a high-speed link, which the host-based software uses to control the USRP hardware and transmit/receive data. Some USRP models also integrate the general functionality of a host computer with an embedded processor that allows the USRP device to operate in a stand-alone fashion.

The USRP family was designed for accessibility, and many of the products are open source hardware. The board schematics for select USRP models are freely available for download; all USRP products are controlled with the open source UHD driver, which is free and open source software.[2] USRPs are commonly used with the GNU Radio software suite to create complex software-defined radio systems.

Design

The USRP product family includes a variety of models that use a similar architecture. A motherboard provides the following subsystems: clock generation and synchronization, FPGA, ADCs, DACs, host processor interface, and power regulation. These are the basic components that are required for baseband processing of signals. A modular front-end, called a daughterboard, is used for analog operations such as up/down-conversion, filtering, and other signal conditioning. This modularity permits the USRP to serve applications that operate between DC and 6 GHz.

In stock configuration the FPGA performs several DSP operations, which ultimately provide translation from real signals in the analog domain to lower-rate, complex, baseband signals in the digital domain. In most use-cases, these complex samples are transferred to/from applications running on a host processor, which perform DSP operations. The code for the FPGA is open-source and can be modified to allow high-speed, low-latency operations to occur in the FPGA.

Software

The USRP hardware driver (UHD) is the device driver provided by Ettus Research for use with the USRP product family.[3] It supports Linux, MacOS, and Windows platforms. Several frameworks including GNU Radio, LabVIEW, MATLAB and Simulink use UHD. The functionality provided by UHD can also be accessed directly with the UHD API, which provides native support for C++. Any other language that can import C++ functions can also use UHD. This is accomplished in Python through SWIG, for example.

UHD provides portability across the USRP product family. Applications developed for a specific USRP model will support other USRP models if proper consideration is given to sample rates and other parameters.[4]

Several software frameworks support UHD:

  • GNU Radio is a Free/Libre toolkit that can be used to develop software-defined radios. This framework uses a combination of C++ and Python to optimize DSP performance while providing an easy-to-use application programming environment. GNU Radio Companion is a graphical programming environment provided with GNU Radio.[5]
  • National Instruments sells the NI USRP 292x series, which is functionally equivalent to the Ettus Research USRP N210. NI also offers LabVIEW support for this device with the NI-USRP Driver.[6]
  • USRP N210 and USRP2 are supported by MATLAB and Simulink.[7] This package includes plug-ins and several examples for use with both the devices.
  • Many users develop with their own, custom frameworks. In this case, the USRP device can be accessed with the UHD API.[8] There are also examples provided with UHD that show how to use the API.[9]

Products

Networked series

The USRP N200 and USRP N210 are high-performance USRP devices that provide higher dynamic range and higher bandwidth than the bus series. Using a Gigabit Ethernet interface, the devices in the Networked Series can transfer up to 50 MS/s of complex, baseband samples to/from the host. This series uses a dual, 14-bit, 100 MS/S ADC and dual 16-bit, 400 MS/s DAC. This series also provides a MIMO expansion port which can be used to synchronize two devices from this series. This is the recommended solution for MIMO systems.

USRP N200
  • A Xilinx Spartan-3A DSP 1800 FPGA
  • Gigabit Ethernet interface
  • Dual 100 MS/s, 14-bit, analog-to-digital converter
  • Dual 400 MS/s, 16-bit, digital-to-analog converter
  • Flexible Clocking and Synchronization
    • External Inputs for 10 MHz and 1 PPS signals (SMA)
    • Optional GPS Disciplined Oscillator
    • Ettus Research MIMO Cable that can be used to synchronize two USRP devices (sold separately)
USRP N210
  • A Xilinx Spartan-3A DSP 3400 FPGA
  • Gigabit Ethernet interface
  • Dual 100 MS/s, 14-bit, analog-to-digital converter
  • Dual 400 MS/s, 16-bit, digital-to-analog converter
  • Flexible Clocking and Synchronization
    • External Inputs for 10 MHz and 1 PPS signals (SMA)
    • Optional GPS Disciplined Oscillator
    • Ettus Research MIMO Cable that can be used to synchronize two USRP devices (sold separately)
    • Support for timed commands and LO alignment with the SBX daughterboard

Bus series

All products in Ettus Research Bus Series use a USB 2.0 or USB 3.0 interface to transfer samples to and from the host computer. These are designed for applications that do not require the higher bandwidth and dynamic range provided by the Network Series(USRP N200 and USRP N210).

USRP1
The USRP1 is the original USRP product and consists of:
USRP B100
The B100, introduced in October 2011, replaces the USRP as the basic Software Defined Radio offering from Ettus Research. The features of the B100 are:
  • USB 2.0 interface
  • Xilinx Spartan 3A-1400 FPGA
  • Compatibility with the entire daughterboard family
  • Fully supported by UHD drivers
  • Dual 64 MS/s 12-bit ADCs
  • Dual 128 MS/s 14-bit DACs
  • Onboard TCXO for precise frequency control
  • 10 MHz and 1 PPS inputs for external references
  • Flexible clocking from 10 MHz to 64 MHz
  • 8 MHz of RF bandwidth with 16 bit samples
  • 16 MHz of RF bandwidth with 8 bit samples
USRP B200
  • USB 3.0 interface
  • Xilinx Spartan 6 XC6SLX75 FPGA
  • A Cypress EZ-USB FX3 High-speed USB 3.0 controller
  • Analog Devices AD9361 RFIC
  • Coverage from 70 MHz–6 GHz RF
  • Flexible rate 12 bit ADC/DAC
  • 1 TX, 1 RX, Half or Full Duplex
  • Up to 56 MHz of real-time bandwidth
USRP B210
  • USB 3.0 interface
  • Xilinx Spartan 6 C6SLX150 FPGA
  • A Cypress EZ-USB FX3 High-speed USB 3.0 controller
  • Analog Devices AD9361 RFIC
  • Coverage from 70 MHz–6 GHz RF
  • Flexible rate 12 bit ADC/DAC
  • 2 TX, 2 RX, Half or Full Duplex
  • Fully coherent 2x2MIMO capability
  • Up to 56 MHz of real-time bandwidth 1x1
  • Up to 32 MHz of real-time bandwidth 2x2

Embedded series

The Embedded Series combines the same functionality of other USRP devices with an OMAP 3 embedded processor. The E310, released in November 2014, utilizes the Zynq SoC platform and the Analog Devices AD9361 RFIC for a very compact, embedded USRP. The devices in this family do not need to be connected to an external PC for operation. The Embedded Series is designed for applications that require stand-alone operation.

USRP E100
  • Designed for embedded applications. Runs a full distribution of Linux.
  • 720 MHz OMAP3 (ARM Cortex-A8 processor & TI C64x+ DSP)
  • 512 MB RAM
  • 4 GB microSD Card
  • 100 Mbit/s Ethernet connectivity
  • Motherboard has one RTX daughterboard slot (1 RX + 1 TX connectors)
  • Onboard FPGA processing
  • FPGA: Xilinx Spartan XC3SD1800A
  • ADCs: 12-bits 64 MS/s
  • DACs: 14-bits 128 MS/s
  • TCXO Frequency Reference (~2.5 ppm)
  • Flexible clocking from 10 MHz to 64 MHz
USRP E110
USRP E310
  • Designed for embedded applications. Runs a full distribution of Linux.
  • Xilinx Zynq-7020 Platform with embedded ARM A9 processor (667 MHz) and FPGA (Xilinx 7 Series)
  • 1 GB DDR3 RAM (ARM Core)
  • 512 MB DDR3 RAM (FPGA)
  • Analog Devices AD9361 RFIC
  • Coverage from 70 MHz–6 GHz RF
  • Flexible rate 12 bit ADC/DAC
  • 2 TX, 2 RX, Half or Full Duplex
  • Fully coherent 2x2MIMO capability
  • Up to 56 MHz of real-time bandwidth 1x1
  • Up to 32 MHz of real-time bandwidth 2x2

Discontinued models

The USRP2 was developed after the USRP and was first made available in September 2008. It has reached end of life and has been replaced by the USRP N200 and USRP N210. The USRP2 was not intended to replace the original USRP, which continued to be sold in parallel to the USRP2.

The USRP2 contains:[10]

  • A Xilinx Spartan 3-2000 FPGA
  • Gigabit Ethernet interface
  • Two 100 MS/s, 14-bit, analog-to-digital converters. LTC2284, 72.4 dB SNR and 85 dB SFDR for signals at the Nyquist frequency.
  • Two 400 MS/s, 16-bit, digital-to-analog converters. AD9777. 160 MSPS w/o interpolation, up to 400 MSPS with 8x interpolation.
  • SD card reader

Daughterboard modules

File:Simple RXTX daughterboards.JPG
Basic RX and Basic TX daughterboards

The USRP family features a modular architecture with interchangeable daughterboard modules that serve as the RF front end. Several classes of daughterboard modules exist: Receivers, Transmitters and Transceivers.

  • Transmitter daughterboard modules can modulate an output signal to a higher frequency.
  • Receiver daughterboard modules can acquire an RF signal and convert it to baseband.
  • Transceiver daughterboard modules combine the functionality of a Transmitter and Receiver.

Receivers only support RX (receiving) and occupy only one RX port:

  • BasicRX, 1–250 MHz Receiver, for use with external RF hardware.
  • LFRX, DC to 30 MHz Receiver
  • TVRX, 50 MHz to 870 MHz Receiver
  • DBSRX, 800 MHz to 2.4 GHz Receiver
  • BURX,[11] 300 MHz to 4 GHz Receiver

Transmitters only support TX and occupy one TX port:

  • BasicTX, 1–250 MHz Transmitter, for use with external RF hardware.
  • LFTX, DC to 30 MHz Transmitter.

Transceivers[12] are both TX and RX and occupy 2 ports:

  • SBX, 400 MHz–4.4 GHz Transceiver, 100 mW output.
  • WBX, 50 MHz–2.2 GHz Transceiver, 100 mW output.
  • RFX400, 400–500 MHz Transceiver, 100+mW output, 45 dB AGC. Can be changed to cover 200 MHz up to 800 MHz with a hardware mod.
  • RFX900, 800–1000 MHz Transceiver, 200+mW output (can be changed into a RFX1800 with basic soldering and flash update).
  • RFX1200, 1150–1450 MHz Transceiver, 200+mW output.
  • RFX1800, 1.5–2.1 GHz Transceiver, 100+mW output (can be changed into a RFX900 with a flash update).
  • RFX2200, 2.0–2.4 GHz Transceiver, 100+mW output.[13]
  • RFX2400, 2.3–2.9 GHz Transceiver, 20+mW output (can be changed into a RFX1200 with basic soldering and flash update).
  • XCVR2450, Dual-band Transceiver, 100+mW output at 2.4–2.5 GHz and 50+mW output 4.9–5.85 GHz.

Applications

File:Usrp.jpg
USRP platform

This is a list of some of the applications the USRP has been used for:

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. http://www.ettus.com/downloads
  4. [1]
  5. GNU Radio + UHD
  6. NI-USRP Driver
  7. MATLAB and Simulink
  8. UHD API
  9. http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/show/host/examples
  10. http://www.ettus.com/downloads/ettus_ds_usrp2_v5.pdf[dead link]
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. https://www.ettus.com/product/category/Daughterboards
  13. http://www.ettus.com/ Announced on 2010-06-11. Retrieved on 2010-09-14.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. http://web.archive.org/web/20090905082547/http://www.gps-sdr.com/source/html/main.html
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. http://juha.vierinen.net/mp3tofm.html
  19. http://www.ruby-forum.com/topic/60548
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. http://www.opendigitalradio.org
  24. Lua error in package.lua at line 80: module 'strict' not found.

External links