Bluetooth (IEEE 802.15.1)
An Introduction
Prof. David Bernstein
James Madison University
Computer Science Department
bernstdh@jmu.edu
Background
Purpose:
Short-range, low-power, low-cost wireless communications
About the Name:
Named after King Harald Blatand of Denmark (who united the warring factions in what is now Norway, Sweden and Denmark)
Devices
Class 1:
100 milliwatts of power
Range of 100m
Class 2:
2.5 milliwatts of power
Range of 10m
Class 3:
1 milliwatt of power
Range of 1m
Power-Saving Modes
Hold:
The device does not actively exchange data
Sniff:
The device periodically listens for messages
Park:
The device listens for messages and resynchronizes its clock but does not actively communicate
The Physical Layer
Frequency:
2.4GHz band
Spread Spectrum:
79 1MHz channels
Frequency hopping spread spectrum (FHSS) in which each transmission lasts 625 microseconds
Modulation:
v1 uses Gaussian Frequency Shift Keying (GFSK) for a throughput of about 1 Mbit/s
v2 also uses Phase Shift Keying (PSK) for a throughput of about 3 Mbit/s
Networks
Terminology:
Piconet - A group of (synchronized) communicating devices
A device that is involved in more than one piconet at the same time is said to be part of a scatternet
Roles:
1 boss (the first device that initiates communication)
Up to 7 minions
Piconet Topology:
Star - for purposes of clock and hopping sequence synchronization (i.e., the boss's clock is used)
Completely Connected - for other purposes
Procedures
Inquiry (a.k.a. Discovering):
An
inquiring device
is attemping to find other nearby devices
A
discoverable device
is available to be found and responds to inquiries
Uses a special physical channel
Paging (a.k.a. Connecting):
A
paging
(a.k.a. connecting) device initiates
A
page scanning
(a.k.a. connectable) device listens for pages
Uses a special physical channel
Types of Links
Synchronous Connection Oriented (SCO):
Reserved time slots are set aside (between the boss and a particular minion)
Asynchronous Connectionless (ACL):
Can use any time slot (not being used for SCO links)
Frames in Bluetooth
Access Code (68 or 72 bits):
A Channel Access Code (CAC) is used to identify a particular piconet
A Device Access Code (DAC) is used in signaling (e.g., paging)
An Inquiry Access Code (IAC) is used primarily to discover other Bluetooth devices
Header (54 bits):
3-bit active member address (AM_ADDR)
PM_ADDR (used for park mode)
4-bit type (ID, Null, Poll, FHS, DM1)
1-bit flow control (i.e., stop or not)
1-bit acknowledgment (ARQN)
1-bit "sequence number" (SEQN) -- alternates between 0 and 1
8-bit header error check (HEC)
Other stuff...
Payload (0-2745 bits)
Bluetooth Profiles
Purpose:
Define the capabilities of Bluetooth products
Examples:
Generic Access Profile (discovery and link management for all Bluetooth devices)
Service Discovery Application Profile
Cordless Telephony Profile
Serial Port Profile
Headset Profile
Dial-Up Networking Profile
LAN Access Profile
General Object Exchange Profile (similar to OBEX)
There's Always More to Learn