Bluetooth is a global standard for low-power, low-cost, small-form-factor wireless tech which allows devices to connect and communicate over radio channels. The attach rate for Bluetooth is nearly 100% for all laptops tablets, and mobile phones and is gaining traction as a feature in headsets, speakers, printers, keyboards, etc. Bluetooth Low Energy (LE) is the most recent iteration to improve the Bluetooth Smart (4.0) specification. Bluetooth LE retains the functionality of Bluetooth Smart while extending the range, packet size, and energy conserving capabilities of the specification.
Piconet: The smallest unit of Bluetooth communication. It is comprised of one Master and up to seven Slaves. Devices synchronize their frequency hopping pattern and internal clock.The Master dictates the frequency hopping pattern and clock.
Scatternet: Two or more piconets combined via a shared device. This is typically achieved by a Slave communicating with two Masters. The Slave participates in both piconets in turns, putting itself in low power mode before switching piconets so that the others are aware of its absence. An alternative form of a scatternet could be a device being a Master in one piconet and a Slave in the second.
Adaptive Frequency Hopping: A tactic to reduce interference by other devices in an ISM band. When AFH is enabled, the Master marks interference ridden channels as unused which removes these channels from the frequency hopping pattern. AFH can reduce the number of channels in use to 20.
Baseband Controller (Link Controller): The Baseband Controller performs the following tasks: Manages physical channels and links for single and multiple link; selects hopping frequency; forms piconets and scatternets; formats packets and sends them for transmission; Inquiry and Inquiry Scan; Connection and Page Scan; Encrypts Data; Manages Power
Role Switch: A piconet comprises one Master and up to seven Slaves. A device which initiates a connection procedure is by default the Master. An HCI_Switch_Role command can be initiated by either the Master or Slave and will switch their roles. Bluetooth LE does not permit this feature.
Basic Piconet Channel: A channel for communication between devices in a piconet.
Adapted Piconet Channel: For devices in a piconet which are AFH (Adaptive Frequency Hopping) enabled.
Inquiry Scan Channel: A channel for discovering new devices.
Page Scan Channel: A channel used for new connections between devices.
Physical Link: The link which carries data physically over a channel. There can only be one physical link between two Bluetooth devices, one Master and one Slave.
Asynchronous Connection Oriented (ACL) Logical Transport: ACL is used to carry broadcast traffic, user data, and control signals between a Master and Slaves in a packet-switch connection. ACL has high bandwidth and is used for music transfer.
Synchronous Connection Oriented (SCO) Logical Transport: SCO provides logical transport support for continuous data transfer in a circuit-switch connection. Up to three SCO links may be upheld between one Master and Slave. Up to two SCO links may be upheld between a Slave and Two Masters. A Master can uphold an SCO and ACL transport at the same time with a slave.
Extended Synchronous Connection Oriented (eSCO) Logical Transport: eSCO is a point-to-point link between a Master and Slave which may be symmetric or asymmetric, meaning that it is possible to use a 3-slot packet in one direction and a 1-slot packet in the other direction. eSCO is a circuit-switch connection which allows for retransmissions of corrupted packets and higher data rates compared to SCO links. eSCO is commonly used to route a call through a Bluetooth headset.
Packets: Packets refer to the information sent between Bluetooth devices. All packet transmissions must initiate with an access code used for synchronization. Packets have two formats: Standard Basic Rate (BR) and Standard Enhanced Data Rate (EDR).
Standard Basic Rate (BR): A packet prefixed by an access code, header, and followed by the data payload.
Standard Enhanced Data Rate (EDR): A packet prefixed by an access code, header, guard, sync, payload, and book-ended with a trailer.
Link Control Packet Types:
ID: Used before connection and contains the device access code (DAC) or inquiry access code (IAC). Contains no payload.
NULL: Used to indicate the success of prior transmissions. Contains no payload.
POLL: Used by the Master to ask Slaves for their status. Contains no payload. If Slaves have no data to transmit, they respond to the Master with a NULL packet.
FHS: Frequency Hop Synchronizations (FHS) is used to synchronize hop frequencies during piconet establishment.
DM1: Data Medium Rate 1-slot is used to carry data packets and control packets. Used by the Link Manager and Link Controller for control packet exchange.
BR and EDR Packet Formats:
ACL Packet Types:
Synchronous Packet Types: HV (High Quality Voice) and DV (Data-Voice) packets are used for SCO transmission. EV packets are used for eSCO.
Packet Access Codes:
Device Access Code (DAC): Used during pre-connection while devices attempt to connect with each other.
Channel Access Code (CAC): Used during device connection and is prefixed to all packets sent within a piconet. This ensures that piconet devices only receive transmission data from their piconet.
Inquiry Access Code (IAC): Used during the inquiry stage when devices are scanning the nearby area for other Bluetooth enabled devices.
Baseband Controller: Responsible for carrying out procedures like inquiry, connection, formation of piconet and scatternet, connection states, and low power modes.
Host Controller Interface (HCI): Defines 4 transport layers: UART Transport Layer, USB Transport Layer, Secure Digital (SD) Transport Layer, Three-Wire UART Transport Layer
L2CAP protocol: Sits above the Baseband layer and provides data services to the upper layer protocols. It uses the ACL links to transfer packets and allows the protocols above it to send data packets up to 64 KB in length.
Link Controller States:
Standby: This is the normal state of the device.
Connection: After detecting the address of a device (via the inquiry procedure), the device can create a connection in an action known as paging. The device which begins paging becomes the Master in the Master-Slave relationship.
Park: If a Slave device does not need to participate in a Piconet that is already full (7 Slaves), it can enter Park State which allows it to conserve power but remain synchronized. The Parked Slave reawakens often to re-synchronize and check whether the channel is requesting it rejoin an active state.
Device Discovery Substates:
Inquiry Scan: Device listens for incoming inquiries.
Inquiry: Device is actively discovering other nearby devices.
Inquiry Response: After receiving an inquiry, the Slave enters Inquiry Response state and replies with an inquiry response message.
Connection Establishment Substates:
Page Scan: Device is listening for inquiries.
Page: Device is connecting with another device. The device initiating paging becomes the Master.
Slave Response: After receiving the paging message, the device enters Slave Response State and sends a Slave response message.
Master Response: Devices which initiate paging enter this substate after receiving a Slave response message.
Link Manager (LM): Performs link setup and control. The Link Manager Protocol (LMP) allows for communication between two devices. LMP messages use DM1 Packets, but may use DV packets for small payloads. Packets transmitted by the LM are called PDUs which contain a transaction ID, OpCode, and Payload.
Pairing: Pairing occurs when two devices associate with each other via exchange of a passkey or Bluetooth PIN.