From 8:00 PM Friday, July 23 - 7:00 PM CDT Saturday, July 24, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Which USRP Is Right for You?

Overview

If you’re planning to develop a wireless application and need to select a software defined radio (SDR), you may have a few questions, such as:

Where do I start?
Which Universal Software Radio Peripheral (USRP) is right for me?
What software development tool should I use?

This white paper explains the key differences between various USRP models and can help you select the right radio. 

Contents

Software Defined Radio Introduction

Software defined radios are wireless devices commonly used for wireless research prototyping and deployed applications. SDRs are commonly used for communications, next gen radar, EW, over-the-air (OTA) test, and 5G research. Most SDRs have a common hardware architecture including general purpose processors (GPPs), FPGAs, and RF front ends of varying performance.

Diagram of USRP device

Figure 1. Typical Hardware Architecture of an SDR

For host application code development, engineers use these common tools:

  • LabVIEW
  • C/C++ or Python with open-source hardware drivers
  • Open-source SDR frameworks like Redhawk or GNU Radio
  • MathWorks MATLAB® software

The software development tool and operating system can determine which radio is ideal for your application.


Many applications require signal processing hardware acceleration with an FPGA device. Several USRPs offer this capability, and there are many options for FPGA development, as discussed later in more detail.

Figure 2 depicts an overview of common tool flows for software and FPGA development available on the USRP.

Figure 2: Software and FPGA Options for SDRs

The NI and Ettus Research USRP products are a family of software defined radios designed to meet the wide range of wireless prototyping and deployment requirements. Let’s explore the various hardware and software considerations to help you choose the right radio.

 

 

Hardware Options

When choosing the right USRP device for your application, a good place to start is by asking yourself a few questions related to signal parameters, size, weight, power, cost (SWaP-C), performance, and environmental application requirements. Question one: What center frequency and bandwidth do I require?

This question is easy enough to answer, but the next one is more involved: How do I plan to move signal data on or off the device?

This brings into focus the importance of data interfaces. For example, the USRP-290x models are connected to the host through USB and are limited by the maximum sustained bandwidth of that interface, whereas the NI Ettus USRP X410 is equipped with two dual 100 GbE interfaces capable of moving much more data.

To learn more about USRP interface bandwidth considerations, read about USRP Bandwidths and Sampling Rates on the Ettus Research knowledge base.

Most USRP devices have a maximum frequency up to 6 GHz and some higher; however, the NI Ettus USRP X410 can operate in the 7 GHz band. On the lower frequency end, some radios go down to 75 MHz and some as low as DC depending on the analog chipset used. See Figure 15 for a breakdown of each model.

Front view of NI Ettus USRP X410

Figure 3: The Ettus USRP X410, built on an RFSOC, is a high-frequency wideband SDR with a center frequency up to 7.2 GHz.

Cost and Performance Trade-offs

There are trade-offs to consider when choosing a USRP device, specifically cost versus performance. If you require a radio at a great value and you do not have advanced FPGA or wide bandwidth requirements, the NI USRP 290x or Ettus Research B200mini are great options. If you need the widest bandwidth and frequencies up to 7.2 GHz, the NI Ettus USRP X410 may be the best fit. There are many options available in between these two examples. Figure 15 below gives a full break down across all models.

Top view of USRP B200 and USRP B200mini

Figure 4: USRP B200 and USRP B200mini Low SWaP-C SDRs

Stand-Alone or Host Connected SDR Options

The USRP was conceived as a computer peripheral to connect software to the electromagnetic spectrum. Applications have evolved since the first USRPs, and many require an embedded processor onboard. You may require this stand-alone configuration if your application has the SDR physically distributed from a centralized control system or deployed on its own. If stand-alone is a key requirement, you will need to decide if a Xilinx Zynq Multiprocessor System on Chip (MPSOC) or RF System On chip (RFSOC) is sufficient or if you require a powerful Intel X86 processor onboard. Table 1 provides a breakdown of various models and their onboard processors; consult USRP specification documents for more details.

Radio Model Onboard Processor
USRP N320, USRP N321, USRP N310 Xilinx Zynq 7100 MPSOC
USRP E31X Xilinx Zynq 7020 MPSOC
USRP E320 Xilinx Zynq 7045 MPSOC
NI Ettus USRP X410 Xilinx Zynq Ultrascale+ RFSOC ZU28DR
USRP 2974 Intel Core i7 6822EQ (2 GHz Quad Core) 

 

Table 1: Stand-Alone Capable USRP Models with Onboard Processors



Front view of NI USRP 2974 Stand-Alone SDR

Figure 5: USRP 2974 Stand-Alone SDR with Built-in Intel Core i7

Ruggedization and Harsh Environments

Although many USRPs are used in the lab, some applications require operation in outdoors or in harsher environments. If your application requires extended operating temperatures or can’t rely on air-cooling, you may want to consider the Ettus Research branded Embedded Series for your application. Additionally, under the Ettus Research brand, there are options to configure the USRP B205mini for extended temperature range with the use of the industrial grade aluminum enclosure assembly for low SWaP operation. Alternatively, if you have extreme environmental requirements, we would love to connect you with our experienced ruggedization partners; contact us to explore these options.

Front view of Ettus Research ruggedized USRP E320

Figure 6: Embedded Series, USRP E320

Multichannel Synchronization

Many applications require multiple input and multiple output (MIMO) configurations with varying levels of synchronization. Some MIMO systems simply require a shared clock for ADCs and DACs, while others require every channel to be locked to a common clock and local oscillator for a full phase coherent operation.

A common MIMO application is for communications with spatial multiplexing. As this only requires clock synchronization, most USRPs with an external 10 MHz reference clock will be sufficient. An example of such a system was built by The University of Bristol and Lund University when they broke the wireless spectral efficiency world record using an SDR-based massive MIMO system. The Massive MIMO Prototyping System used in this application is composed of NI USRP Software Defined Radio Devices with onboard FPGAs.

Front view of USRP N320 and N321

Figure 7: USRP N320 and N321 with Built-in LO Distribution Interfaces

When a full phase coherent operation is required, you have two different options to consider. If you require up to four channels of receive only operation, the Ettus Research USRP X310 with two TwinRx daughter boards can be setup to share the LO and operate in a phase coherent manner. If more than four channels are required, then consider the Ettus Research USRP N320 and N321 shown in Figure 7. The USRP N321 comes equipped with built-in LO distribution hardware allowing for up to 128 x 128 phase coherent operation: a 32 x 32 configuration example is shown in Figure 8.

Diagram showing phase coherent operation made possible with Ettus Research USRP N321Figure 8: USRP N320 and N321 Multichannel Phase Coherent System

Distributed Multi-Radio Synchronization

In some applications, radios require synchronization but are not co-located. In these instances, a full phase coherent operation is a challenge; however, one can use GPS-based synchronization to get frequency and phase stability with a GPS disciplined oscillator (GPSDO). Many USRP models are equipped with a GPSDO from the factory. To learn more, read “Global Synchronization and Clock Disciplining with NI USRP-293x Software Defined Radio.”

Front view of Ettus Research USRP X310

Figure 9: USRP X310 with Onboard GPS Disciplined Oscillator

Inline Signal Processing and FPGA Considerations

Some applications have processing requirements that are best suited for an onboard FPGA. These applications often have wide signal bandwidths or low/deterministic latency requirements. In these cases, picking a radio with the ability to program the FPGA is important. Many of the USB and lower cost USRP models, such as the USRP B200mini or the N210, are built with smaller FPGA devices and as such do not have the space to add user code. Many of the higher end radios come equipped with Kintex 7 class devices all the way up to the state-of-the-art NI Ettus USRP X410 with the Xilinx Zynq Ultrascale+ RFSOC. Devices built on Xilinx Zynq include additional cores such as onboard SD-FEC, multi-Arm processors, and built-in ADCs and DACs.

USRP Model Onboard FPGA
USRP N320, USRP N321, USRP N310 Xilinx Zynq 7100 MPSOC
USRP E31X Xilinx Zynq 7020 MPSOC
USRP E320 Xilinx Zynq 7045 MPSOC
NI Ettus USRP X410 Xilinx Zynq Ultrascale+ RFSOC ZU28DR
USRP 2974, USRP X310 Xilinx Kintex 7 410T

 

Table 2: Comparison of FPGA Enabled USRPs

FPGA-enabled USRP devices

Figure 10: Comparison of FPGA Resources across NI FPGA Products

 

Software Options

​Programmability is the key feature of an SDR, enabling one to take a radio peripheral and turn it into an advanced wireless system. The USRP is the most open and versatile SDR on the market, helping engineers to build systems with a wide variety of software development tools on both the host and on the FPGA.

Host Programming Considerations

As shown in Figure 2 above, there are a variety of options to program the host of an SDR-based system.

Programming on LabVIEW with NI-USRP Driver

LabVIEW is a graphical dataflow programming environment well-suited for designing and implementing communications algorithms. At the most fundamental level, LabVIEW uses the NI-USRP driver to both specify USRP hardware configuration and send and receive properly formatted baseband I/Q data ready for host-side signal processing.

​If LabVIEW is your preferred development environment, it should be noted that although it does have some Linux-based OS support, it’s predominantly a Microsoft Windows-based tool. Additionally, some Ettus Research branded USRP models and configurations may not be supported; see Figure 15 below.

Programming on Ettus Research USRPs using LabVIEW with with NI-USRP driver API

Figure 11: Screen of a LabVIEW Block Diagram with the NI-USRP Driver API

Programming with Open-Source Workflows: USRP Hardware Driver (UHD) and GNU Radio

Many SDR users prefer to program USRP hardware with text-based and open-source tool flows built on C/C++ and Python. All NI and Ettus Research USRP models support the USRP hardware driver (UHD), allowing for easy integration to open-source community developed tools such as GNU Radio.

GNU Radio is an open-source tool built solely for SDR developers. While the USRP is not the only radio supported with GNU Radio, it’s the most popular and tested. To learn more about GNU Radio, visit gnuradio.org, and to see all the existing community shared IP for GNU Radio, visit cgran.org.

Screenshot of open-source software for SDR developers

Figure 12: GNU Radio Companion Flow Graph

Programming with MATLAB

If MATLAB is your preferred tool for programming, several USRP models are supported with the MathWorks Communications Toolbox™. Supported models include, B200, B200mini, X300, N200, and N300 Series. In addition, engineers can directly embed MATLAB code into LabVIEW using the MATLAB script node.

FPGA Programming Considerations

Many USRPs come equipped with a large FPGA with sufficient free capacity to allow users to embed inline signal processing specific to their application. As described in the hardware section, some USRPs come equipped with Xilinx Zynq SOC devices and some with traditional fabric FPGAs such as the Kintex 7. There are two ways to gain access to the FPGA on USRPs: LabVIEW FPGA and the RF Network on Chip (RFNoC) framework.

Unlike many FPGA development boards or COTS FPGA boards, USRPs are built on a common FPGA framework and provide a higher-level abstraction. This removes some of the complexity encountered when building an FPGA-based system from a bare-bones FPGA board support package.

LabVIEW FPGA

LabVIEW FPGA is an add-on extension for LabVIEW allowing for graphical programming of the FPGA on NI USRP RIO devices. Although one must be familiar with FPGA concepts such as fixed-point math and clocked logic, LabVIEW abstracts hardware and data interfaces and simplifies register configuration and data movement. An advantage of LabVIEW FPGA is the ability to program both the host and FPGA with a unified development tool chain.

Do you have legacy IP you’d like to leverage? LabVIEW FPGA can import external VHDL or Verilog through Component Level IP (CLIP) nodes, allowing for non-LabVIEW IP to be imported. Additionally, LabVIEW allows for Xilinx Vivado project export for expert users working within the Vivado tool directly.

​If LabVIEW FPGA is your tool of choice for host programming, note that it is limited to Windows-based operating systems. Many Ettus Research devices such as the USRP N300 and USRP E300 series are not supported under LabVIEW or LabVIEW FPGA. See Figure 15 below for a complete list.

LabVIEW screenshot of an FPGA block diagram

Figure 13: Simple LabVIEW FPGA Block Diagram

RF Network on Chip (RFNoC) Framework

For open-source USRP users, the preferred way to program the FPGA is through the RFNoC Framework. RFNoC, like LabVIEW FPGA, is a data interface and command abstraction framework to simplify adding IP to your USRP without having to rebuild the entire FPGA board support package from scratch. As the name suggests, data flows through the FPGA from the radio as a compressed header network package. At the heart of the RFNoC framework is a crossbar interface allowing the user to simply plug new IP into the crossbar and route data to other IP blocks or to and from the host machine. This network crossbar design removes the complexity of passing data and commands to and from the host.

If working in Vivado and using RFNoC is your preferred path to program the FPGA of your USRP, consider the USRP X300 series, USRP E300 series, USRP N300, and the NI Ettus USRP X410 for your application.

Diagram showing RFNoC workflow

Figure 14: RFNoC Conceptual Block Diagram Integrated with GNU Radio


Figure 15: NI and Ettus Research USRP Models Matrix

Conclusion

SDRs are powerful tools for wireless research, design, prototyping, and deployment. Many options exist, and choosing the right radio for your application has many considerations. However, with a careful assessment of the various software and hardware factors outlined in this white paper, you’re certain to work with the most popular open SDR on the market.

Next Steps