Close or Esc Key

Arduino Projects   |   Raspberry Pi   |   Electronic Circuits   |   AVR   |   PIC   |   8051   |   Electronic Projects

Bluetooth Protocol (Part 2): Types, Data Exchange, Security

Written By: 

Bijal Parikh


There are three types of error correction schemes: 1/3 rate FEC, 2/3 FEC and ARQ scheme. In 1/3 rate every bit is repeated three times for redundancy, in 2/3 a polynomial is generated to encode 10 bit code to a 15 bit code and in ARQ scheme a packet is transmitted till an acknowledgement is received. It uses positive and negative acknowledgement values by setting appropriate ARQN values. IF timeout is exceeded, Bluetooth device flushes the packet and proceed to next one.


Bluetooth uses the concept of first in first out FIFO queues in ACL and SCO links for transmission and reception. Link manager fills the queues and link controller empties them automatically.


If the reception queues are full, flow control is used to avoid the dropping of packets and congestion. If data is not received a STOP indication is transmitted by Link controller of the receiver into header of the return packet. When the transmitter receives the STOP indication it freezes its FIFO queues. Again when receiver is ready it sends a packet which resumes the flow again.


The state is a last known or current status of an application or a process. Bluetooth operates in two states Standby and connection.  There are seven sub-states which are used to add slaves or make connections in Pico-net. These are shown in the figure:


connection state in bluetoothThe standby state is the default low power state used when there is no interaction between the devices. In connection state the master and slave can exchange packets using channel access code.




This sub-state is used by the master to activate and connect to a slave. Master sends page messages by transmitting slave's device access code (DAC) in different hop channels.


In this sub-state, a slave listens for its own device access code (DAC) for duration of scan window. The slave listens at a single hop frequency (derived from its page hopping sequence) in this scan window


Slave responds to master's page message in this sub-state which is resulted if slave correlates in the page scan sub-state to the master's page message. Slave enters Connection state after receiving FHS packet from master.


Master reaches this sub-state after it receives slave's response to its page message for it. Master sends a FHS packet to slave and if slave replies then master enters Connection state.


Inquiry is used to find the identity of the Bluetooth devices in the close range. The discovering unit collects the Bluetooth device addresses and clocks of all units that respond to the inquiry message.


In this state, the Bluetooth devices are listening for inquiries from other devices. In this scanning device may listen for general inquiry access code (GIAC) or dedicated inquiry access codes (DIAC).


For inquiry, only slave responds but not the master. The slave responds with the FHS packet which contains the slave's device access code, native clock and some other slave information.


Bluetooth Connection

A connection between two devices follows a particular way. First master inquires about Bluetooth devices in the range. If any Bluetooth device is listening for these inquires (inquiry scan sub-state), it responds to master by sending address and clock information (FHS packet) to the master 9 inquiry response state. After sending the information, the slave starts listening for the page messages from the master (page scan). Then master after discovering the Bluetooth devices in the range may page these devices (page sub-state) for connection setup. The slave in the page scan mode will respond if paged by the master (slave response sub-state). The master after receiving the response from the slave may respond by transmitting the master real time, masters BD-ADDR, the parity bits and the class of device (FHS packet). Once they both receive this FHS packet they enter in connection state.


A connection state starts with a packet sent by master to verify that slave has switch to the masters timing and channel frequency hopping. The slave can respond by sending any type of packet. Various connection states are


In this mode both master and slave actively participates on the channel by listening, transmitting or receiving. Master and slave both synchronize with each other.


In this mode slave rather than listening to the master’s message for that slave, it sniffs on the specified time slots for its messages. Hence it can go to sleep mode to save power.


In this mode , a device temporary does not support the ACL packets and goes to low power sleep mode to allow activities like page scan, page inquiry etc.


When slave does not wants to participate in Pico-net but still wants to synchronize in the channel it goes into park mode which is a low power activity.



which language you use for cod of microcontroler  projects


Assembly language I use for cod.

In other language we can use? Or only using assembly language


Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Search Engines will index and follow ONLY links to allowed domains.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Enter the characters shown in the image.