|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|
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 .
On 11.05.2016 10:23, Mariam Musavi via USRP-users wrote:
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.
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.
Hence, to make a "connection", you'll first need to have a
concept for the 2 layers below.
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.
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 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 ; 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.
|[Prev in Thread]||Current Thread||[Next in Thread]|