| How our RF Modems work |
| The communication channel | Our RF Modems use either the 916 MHz (US) or 2.4 GHz (Europe) channels, utilizing frequency-hopping spread spectrum (FHSS) technology. |
| RF communication is half duplex | Any given node, at any instant can either transmit or receive, but not both at the same time. This is similar to RS485, many office ethernet systems. It's different from typical RS232 which is full duplex. Since transmit and receive use the same channel, there can only be one transmitter active at a time. It takes some finite amount of time to turn off a transmitter, turn on a receiver, and let it stabilize. The turn-around time between transmit and receive is several milliseconds and depends on both the turn-around time of the modem hardware and the time required for the software protocols to "switch directions". |
| All transmissions are "multicasts", like a "party line" | Since this is an RF channel, any node transmitting can be received by any node within its range. In the olden days, a group of telephone users shared a common pair of wires. Any two or more users on that "party line" could carry on a group conversation, and there was no way for a given speaker to limit the scope of their transmission to only one intended recipient. If one person was speaking, the available channel bandwidth was 100% utilized. This is similar to how CAN, RS485, and ethernet work today. |
| All messages are sent in packets | All transmissions consist of a header, data payload, and a cyclic redundancy check (CRC). |
| Node addressing | Each node has a unique address. All transmissions can be "heard" by all nodes within reception range, but within each transmission is an optional recipient address. The message header and its recipient address can therefore identify this message as a deliberate broadcast message, intended for all listeners, or as a message intended specifically for one listener. |
| Packet "sniffers" | Typically, a node will be programmed to receive either broadcast messages, or messages intended specifically for it, and will ignore all others (since it wouldn't know what to do with data intended for someone else anyway). However, there are circumstances in which you want a given node to receive *all* messages. This is extremely helpful in debugging a network, analyzing traffic (is one node 'hogging' more than its share of bandwidth?), determining if messages being sent to the wrong address and being lost, etc. Typically a sniffer will be a more powerful node such as a PDA or notebook PC with extensive storage for logging, and ability to filter and display a large amount of data. |
| Peer-to-peer wireless network | The RF Modems are true peer-to-peer devices. This means that any two nodes can attempt to establish communication, without going through a "proxy", master, or server. CAN and ethernet can be peer to peer networks, RS485 is typically not. |
| How many peers can join a local peer group? | As more and more peers join a local group (say a cluster of robots on a lab, all within 50 meters of each other), the shared channel can get more heavily utilized. |
| What about channel sharing and collisions? | Since all nodes within the same reception range share a channel, there is a chance of a collision if two transmitters start up at the same time. The media layer handles this by checking the CRC of each message, and deals with backoff and retransmission. |
| What about security? |
Since a node can't control who might receive its data (also true on other party line networks such as ethernet, CAN, and RS485) security must be implemented by encrypting the data before it is transmitted. Nodes which do not have the ability to decrypt the message cannot decipher its contents. |
| Can RF Modems replace a serial cable? (Not really..) |
It's common to want to "extend" a wired serial interface by "replacing" the
wire with RF Modems. This is not as simple as you might hope. I'm not aware of a simple plug-and-play
RS232 to RF link. You would need/want to modify your code.
At the
very
least,
RF is typically
half
duplex
and
adds
significant latency
compared
to a wire. Data may be lost or corrupted, so it can't really be a replacement for a cable. |