Once a Scanner has acquired enough information to decide which Advertiser to connect to (including its MAC address), it becomes an Initiator, initiating a Bluetooth® Low Energy (BLE) Link Layer connection process.
The BLE Connection process is usually preceded by a Discovery process, so the devices are aware of each other's presence.
BLE supports both Unicast (Peer-Peer) as well as Broadcast connections. This page covers the Unicast connection process.
Initiating a Connection
The Scanner selects a suitable Advertiser to connect with, based on advertising data:
- Device name
- Service UUID
It then becomes an Initiator, responding to an Advertiser's advertising packet with a CONNECT_REQ packet, defining
- Frequency hopping sequence
- Connection Interval
- Time between two connection events.
- Slave Latency
- Number of consecutive connection events that a slave is not required to listen for the master (events are skipped only if it doesn’t have data to send).
- Supervision Timeout
- Maximum time between two received valid data packets before a connection is considered “lost”.
Once the CONNECT_REQ packet is sent or received, the devices are connected and data packets can be exchanged. The Initiator becomes the Link Layer Master, while the Advertiser becomes the Link Layer Slave
Once connected, the Master/Slave exchange data packets at regular intervals, called "connection events".
- The connection interval is between 7.5 ms to 4 s (step size: 1.25 ms)
- 0-byte data packets are exchanged if there is no other data to exchange
- Minimum Connection Interval Supported (OS-dependent)
- Data-Packet Length
- Number of Packets Per Connection Event, which depends on
- OS (iOS/Android etc.)
- Interference (If a packet is not received, the connection event is terminated and data will need to be resent on the next connection event)
- Latency between Application and Physical layer operation in the specific device
Once connected, the Link Layer acts as a reliable data bearer
- All packets received are checked against a 24-bit CRC
- Re-transmissions are requested
- No limit for re-transmissions
- Link Layer will resend the packet until it is acknowledged
- Will retry on the next connection event (and channel)
BLE Unicast connections maintain a Piconet network structure as shown:
The Piconet consists of:
- A single Master, coordinating data transfer with one/more Slaves
- Number of slaves is hardware/OS-dependent (BM70 as Master supports 1 connection)
- A Slave can only belong to one Piconet