[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] [USRP-users] [USRP N200] How can I connect USRPs

From: Marcus Müller
Subject: Re: [Discuss-gnuradio] [USRP-users] [USRP N200] How can I connect USRPs to make a wireless network?
Date: Wed, 11 May 2016 11:32:58 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

Hi Mariam,

I'm cross-posting this to the discuss-gnuradio list; this is mostly about SDR implementation on GNU Radio, it seems, and very little about usage of the USRP. If you're not signed up to discuss-gnuradio, you should/could do so [1].

On 11.05.2016 10:23, Mariam Musavi via USRP-users wrote:


Since, i belong to a wireless communication course, my experiment requires to connect 13 nodes, simulating a wireless network.

Fair warning: this mail's going to smother you in aspects of wireless network design; I get the feeling this might be an early course on wireless communication, so don't worry if you're not familiar with all of these terms.
The conclusion of all this is that you should probably read up a bit on a few "classical" MAC schemes (Aloha (slotted and unslotted), CSMA, TDMA (warning: that one sounds simple, but isn't unless you can actually synchronize devices, which is hard), CDMA), and pick one at will. Tell us which one you've picked – that'll give us a base for constructive discussion.

Out of my own experience: Build something simple first, with lots of margins. Unslotted Aloha with half a second of observation doesn't sound impressive at first, when you compare it to wifi, but as soon as it works, it's very satisfying.
Better build one "basic" system that works and learn enough on the way to do things better the next time (and for the sake of grades, write a good documentation on what you've learned!) then write a non-functional but theoretically impressive system.

More specifically, In which every USRP N200 node(with unique IP address) is connected in such a way (please see figure attached here with). My queries to seek from you are:

1. Using GNU radio software, how can i make connections(shown in figure) between all thirteen USRP nodes?

Well, you'll be designing a whole communication network. Remember, the USRPs are software defined radio peripherals, which means they are not communication devices as it – (idealizing) they just give you the "raw" signal as seen by the antenna, and allow you to send the "raw" signal as it should be on the air. No connections, no data links, no packets, no addresses… unless you write/use software that uses the USRPs to make them function as the "radio head" of such a device. You can't just pipe in bits to the USRP and get the same bits out of a different one.

What you call a "connection" is a "mental" concept. In fact, between two USRPs, there's only a mixture of electromagnetic waves, so you'll have to think in different "layers" of abstracting these.
  1. Physical Layer
  2. MAC Layer
  3. Data link layer (and this is where the term "connection" actually starts to make sense)
  4. Network Layer

Hence, to make a "connection", you'll first need to have a concept for the 2 layers below.

So you'll consider the "full stack" of digital communications:
  • pyhsical layer+
    • Frequency
    • Bandwidth
    • Modulation / Pulse Shaping / Subcarrier systems
    • Channel coding
  • Medium Access (MAC) layer
    • Arbitration modelling: What's going to happen to your network under high load, what with sparse nodes?
    • Frame modelling
  • Data link layer (and to be honest, I'm pretty sure you'd still be able to ace your course if you don't consider things concerning this overly much)
    • ACKs? NACKs? ARQ?
    • Checksums?
    • time/frame count windows for ACK/NACK/ARQ?
  • network layer
    • What kind of network is this? For example:
      • Emergency broadcast (maybe including relaying)?
      • high-throughput network for continous usage (think: wifi)?
      • Not actually decentralized, i.e. there's actually one node that takes the job of a "base station"?
    • Is there a need for relaying?
    • Can each node see each other?
    • Do all nodes communicate with each other, or only with their neighbors (define: neighbor)?
    • routing?
    • node discovery? arbitration phases?
    • communication of topology amongst nodes?
    • network coding? (ok, that one is pretty advanced)

Generally, designing a wireless network from scratch is a big endeavour, and I'd recommend you look at existing standards that do a thing that is wireless to your networks' purpose. You'll build a completely different network if what you want to model is wireless doorbells and remote door openers communicating with each other than what you'd want to model if you've got a set of PCs communicating large file contents.

2. How can i assign channels(in figure see blue wireless links are 21 channels each centered uniquely between BW 828MHz to 924MHz) to each USRP node(is it done within GNU radio software/is it done writing a python script separately) if yes how?

That depends on how you model your network, see above. Basically, you're already describing something like an arbitration scheme.

Notice that for decentral networks, it's pretty rare to assign completely separate channel for single links.
That's because your single link can then never use more than (total bandwidth)/(number of total links), even if no one else is talking in the network, and also, because it's non-trivial to derive a suitable channel allocation – in theory, for 13 nodes, you get $\binom{13}{2}$ potential links (if you do separate up- and downlinks on each, ie. A->B is a different channel than A<-B, then twice that), i.e. lemmecalculatethis... 78 (or 156) potential links. But you'd probably not use all of these, and not all of these are usable at all, probably. So the process of chosing the 21 links you actually want to use sounds pretty complicated, and the process of telling each node which links it's part of, and what to do when wanting to communicate with a node that doesn't have a direct link isn't easy, either.

There's a whole lot of theory regarding maximal throughput for such networks, modelling of optimal strategies etc.

I can't really recommend anything specific other than getting really really used to GNU Radio – I think I point these out quite regularly, but if you haven't read them: the Official GNU Radio Guided Tutorials will take you from zero to communication including set up of USRPs in one go [2]; just read them from first to last; they are consecutive.

There's a few network standard implementation (and implementation stubs) existing for GNU Radio, but as this all depends on what you actually want to model, I can't recommend to look at something specific until you specify the general architecture your network should have.

[1] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[2] http://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials

reply via email to

[Prev in Thread] Current Thread [Next in Thread]