Is it correct to tell that every layer in the controller is related to the hardware (HW) and the layers included in the HOST are in software (SW)? I mean in the Bluetooth classic LM, baseband and Radio layers are HW and SDP, RFCOMM, L2CAP are the SW? and in BLE, are the Link Layer and Physical Layer stack related to the hardware and are the HOST layers (L2CAP, GATT, GAP and etc.) software part?
1 Answers
The physical layer is just hardware.
The link layer is a combination of software and hardware.
It depends on implementation how much of the link layer that is implemented in software and how much is implemented in hardware. Generally, the identification of packets including preamble and length when receiving is implemented in hardware. CRC and Coded PHY is usually also implemented in hw.
All implementations I've seen notify the cpu using an interrupt after placing the received packet in RAM.
Generally all scheduling and programming of timers are done in software. The hardware more acts as a simple interface for receiving or sending a packet at a specific point in time.
The process of identifying and responding to a link layer packet (advertisement, connect request, scan request, connection packet), which shall be done after exactly 150 microseconds, can however be done either in hardware, or in software.
Filtering of the white list can also be done in hardware.
The software above runs directly on the cpu in the Bluetooth controller and is usually closed source. The software is tightly coupled with and usually built for to work only with the specific hardware implementation. Therefore that software is usually called firmware.
The host layers run on the computer's main cpu usually as part of the operating system (Android, Windows, Mac etc.), and the host communicates with the controller over the HCI (host controller interface). You can therefore mix and match different host implementations with different controllers.

- 16,784
- 2
- 41
- 52
-
this was a great and clear explanation. I was wondering what is the hardware part for Bluetooth classic. – Talia May 03 '21 at 19:35
-
I guess it's similar to BLE, i.e. sending/receiving packet at a specific channel at a specific point in time is done by the hardware, and all logic by the software (firmware). – Emil May 04 '21 at 12:22