Introduction to USRP
From Invihertz
Contents |
The USRP
Imagine a device which can be morph into a cell pone, a GSM base station, radio receiver, etc. The USRP (pronounced usurp) or "Universal Software Radio Peripheral", is a board designed by Matt Ettus for making Software-defined Radio or SDR (We will talk about it later).
The board incorporates ADC (Analog-to-digital), DAC converters (Digital-to-analog), a million gate-field programmable gate array (FPGA), a programmable USB 2.0 (USRP1) or Ethernet GB controller and some forms of RF front end. The USRP1 is up to four daughter board : 2 for reception and 2 for transmission, whereas the USRP2 is only up to one daughter board for reception and one for transmission.
Figure 1. USRP1 Block Diagram
Advantages
- This kind of peripheral is low-cost compared to other radio devices we should buy to exploit a large range of frequencies, thanks to Software-defined Radio and its flexibility.
- There are many developers around, so you should not feel like the only one as a COBOL developer (just joking...!).
- Using with a Software Radio environment, it gives you a lot possibility.
Differences between USRP1 and USRP2
If you look at the Ettus website, normally you will see two kinds of USRP (version 1 et 2). Beware, these versions have some important differences :
| USRP1 | USRP2 | |
|---|---|---|
| Interface | USB 2.0 (32 MB/s half duplex) | Gigabit Ethernet (1000 MBit/s) |
| FPGA | Altera EP1C12 | Xilinx Spartan 3 2000 |
| RF Bandwidth to/from host | 8 MHz @ 16bits | 25 MHz @ 16bits |
| Cost | $700 | $1400 |
| ADC Samples | 12-bit, 64 MS/s | 14-bit, 100 MS/s |
| DAC Samples | 14-bit, 128 MS/s | 16-bit, 400 MS/s |
| Daughterboard capacity | 2 TX, 2 RX | 1 TX, 1 RX |
| SRAM | None | 1 Megabyte |
| Power | 6V, 3A | 6V, 3A |
The USRP is little bit expensive, but it is one of the powerful and flexible peripheral for Software Radio. Users can use different daughter boards or make it for specific needs.
ADC/DAC section
The received signal is sampled by the ADC and converted to digital values depending on the ADCs dynamic range.
In the USRP1, there are 4 high-speed 12-bit AD converters. The sampling rate is 64M samples per second. In principle, it could digitize a band as wide as 32MHz. The AD converters can bandpass-sample signals of up to about 200MHz. If several decibels of loss is tolerable, then, IF frequency as high as 500 MHz can be digitized. However, if we sample a signal with the IF larger than 32MHz, we will introduce aliasing and actually the band of the signal of interest is mapped to some places between -32MHz and 32MHz. Sometimes this can be useful, for example, we could listen to the FM stations without any RF front end. The higher the frequency of the sampled signal, the more the SNR will be degraded by jitter. 100MHz is the recommended upper limit. The USB connection sustains 32 MB/s in half duplex, so transmission and reception of samples isn’t possible synchronously The full range of the ADCs is 2V peak to peak, and the input is 50 ohms differential. This is 40mW, or 16dBm. There is a programmable gain amplifier (PGA) before the ADCs to amplify the input signal to utilize the entire input range of the ADCs, in case the signal is weak. The PGA is up to 20dB. With gain set to zero, full scale inputs are 2 Volts peak-to-peak differential. When set to 20 dB, only .2 V p-p differential input signal is needed to reach full scale. This PGA is software programmable. If signals are AC-coupled, there is no need to provide DC bias as long as the internal buffer is turned on. It will provide an approximately 2V bias. If signals are DC-couple, a DC bias of VCC/2 (1.65V) should be provided to both the positive and negative inputs, and the internal buffer should be turned off. The ADC VREF provides a clean 1 V reference.
At the transmitting path, there are also 4 high-speed 14-bit DA converters. The DAC clock frequency is 128 MS/s, so Nyquist frequency is 64MHz. However, we will probably want to stay below it to make filtering easier. A useful output frequency range is from DC to about 44MHz. The DACs can supply 1V peak to a 50 ohm differential load, or 10mW (10dBm). There is also PGA used after the DAC, providing up to 20dB gain. This PGA is software programmable. The DAC signals (IOUTP_A/IOUTN_A and IOUTP_B/IOUTN_B) are current-output, each varying between 0 and 20 mA. They can be converted into differential voltages with a resistor.
The USRP2 use a Dual 14-bit LTC2284 at 100MS/s as its main ADC. There is an auxiliary 2 channels, 12-bit ADC (the AD7922) for each daughterboard connector. The main DAC is the Dual 16-bit AD9777 fed with 100 Ms/s and produces 400 Ms/s based analog output. The auxiliary DACs are the dual 12-bit AD5623. As we can see, the Gb-Ethernet allow a significant higher troughput for the USRP2 compared to USRP1 with USB 2.0 and the theoretically data rate of 125 MB/s allows for a theoretical (complex) RF bandwidth of about 31,25 MHz.
The FPGA
I know that we say that a lot, but it's very important for a GnuRadio user to understand what goes to the FPGA. So the FPGA "plays a key role in the GNU Radio system" (according to GnuRadio documentation). The FPGA is like a small, massively parallel computer that performs high bandwidth math to reduce the data rates to something we can manageably transfer over the USB2.0 link (USRP1) or Gb-Ethernet (USRP2). With the USRP1, it can only be reprogrammed other the USB2 bus, and with the USRP2 the FPGA has to be loaded as well as the firmware on the SD Card.
The FPGA includes a Digital Down-Converter (DDC) implemented with Cascaded Integrator-Comb (CIC) filters, which are very high-performance filters that use only adds and delays. The purpose of DDCs is to mixe the signal the signal to a lower frequency and reduce the sample rate while retaining all the information.
Figure 2. Digital Down Converter Block Diagram
As we can see, there are two signal I (In-Phase) and Q (Quadrature, dephased by 90°). All you should know is that with this method, it is possible to demodulate every type of modulation. So we can receive AM, FM, BLU, etc. And the digitized signal will be converted thanks to a DAC, amplified and reproducted on a speaker (in the case of Radio FM, for example). With a decimation factor equal to N, so at the digital spectrum the low pass filter selects out the band [-Fs/N, Fs/N], and then the down sampler de-spread the spectrum from [-Fs, Fs] to [-Fs/N, Fs/N]. Indeed, We can simply subtain 32MB/s across the USB in the case of USRP1.
In transmit direction, the exact inverse is performed using Digital Upp Converters (DUC).
Between ACD and DDC, there is something very important to select which ACD is connected to each DDC input, and it's a MUX.
Figure 3. Block diagram with the MUX
Mux value:
3 2 1
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+-------+-------+-------+-------+-------+-------+-------+-------+
| Q3 | I3 | Q2 | I2 | Q1 | I1 | Q0 | I0 |
+-------+-------+-------+-------+-------+-------+-------+-------+
Each 4-bit I field is either 0,1,2,3
Each 4-bit Q field is either 0,1,2,3 or 0xf (input is const zero)
All Q's must be 0xf or none of them may be 0xf
The MUX is like a circuit switcher and we can control it using usrp.set_mux() method from GnuRadio in Python. We tell each DDC input (I0, Q0, I1 ... I3, Q3) which ADC it is connected to by using 4 bits (0, 1, 2, 3 or 0xf). A 32-bit integer is sufficient for all 8 DDC inputs to know to which ADC they are connected. Of course an integer in hexadecimal system will be more convenient if we want to use the set_mux() method. For most real sampling applications, the Q input of each DDC is a constant zero. So quite often we don't need to modify the standard configuration of the FPGA. Actually it is anticipated that the majority of USRP users will never need to use anything other than the standard FPGA configuration.
Daughter boards
About daughter boards and USRP, a lot of people ask the question for example: “What is the precise set to study GSM”. All you should know is that every radio device uses a bandwidth to communicate and everything depends on modulation, coding and encryption. But is not as simple as it is shown on conferences and papers. Indeed, you need to get this step-by-step, reading a lot and practicing.
On the USRP1 motherboard there are 4 slots and 2 slots on the USRP2, and each slot has access to the hight-speed AD/DA converters. You can plug Rx, Tx, RFx daughter board (DAC outputs for TX, ADC inputs for RX).
| BasicTX and BasicRX | $75.00 | 1 MHz to 250 MHz Transmitter and Receiver | Designed for use with external RF frontends as an intermediate frequency (IF) interface. The ADC inputs and DAC outputs are directly transformer-coupled to SMA connectors (50Ω impedance) with no mixers, filters, or amplifiers. |
|---|---|---|---|
| LFTX and LFRX | $75.00 | DC to 30 MHz Transmitter and Receiver | The LFTX and LFRX are very similar to the BasicTX and BasicRX, respectively, with 2 main differences. Because the LFTX and LFRX use differential amplifiers instead of transformers, their frequency response extends down to DC. The LFTX and LFRX also have 30 MHz low pass filters for antialiasing. |
| TVRX | $100.00 | 50 MHz to 860 MHz Receiver | The TVRX daughterboard is a complete VHF and UHF receiver system based on a TV tuner module. Simply connect an antenna, and you can receive a 6 MHz wide block of spectrum from anywhere in the 50-860 MHz range. All tuning and AGC functions can be controlled from software. This board is useful for much more than just receiving television! Typical noise figure is 8 dB. |
| DBSRX | $150.00 | 800 MHz to 2.4 GHz Receiver | The DBSRX is a complete receiver system for 800 MHz to 2.4 GHz with a 3-5 dB noise figure. The DBSRX features a software controllable channel filter which can be made as narrow as 1 MHz, or as wide as 60 MHz. The DBSRX frequency range covers many bands of interest, including all GPS and Galileo bands, the 902-928 Mhz ISM band, cellular and PCS, the Hydrogen and Hydroxyl radio astronomy bands, DECT, and many more. The DBSRX is MIMO capable, and can power an active antenna via the coax. |
| RFX400 | $275.00 | 400 to 500 MHz Transceiver | Coverage of public safety, low-power unlicensed devices, motes, amateur radio and TV bands. |
| RFX900 | $275.00 | 750 to 1050 MHz Transceiver | For use with cellular, paging, motes and two-way radio, in addition to the ISM band. |
| RFX1200 | $275.00 | 1150 to 1450 MHz Transceiver | Coverage of navigation, satellite, and amateur bands. |
| RFX1800 | $275.00 | 1.5 to 2.1 GHz Transceiver | Coverage of DECT, US-DECT, and PCS (including unlicensed) frequencies. |
| RFX2400 | $275.00 | 2.3 to 2.9 GHz Transceiver | The RFX2400 comes with a bandpass filter around the ISM band (2400-2483 MHz). The filter can be easily bypassed, allowing for coverage of the full frequency range. |
| XCVR2450 | $400.00 | 2.3 to 2.9 GHz Transceiver | The XCVR2450 covers both the ISM band at 2.4 GHz and the entire 4.9 to 5.9 GHz band, including the public safety, UNII, ISM, and Japanese wireless bands. |
| WBX | $450.00 | 50 MHz to 2.2 GHz Transceiver | The frequency range of the WBX covers many bands of interest, including white spaces, broadcast television, public safety, land-mobile communications, low-power unlicensed devices, wireless sensor networks, cell phones and six amateur radio bands. |
Next
References
- Exploring GnuRadio
- Ettus Website
- GnuRadio : USRP Introduction
- Matthias Fähnle's thesis (SDR with GnuRadio and USRP2)
- AD9860/AD9862


