Overview (IEEE 802.15.4)

IEEE 802.15.1 is known as a Low Rate Wireless Personal Area Networks. The goal was to get a low data rate solution with multi-{month, year} battery life and very low complexity. Most applications are sensors, interactive toys, smart badges, remote controls, and home automation.

Physical Layer

Multiple layers are supported. This class will focus in 2.4 GHz.

  • O-QPSK modulation, or Offset Quadrature Phase-Shift Keying
  • We get twice the data rate of BPSK for the same Bit Error Rate (BER)
  • Most complicated design (although it is still minimal)
  • bits per symbol, so kbps kBaud

O-QPSK

The idea is that each combination of bits is given a unique but pseudo-node code.

4-Bit Symbol32-Bit PN-Code (Chip Sequence)
000011011001110000110101001000101110
000111101101100111000011010100100010
111111001001011000000111011110111000
  1. A message to be sent is in some input bit stream.
  2. It is broken into 4 bit symbols
  3. Each symbol maps to a 32-bit PN-code as seen above.
  4. Each bit of the PN code is called a chip.
  5. Each chip encodes half a sine wave.
  6. These are sent to the and channels, or the in-phase and quadrature. These components are offset by .
  7. The combined signal is in 2 dimensions, which creates a constellation diagram. This is a map to determine what bits you sent.
"\\usepackage{tikz-cd}\n\\begin{document}\n\\begin{tikzpicture}[>=Stealth, scale=2]\n % Draw the I and Q axes\n \\draw[->, thick] (-1.5,0) -- (1.5,0) node[right] {I};\n \\draw[->, thick] (0,-1.5) -- (0,1.5) node[above] {Q};\n \n % Draw the Unit Circle (Constant Envelope)\n \\draw[dashed, gray] (0,0) circle (1);\n \n % Define the Points (Standard QPSK positions)\n % Coordinates are (cos 45, sin 45) etc.\n \\node[circle, draw, fill=cyan!30, inner sep=2pt] (p11) at (0.707, 0.707) {};\n \\node[circle, draw, fill=cyan!30, inner sep=2pt] (p01) at (-0.707, 0.707) {};\n \\node[circle, draw, fill=cyan!30, inner sep=2pt] (p00) at (-0.707, -0.707) {};\n \\node[circle, draw, fill=cyan!30, inner sep=2pt] (p10) at (0.707, -0.707) {};\n \n % Label the Symbols\n \\node[above right] at (p11) {11};\n \\node[above left] at (p01) {01};\n \\node[below left] at (p00) {00};\n \\node[below right] at (p10) {10};\n \n % Draw transition arrows along the axes (Offset logic)\n \\draw[<->, blue, thick] (p01) -- (p11);\n \\draw[<->, blue, thick] (p11) -- (p10);\n \\draw[<->, blue, thick] (p10) -- (p00);\n \\draw[<->, blue, thick] (p00) -- (p01);\n\n\\end{tikzpicture}\n\\end{document}"IQ11010010
source code

The point of mapping symbols to chips is for

  • better signal quality (robustness)
  • interference tolerance
  • better range

Direct Sequence Spread Spectrum (DSSS)

Instead of sending a single 0 or 1 directly, DSSS spreads that information into a much longer sequence. This is steps 2-4 in O-QPSK.

We get good interference avoidance

  • received bits are correlated against codes to see which is most likely
  • 802.15.4 tolerates 13-15 bit flips (almost half)

RF Channels

  • 27 channels across three bands
  • 5 MHz separation at 2.4 GHz (compare to BLE)