Bluetooth physical layer consists of baseband and radio specifications as defined in IEEE 802.15.1.
Bluetooth network is composed of one master and one to seven slave devices. This small region is referred as piconet. Once master device selects channel with frequency hopping sequence and time to transmit, the same is used by other devices also in the same piconet. One bluetooth device of piconet can also exist and function as either master or slave in the other nearby biconet, this overlapping region is referred as scatternet.
It serves two purpose, one is that it helps provide resistance to multipath interference. Second one is that it provide multiple access to devices in different piconets co-located.
Bluetooth system uses frequency hopping scheme with about 80 different frequencies,with a carrier spacing of about 1MHz.With frequency hopping enabled, a logical channel is defined by hopping sequence. At any time 1 MHz bandwidth is shared by max. 8 devices. Different logical channels can utilize same 80 MHz BW at the same time. Collisions occur when two bluetooth devices use same hopping frequency simultaneously evenif they are on different piconets and different logical channels. The hopping rate is 1600 hops per second, hence physical channel exists for only 0.625ms.
Bluetooth radio uses TDD topology in which data transmission occur in one direction at one time and it alternates in two directions one after the other. The access is TDMA, as piconet medium is shared among two devices. Hence piconet access is referred as FH-TDD-TDMA.
There are two ways link can be established between master and slave devices.
1. SCO referred as Synchronous connection oriented. In this type, fixed bandwidth is allocated for point to point connection between master and slave. The basic reservation is 2 consecutive slots. The master supports 3 SCO links and slave supports 2 or 3 links.
2. ACL referred as Asynchronous connectionless. This is used for point to multipoint link between master and slaves. Only one ACL link exists and for more retransmission of packet is required. In the cases when slots are not reserved in SCO links, master device can exchange packets with any of the slave device on a per time slot.
Bluetooth Packet Format = Access Code(72 bits) + Header(54 bits) + Payload (0 to 2745 bits)
Access code consists of preamble(4bits),sync word(64bits) and trailer field(4 bits).
Header field consists of AM_ADDR(3 bits), type(4 bits),flow(1 bit),ARQN(1 bit),SEQN(1 bit) and HEC(8 bits).
As mentioned above, access code in bluetooth packet is used for timing synchronization and other offset compensations. Access code is also used for paging requests, paging responses and inquiry purposes.
Header is used for identification of packet type and will carry protocol control information.
Payload field will carry user voice or data. Channel Access code identifies a piconet, Device Access Code used for paging REQ/RES, Inquiry Access Code is used for inquiry purposes.
1/3 rate forward error correction (FEC)
2/3 rate forward error correction (FEC)
Automatic Repeat Request Scheme (ARQ)
Refer article on Bluetooth physical layer >> which describes step by step guide to processing of header and data payload part of the bluetooth packet.