The Baseband is the physical layer of the Bluetooth. It
manages physical channels and links apart from other services like error
correction, data whitening, hop selection and Bluetooth security. The
Baseband layer lies on top of the Bluetooth radio layer in the bluetooth
stack. The baseband protocol is implemented as a Link Controller ,
which works with the link manager for carrying out link level routines like
link connection and power control. The baseband also manages asynchronous and
synchronous links, handles packets and does paging and inquiry to access and
inquire Bluetooth devices in the area. The baseband transceiver applies a
time-division duplex (TDD) scheme. (alternate transmit and receive).
Therefore apart from different hopping frequency (frequency division), the
time is also slotted.
For more details : Download the Baseband
Specification from the SIG website, or visit the Documents
Bluetooth operates in the 2.4 GHz ISM band. In
the US and Europe, a band of 83.5 MHz width is available; in this band, 79 RF
channels spaced 1 MHz apart are defined. In France, a smaller band is
available; in this band, 23 RF channels spaced 1 MHz apart are defined.
The channel is represented by a pseudo-random
hopping sequence hopping through the 79 or 23 RF channels. Two or more
Bluetooth devices using the same channel form a piconet. There is one master
and one or more slave(s) in each piconet. The hopping sequence is
unique for the piconet and is determined by the Bluetooth device address
(BD_ADDR) of the master; the phase in the hopping sequence is determined by
the Bluetooth clock of the master. The channel is divided into time slots
where each slot corresponds to an RF hop frequency. Consecutive hops
correspond to different RF hop frequencies.
*Diagram Source: Courtesy of Bluetooth SIG, Baseband Spec,
Figure 1.2 , p 42
The channel is divided into time slots, each 625 us in
length. The time slots are numbered according to the Bluetooth clock of the
A TDD scheme is used where master and slave
alternatively transmit. The master shall start its transmission in
even-numbered time slots only, and the slave shall start its transmission in
odd-numbered time slots only. The packet start shall be aligned with the slot
The Baseband handles two types of links : SCO
(Synchronous Connection-Oriented) and ACL
(Asynchronous Connection-Less) link. The SCO link is a symmetric
point-to-point link between a master and a single slave in the piconet. The
master maintains the SCO link by using reserved slots at regular intervals
(circuit switched type). The SCO link mainly carries voice information. The
master can support up to three simultaneous SCO links while slaves can
support two or three SCO links. SCO packets are never retransmitted. SCO
packets are used for 64 kB/s speech transmission.
The ACL link is a point-to-multipoint link between the
master and all the slaves participating on the piconet. In the slots not
reserved for the SCO links, the master can establish an ACL link on a
per-slot basis to any slave, including the slave already engaged in an SCO
link (packet switched type). Only a single ACL link can exist. For most ACL
packets, packet retransmission is applied.
Bluetooth has five logical channels which can be used
to transfer different types of information. LC
(Control Channel) and LM (Link
Manager) channels are used in the link level while UA,
UI and US
channels are used to carry asynchronous, isosynchronous and synchronous user
4 possible types of addresses can be
assigned to bluetooth units, BD_ADDR, AM_ADDR,
PM_ADDR & AR_ADDR
|BD_ADDR: Bluetooth Device Address.
||Each Bluetooth transceiver is allocated a unique 48-bit
device address. It is divided into a 24-bit LAP
field, a 16-bit NAP field and a 8-bit UAP
|AM_ADDR: Active Member Address
||It is a 3-bit number. It is only valid as long as the slave
is active on the channel. It is also sometimes called the MAC
address of a Bluetooth unit.
|PM_ADDR: Parked Member Address
||It is a 8-bit member (master-local)
address that separates the parked slaves.
The PM_ADDR is only valid as long as the slave is parked.
|AR_ADDR: Access Request Address
||This is used by the parked
slave to determine the slave-to-master half slot in the access window it
is allowed to send access request messages in. It is only valid as long as
the slave is parked and is not necessarily unique.
All data on the piconet channel is
conveyed in packets.
13 different packet types are defined for the baseband
layer of the Bluetooth system. All higher layers use these packets to compose
higher level PDU's. The packets are ID,
FHS , DM1
; these packets are defined for both SCO
and ACL links. DH1,
DH3, DM5, DH5
are defined for ACL links only. HV1, HV2,
HV3 , DV
are defined for SCO links only.
Each packet consists of 3 entities, the access code
(68/72 bits), the header (54 bits) , and the payload (0-2745
*Diagram Source: Courtesy of Bluetooth SIG, Baseband Specs,
Fig 4.1 , p 47
- Access Code: Access code
are used for timing synchronization, offset compensation, paging and
inquiry. There are three different types of Access code: Channel Access
Code (CAC), Device Access Code (DAC)
and Inquiry Access Code (IAC). The
channel access code identifies a unique piconet while the DAC is used for
paging and its responses. IAC is used for inquiry purpose.
- Header:The header
contains information for packet acknowledgement, packet numbering for
out-of-order packet reordering, flow control, slave address and error check
- Payload: The packet payload
can contain either voice field, data field or both. It it has a data field,
the payload will also contain a payload header.
Bluetooth controller operates in two major states: Standby
and Connection . There are seven substates which are used to add
slaves or make connections in the piconet. These are page, page scan,
inquiry, inquiry scan, master response, slave response and inquiry response .
The Standby state is the default low power state
in the Bluetooth unit. Only the native clock is running and there is no
interaction with any device whatsoever. In the Connection state, the
master and slave can exchange packet , using the channel (master) access code
and the master Bluetooth clock. The hopping scheme used is the channel
hopping scheme.The other states (page, inquiry etc are described below)
Normally, a connection between two devices occur in the
following fashion: If nothing is known about a remote device, both the inquiry(1)
procedure have to be followed. If some details are known about a remote
device, only the paging procedure (2) is needed
- Step 1:
- The inquiry procedure enables a device to discover which devices
are in range, and determine the addresses and clocks for the devices.
||The inquiry procedure involve a unit (the source)
sending out inquiry packets (inquiry
state) and then receiving the inquiry reply
||The unit that receives the inquiry packets
(the destination), will
hopefully be in the inquiry
scan state to receive the inquiry packets.
||The destination will then enter the inquiry
and send an inquiry reply to the source.
- After the inquiry procedure has completed, a connection can be
established using the paging
- Step 2:
- With the paging procedure, an actual connection can be
established. The paging procedure typically follows the inquiry
procedure. Only the Bluetooth device
address is required to set up a connection. Knowledge about the clock (clock
estimate) will accelerate the setup procedure. A unit that establishes
a connection will carry out a page procedure and will automatically be the master
of the connection. The procedure occurs as follows:
The Connection state starts with a POLL packet
sent by the master to verify that slave has switched to the master's timing
and channel frequency hopping. The slave can respond with any type of packet.
A Bluetooth device in the Connection state can
be in any of the four following modes: Active, Hold, Sniff and Park
- Active Mode: In the active mode, the Bluetooth unit actively
participates on the channel. The master schedules the transmission based on
traffic demands to and from the different slaves. In addition, it supports
regular transmissions to keep slaves synchronized to the channel. Active
slaves listen in the master-to-slave slots for packets. If an active slave
is not addressed, it may sleep until the next new master transmission.
- Sniff Mode: Devices synchronized to a piconet can enter
power-saving modes in which device activity is lowered. In the SNIFF mode,
a slave device listens to the piconet at reduced rate, thus reducing its
duty cycle. The SNIFF interval is programmable and depends on the
application. It has the highest duty cycle (least power efficient ) of all
3 power saving modes (sniff, hold
- Hold Mode: Devices synchronized to a piconet can enter
power-saving modes in which device activity is lowered. The master
unit can put slave units into
HOLD mode, where only an internal timer is running. Slave units can also
demand to be put into HOLD mode. Data transfer restarts instantly when
units transition out of HOLD mode. It has an intermediate duty cycle
(medium power efficient ) of the 3 power saving modes (sniff,
hold & park).
- Park Mode: In the PARK mode, a device is still synchronized to
the piconet but does not participate
in the traffic. Parked devices have given up their MAC (AM_ADDR)
address and occasional listen to the traffic of the master
to re-synchronize and check on broadcast messages. It has the lowest duty
cycle (power efficiency) of all 3 power saving modes (sniff,
hold & park).
Multiple piconets may cover the same area. Since each
piconet has a different master, the piconets hop independently, each with
their own channel hopping sequence and phase as determined by the respective
master. In addition, the packets carried on the channels are preceded by
different channel access codes as determined by the master device addresses.
As more piconets are added, the probability of collisions increases; a
graceful degradation of performance results as is common in frequency-hopping
spread spectrum systems.
If multiple piconets cover the same area, a unit can
participate in two or more overlaying piconets by applying time multiplexing.
To participate on the proper channel, it should use the associated master
device address and proper clock offset to obtain the correct phase. A
Bluetooth unit can act as a slave in several piconets, but only as a master
in a single piconet. A group of piconets in which connections consists
between different piconets is called a scatternet.
Sometimes an existing master or slave may wish to swap
roles (i.e a master-slave switch) , this can take place in two steps:
- First a TDD switch of the considered master and slave, followed by a
piconet switch of the both participants.
- Then, if so desired, other slaves of the old piconet can be transferred
to the new piconet.
When a unit have acknowledged the reception of the FHS packet, this
unit uses the new piconet parameters defined by the new master and the
piconet switch is completed.
There are three kinds of error correction schemes used
in the baseband protocol: 1/3 rate FEC, 2/3
rate FEC and ARQ scheme.
- In 1/3 rate FEC every bit is repeated three times for redundancy,
- In 2/3 rate FEC a generator polynomial is used to encode 10 bit
code to a 15 bit code,
- In the ARQ scheme , DM, DH and the data field of DV packets
are retransmitted till an acknowledgement is received (or timeout is
exceeded). Bluetooth uses fast, unnumbered acknowledgement in which it uses
positive and negative acknowledgements by setting appropriate ARQN
values. If the timeout value is exceeded, Bluetooth flushes the packet and
proceeds with the next.
The Baseband protocol recommends using FIFO
queues in ACL and SCO
links for transmission and receive. The Link Manager fills these queues and
link controller empties the queues automatically.
If these RX FIFO queues are full, flow control is used
to avoid dropped packets and congestion. If data cannot be received, a stop
indication is transmitted inserted by the Link Controller of the receiver
into the header of the return packet. When the transmitter receives the stop
indication, it freezes its FIFO queues. If receiver is ready it sends a go
packet which resumes the flow again.
The Bluetooth transceiver uses a time-division duplex
(TDD) scheme ,meaning that it alternately transmits and receives in a
synchronous manner. The average timing of master packet transmission should
not drift faster than 20 ppm relative to the ideal slot timing of 625 us.
Jitter from average timing should be less than 1 microsecond.
The piconet is synchronized by the system
clock of the master.To transmit on the piconet channel you need 3 pieces
of information, The (channel)
hopping sequence, the phase of the sequence, and the CAC
to place on the packets
||Channel Hopping Sequence
||The Bluetooth Device Address (BD_ADDR)
of the master is used to derive this frequency
||The system clock of the master determines the phase in the
||Channel Access Code
||This is derived from the Bluetooth Device Address (BD_ADDR)
of the master.
The slaves adapt their native
clocks with a timing offset in order to match the master clock, giving
then an estimated clock value. The offset
is zero for the master as it's native clock is the master clock. The
Bluetooth clocks should have the LSB ticking in units of 312.5us, giving a
clock rate of 3.2kHz.
A 20us uncertainty window is allowed around the exact
receive time in order for the access correlator for the receiver to search
for the correct channel access code and get synchronized with the
transmitter. When a slave returns from the hold
mode, it can correlate over a bigger uncertainty window till they don't
overlap slots. A parked slave
periodically wakes up to listen to beacons from the master and
re-synchronizes its clock offset.
At the link layer, security is maintained by authentication
of the peers and encryption of the information. For this basic security we
need a public address which is unique for each device (BD_ADDR), two secret
keys (authentication keys and encryption key) and a random number generator.
First a device does the authentication by issuing a challenge and the other
device has to then send a response to that challenge which is based on the
challenge, it's BD_ADDR and a link key
shared between them. After authentication, encryption may be used to
communicate. See our Bluetooth
Security page and Bluetooth article(s)
for more details
Note , the above text contains excerpts from the Bluetooth SIG's
Specification, as well as various interpretations of the Specs. For complete
details of the various sections, consult the actual Bluetooth Specification.