Radio Baseband LMP HCI L2CAP RFCOMM SDP Profiles

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.

Table Of Contents

2.1 Physical Characteristics
2.1.1 Physical Channel
2.1.2 Physical Links
2.1.3 Logical Channels
2.1.4 Device Addressing
2.2 Packets
2.2.1 Packet Types
2.2.2 Packet Format
2.3 Channel Control
2.3.1 Controller States
2.3.1 Connection Setup
2.3.2 Connection Modes
2.3.4 Scatternet
2.4 Other Baseband Functions
2.4.1 Error Correction
2.4.2 Flow Control 


2.1  Physical Characteristics

2.1.1  Physical Channel

    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.

2.1.2  Physical Links

    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.

2.1.3  Logical Channels

    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.

2.1.4  Device Addressing

    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.


2.2  Packets

    All data on the piconet channel is conveyed in packets.

2.2.1  Packet Types

    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.  

2.2.2  Packet Format

    Each packet consists of 3 entities, the access code (68/72 bits), the header (54 bits) , and the payload (0-2745 bits).

packet.gif (2976 bytes)

*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.


2.3  Channel Control

2.3.1  Controller States

    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)

2.3.2  Connection Setup (Inquiry/Paging)

    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:
2.1:   A device (the source) pages another device (the destination ). Page state
2.2: The destination receives the page. Page Scan state
2.3: The destination sends a reply to the source. Slave Response state : (Step 1)
2.4: The source sends an FHS packet to the destination. Master Response state : (Step 1)
2.5: The destination sends it's second reply to the source. Slave Response state   : (Step 2)
2.6: The destination & source then switch to the source channel parameters.  Master Response state: Step 2 & Slave Response state: Step 3

    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.


2.3.3  Connection Modes

    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).

2.3.4  Scatternet

    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:

  1. First a TDD switch of the considered master and slave, followed by a piconet switch of the both participants.
  2. 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.



2.4  Other Baseband Functions

2.4.1  Error Correction

    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.

2.4.2  Flow Control 

    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.

2.4.3  Synchronization

    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.

2.4.4  Bluetooth Security

    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.