Serial RF Radio Transceivers Suggestions?

Hi, Could you give me some suggestions for a good serial transceiver. Ideally it should satisfy the following:
1) Simple interface, preferable just the Tx and Rx lines. 2) Very reliable. 3) Internal Error Correction 4) Good range. 100 meters plus (Outdoors). 2) Be able to change frequencies fairly easily. 3) Small modular unit.
Any suggestions would be most welcome.
Regards
Mark
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I have just struggled for a couple of weeks on this same subject so heed my advice...
I used just a simple AM transmitter and on the other end an AM receiver, but the same goes for AM transceivers. The most important aspect of RF transceivers is the data must have a zero DC component (AC coupled). Normal serial data isn't balanced i,e, you need the same number of 1s as 0s so over a period (10ms ish) they would all cancel out. This is all down to the way the receiver works out what is a 1 and what is a 0. Manchester coding achives this, but is a sod to impliment on the receiving end. One of the best ways to overcome this is to use standard serial routines to send manchester encoded bytes This way the send/recieve routines are simple and the data is balanced. The only drawback is that the manchester encoding doubles the amount of data you send (it encodes a 1 as '10' and a zero as '01' or something like that). So you end-up sending a byte as two nibbles (4-bit) that have been encoded. This also has the advantage that you can perform error checking on data as it should be in pairs of 10 or 01, so 00 or 11 are errors! Another issue is that the receiver will go into a low-power mode when not receiving, and take its output low. To a TTL serial receiver this looks like a start bit and so the device will receive loads of zero bytes. This maked syncronization to the start bit a problem. The solution is to send a package that will enable the receiver micro to lock on and read the package reliably, this is what I did:
send 10101010 a number of times so the reciever can wake-up and lock on to the high and low bits. send 11111111 this will enable the serial receiver to find the start bit send 00000001 this will 'cancel out' the DC bias produced by the previous byte (remember the 1s and 0s must cancel out) send manchester encoded high nibble send manchester encoded low nibble so on...
One last point; manchester encoding also contains a clock singnal so it helps if the speed of the processors might change (such as happens when using RC oscillators). The above technique only works if you know both device clocks are accurate (xtal).
If you have any problems or questions send me an email
Regards,
Geoffrey.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.