BLE Protocol Stack — Host Controller Interface (HCI)

Olivia's Pc
2 min readSep 26, 2019

--

Host Controller Interface (HCI) enables communication between the host and the controller via a serial interface. Since the controller deals with hard real-time requirements and contact with the physical layer, it is good to separate this part from the host. Host mostly responsible for more complex implementations but with less stringent in terms of timing.

Generally, the host runs in the main CPU, while the controller is mostly about the hardware chip connected via the hardware IO ports. Take the smartphone for example, the controller is basically the Bluetooth chipset embedded inside the smartphone, whereas the host provides an abstract interface for the application developer to interact with the Bluetooth operations.

The Bluetooth specification defines HCI as a set of commands and events for the host and the controller to interact with each other, along with a data packet format and a set of rules for flow control. Nowadays, most BLE chipset comes in a complete form that incorporates the complete controller, host and application in a single packet. This kind of chipset is normally known as system-on-chip (SoC). SoC reduces cost and size on the final device, hence, it is preferable to runs all three layers concurrently on a single chip for any BLE application.

** this topic is part of the BLE series for beginner **

--

--