Because concurrent cooperative transmission (CCT) is not supported by any current standard, we have constructed an ad hoc network of 20 software defined radio (SDR) nodes on which to develop CCT PHY, MAC and network layer protocols.
Fig. 1 shows a SARL SDR node, which is composed of a GNU radio and a MICAZz mote. The GNU radio includes a USRP1, a 2.4 GHz band RF Daughterboard, and a PC. The Daughterboard is the RF front end, which performs RF-IF conversion. The USRP1 has an ADC/DAC and an FPGA. The FPGA converts the IF signal to baseband and performs certain other minor radio functions. The baseband samples are transmitted over a USB connection to and from the PC, where the baseband signal processing is performed. The MICAz is used only for telemetry and experiment setup, that is, it reports information about the SDR, wirelessly, in a different part of the ISM band, so that its signals do not interfere with the GNU radio’s signals. The MICAz is used to set the GNU radio parameters, such as its frequency of operation and, in some experiments, what diversity channel it should use. The telemetry network (TeNt) is described in more detail below.
One or more SDR Nodes can be placed on rolling carts, as shown in Fig. 2, for ease of setting up desired network topologies. Fig. 3 (a) shows an example multi-hop topology, where some carts have four nodes (to test cooperative transmission from a small cluster), and some carts have only one node, to enable comparison between CT-based and non-CT-based (i.e. conventional) routing protocols. Fig. 3 (b) shows the carts placed for an experiment.
The software Python and C++ is used to code the SDR modules.
Telemetry Network (TeNt)
The purpose of the TeNt is to wirelessly control the GNU radio parameters and observe the operations of all the GNU radios in the network without interfering with them. The TeNt is a MICAz network and a graphical user interface (GUI). The TeNt enables quick topology changes in the GNU radio network, and a convenient way to set up experiments. As shown in Fig. 4, the MICAz has separate wired USB connections to both the PC and the USRP1, to monitor GNU computations that are being done on both platforms without interfering with the GNU radio USB connection between the USRP1 and the PC. A custom expansion connector was created to provide the MICAz-USRP1 connection; the connector also replaces the Programming Board (MIB510) and provides power to the MICAz. Examples of telemetry information include the packet error rate (PER), RSSI, and the number of packets transmitted. Examples of control parameters include frequency, transmit power, and receiver gain.
The TeNt has a multi-hop architecture with a single Base Station (BS). The BS is a MICAz node that is connected to a PC. Since the range of cooperative transmission of the GNU radios is longer than the range of the MICAz’s, additional MICAz nodes that are not connected by wire to a GNU radio are distributed between GNU radios to provide connectivity in the MICAz network.
An example of the graphical user interface (GUI) is shown in Figure 5. The GUI user drags and drops the nodes to their approximate locations in the network. The node colors indicate which nodes participated in a concurrent cooperative transmission (CCT).
Fig. 6 shows how the relative firing or transmission times in CCT are measured for small cluster sizes. One USRP1 board (the one in the center) is not used as a GNU radio node, but instead monitors four I/O pins; one pin is on each of the USRP1 boards of the GNU radios in the cluster. The I/O pin changes state when the GNU radio transmits.
Figure 7 shows nine GNU radios on a cart that is used for range extension measurements. Each GNU radio on the cart receives the signals coming from a relay cluster, and records a packet error rate (PER). Because the receivers are sufficiently separated in space, each PER corresponds to an independent multi-path fading realization.
We are indebted to the three students who spent one year building our SDR network testbed. Steve James William, who did the networking programming, Yong Jun Chang, who did the physical layer programming, and Vivek Agate, who created the TeNt.
Last revised on August 9, 2010.