The most prominent standard in low-power radio technology is IEEE 802.15.4. It defines both the PHY layer (e.g., the modulation scheme used) and the MAC layer (e.g., in a network, which mote talks when, on which channel). The first revision of the standard was published in 2003, with revisions in 2006 and 2011. Several working groups are currently working on improving the standard in preparation for its next revision. These groups are identified by a letter, e.g. IEEE 802.15.4e .
The IEEE 802.15.4 PHY is a healthy trade-off between energy-efficiency, range, and data rate targeted at building- sized networks. While the current standard defines multiple PHY layers, the most widely used is the one operating in the 2.4 − 2.485 GHz frequency band, a worldwide and unlicensed band. In this band, the IEEE 802.15.4 PHY layer uses Offset-Quadrature Phase-Shift Keying (O-QPSK) modulation with a 2 M bps physical data rate. Internally to the radio, every group of 4 bits of data sent for transmission are encoded as 32 chips (‘physical bits’) by following some simple lookup table. From a user’s perspective, the bitrate appears to be 250 kbps, although internally 8 more chips are sent over a 2 M cps link.
This technique is referred to as Direct Sequence Spread Spectrum (DSSS) and known to yield extra robustness. IEEE 802.15.4 defines 16 frequency channels, located every 5 M Hz between 2.405 GHz and 2.480 GHz. The channels themselves are only 2 M Hz wide, so channel i does not interfere with channel i − 1 or i + 1; channels are said to be orthogonal. The radio can arbitrarily send and receive on any of those channels, and every compliant radio is able to switch channels in no more than 192 us.
When a radio sends a packet, it starts by transmitting a physical preamble for 128 us to allow for the receiver to lock to its signal. It then sends a well-known Start of Frame Delimiter (SFD) to indicate the start of the physical payload. The first byte of the physical payload indicates the length (in bytes) of the payload itself. Its maximum value is 127, which limits the length of a packet to 128 bytes when including the length byte. A radio listening continuously demodulates what it hears. When no other mote is transmitting, it hears white noise and the stream of bits coming out of the demodulator is random. The circuitry in the receiver looks for a physical preamble to ‘lock onto’.
Once locked on, the receiver waits for the SFD, then for the length byte. It then fills a receive buffer with the number of bytes indicated in the length byte, after which it can switch off safely. After successfully receiving a packet, the radio indicate reception to the micro-controller. From a implementer’s point of view, the only requirements are to send packets of at most 128 bytes, and to have the first byte indicate how many bytes follow. Although in a protocol stack the bytes following the length byte comply to different header formats (e.g. MAC, routing, transport), they can be arbitrary as far as the radio is concerned.
Referenced by OpenMote