If you plan to use "dumb" RF modules like FSK transmitters/receivers then an UART will not be enough. You need :
- Some kind of preable sequence to let the receiver set its AGC
- Some kind of "start of frame" header (these two point may not be necessary if you have a continuous transmission, but this is often not autorized by regulatory agencies... at least in Europe)
- Some way to balance the signal (as many "0" as "1"), and some way to minimise the number of successive 0 or 1, if not the receiver will fail to decode the signal. The "inverted/interleaved bit" mechanism proposed by Anthony is a simple solution, but divide the throughput by two and may make the identification of start bits more difficult. More robust solutions exists (NRZ, etc).
- And very probably some error correction firmware.
As a starting point you may have a look at application notes published by Chipcon
formatting link
in particular one named "RF radio modem" or similar.
Of course everything is dependant on your requirements : how many errors can you tolerate, what is the distance and power budget, what is the throughput, etc.
Friendly yours,