Radio Protocol stacks

Hi all ,

I am researching existing open source, generic and simple radio protocol standard/ stacks for a low data rate transmission (~150kbps). Has any one come across any such thing?

BR

Rate

Reply to
ratemonotonic
Loading thread data ...

Any particular requirements ?

- Single master or multi master ?

- Point-to-point, or any-to-any ?

- What do you want to run on top ? TCP/IP traffic, or a simple char stream, or ...?

- Encrypted or not ?

- Automatic discovery or manual setup ?

- One-way to two-way radio ?

Depending on your requirements, 802.11 may be appropriate. If you need something simpler, you could take a subset. The core functionality (data frames + ack) combined DCF backoff is fairly straightforward.

Reply to
Arlet Ottens

Check Contiki's Rime, "a lightweight communication stacks designed for low-power radios."

formatting link

Roberto Waltman

[ Please reply to the group, return address is invalid ]
Reply to
Roberto Waltman

Hi Arlet,

Thanks ! Very articulate questions ! the answers -

1) Single master - Hub-Spoke appraoch. 2) Point to point 3) Preferably TCP/IP traffic for error correction etc. 4) No automatic discovery 5) Two way radio - I am thinking of TDMA allocation for each node and the time allocated to each node further subdivided for two way.

If I use 802.11 protocol or leverage on it , are there any commercial implications to it? or are we free to use it?

I am also looking at 802.15.3 /zigbee as it matches the data rate I am looking for. Has anyone used it?

BR Rate.

Reply to
ratemonotonic

WooooW I this is great! I didnt event know software like this was available. I have been looking for a non-premptive event driven kernel for a long time now. Thanks roberto!

Reply to
ratemonotonic

I'm not using Contiki, but I am using the underlying protothreads facility, and it's working very nicly so far. Protothreads is especially cool if you enable usage of gcc's "pointer to label" feature: no more restrictions on usage of the switch statement inside a protothread.

--
Grant Edwards                   grante             Yow! I'm having an
                                  at               EMOTIONAL OUTBURST!!  But,
                               visi.com            uh, WHY is there a WAFFLE
                                                   in my PAJAMA POCKET??
Reply to
Grant Edwards

Not very clear on what protothreading is exactly , but I am going to read about it very soon! I am assuming it is a event/interrupt driven non-premptive protocol?

Reply to
ratemonotonic

Sorry, I should have included a link:

formatting link

It's the threading facility that Contiki uses.

The papers available in PDF format at

formatting link
are good reads.

It's a cooperative multi-threading system that doesn't use or disable interrupts. It uses a single stack with only 2-4 bytes of RAM overhead required per thread.

It provides a way to write code that would normally be an FSM in a linear manner using normal control flow mechanisms like loops, if/then/else, etc.

I'm using it for the "foreground" processing on a small system where there's a highly time-critical critical interrupt driven subsystem that can't tolerate the latency that would be caused by any other subsystem either using or disabling interrupts. I was dreading doing the traditional superloop-and-a-bunch-of-FSMs approach, so I went searching for stackless non interrupt disabling therading systems, and protothreads was the best fit for what I needed.

--
Grant Edwards                   grante             Yow! I know things about
                                  at               TROY DONAHUE that can't
                               visi.com            even be PRINTED!!
Reply to
Grant Edwards

There may be some free implementations, but it seems you only need a subset anyway. 802.11 works with a single channel shared by all nodes, and collision avoidance by random backoff.

The specification is available on line, see:

formatting link

It's quite big, but the important stuff is chapter 7 (frame formats), and chapter 9.2 (DCF). If you have a fixed network, you don't really need the beacons and management frames. Basically all you need is the data frame format, and the random backoff mechanism (DCF).

If you want to avoid contention altogether, you could have the master poll all the clients, using the PCF poll frame.

It is a good match for TCP/IP, since it presents itself to the OS as an Ethernet-like interface.

The big headers could be a disadvantage for your relatively slow interface, but you could modify the headers to use shorter addresses.

Reply to
Arlet Ottens

I've also used the protothread mechanism *inside* an ISR, to replace a state machine.

Reply to
Arlet Ottens

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.