Dave
Always wear safety glasses while programming.
No, thats not what I meant; if all transmitters are transmitting together, wont the receiver ALWAYS see a 'composite' signal thats actually a mix of more than one signal?
Anand
It's not likely that all transmitters are transmitting all the time. Most jurisdictions have rules limiting such transmissions to intermittent transmissions spaced well apart.
In that scenario, building in both an ID byte and error checking is sufficient. The NEC protocol (used by X10 for ~40 years) works quite well. There's a PBP example at http://davehouston.org/PIC-RX-TX.TXT. If you need to send more than 2 payload bytes, you can extend this.
Transceivers that transmit only when queried also work quite well but at large increase in cost. The simple transmitter and receiver like those Bruce sells are inexpensive and available from many sources worldwide. http://davehouston.org/modules.htm
I think Anand has raised an important issue with uni-directional data transmissions.
As he has mentioned, there may be no way to synchronize multiple independent transmitters. This leads to a situation where 2 or more transmitters may offload their payload over the air simultaneously. This will most certainly result in loss of information at the receive end.
To overcome this, there are a few possible approaches.
1) Send the same payload a minimum of 2 times or more spaced randomly in time so the chances of the receiver catching the un-polluted packet is better.
2) Use a 2 way link in which you implement CSMA/CD protocol.
3) Use modules that have built-in CSMA/CD protocol.
The last 2 are more expensive to implement in terms of hardware and firmware.
CSMA/CD = collision sensing multiple access with collision detection
Regards
Last edited by Jerson; - 20th February 2011 at 13:20. Reason: detail added
That is the point.
When the random simultaneous transmitter trigger happens data will be lost. Again, this happens all of the time, only in this case we know some of the sources of the "jamming" transmissions. Good question to raise though.
One place where this type of thing happens often is with ham radio, and APRS. Yes, the radios used here are transceivers and if one radio hears a transmission in progress then it is supposed to wait to send. Many times the radios sending data can not hear each other so the receiver has to sort things out.
Dave
Always wear safety glasses while programming.
Then it's almost certainly illegal.
Unsupervised transmissions such as these are restricted. They cannot transmit continuously but for a limited time-slice out of every x number of seconds. It is detailed in FCC Part 15 regulations. It's been too long since I worked on this specifically and the recent loss of a HDD took my code and notes but I designed just this type of system a few years ago using battery operated transmitters as shown at...http://davehouston.org/adc.htm. I very recently discussed the choice of batteries and measuring battery charge in http://www.picbasic.co.uk/forum/show...9263#post99263.
In N. America most of the spectrum from ~300-500MHz can be used for this type of project but off the shelf transmitters/receivers are generally only available for 315MHz, 418MHz & 433.92MHz although other frequencies are available for volume orders. Most top shelf RF remotes (e.g. Philips Pronto) use 418MHz here.
In Europe, 433.92MHz is used for everything, fancy remotes, RF controlled lighting, RF controlled thermostats, RF controlled ceiling fans and much, much more.
Interference is not much of a problem because of the restricted time-slices and because the limited range of these low power devices. The FCC power limits are much lower than CE limits so that out-of-the-box commercial devices usually have only 30-40' range. It's quite easy (and legal) to improve the receiving side with a preamp and better antenna to extend this to hundreds of feet. It is not legal to mess with the transmitter side.
There are links to the FCC and other pertinent sites on my web page. http://davehouston.org/
.
Continuous was a poor choice of words on my part. The OP wants to send data once per second, so continuous meaning once per second or so.
Dave
Always wear safety glasses while programming.
Bookmarks