|
Bluetooth Baseband
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
Page.
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 piconet master.
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 start.
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 information.
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 field. |
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,
NULL, POLL,
FHS , DM1
; these packets are defined for both SCO
and ACL links. DH1,
AUX1, DM3,
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 bits).
*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 for header.
- 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)
and page(2)
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.
-
|
1.1: |
The inquiry procedure involve a unit
(the source) sending out
inquiry packets (inquiry
state) and then receiving the inquiry reply |
1.2: |
The unit that receives the inquiry
packets (the destination),
will hopefully be in the inquiry
scan state to receive the inquiry packets. |
1.3: |
The destination will then enter the
inquiry response
state and send an inquiry reply to the source. |
- After the inquiry procedure has completed, a connection can be
established using the paging
procedure.
-
- 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
mode.
- 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 & park).
- 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
1 |
Channel Hopping Sequence |
The Bluetooth Device Address (BD_ADDR)
of the master is used to derive this frequency
hopping sequence. |
2 |
Phase |
The system clock of the master determines the phase in
the hopping sequence. |
3 |
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 Bluetooth security
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.
|