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:
This white paper explains the key differences between various USRP models and can help you select the right radio.
Universal software radio peripherals, or USRPs, are a family of NI software defined radios. Software defined radios are wireless devices commonly used for wireless research prototyping and deployed applications. SDRs are commonly used for communications, next-gen radar, electronic warfare (EW), over-the-air (OTA) test, and advanced wireless communications research. Most SDRs have a common hardware architecture including general-purpose processors (GPPs), FPGAs, and RF front ends of varying performance. NI offers a variety of different USRP hardware models, ranging from small form factor, low-cost devices to high-end, multichannel radios with large FPGAs. All NI USRPs have the same core hardware architecture, shown in Figure 1.
Figure 1. Typical Hardware Architecture of an SDR
For host application code development, engineers use these common tools:
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
NI and Ettus Research Universal Software Radio Peripheral (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.
When choosing the right USRP device for your application, a good place to start is by asking 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 question two 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 Ettus USRP X440 is equipped with two 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; the NI Ettus USRP X420 offers the highest frequency coverage with support for up to 20 GHz. 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 Table 3 for a breakdown of each model.
Figure 3. The Ettus USRP X420, built on an RFSoC, is a high-frequency wideband SDR with a center frequency up to 20 GHz.
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 higher than 6 GHz, the NI Ettus USRP X410 offers support up to 7.2 GHz, the OBX daughterboard for the X300 series motherboards supports up to 8.4 GHz, and the X420 supports up to 20 GHz. There are many options available in addition to these examples. Table 3 gives a full breakdown across all models.
Figure 4. USRP 2901 and USRP B200mini Low SWaP-C SDRs
If you require the widest possible instantaneous bandwidth, the NI Ettus USRP X440 may meet the need. There are many options available beyond these examples; Table 3 provides a full breakdown across all models.
Figure 5. The Ettus USRP X440 offers up to 1.6 GHz bandwidth per channel, with a direct sampling transceiver architecture.
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, refer to Table 1 to help you to decide whether an AMD Zynq™ Multiprocessor System on Chip (MPSoC) or RF System On Chip (RFSoC) is sufficient—or if you require a powerful Intel® X86 processor onboard, as shown in Figure 6.
| Radio Model | Onboard Processor |
|---|---|
NI USRP N320, NI USRP N321, NI USRP N310 | AMD Zynq 7100 MPSoC |
NI USRP E320 | AMD Zynq 7045 MPSoC |
NI Ettus USRP X410, NI Ettus USRP X420, NI Ettus USRP X440 | AMD Zynq UltraScale+™ RFSoC ZU28DR |
NI USRP 2974 | Intel Core™ i7 6822EQ (2 GHz quad core) |
Table 1. Stand-Alone-Capable USRP Models with Onboard Processors
Figure 6. USRP 2974 Stand-Alone SDR with Built-in Intel Core i7
Although many USRPs are used in the lab, some applications require operation in outdoor or other harsh environments. If your application requires extended operating temperatures or cannot rely on air cooling, consider the Ettus Research Embedded Series for your application. Additionally, under the Ettus Research brand, you’ll find configurable options for the USRP B206mini 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 can help connect you with our experienced ruggedization partners; contact us to explore these options.
Figure 7. Embedded Series, USRP E320
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 system used in this application is composed of NI USRP software defined radio devices with onboard FPGAs.
Figure 8. USRP N320 and N321 with Built-In LO Distribution Interfaces
When a full phase coherent operation is required, you have a few options to consider. If you require up to four channels of receive-only operation, the Ettus Research USRP X310 with two TwinRX daughterboards can be set up to share the LO and operate in a phase coherent manner. If you require up to 1 GHz of bandwidth or frequency coverage above 6 GHz, the X420 supports LO sharing and can achieve phase coherency of less than one degree root mean square (RMS). The X420 has two RF channels and can be used to build larger channel count systems. If more than four channels are required, then consider the Ettus Research USRP N320 and N321 (shown in Figure 8) or the NI Ettus USRP X440. Since the USRP X440 is built with a direct-sampling intermediate frequency (IF) architecture, synchronization can be achieved by sharing sample clocks across up to eight transmit and eight receive channels. It is prepared for multidevice synchronization to an externally provided reference clock signal.
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 9.
Figure 9. USRP N320 and N321 Multichannel Phase Coherent System
In some applications, radios require synchronization but are not co-located. In these instances, a full phase coherent operation is a challenge; however, GPS-based synchronization can be used 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.”
Figure 10. USRP X310 with Onboard GPS Disciplined Oscillator
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 B206mini, are built with smaller FPGA devices and 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 Ettus USRP X410, X420, and X440 with the AMD Zynq UltraScale+ RFSoC. Devices built on AMD Zynq include additional cores such as onboard soft-decision forward error correction (SD-FEC), multi-Arm® processors, and built-in ADCs and DACs.
| USRP Model | Onboard FPGA |
|---|---|
USRP N320, USRP N321, USRP N310 | AMD Zynq 7100 MPSoC |
AMD Zynq 7045 MPSoC | |
Ettus USRP X410, USRP X420, USRP X440 | AMD Zynq UltraScale+ RFSoC ZU28DR |
USRP 2974, USRP X310 | AMD Kintex 7 410T |
Table 2. Comparison of FPGA-Enabled USRPs
Figure 11. Comparison of FPGA Resources Across NI FPGA Products
Programmability is the key feature of an SDR, enabling a user 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 the FPGA.
As shown in Figure 2 earlier in this paper, there are a variety of options to program the host of an SDR-based system.
LabVIEW is a graphical data flow 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 as well as to 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 USRP models and configurations may not be supported; see Table 1.
Figure 12. LabVIEW Block Diagram with the NI-USRP Driver API
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, shown in Figure 13.
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.
Figure 13. GNU Radio Companion Flow Graph
If MATLAB is your preferred tool for programming, MATLAB and MathWorks Simulink™ software connect to the USRP family of software defined radios to provide a radio-in-the-loop environment as well as support different USRP models through different add-on solutions.
USRP N3xx, X3xx, and X4xx are supported by Wireless Testbench, which offers support for testing wideband wireless systems and spectrum monitoring, featuring high-speed data transmission and capture. Wireless Testbench also enables you to integrate custom IP blocks such as filters, synchronizers, and more with RF Network-on-Chip (RFNoC™) into the signal processing chain on the USRP FPGA (with MathWorks HDL Coder™).
USRP N2xx and B2xx devices are supported by MathWorks Communications Toolbox™, enabling the design and prototyping of SDR systems. This support enables you to transmit and receive over-the-air signals with MATLAB and Simulink, aiding transceiver design and enabling waveform testing.
USRP E310 device support is provided by Communications Toolbox, facilitating the prototyping and testing of SDR systems. This support enables HDL code generation for the E310, enabling the deployment of wireless systems on this radio.
Many USRPs come equipped with a large FPGA with sufficient free capacity that allows users to embed inline signal processing specific to their application. As described in the hardware section, some USRPs come equipped with AMD 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 (available on select USRPs) 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 is an add-on extension for LabVIEW that allows graphical programming of the FPGA on NI USRP RIO devices; a simple block diagram is shown in Figure 14. Although users 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 AMD 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 Table 3 for a complete list.
Figure 14. Simple LabVIEW FPGA Block Diagram
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. 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 plug new IP into the crossbar and route data to other IP blocks or to and from the host machine, as depicted in Figure 15. 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, or the Ettus USRP X400 series for your application.
Learn more about how you can use RFNoC, UHD, and USRP N300 devices to prototype multichannel wireless communication systems.
Figure 15. RFNoC Conceptual Block Diagram Integrated with GNU Radio
Deploy custom SDR algorithms on the FPGA of an NI USRP radio using a Simulink workflow. Run and verify your design using MATLAB objects and functions.
Table 3 shows a matrix view of different USRP hardware and supported software.
Table 3. USRP Hardware and Supported Software
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 can make an informed decision and work with the most popular open SDR on the market.
| Type | NI USRP Model | NI Ettus USRP Model | #Tx | #Rx | Frequency Range | BW | LabVIEW | LabVIEW FPGA | OSS-UHD | OSS-FPGA | Wireless Testbench |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Stand-Alone, FPGA Enabled High Performance | USRP X440 | 8 | 8 | 30 MHz - 4 GHz | 1.6 GHz | — | — | ||||
| USRP X420 | 2 | 2 | 10 MHz – 20 GHz | 1 GHz | — | — | |||||
| USRP X410 | 4 | 4 | 1 MHz - 7.2 GHz | 400 MHz | |||||||
| N/A | USRP N320, USRP N321 | 2 | 2 | 3 MHz - 6 GHz | 200 MHz | — | |||||
| N/A | USRP N310 | 4 | 4 | 10 MHz - 6 GHz | 100 MHz | — | |||||
| USRP-2974 | N/A | 2 | 2 | 10 MHz - 6 GHz | 160 MHz | — | |||||
| Host Connected, FPGA Enabled, High Performance | USRP-2944 | USRP X310 + UBX | 2 | 2 | 30 MHz - 6 GHz | 160 MHz | |||||
| USRP-2945 | USRP X310 + TwinRX | 0 | 4 | 10 MHz - 6 GHz | 80 MHz | ||||||
| USRP-2954 | USRP X310 + UBX + GPSDO | 2 | 2 | 30 MHz - 6 GHz | 160 MHz | ||||||
| USRP-2955 | USRP X310 + TwinRX +GPSDO | 0 | 4 | 10 MHz - 6 GHz | 80 MHz | ||||||
| NA | USRP X310 + OBX | 2 | 2 | 10 MHz - 8.4 GHz | 160 MHz | — | — | ||||
| Low SWAP Stand Alone Embedded | N/A | USRP E320 | 2 | 2 | 70 MHz - 6 GHz | 56 MHz | — | — | — | ||
| Low SWAP Low Cost USB Connected | N/A | USRP B206mini | 1 | 1 | 70 MHz - 6 GHz | 56 MHz | — | — | — | ||
| USRP-2900 | USRP B200 | 1 | 1 | 70 MHz - 6 GHz | 56 MHz | — | — | — | |||
| USRP-2901 | USRP B210 | 2 | 2 | 70 MHz - 6 GHz | 56 MHz | — | — | — | |||